The schedule partly reflects the content of last semester (old slides mention COMP1140). Current content will be updated as the class progresses.

WeekUnitsTopicsDeliverables
1
I1 Course goals, Teaching modality, Resources, Assessment, Academic honesty,
S1 IDEs, Revision Control, Using Gitlab and git,
J1 Imperative programming languages, Types, Expressions, Functions,
J1 Imperative programming languages, Types, Expressions, Functions,
J5 Control flow, if-then-else,
2
C1 Recursive functions and algorithms, The call stack,
J6 Control flow, Iteration,
J3 Arrays,
3
J2 Java packages, import and naming, The Java standard library,
O1 Creating objects, Instance methods and fields, Object identity and equality, Memory management (garbage collection),
O2 Declaring a class, Fields, initialisers and methods, Access control,
4 D1A
S5 Software Design,
O4 Inheritance, Polymorphism, Class fields,
O4 Inheritance, Polymorphism, Class fields,
X1 Event-driven programming, JavaFX applications,
5 DXC
S4 Creating unit tests, JUnit,
J12 Generics, Boxed types, Type inference,
J9 Higher-order programming, Functional interfaces, lambda expressions in Java,
6 D2B
J14 The Java collections framework, Iterating over collections, Ordering,
J15 Java exceptions, throw, Catch or specify,
7
C1 (part 2) Recursive problem solving, Backtracking search,
C7 Concurrency,
8 D2D
C2 Time and space complexity, Big O notation, Examples,
A1 ADTs, The list ADT, A List interface,
A2 The list ADT, An array-based List implementation, A linked-list-based List implementation,
9 D2E
C6 Java file I/O, Streams, Standard I/O, Random access files, Buffering,
A3/A6 The set ADT, The map ADT,
A5 The tree ADT, Binary search tree implementation of Set,
10
C4 Hash functions, Choosing a good hash function,
A4 Hash Table, A hash-table-based Set implementation,
11 D2F
C3(a) Tree ADT, Tree Traversal, Applications of trees,
C3(b) Graph ADT, Graph Traversal,
12 D2G
R1 Review of material for Final and work through exam,
bars search caret-down plus minus arrow-right times arrow-up