Latest Announcements

  • (16 Apr) Endsems solutions
  • (11 Apr) Aggregate statistics on marks in the graded activities so far.
  • (11 Apr) Sample paper for endsems from Spring 2016
  • (10 Apr) The revision class this Thursday from 8:10am--9:25am is also open to students from Slot 11.
  • (10 Apr) Your final exam is on 15th April from 2 to 5pm. Make sure to sit in your assigned seat and bring your id-card. The syllabus is the entire portion taught in class. But file I/O and the last lecture on compiling over multiple files is excluded.
  • (10 Apr) The crib session for the endsems papers will be held on April 30th between 2 and 5pm. Of course, your coming for the crib session is entirely optional.
  • (3 Apr) Final graded lab in Week 11th to 13th April. Syllabus: everything taught in CS101.
  • Help Session Registration Form: Click here.

Lecture schedule and slides

All lectures will be held in LA102. The schedule for the lectures and the course slides will be available here as the course progresses. Do not print the slides until the lectures are delivered. They WILL likely be modified at the last minute. Right click on the link and then choose Save target as to download the file.
Date Topic Lecture slides
03 Jan 2017 Introduction to Programming Slides
05/06 Jan 2017 How computers work Slides
10 Jan 2017 How computers work (continued) Slides
12/13 Jan 2017 Variables and assignments Slides
17 Jan 2017 Conditional execution Slides
19 Jan 2017 Program Design Slides
20 Jan 2017 General loops Slides
24 Jan 2017 Common Mathematical Functions Slides
27 Jan 2017 Functions Slides
31 Jan 2017 Arrays Slides
03,07 Feb 2017 Recursion Slides
09,10 Feb 2017 Arrays and recursion same as above
14 Feb 2017 Pointers In lecture 10 (above)
16/17 Feb 2017 Midterm review
28 Feb 2017 Structures Slides
2/3 Mar 2017 Classes Slides
7,9/10 Mar 2017 Standard Library Slides
16/17 Mar 2017 Dynamic memory allocation Slides
21 Mar 2017 Dynamic memory allocation (continued)
23/24, 28 Mar 2017 Network of entities Slides
30/31 Mar 2017 Code organization Slides
4--7 April 2017 Revision: Structures, classes, Vectors
11 April 2017 Revision: Maps and Recursion
13 April 2017 Revision: Heap memory, pointers, graphs

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.

Textbooks and Resources

  • An Introduction to Programming through C++, McGraw Hill Education, 2014, by Abhiram Ranade
  • Simplecpp package location link.

Other references (Not required)

  • 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.
  • Let Us C. Yashwant Kanetkar. Allied Publishers, 1998.
  • Additional programming practice