Course Overview

Informal Course View

This course provides students with an entry-level foundation in computer programming. The goals of the course are to develop the programming ability in students, and to improve their proficiency in applying the computing fundamentals to their field of study. Topics include overview of high-level languages, introduction to C/C++ Library, basic data types, function definitions and declarations, conditional and iteration statement, array and string manipulation, recursive programming, introduction to searching and sorting and introduction to structures and pointers. In summary, the basic aim is to teach the student to program in C/C++ at a level where they are able to eventually write programs to help solve their everyday engineering, science and technology related problems.

Formal Course View

This course provides an introduction to problem solving with computers using a modern language such as Java or C/C++. Topics covered will include :
  • Utilization : Developer fundamentals such as editor, integrated programming environment, Unix shell, modules, libraries.
  • Programming features :Ability to translate from the informal description of an algorithm learned in the mathematics classroom into the constructs provided by the programming language.
  • Applications : Sample problems in engineering, science, text processing, and numerical methods.


  • C++ Program Design: An introduction to Programming and Object-Oriented Design, 3rd Edition, by Cohoon and Davidson, Tata McGraw Hill. 2003.
  • An Introduction to Programming through C++, McGraw Hill Education, 2014, by Abhiram Ranade

Other references (Not required reading)

  • Thinking in C++ 2nd Edition by Bruce Eckel(available online)
  • G. Dromey, How to Solve It by Computer, Prentice-Hall, Inc., Upper Saddle River, NJ, 1982.
  • Polya, G., How to Solve _It (2nd ed.), Doubleday and co. (1957).
  • Let Us C. Yashwant Kanetkar. Allied Publishers, 1998.
  • The Java Tutorial, Sun Microsystems. Addison-Wesley, 1999.