This course introduces c++ programming and some basic algorithms for the first year undergraduate students. It not only teaches students the C++ programming concepts and algorithms, but also provides a rich set of practical problems for the students to solve. The goal of this course is to improve the problem solving capabilities. It consists of two parts: (i) C++ programming language, (ii) Algorithm design and problem solving.