Professional Programming

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

  1. The Java Tutorials
  2. Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles, Second Edition, Narasimha Karumanchi
  3. Java Concurrency in Practice, Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
  4. Effective Java (2nd Edition), Joshua Bloch
  5. Effective Unit Testing: A guide for Java Developers, Lasse Koskela