Algorithms and complexity. Exception handling. Event handling. Graphics. Multithreading. Network programming.
Data structures. Abstract data types and classes (lists, stacks, queues, etc.) Inheritance vs composition. Abstract vs concrete classes. Self-referential classes.
The schedule on this page is subject to change. This page is provided as a resource, mostly so you can find lecture notes and problem sets. There is also a moodle page associated with this course, which contains forums & will be where you submit your coursework.
Week Starting |
Lecture
Topics (exact organization still subject to change) |
Lab
Topics |
30 January |
Intro to
programming, data structures, algorithms and sorting. Reinventing the Wheel, Algorithm Examples: Sorting, Intro to Algorithms and Complexity. |
Lists
in different languages |
6 February |
Algorithms, complexity and search. Logarithmic Complexity and the Big O, The Complexity of Various Sort Algorithms, Searching & Complexity |
Sorting |
13 February |
Java class
structure and non-linear control. Space, Class & Interface, Errors, Exceptions and Nonlinear Control, Concurrency and Threading |
Coursework 1 handed out Debugging |
20 February |
Concurrency,
threading & GUIs. When Threading Goes Bad, Intro to Networking, How to Network |
Ongoing support for
Coursework 1
|
27 February |
GUIs &
Networking Some Final Protocols, Intro to Graphical User Interfaces, Panels, Components & Layouts Galore |
|
6 March |
Search
Applications & Internet
programming. Applets & Java's Sordid History, Searching Applications 1, Searching Applications II |
Ongoing support for Coursework 2 |
13 March |
Part B | Coursework 2 - 1st increment due,
marked in lab. |
20 March |
Part B | Coursework 2 due |
The rest of term. |
Part B | Part B |