2022-2023 Sem II
This is a project based course.
- Pre-requisites: COL106
- Credits: 0-0-6
- Slot: K
- Office hours: Tuesdays and Fridays, 4-5:30pm, GCL lab, 4th floor, Bharti building
- 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
- Lab-1: 10%
- Lab-2: 40%
- Lab-3: 50%
- 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:
- 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.
- Pointers pointer.c
- Calling by value vs reference call_val_ref.c
- Structures struct.c
- Calling by value vs by reference performance struct_val_ref.c
- Dynamic memory allocation malloc.c
- Stack and heap memory
- Function pointers fptr.c fptr_min.c
- User context uctx.c, print_uctx.c
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.