CS1111 Problem Solving using Computers
July - Nov 2026
Coordinates
- Where: SSB 134 (theory) & DCF (lab)
- When:
- Theory - Wed (10 am), Thu (3 pm), Fri (8 am)
- Lab - Thu (9 am - 12 pm)
- Theory - Wed (10 am), Thu (3 pm), Fri (8 am)
Course staff
- Instructor: Yadu Vasudev (yadu@cse.iitm.ac.in)
- TAs: TBA
Important links
- Moodle
- Ed Discussions
Join using your smail/iitm ids via this link - Anonymous course feedback
Course calendar
<>
About this course
This course introduces computational thinking and programming using C language. As the title suggests, the objective is to enable the student to understand abstractions, break complex computational tasks to smaller ones and use programming to solve the smaller tasks and combine them together into a final solution. At the end of the course, the student will be able to apply computational thinking to solve complex problems and implement the solutions using the C programming language.
The laboratory component of the course will involve implementing the theoretical concepts covered in the lectures.
Prerequisites - There are no formal prerequisites for the course, apart from high-school mathematics. This course, together with CS1200, is a prerequisite for almost all courses in the CS curriculum.
Course contents
The following is a brief overview of the course
- Computational thinking and abstractions using examples, simple programs
- C programming: basic syntax, variables, conditional statements, loops
- Arrays and their uses in data manipulation
- Modular programming, functions, and scopes of variables
- Recursion and their applications
- Dynamic memory allocation and pointers
- Aggregate data types - structures and unions
- Self-referential structures and simple data structures
- File handling
Course resources
The main reference for the course will be the slides and the following references.
- C: How to Program - Dietel and Dietel
- The C Programming Language - Kernighan and Ritchie
- How to Solve it by Computer - Dromey
Weekly schedule
There are three lecture slots per week, and one lab session. Some of the lab sessions will be graded and we will let you know in advance so that you can prepare accordingly. We will have short pop quizzes within the lectures as a means to reinforce the concepts taught in class.
You are welcome to use the course discussion forum to clarify doubts with the instructor and the TAs. All the TAs and the instructor will also be present during the lab sessions to help you with the lab work, including the graded sessions.
Grading policy (tentative)
- Lab: 30%
- Pop-quizzes/class participation: 5%
- Quiz 1: 10%
- Quiz 2: 15%
- End-semester exam = 40%
Important dates (tentative)
- Graded labs: Aug 13, Aug 20, Sep 3, Sep 10, Sep 17, Oct 1, Oct 8, Oct 15, Oct 29, Nov 5
- Ungraded labs: Aug 6, Aug 27, Sep 24, Oct 22
- Quiz 1: Aug 28 (Friday)
- Quiz 2: Oct 13 (Tuesday)
- End-semester examination: November 18 (Wednesday)
Communication
Please sign up on the course discussion forum here. This will be the first point of contact for any issues related to the course. For general questions related to the course (any comments/doubts), please create a thread in the correct category and add your question/comment there. You are encouraged to reply and clear the doubts of your friends. To encourage this interaction, the forum supports anonymous posts and answers. Please be courteous to others when you are posting anonymously.
| Date | Lecture | References | Misc |
|---|---|---|---|
| Lecture #1 Fri 01/08 |
Introduction to the course • Admin and logistic details |
Sign up on Ed Discussions |
