The Subject
A level Computer Science at Collingham College focuses on optimising both knowledge and skill in the latest technologies in industry and academia. The course is primarily composed of 2 streams:
The offer of programming apps for smartphones and tablets has gained considerable popularity.
The chosen board is OCR, but students are allowed to propose further ones.
Programming
From the beginning of the course, students practise programming comprehensively, then use these skills in their personal project (see below). Preference is given to Object Oriented Languages. Students are allowed to choose:
- Which language they want to study
Popular choices include Python, Java, Swift, C# and C++. Students are allowed to propose any further ones of their choice
- Which technology they would like to use to build their products
Collingham is unusual in that we offer the opportunity to learn to create and develop mobile apps for smartphones and tablets, both Apple iOS and Android.
Students can also create apps with Graphical User Interfaces for PCs, or are allowed to propose their own product ideas.
Topic Areas covered include:
- Imperative Programming: Data Types & Operators, Conditional Statements, Loops
- Procedural Programming: Working with Functions/Procedures, Procedural Program Design, Recursion
- Object Oriented Programming: Working with Classes and Objects, Encapsulation using Access Specifiers, Special Class Members including Constructors, Destructors and Mutators, Inheritance including Multiple and Interface Inheritance, Polymorphism
- Object Oriented Design using UML
- Object Oriented Design Patterns
- Memory Management Programming: Pointers and References, Embedded Systems Programming, Runtime Memory Management including the Stack and Heap
- Parallel Process Programming: including the Theory of Multithreading, Threadpools and Interrupts
- Data Structures and Algorithms: Arrays, Sorting Algorithms, Linked Lists, Binary Trees, Hash Tables and Hashing Algorithms, Special Purpose Data Structures including Stacks, Queues and Priority Queues, Graph Data Structures including Searching and Shortest Path Algorithms
Theory
Topics covered include:
- Digital Logic: Logical Operators, Digital Hardware including Adder Circuits, Boolean Algebra and Karnaugh Maps
- Computer Hardware Architecture including von Neumann and Harvard, the CPU and ALU, Buses and I/O Controllers, Multithreaded Programs, design of the Motherboard and different sorts of Computer Memory, Firmware and Assembly Language code
- Computer Data and Information Theory: including Digital Arithmetic, Floating Point Arithmetic in different mathematical bases, representation/storage of files including Graphics and Video, Shell Scripting including Bash
- Database Theory, including Design and Implementation of Databases, Data Types and Operations, Relational Databases, Normalisation, Programming using SQL and XML, relationship with Object Oriented Programming (see above)
- Communications Theory: Computer Network Configurations, Protocols which govern the Internet and Telecommunications Networks, especially Mobile Communications including the OSI 7 Layer and TCP/IP Models, Secure Communications, Internet Domains
- Internet and Web Programming including coding in HTML, CSS, JavaScript and an insight into PHP with SQL
- Management in Software including Management Models, Design and Development systems, Agile Systems and various Testing Protocols
- Legislation and Ethics in Computer Technology including Parliamentary Acts in Technology
Personal Project
For most boards, students are required to undertake a personal project. The idea is that it tackles a real world problem, then following the design and implementation of the software, testing is carried out on people.
In recent years, developing smartphone apps has been a popular choice. Recent projects include mathematical and linguistic games, on iPhones and iPads, for people with conditions like dyslexia and dyscalculia and Android apps to help people with learning difficulties organise themselves.