COP290 Design Practices
2024-2025 Sem II
This is a project based course. Technical learning goals:
- Skills: typing, editing
- Basic tooling: build systems, version control, shell, debuggers, profilers
- Developing specifications
- Low-level programming
- Testing and debugging programs
Non-technical learning goals:
- Self-learning
- Managing timelines, developing sincerity
- Working in teams
- Communicating clearly
Course Information
- Pre-requisites: COL106
- Credits: 0-0-6
- Slot: K
- Office hours: Tuesdays and Fridays, 5-6:30pm. Venue: TBD.
Grading criteria
- Quizzes: 30%
- Minor exam: 15%
- Major exam: 15%
- C lab: 15%
- Rust lab: 25%
Support
- Discussions should be done on Piazza. Sending emails is discouraged.
- Quizzes and labs will be done via Moodle. Grades will also be uploaded there.
TA | |
---|---|
anz238224 AT sit.iitd.ac.in | Satyam Jay |
cs5200649 AT cse.iitd.ac.in | Geetansh Juneja |
mcs232487 AT cse.iitd.ac.in | Sourabh Tiwari |
cs5210596 AT cse.iitd.ac.in | Pushpraj |
cs1210577 AT cse.iitd.ac.in | Anshik Sahu |
csz248491 AT cse.iitd.ac.in | Abhishek Tiwari |
csz248494 AT cse.iitd.ac.in | Joydeep Ray |
csz248492 AT cse.iitd.ac.in | Mahima |
Policies
- Cheating will get an F in the course. Why should I not cheat?
- Late lab submissions are NOT allowed.
- Quizzes: Quizzes will be in-person. There will be no makeup quizzes. We will take best 10 out of 12 quizzes.
- Attendance policy: If a student attends less than 75% of the quizzes, they will be awarded one grade less than the actual grade that they earned. For example, a student who has got an A grade but has attendance less than 75% will be awarded an A- grade.
- Audit policy: 40% marks in the overall course. 40% marks in the exams + quiz component. 75% quiz attendance.
Resources
- Learn touch typing
- Learn a decent editor like vim
- Become familiar with shell
C reference: The C programming language by Brian W. Kernighan and Dennis M. Ritchie.
- 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
Tentative Schedule:
Week | Friday | Activities |
---|---|---|
1 | 3 Jan | Touch typing, editting, make, shell. Practice. |
2 | 10 Jan | C Lab |
3 | 17 Jan | Quiz 1. shell, file permissions, touch typing, make |
4 | 24 Jan | Quiz 2. Chapter 1. Basic C comprehension. |
5 | 31 Jan | Quiz 3. Chapter 5. Pointers and Arrays. |
6 | 7 Feb | Quiz 4. Chapter 6. Structs. Chapter 7. IO. Section 8.7. malloc and free. |
7 | 14 Feb | Quiz 5. Find memory leaks and memory bugs using valgrind and gdb. |
8 | 21 Feb | C Lab submission. Minor exam. Write C programs. |
9 | 28 Feb | Rust Lab TBD. Quiz 6. Chapters 1, 2, 3, 4. Ownership. |
10 | 7 Mar | Quiz 7. Chapters 5, 6, 8, 9, 18. Structs, enums, collections, errors, patterns |
11 | 14 Mar | Break week. Design own extensions to Rust lab. TBD. |
12 | 21 Mar | Quiz 8. Chapters 10. Generic types, traits and lifetimes |
13 | 28 Mar | Quiz 9. Chapter 11, 12, 13. writing tests, building a command line program, iterators and closures. |
14 | 4 Apr | Quiz 10. Chapter 15. smart pointers. |
15 | 11 Apr | Quiz 11. Chapter 16. Concurrency. |
16 | 15 Apr |
Quiz 12. Chapter 17. Object oriented programming in Rust. |
17 | 25 Apr | Rust Lab submission. Buffer day for moving quiz |
18 | 2 May | Major exam. Write Rust programs. |
Disclaimer: Actual lab contents and timelines may differ as the course progresses.