The course would basically cover the following areas: Multi-threading and synchronization, Storage and I/O ( i.e.Memory and Garbage Collection, File Structure, I/O Streams, Serialization), defensive programming techniques (error handling, exceptions, assertions, debugging aids), current programming trends (functional and/or scripting), code testing, and tuning strategies and techniques.