On conclusion of this course, students are expected to: ~~1. Acquire good programming habits and be proficient in C++ programming including file I/O using object oriented techniques, ~~2. Learn to use and program under the Linux operating system with the aid of an open source SDK (Anjuta) and compiler (g++), ~~3. Recognize the importance of, and select appropriate application-specific data structures, ~~4. Implement various data structures using low-level pointer constructs, ~~5. Analyze the asymptotic time complexity of algorithms and understand their impact on execution times, ~~6. And thus, write efficient programs.