2022-2023 Sem II

This is a project based course.

Course Information

  • Pre-requisites: COL106
  • Credits: 0-0-6
  • Slot: K
  • Office hours: Tuesdays and Fridays, 4-5:30pm, GCL lab, 4th floor, Bharti building
  • TAs:
    • Vishal Singh: cs5180426 AT cse.iitd.ac.in
    • Jaskaran Singh: mcs222055 AT cse.iitd.ac.in
    • Varun Singh Negi: mcs212156 AT cse.iitd.ac.in
    • Suyash Saxena: mcs212155 AT cse.iitd.ac.in
    • Aayush Goyal: Aayush.Goyal.cs119 AT cse.iitd.ac.in
    • Sanjali Agrawal: cs5180419 AT iitd.ac.in
    • Anirudha Kulkarni: cs5190421 AT iitd.ac.in

Grading criteria

  • Lab-1: 10%
  • Lab-2: 40%
  • Lab-3: 50%

Supporting systems

  • Discussions should be done on Piazza. Sending emails is discouraged.
  • Labs will be submitted through Moodle. Grades will also be uploaded there.


  • Cheating will get an F in the course. Why should I not cheat?
  • Late submissions are NOT allowed.
  • Audit policy: 40% marks in the overall course and 40% marks in the exams component.

Tentative labs and learning goals

Non-technical learning goals:

  • Self-learning
  • Managing timelines, developing sincerity
  • Communicating clearly

Lab-1 (Individually, 4 Jan - 18 Jan)

Lab-2 (Group of 3, 12 Jan - 24 Feb)

  • Familiarity with git, LaTex, make, gcc, gdb, gprof
  • Stack, heap, pointers, pthreads

Reference: Programming in C, by Stephen G. Kochan.

Lab-3 (Group of 3, 25 Feb - 28 Apr)

  • Object oriented programming, design patterns, SOLID principle
  • Server-client-database: REST APIs, GET/POST/PUT requests, json, SQL, ORM
  • Continuous Integration/Continuous Deployment
  • Unit testing, integration testing, coverage

Disclaimer: Actual lab contents and timelines may differ as the course progresses.