Year 12 & 13

Computer Science notes

Teachers: M Lewis & H Clancy

Name:

Remember to save and backup this document!


Contents

Unit 1

1.1 All parts of the CPU as detailed in the Von Neumann architecture

1.2 How data and instructions move around the CPU (step by step)

1.3 Factors that affect the performance of a CPU

1.4 Pipelining what it is and how it works

1.5 The Harvard architecture compared to the Von Neumann architecture

1.6 Difference between CISC and RISC processors

1.7 GPU usage including non-graphical use (bit-coins)

1.8 Multicore and Parallel system

1.9 Input and output devices – especially for disabled people

1.10 RAM & ROM

1.11 Virtual storage

1.12 Need and functions of an OS

1.13 Paging, segmentation and virtual memory (HDD)

1.14 Interrupts and the role of interrupts

1.15 Scheduling methods including: Round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time

1.16 Distributed, embedded, multi-tasking, multi-user and real time OS

1.17 What is BIOS and why we use it

1.18 Device drivers

1.19 Virtual machines including running intermediate code

1.20 Selecting application software for a specific purpose

1.21 Utility software

1.22 Open vs closed source software

1.23 Interpreters, compilers and assemblers

1.24 Stages of code compilation

1.25 Linkers, loaders and libraries

1.26 Software development methodologies (waterfall lifecycle, agile, extreme, spiral, rapid development)

1.27 Benefits and limitations of different software methodologies

1.28 Why we use different programming styles (procedural vs OO)

1.29 Characteristics of Procedural languages and OO languages

1.30 Assembly language – you need to know the mnemonics (ADD etc)

1.31 Immediate, direct, indirect and indexed addressing

1.32 What is a class, object, method, attribute, inheritance, encapsulation and polymorphism in OO programming

1.33 Lossy vs Lossless compression

1.34 Run length encoding and dictionary coding for lossless compression

1.35 Symmetric and asymmetric encryption

1.36 Different uses of hashing

1.37 All elements of relational databases

1.38 Normalisation to 3NF

1.39 SQL (read and edit it)

1.40 Referential integrity

1.41 ACID

1.41 Characteristics of a network

1.42 Network protocols and standards (HTTP, etc)

1.43 TCP, IP stack, DNS, Protocol layering, LANs and WANs, Packet and circuit switching

1.44 Network security and threats, use of firewalls proxies and encryption – look at Tor browser

1.45 Client server vs peer to peer

1.46 Identify and write basic HTML, CSS and JavaScript

1.47 Search engine indexing

1.48 PageRank Algorithms

1.49 Server and client side processing

1.50 Integers, real/floating point, character, string and Boolean data types

1.51 Int to binary

1.52 Sign and magnitude and two’s complement

1.53 Add and sub binary

1.54 Int to hex

1.55 Convert between decimal, binary and hex

1.56 Normalisation of floating point numbers in binary

1.57 Floating point arithmetic

1.58 Bitwise manipulation – shifts, combining with AND, OR, and XOR

1.59 ASCII and UNICODE for text

1.60 Arrays (up to 3D), records, lists, tuples

1.61 Linked lists, graph, stack, queue, tree, binary search tree, hash table

1.62 Traversing binary trees (post-order and breadth first)

1.63 Boolean logic

1.64 De Morgan’s laws, distribution, association, commutation, double negation

1.65 Karnaugh maps

1.66 Logic gate diagrams and truth tables

1.67 Flip flops, half and full adders

1.68 Data protection Act 1998

1.69 Computer misuse Act 1990

1.70 Copyright design and patents Act 1988

1.71 The regulation of investigatory Powers Act 2000

1.72 Moral, social, ethical opportunities and risks of digital technology (One laptop per child and people being replaced by robots)

Unit 2

2.1 Abstraction

2.2 Pre-conditions

2.3 Benefits/ limitations of caching

2.4 Reusable program components

2.5 Problem identification including components

2.6 Identify sub-procedures of a problem

2.7 Logical decision making within a program

2.8 Program flow

2.9 Concurrent programming methods with benefits and limitations

2.10 Sequence, iteration and branching

2.11 Recursion vs iteration

2.12 Global and local variables

2.13 Modularity, functions, procedure in programming

2.14 Features and uses of IDEs

2.15 Why we use OO programming with main features

2.16 Problem recognition, decomposition, divide and conquer, abstraction

2.17 Backtracking, data mining, heuristics, performance modelling, pipelining, visualisation

2.18 Analysis and design algorithms

2.19 Big O notation

2.20 Bubble sort, insertion sort, merge sort, quick sort

2.21 Binary and linear searching

2.22 Dijkstra’s shortest path algorithm

2.23 A* algorithm

Unit 1

1.1 All parts of the CPU as detailed in the Von Neumann architecture

1.2 How data and instructions move around the CPU (step by step)

1.3 Factors that affect the performance of a CPU

1.4 Pipelining what it is and how it works

1.5 The Harvard architecture compared to the Von Neumann architecture

1.6 Difference between CISC and RISC processors

1.7 GPU usage including non-graphical use (bit-coins)

1.8 Multicore and Parallel system

1.9 Input and output devices – especially for disabled people

1.10 RAM & ROM

1.11 Virtual storage

1.12 Need and functions of an OS

1.13 Paging, segmentation and virtual memory (HDD)

1.14 Interrupts and the role of interrupts

1.15 Scheduling methods including: Round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time

1.16 Distributed, embedded, multi-tasking, multi-user and real time OS

1.17 What is BIOS and why we use it

1.18 Device drivers

1.19 Virtual machines including running intermediate code

1.20 Selecting application software for a specific purpose

1.21 Utility software

1.22 Open vs closed source software

1.23 Interpreters, compilers and assemblers

1.24 Stages of code compilation

1.25 Linkers, loaders and libraries

1.26 Software development methodologies (waterfall lifecycle, agile, extreme, spiral, rapid development)

1.27 Benefits and limitations of different software methodologies

1.28 Why we use different programming styles (procedural vs OO)

1.29 Characteristics of Procedural languages and OO languages

1.30 Assembly language – you need to know the mnemonics (ADD etc)

1.31 Immediate, direct, indirect and indexed addressing

1.32 What is a class, object, method, attribute, inheritance, encapsulation and polymorphism in OO programming

1.33 Lossy vs Lossless compression

1.34 Run length encoding and dictionary coding for lossless compression

1.35 Symmetric and asymmetric encryption

1.36 Different uses of hashing

1.37 All elements of relational databases

1.38 Normalisation to 3NF

1.39 SQL (read and edit it)

1.40 Referential integrity

1.41 ACID

1.41 Characteristics of a network

1.42 Network protocols and standards (HTTP, etc)

1.43 TCP, IP stack, DNS, Protocol layering, LANs and WANs, Packet and circuit switching

1.44 Network security and threats, use of firewalls proxies and encryption – look at Tor browser

1.45 Client server vs peer to peer

1.46 Identify and write basic HTML, CSS and JavaScript

1.47 Search engine indexing

1.48 PageRank Algorithms

1.49 Server and client side processing

1.50 Integers, real/floating point, character, string and Boolean data types

1.51 Int to binary

1.52 Sign and magnitude and two’s complement

1.53 Add and sub binary

1.54 Int to hex

1.55 Convert between decimal, binary and hex

1.56 Normalisation of floating point numbers in binary

1.57 Floating point arithmetic

1.58 Bitwise manipulation – shifts, combining with AND, OR, and XOR

1.59 ASCII and UNICODE for text

1.60 Arrays (up to 3D), records, lists, tuples

1.61 Linked lists, graph, stack, queue, tree, binary search tree, hash table

1.62 Traversing binary trees (post-order and breadth first)

1.63 Boolean logic

1.64 De Morgan’s laws, distribution, association, commutation, double negation

1.65 Karnaugh maps

1.66 Logic gate diagrams and truth tables

1.67 Flip flops, half and full adders

1.68 Data protection Act 1998

1.69 Computer misuse Act 1990

1.70 Copyright design and patents Act 1988

1.71 The regulation of investigatory Powers Act 2000

1.72 Moral, social, ethical opportunities and risks of digital technology (One laptop per child and people being replaced by robots)

Unit 2

2.1 Abstraction

2.2 Pre-conditions

2.3 Benefits/ limitations of caching

2.4 Reusable program components

2.5 Problem identification including components

2.6 Identify sub-procedures of a problem

2.7 Logical decision making within a program

2.8 Program flow

2.9 Concurrent programming methods with benefits and limitations

2.10 Sequence, iteration and branching

2.11 Recursion vs iteration

2.12 Global and local variables

2.13 Modularity, functions, procedure in programming

2.14 Features and uses of IDEs

2.15 Why we use OO programming with main features

2.16 Problem recognition, decomposition, divide and conquer, abstraction

2.17 Backtracking, data mining, heuristics, performance modelling, pipelining, visualisation

2.18 Analysis and design algorithms

2.19 Big O notation

2.20 Bubble sort, insertion sort, merge sort, quick sort

2.21 Binary and linear searching

2.22 Dijkstra’s shortest path algorithm

2.23 A* algorithm