On conclusion of this course, students will be able to: ~~1. Program proficiently in C++ using object oriented techniques and good code documentation practices, ~~2. To program non-GUI C++ applications under the Linux operating system with the aid of an open source SDK (Anjuta) and compiler (g++), ~~3. Implement and use pointer-based data structures such as linked lists, stacks, queues and binary search trees in C++, ~~4. Program and measure the running time of at least two searching algorithms not covered in class by the process of self-learning, and verify that the observed running times are in rough conformance with the theoretical expression for asymptotic running time complexity.