University Computer Science — Year 1

The foundation year gives you the tools every computer scientist needs: fluent programming, the classic data structures and the algorithms that run on them, the discrete mathematics that underpins the whole subject, and a first look at how a computer actually works, from logic gates up to data representation.

Every module below is grouped by its lecture course. Some lessons are already written; the rest are shown as placeholders so you can see the shape of the whole year.

Programming I

  1. Variables and Assignment
  2. Data Types
  3. Arithmetic Operators
  4. Comparison and Logical Operators
  5. Input and Output
  6. Selection: If/Else
  7. Nested Selection and Iteration
  8. Count-Controlled Iteration
  9. Condition-Controlled Iteration
  10. Subroutines: Procedures and Functions
  11. Parameters and Return Values
  12. Local and Global Variables
  13. Lists and Arrays
  14. Two-Dimensional Arrays
  15. String Handling
  16. Records
  17. Input Validation
  18. Defensive Design
  19. Errors: Syntax, Logic and Runtime
  20. Reading and Tracing Code
  21. Recursion
  22. Reading and Writing Files

Object-Oriented Programming

  1. Classes and Objects
  2. Encapsulation
  3. Inheritance
  4. Polymorphism

Data Structures I

  1. Stacks
  2. Queues
  3. Linked Lists
  4. Trees
  5. Binary Search Trees
  6. Graphs
  7. Hash Tables
  8. Priority Queues

Introduction to Algorithms

  1. Linear Search
  2. Binary Search
  3. Bubble Sort
  4. Insertion Sort
  5. Merge Sort
  6. Algorithm Efficiency
  7. Big-O Notation

Discrete Mathematics

  1. Proof by Induction
  2. Propositional Logic and Truth Tables
  3. Counting Principles
  4. What is a Graph?

Digital Logic & Data Representation

  1. Boolean Logic and Gates
  2. Truth Tables
  3. Boolean Algebra and De Morgan's Laws
  4. Logic Circuits
  5. Karnaugh Maps
  6. Adders and Flip-Flops
  7. Bits, Bytes and Units
  8. Binary Numbers
  9. Hexadecimal
  10. Binary Addition
  11. Binary Shifts
  12. Two's Complement
  13. Floating-Point Representation
  14. Character Sets: ASCII and Unicode
  15. Representing Images
  16. Representing Sound
  17. Compression
  18. Huffman Coding
  19. Parity and Checksums