Lecture Log - Semester 2
The following is a log of the material covered in the Semester 2 Lectures.
The html versions are buggy sometimes. Please use the pdf in those cases.
| Week Number | Lecture Content | Reading | Examples | Tutorial material |
|---|---|---|---|---|
| Week 1 |
Recursion and ListsThis week, we looked at how to define recursive functions in Java as static methods, and applied the ideas to functions on list data structures. |
Recursion [Powerpoint | pdf] Lists [Powerpoint | pdf] |
[zip, tar] | |
| Week 2 |
Recursion and TreesThis week, we applied the ideas of recursive functions to binary trees and binary search trees. |
[Zip | Tar] | ||
| Week 3 |
Search Trees and Mutable Data StructuresWe expanded on last week's introduction to trees to cover binary search trees and height-balanced binary search trees (AVL trees). On Wednesday, we started looking at mutable data structures. |
Assertions tutorial | ||
| Week 4 |
Mutable data structures and CollectionsThis week, we looked at how to modify linked data structures, with linked lists being the prime example. On Friday, we looked at the Java class library for collection classes. |
[Zip | Tar] | Collections and Generics | |
| Week 5 |
Generics and GUI classesThis week, we took a close look at the Java type system, in particular, the generic features of the interfaces and methods. We also started discussion of the GUI class library (Swing). |
Lecture slides: GUI [slides | handout], Events [slides | handout] ] |
[Zip | Tar] | More on Collections and Immutability |
| Week 6 |
GUI classes and ThreadsThis week, we continued the discussion of GUI classes, in particular, event handling, layout management and the model-view-controller architecture. On Wednesday, we started talking about threads. |
Lecture slides: [slides | handout] Java tutorials on Layout, Event Listeners, Model-View-Controller |
Model-View example [Zip | Tar] | |
| Week 7 |
Threads and NetworkingOn Monday, we continued the discussion of threads, and the design issues about sharing data between threads. We looked at the Dining Philosophers problem that illustrates the "deadlock" and "starvation" issues. On Tuesday, we looked at communication between networked machines using "sockets". On Wednesday, we looked at code examples for threads as well as sockets. |
Lecture slides [html] Dining philosophers [Wiki page] JUnit [tutorial] Java tutorials: [Concurrency], [Network Sockets], [I/O streams] |
||
| Week 8 |
I/O and database connectivity
|
Java tutorials: [I/O streams] [Database access (JDBC)] |