There are a total of 12 lectures, each running for 3 hours.
Session | Topics | Readings | Homeworks |
---|---|---|---|
1 | “Hello World!”, IDE and debugging | Lecturer handout | hw1 |
2 | Language basics, classes and objects, interfaces and inheritance | Lecturer handout | hw2 |
3 | Using libraries | Lecturer handout | hw3 |
4 | Exceptions, I/O, concurrency | Lecturer handout | hw4 |
5 | Writing testable code (unit tests and mocking) | Lecturer handout | hw5 |
6 | Data structures: list, stack, queue, set and map | Lecturer handout | hw6 |
7 | Sorting and searching | Lecturer handout | hw7 |
8 | API, interface, class library design | Lecturer handout | hw8 |
9 | Garbage collection | Lecturer handout | hw9 |
10 | Memory, IO, CPU stats, profiling, and all that | Lecturer handout | hw10 |
11 | Organic programming | Lecturer handout | hw11 |
12 | Numerical programming | Lecturer handout | hw12 |
Recommended Readings
Website
- The Java Tutorials
- Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles, Second Edition, Narasimha Karumanchi
- Java Concurrency in Practice, Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
- ffective Java (2nd Edition), Joshua Bloch
- Effective Unit Testing: A guide for Java Developers, Lasse Koskela