01Data Representation
User-defined data types: need and design · Non-composite and composite user-defined types · File organisation and access (serial, sequential, random) · Hashing algorithms for file access …
02Communication and Internet Technologies
Purpose of protocols and the layered protocol stack · TCP/IP protocol suite and its layers · Application-layer protocols: HTTP, FTP, POP3, IMAP, SMTP, BitTorrent · Circuit switching vs packet switching …
03Hardware and Virtual Machines
RISC vs CISC processors, pipelining and interrupt handling · Parallel processing (SISD/SIMD/MISD/MIMD) and massively parallel computers · Virtual machines: concept, uses and limitations · Half adders, full adders and flip-flops (SR, JK) …
04System Software
OS resource management and hiding hardware complexity · Process management, states and scheduling · Memory management: paging, segmentation and virtual memory · Interpretation vs the stages of compilation …
05Security
Symmetric and asymmetric encryption · Using public/private keys for private and verified messages · Quantum cryptography · SSL/TLS in client-server communication …
06Artificial Intelligence (AI)
Graphs in AI: structure and search (A*, Dijkstra's) · Artificial neural networks and machine learning · Deep, Machine and Reinforcement Learning; supervised vs unsupervised · Back propagation of errors and regression methods
07Computational Thinking and Problem-solving
Linear and binary search; conditions and performance · Insertion sort and bubble sort · ADT operations: find, insert, delete (stacks, queues, lists, trees) · Graphs as an ADT; implementing ADTs from other ADTs …
08Further Programming
Programming paradigms; low-level programming · Imperative (procedural) programming · Object-oriented programming (classes, inheritance, polymorphism, encapsulation) · Declarative programming: facts, rules and satisfying a goal …