Professional Programming
Archived page from the Certificate in Quantitative Investment (CQI) section of the original site. For current information see en.cqi.sg.
Course Description
Professional Programming…
Course Outline
| 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
- 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
- Effective Java (2nd Edition), Joshua Bloch
- Effective Unit Testing: A guide for Java Developers, Lasse Koskela