Name:
Class Teacher:
Date:
REVISION BOOKLET
1.2 SOFTWARE AND SOFTWARE DEVELOPMENT
Content in H446 A-Level Computer Science:
1.1 The characteristics of contemporary processors, input, output and storage devices
1.2 Software and software development
1.3 Exchanging data
1.4 Data types, data structures and algorithms
1.5 Legal, moral, cultural and ethical issues
2.1 Elements of computational thinking
2.2 Problem solving and programming
2.3 Algorithms
www.learn-computerscience.com
1.2.1 SYSTEMS SOFTWARE
TOPIC
The need for, function and purpose of operating systems
Memory management:
Paging
Segmentation
Virtual memory
Interrupts, the role of interrupts and Interrupt Service Routines (ISR),
role within the fetch-decode-execute cycle
Scheduling:
Round robin
First come first served
Multi-level feedback queues
Shortest job first
Shortest remaining time
Distributed, embedded, multi-tasking, multi-user and Real Time
operating systems
BIOS
Device drivers
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.1 SYSTEMS SOFTWARE
FUNCTION AND PURPOSE OF OPERATING SYSTEMS
MEMORY MANAGEMENT
PAGING
SEGMENTATION
VIRTUAL MEMORY
INTERRUPTS
ROLE OF INTERRUPTS
INTERRUPT SERVICE ROUTINES (ISR)
ROLE OF INTERRUPTS IN THE FETCH-DECODE-EXECUTE CYCLE
SCHEDULING
ROUND ROBIN
FIRST COME FIRST SERVED
MULTI-LEVEL FEEDBACK QUEUES
SHORTEST JOB FIRST
SHORTEST REMAINING TIME
OPERATING SYSTEMS
DISTRIBUTED
EMBEDDED
MULTI-TASKING
MULTI-USER
REAL-TIME
BIOS
DEVICE DRIVERS
VIRTUAL MACHINES
RUNNING AN OPERATING SYSTEM WITHIN ANOTHER
1.2.2 APPLICATIONS GENERATION
TOPIC
The nature of applications, justifying suitable applications for a
specific purpose
Utilities
Open source vs Closed source
Translators:
Interpreters
Compilers
Assemblers
Stages of compilation:
Lexical analysis
Syntax analysis
Code generation
Optimisation
Linkers and loaders and use of libraries
1.2.2 APPLICATIONS GENERATION
THE NATURE OF APPLICATIONS
UTILITIES
OPEN SOURCE VS CLOSED SOURCE
TRANSLATORS
INTERPRETERS
COMPILERS
ASSEMBLERS
STAGES OF COMPILIATION
LEXICAL ANALYSIS
SYNTAX ANALYSIS
CODE GENERATION
OPTIMISATION
LINKERS AND LOADERS
USE OF LIBRARIES
1.2.3 SOFTWARE DEVELOPMENT
TOPIC
Understand software development lifecycles including:
Waterfall
Agile methodologies
Extreme programming
Spiral model
Rapid application development
The relative merits and drawbacks of different methodologies and
when they might be used
Writing and following algorithms
1.2.3 SOFTWARE DEVELOPMENT
SOFTWARE DEVELOPMENT LIFECYCLES
WATERFALL
AGILE METHODOLOGIES
EXTREME PROGRAMMING
SPIRAL MODEL
RAPID APPLICATION DEVELOPMENT
ADVANTAGES/DISADVANTAGES OF DIFFERENT METHODOLOGIES
WRITING AND FOLLOWING ALGORITHMS
1.2.4 TYPES OF PROGRAMMING LANGUAGE
TOPIC
Need for and characteristics of a variety of programming paradigms
Procedural languages
Assembly languages:
Including following and writing simple programs with the Little
Man Computer instruction set
Modes of addressing memory:
Immediate
Direct
Indirect
Indexed
Object-oriented languages with an understanding of:
Classes
Objects
Methods
Attributes
Inheritance
Encapsulation
Polymorphism
1.2.4 TYPES OF PROGRAMMING LANGUAGE
CHARACTERISTICS OF A VARIETY OF PROGRAMMING PARADIGMS
PROCEDURAL LANGUAGES
ASSEMBLY LANGUAGES
FOLLOWING AND WRITING LITTLE MAN COMPUTER INSTRUCTIONS
MODES OF ADDRESSING MEMORY
IMMEDIATE
DIRECT
INDIRECT
INDEXED
OBJECT-ORIENTED LANGUAGES
CLASSES
OBJECTS
METHODS
ATTRIBUTES
INHERITANCE
ENCAPSULATION
POLYMORPHISM