This is the first of a two-part course, and corresponds to the first half of the Computer Programming course CS101 at IIT Bombay. In this part, basic concepts of computer programming are introduced starting with the notion of an algorithm. Emphasis is on developing the ability to write programs to solve practical computational problems. Topics include: Algorithms Elements of C/C++ programming languages Basic data types Sequential and conditional execution Iterative solutions Arrays, matrices, and their applications Functions Sorting and searching Elements of string processing Introduction to pointers Basics of Software Engineering. Participants will get to read and understand many sample programs, and will have to write several on their own. This course deals with procedural programming, and attempts to inculcate good programming practices in a novice programmer.