(1) Classes and objects Lecture Lab
(3) Library and documentation Lecture Lecture Lab
(4) Inheritance and polymorphism Lecture Lab
(6) Case study 1 - internet communicator (streams, sockets and threads) Lecture Lab
(7) Case study 2 - http server (streams, sockets and threads) Lab
(8) Case study 3 - calculator (Swing) Lecture Lab
(9) Case study 4 - rendering graphics (Java2D) Lecture Lab
(10) Case study 5 - arcanoid game (interactive animation) Lecture Lab
(11) Case study 6 - keyword search engine (mini-IR) Lecture Lab
(12) Case study 7 - naive text classification (bag-of-words) Lecture Lab
(13) Case study 8 - K-nearest neighbours (KNN) Lab Lecture
(14) Case study 9 - simple perceptron (binary linear classifier) Lab Lecture
(15) Case study 10 - intelligent state space search (BFS/DFS) Lab Lecture