~ Software and Software Development


Welcome!

A psychiatrist is a medically-qualified practitioner who will have spent 5-6 years training to be a doctor. Some people call them "head docs" as they treat things associated with the mind like depression and mental illness. Did you know they have to spend, like any other doctor, a considerable time studying the human body too? It's a little like you as a Computing studnet in that hardware(body) and software(likened to the mind?) work together and ought not to be studied in isolation.

Computer software, or simply software, is that part of a computer system that consists of encoded information or computer instructions, in contrast to the physical hardware from which the system is built. Did you know it was Alan Turing 

 

... who first proposed the term "Software"!? 

Computer software is all information processed by computer systems, programs and data. Software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.

*Computer Game software - Minecraft is an example!

Image result for minecraft software

This is a  diagram showing how the user interacts with application software on a typical desktop computer.The application software layer interfaces with the operating system, which in turn communicates with the hardware. The arrows indicate information

What you will learn:

1.2.1 Systems Software

(a) The need for, function and purpose of operating systems. (b) Memory Management (paging, segmentation and virtual memory). (c) Interrupts, the role of interrupts and Interrupt Service Routines (ISR), role within the Fetch-Decode-Execute Cycle. (d) Scheduling: round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time. (e) Distributed, embedded, multi-tasking, multi-user and Real Time operating systems. (f) BIOS. (g) Device drivers. (h) Virtual machines, any instance where software is used to take on the function of a machine, including executing intermediate code or running an operating system within another.

1.2.2 Applications Generation

(a) The nature of applications, justifying suitable applications for a specific purpose. (b) Utilities. (c) Open source vs closed source. (d) Translators:Interpreters, compilers and assemblers. (e) Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation). (f) Linkers and loaders and use of libraries

1.2.3 Software Development

(a) Understand the waterfall lifecycle, agile methodologies, extreme programming, the spiral model and rapid application development. (b) The relative merits and drawbacks of different methodologies and when they might be used. (c) Writing and following algorithms.

1.2.4 Types of Programming Language

(a) Need for and characteristics of a variety of programming paradigms. (b) Procedural languages. (c) Assembly language (including following and writing simple programs with the Little Man Computer instruction set). See appendix 5d. (d) Modes of addressing memory (immediate, direct, indirect and indexed). (e) Object-oriented languages (see appendix 5d for pseudocode style) with an understanding of classes, objects, methods, attributes, inheritance, encapsulation and polymorphism.

What you need to cover:

(a) The need for, function and purpose of operating systems. (b) Memory Management (paging, segmentation and virtual memory). (c) Interrupts, the role of interrupts and Interrupt Service Routines (ISR), role within the Fetch-Decode-Execute Cycle. (d) Scheduling: round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time. (e) Distributed, embedded, multi-tasking, multi-user and Real Time operating systems. (f) BIOS. (g) Device drivers. (h) Virtual machines, any instance where software is used to take on the function of a machine, including executing intermediate code or running an operating system within another.

Operating Systems

Applications General

What you need to learn

(a)The nature of applications, justifying suitable applications for a specific purpose. (b) Utilities. (c) Open source vs closed source. (d) Translators:Interpreters, compilers and assemblers. (e) Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation). (f) Linkers and loaders and use of libraries.

Applications General - overview

PowerPoints loading ...

Translators

Lexical and Syntax

Lexical and Syntax Analysis Learning Poster

Library Routines

Software Development

What you need to learn:

(a) Understand the waterfall lifecycle, agile methodologies, extreme programming, the spiral model and rapid application development. (b) The relative merits and drawbacks of different methodologies and when they might be used. (c) Writing and following algorithms.

Types of Programming Language

(a) Need for and characteristics of a variety of programming paradigms. (b) Procedural languages. (c) Assembly language (including following and writing simple programs with the Little Man Computer instruction set). See appendix 5d. (d) Modes of addressing memory (immediate, direct, indirect and indexed). (e) Object-oriented languages (see appendix 5d for pseudocode style) with an understanding of classes, objects, methods, attributes, inheritance, encapsulation and polymorphism.

Programming Paradigms

A programming paradigm is a style or “way” of programming. Some languages make it easy to write in some paradigms but not others. Never use the phrase “programming language paradigm.” A paradigm is a way of doing something (likeprogramming), and not a concrete thing (like a language). Read more at: http://cs.lmu.edu/~ray/notes/paradigms/

Procedural Languages

Procedural language is a type of computer programming language that specifies a series of well-structured steps and procedures within its programming context to compose a program. It contains a systematic order of statements, functions and commands to complete a computational task or program. Read more at:  https://en.wikipedia.org/wiki/Procedural_programming

Assembly Language - Low Level Languages

LMC Part 1

LMC Part 2

Addressing Modes

Object Oriented Programming

Object Oriented Programming Concepts

Tasks

Your teacher may ask you to do one or more of the following tasks

Worksheets: #1-5

*Note: Additional Tests 1,2,3,4 (also based on past papers [OCR] are in the teacher's only drive, along with all mark scheme answers

Please be patient! Worksheets loading ...

Learning Poster

1. Complete a learning poster (a single slide) in which all of the learning objectives for this topic are explained

*Refer to the theory PowerPoint and the "What you will learn objectives" slide.

Research Power Point

1. Complete a research powerpoint on the topic selected by your teacher using the following template.

End of topic assessment

Well done on completing this topic!

Your teacher will direct you as to which task needs to be handed in

What to submit

-learning poster

-research powerpoint

-worksheet