Skip to content

Fundamentals of Computer Programming (CS-101)

For official announcements and grades, view the official course page on Google Classroom. This page serves as the home for all lecture slides.


Course Description

Welcome to CS 101! This course is your first step into the world of computational thinking and computer programming. We will explore the basic structure of a computer, understand “what happens under the hood”, and how to talk with a computer. We will use C programming language to learn core concepts like variables, loops, arrays, and functions. We will also taste more advanced topics like pointers and some data structures. You can find more details in the syllabus.

Expected Outcomes

  • How to think like a programmer, so you can pick up any language you need in the future in your field that is the best tool for the problem at hand.
  • Understanding of fundamental programming concepts such as variables, control structures, functions, and data structures.
  • Ability to write programs in C for your everyday engineering problems.
  • A solid foundation for your future computer science studies.

Grading

We have to use the following evaluation scheme as per the institute guidelines.

  • Labs (weekly): 16.7%
  • Lab Final: 16.7%
  • Two Quizzes: 2 x 6.65% = 13.3%
  • Midterm Exam: 20%
  • Final Exam: 33.3%

Course Structure

The first-year B.Tech. batch is divided into three sections for this course:

📋 ECE CSE1 CSE2
Theory Instructors Shreya Agarwal Rachit Nimavat Trupti Gondaliya
Lab Instructors Shreya Agarwal Rachit Nimavat Shreya Agarwal Trupti Gondaliya Rachit Nimavat

TA: None allocated by Institute. Peer-learning is highly encouraged.

While your lectures will be with your section’s assigned instructor, we will provide a unified learning experience. All sections will follow the same overall schedule, use the same lecture slides, and have common quizzes, midterm, and final exams. This ensures fairness and consistency for every student in the course.

Schedule

Week Dates Topics Slides Lab
1 Aug28 - Aug29 Course Intro, Hello World Lec-1, Lec-2 -
2 Sep1 - Sep4 Data Types, Variables, printf/scanf Lec-3, Lec-4 Lab-0
3 Sep8 - Sep12 Typecasting, Representing Data Types Lec-5, Lec-6 Lab-1
4 Sep15 - Sep19 Operators, Precedence, if-else Lec-7, Lec-8, Lec-9 Lab-2
5 Sep22 - Sep26 if-else, switch, Loops Lec-10, Lec-11, Lec-12, Quiz-1 Lab-3
6 Sep29 - Oct3 goto, Arrays Lec-13, Lec-14, Lec-15, Lec-16 Lab-4, Lab-5
7 Oct6 - Oct10 Strings, Functions, Revision for Midsem Lec-17, Lec-18, Lec-19 Lab-6
8 Oct11 - Oct17 Midsem (No Classes) Midsem, Solutions -
9 Oct29 - Nov1 Functions, Recursion Lec-20, Lec-21, Lec-22, Lec-23 Lab-7
10 Nov3 - Nov8 Structures Lec-24, Lec-25, Lec-26 Lab-8
11 Nov10 - Nov15 Structure, Introduction to Pointers Lec-27, Lec-28, Quiz-2 Lab-9
12 Nov19 - Nov20 Pointers, File Handling Lec-29, Lec-30, Lec-31 Lab-Finals
13 Nov26 - Nov27 Ghost-in-the-Stack Problem Session Lab-Finals
14 Dec1 Endsem Endsem, Solutions -
- Feb16 Make-up Endsem Make-up Endsem, Solutions -

Practice Questions


Lab Finals for CSE1

Due to resource constraints, we have Lab Finals in a staggered manner with distinct question sets for every session and seating arrangement.

Date Group Subgroup Questions for Roll Numbers
17 Nov 1 A EvenOdd
18 Nov 2 A EvenOdd
24 Nov 1 B EvenOdd
25 Nov 2 B EvenOdd

Special Events

Ghost in the Stack by Shreya 'Holmes' & Rachit 'Watson'

Textbook and Resources

We will provide self-contained lecture notes and other resources for all topics covered in this course. You are not required to purchase the textbook.

Advice: The best way to learn programming is to practice writing code and lookup issues that you encounter. You may also use LLMs to help you understand concepts and issues with your code. However, do not rely on them to write code for you.

Acknowledgements

The lecture slides draw a lot of material from Nisheeth Srivastava’s 2020 offering of ESC101. Since many first year students are not comfortable in English, we adopted a lot of pedagogical tips from the Hindi lectures of Rajat Mittal’s 2017 iteration of ESC101. Thanks to Shivam Malhotra and Mookit team of IITK for making it freely available on YouTube!