Latest Announcements

  • MidSemester Exam for CS101 is scheduled for Sept 15th from 3-5pm. The seating plan for this is HERE.We will NOT consider students seated in a seat not assigned to them or students who do not have a valid photo ID.
  • Aug 28: We have GL2 this week(Aug 29-31). The seating plan for GL2 and all other GLs is the same as for GL1 (see below for GL1 seating plan)
  • Aug 14: A reminder that we will have our first quiz on Friday, August 18th at 8.15am. The specific rooms we will use AND the seating plan for Quiz 1 is HERE . We will disqualify anyone without an ID or anyone seated in the wrong room, block or seat. Please note your location carefully. Good luck.
  • Aug 2: Seating plan for Graded Labs(GLs) Please note that the next week labs will be graded(GL1). The day and time are same as the ungraded labs(8:30pm-10:30pm on your respective days). Please make a note of the seating plan for it: 1. All SL1 and SL2 lab students will sit in their labs respectively.(NO changes for you except that you will now occupy alternate seats instead of sitting next to each other) 2. Basement lab students - Group 1,3,4,5 will sit in Basement lab itself occupying seats in alternate rows. Group 2 and 6 students will sit in SL3 (New CSE building on the second floor besides SL2) Make sure you come at least 15 mins early next week and ask your JTA/STA in case of any doubt. Also, note that this seating plan will be followed for all graded labs. For ungraded you can continue following what you have been till now.
  • July 25th - Institute schedule for quizzes is here
  • Click here for an Intro to Prutor - the online programming environment for CS 101.
  • Help Session Registration Form: Click here.

Course Plan

For the complete course plan click here

Lecture schedule and slides

All lectures will be held in LA101. 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
25/26 July 2017 Introduction to Programming Slides
28 July 2017 How computers work Slides
1/2 Aug 2017 How computers work (continued) Slides
4 Aug 2017 Variables and assignments Slides
4 Aug 2017 Conditional execution Slides
8/9 Aug 2017 Program Design Slides
8/9 Aug 2017 General loops Slides
11 Aug 2017 Common Mathematical Functions Slides
18 Aug 2017 Functions Slides
22/23 Aug 2017 Arrays Slides
29/30 Aug 2017 Recursion Slides
1 Sep 2017
Arrays and recursion same as above
5/6 Sep 2017 Pointers In lecture 10 (above)
8 Sep 2017 Midterm review
19/20 Sep 2017 Structures Slides
22 Sep 2017 Classes Slides
26/27/29 Sep 2017 Standard Library Slides
3/4 Oct 2017 Dynamic memory allocation Slides
6 Oct 2017 Dynamic memory allocation (continued)
10/11/13 Oct 2017 Network of entities Slides
17/18 Oct 2017 Code organization Slides
20 Oct 2017 Revision: Structures, classes, Vectors
24/25 Oct 2017 Revision: Maps and Recursion
27 Oct 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