A-Level Computer Science
Curriculum:
Students in Year 13 have been taught the entire course in an accelerated manner in Year 12. During Year 13 students revisit the same topics in further depth as well as leading classroom activities to test their knowledge on that area of the subject.
Click to Expand Autumn Content:
Computer Systems
Algorithms and Programming
Structure and Function of Processor
Types of Processor
Input, Output and storage
Systems Software
Applications Generation
Software Development
- The Arithmetic and Logic Unit; ALU, Control Unit and Registers (Program Counter; PC, Accumulator; ACC, Memory Address Register; MAR, Memory Data Register; MDR, Current Instruction Register; CIR) Buses: data, address and control
- The Fetch-Decode-Execute Cycle; including its effects on registers
- The factors affecting the performance of the CPU: clock speed, number of cores, cache
- The use of pipelining in a processor to improve efficiency
- Von Neumann, Harvard and contemporary processor architecture
- The differences between and uses of CISC and RISC processors
- GPUs and their uses (including those not related to graphics)
- Multicore and Parallel systems
- How different input, output and storage devices can be applied to the solution of different problems
- The uses of magnetic, flash and optical storage devices
- RAM and ROM
- Virtual storage
- The need for, function and purpose of operating systems
- Memory Management (paging, segmentation and 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 and 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
- The nature of applications, justifying suitable applications for a specific purpose
- Utilities
- Open source vs closed source
- Translators: Interpreters, compilers and assemblers
- Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation)
- Linkers and loaders and use of libraries
- Understand the waterfall lifecycle, agile methodologies, extreme programming, the spiral model and rapid application development
- The relative merits and drawbacks of different methodologies and when they might be used
- Writing and following algorithms
Thinking Abstractly
Thinking Ahead
Thinking Procedurally
Thinking Logically
Thinking Concurrently
Programming Techniques
- The nature of abstraction
- The need for abstraction
- The differences between an abstraction and reality
- Devise an abstract model for a variety of situations
- Identify the inputs and outputs for a given situation
- Determine the preconditions for devising a solution to a problem
- The nature, benefits and drawbacks of caching
- The need for reusable program components
- Identify the components of a problem
- Identify the components of a solution to a problem
- Determine the order of the steps needed to solve a problem
- Identify sub-procedures necessary to solve a problem
- Identify the points in a solution where a decision has to be taken
- Determine the logical conditions that affect the outcome of a decision
- Determine how decisions affect flow through a program
- Determine the parts of a problem that can be tackled at the same time
- Outline the benefits and trade offs that might result from concurrent processing in a particular situation
- Programming constructs: sequence, iteration, branching
- Recursion, how it can be used and compares to an iterative approach
- Global and local variables
- Modularity, functions and procedures, parameter passing by value and by reference
- Use of an IDE to develop/debug a program passing by value and by reference
- Use of object oriented techniques
Click to Expand Spring Content:
Computer Systems
Algorithms and Programming
Software Development
Types of Programming Language
Compression
Encryption and Hashing
Databases
Networks
- Different Test Strategies, Including Black And White Box Testing And Alpha And Beta Testing
- Test Programs That Solve Problems Using Suitable Test Data And End User Feedback, Justify A Test Strategy For A Given Situation
- Need For And Characteristics Of A Variety Of Programming Paradigms
- Procedural Languages:
- Program Flow
- Variables And Constants
- Procedures And Functions
- Arithmetic, Boolean And Assignment Operators
- String Handling
- File Handling
- Assembly Language (Including Following And Writing Simple Programs With The Little Man Computer Instruction Set)
- Modes Of Addressing Memory (Immediate, Direct, Indirect And Indexed)
- Object-oriented Languages With An Understanding Of Classes, Objects, Methods, Attributes, Inheritance, Encapsulation And Polymorphism
- Lossy Vs Lossless Compression
- Run Length Encoding And Dictionary Coding For Lossless Compression
- Symmetric And Asymmetric Encryption
- Different Uses Of Hashing
- Relational Database, Flat File, Primary Key, Foreign Key, Secondary Key, Entity Relationship Modelling, Normalisation And Indexing
- Methods Of Capturing, Selecting, Managing And Exchanging Data
- Normalisation To 3NF
- SQL – Interpret And Modify
- Referential Integrity
- Transaction Processing, ACID (Atomicity, Consistency, Isolation, Durability), Record Locking And Redundancy
- Characteristics Of Networks And The Importance Of Protocols And Standards
- The Internet Structure:
- The Tcp/IP Stack
- DNS
- Protocol Layering
- LANS And WANS
- Packet And Circuit Switching
- Network Security And Threats, Use Of Firewalls, Proxies And Encryption
- Network Hardware
- Client-server And Peer To Peer
Software Development
Computational Methods
- Understand The Waterfall Lifecycle, Agile Methodologies, Extreme Programming, The Spiral Model And Rapid Application Development
- The Relative Merits And Drawbacks Of Different Methodologies And When They Might Be Used
- Writing And Following Algorithms
- Different Test Strategies, Including Black And White Box Testing And Alpha And Beta Testing
- Test Programs That Solve Problems Using Suitable Test Data And End User Feedback, Justify A Test Strategy For A Given Situation
- Features That Make A Problem Solvable By Computational Methods
- Problem Recognition
- Problem Decomposition
- Use Of Divide And Conquer
- Use Of Abstraction
- Learners Should Apply Their Knowledge Of:
- Backtracking
- Data Mining
- Heuristics
- Performance Modelling
- Pipelining
- Visualisation To Solve Problems
Click to Expand Summer Content:
Recap And Exam Prep
Web Technologies
Data Types
Boolean Algebra
Computing Related Legislation
Moral And Ethical Issues
Algorithms
- HTML, CSS And Javascript
- Search Engine Indexing
- PageRank Algorithm
- Server And Client Side Processing
- Primitive Data Types, Integer, Real/floating Point, Character, String And Boolean
- Represent Positive Integers In Binary
- Use Of Sign And Magnitude And Two’s Complement To Represent Negative Numbers In Binary
- Addition And Subtraction Of Binary Integers
- Represent Positive Integers In Hexadecimal
- Convert Positive Integers Between Binary Hexadecimal And Denary
- Representation And Normalisation Of Floating Point Numbers In Binary
- Floating Point Arithmetic, Positive And Negative Numbers, Addition And Subtraction
- Bitwise Manipulation And Masks: Shifts, Combining With AND, OR, And XOR
- Positive And Negative Real Numbers Using Normalised Floating Point Representation
- How Character Sets (Ascii And Unicode) Are Used To Represent Text
- Define Problems Using Boolean Logic
- Manipulate Boolean Expressions, Including The Use Of Karnaugh Maps To Simplify Boolean Expressions
- Use The Following Rules To Derive Or Simplify Statements In Boolean Algebra: De Morgan’s Laws, Distribution, Association, Commutation, Double Negation
- Using Logic Gate Diagrams And Truth Tables
- The Logic Associated With D Type Flip Flops, Half And Full Adders
- The Data Protection Act 1998
- The Computer Misuse Act 1990
- The Copyright Design And Patents Act 1988
- The Regulation Of Investigatory Powers Act 2000
- The Individual Moral, Social, Ethical And Cultural Opportunities And Risks Of Digital Technology:
- Computers In The Workforce
- Automated Decision Making
- Artificial Intelligence
- Environmental Effects
- Censorship And The Internet
- Monitor Behaviour
- Analyse Personal Information
- Piracy And Offensive Communications
- Layout, Colour Paradigms And Character Sets
- Analysis And Design Of Algorithms For A Given Situation
- The Suitability Of Different Algorithms For A Given Task And Data Set, In Terms Of Execution Time And Space
- Standard Algorithms (Bubble Sort, Insertion Sort, Binary Search And Linear Search)
- Standard Algorithms (Quick Sort, Dijkstra’s Shortest Path Algorithm, A* Algorithm, Binary Search)
- Implement Bubble Sort, Insertion Sort
- Implement Binary And Linear Search
- Representing, Adding Data To And Removing Data From Queues And Stacks
- Measures And Methods To Determine The Efficiency Of Different Algorithms, Big O Notation (Constant, Linear, Polynomial, Exponential And Logarithmic Complexity)
- Algorithms For The Main Data Structures, (Stacks, Queues, Trees, Linked Lists, Depth-first (Post-order) And Breadth-first Traversal Of Trees)
- Comparison Of The Complexity Of Algorithms
- Compare The Suitability Of Different Algorithms For A Given Task And Data Set
Subject Overview:
A-Level students have 5 Computer Science lessons each week.
Students have Computer Science homework set once every week.
Students are also recommended to spend 5-6 hours each week on independent study.
Assessments:
Students in Sixth Form are assessed through end of unit assessments and mock exams papers.
Students in Sixth Form sit their final exams at the end of Year 13.