This is a webpage for the course CS2013 Systems Programming offered in July-Nov 2025 at the Department of Computer Science and Engineering at IIT Palakkad.
Administrative information
- Location: A01-109, First floor computer Lab of Saraswati Academic Building, Sahyadri Campus, IIT Palakkad.
- Slot: PA4 + R4 (@Thursdays, 2.00 - 4.45 PM and 5.10 - 6.00 PM)
- Instructor: Dinesh
- Credits : 3 (1 lecture + 3 lab)
- Syllabus: See here
- Moodle page: See here
- Participants 52 - (UG CSE - 40, UG EE - 1, DD CSE - 2, UG DS - 8, Exchange student - 1)
Course TAs
Roll no | Name | Contact hours |
---|---|---|
152402002 | Anna Merry Cheriyan | TBD |
112313001 | Arishmita Biswas | TBD |
Praseed (CSE Staff) | 3 – 5.30 PM @ Thursdays (A01-109) |
For email, add @iitpkd.ac.in
to the roll numbers.
Schedule
# | Day | Topic | Class materials |
---|---|---|---|
01 | July 31 | Overview; Using git ; Basic shell scripting |
Summary 01 Readings 01 Practise 01 |
02 | Aug 07 | Git setup; Shell+Git exercises | Summary 02 Readings 02 Practise 02 |
03 | Aug 14 | Advanced shell scripting; Pipes; Coreutils | Summary 03 Readings 03 Practise 03 |
04 | Aug 21 | Git branching; Basics of C programming | Summary 04 Readings 04 Practise 04 |
05 | Aug 28 | Solving problems via C programming | Summary 05 Readings 05 Practise 05 |
06 | Sep 04 | Functions; Calling conventions; Recursion | |
Sep 11 | Buffer Lab session (for pending exercises) | ||
07 | Sep 15 | Lab test 1 (R1 slot) 👩🏻💻💡 (Labs 01 – 06) | |
08 | Sep 18 | User defined types and its use | |
09 | Sep 25 | Debugging (gdb ) and handling memory leaks (valgrind ) |
|
Oct 02 | Holiday due to Gandhi Jayanti | ||
10 | Oct 09 | Coding across multiple files; Makefile | |
11 | Oct 16 | Lab test 2 👩🏻💻💡 (Labs 05 – 09) | |
12 | Oct 23 | Coding across multiple files; Testing | |
13 | Oct 30 | Basics of C++ ; OOP ; Overloading | |
14 | Nov 06 | Templates; STL in C++ | |
15 | Nov 13 | Multithreading in C; Profilers (gprof ) / Buffer session |
Evaluation
Following is the tentative evaluation policy
Evaluation | Item | Weight | Remarks |
---|---|---|---|
Continuous
|
Weekly labs | 25% | See the schedule |
Weekly lab quiz | 5% | During the first 15 minutes of each session | |
Terminal
|
Lab test 1 | 15% | Sep 15, 2025 (Monday), R1 slot (5-6 PM) |
Lab test 2 | 15% | Likely ~ Oct 16, 2025 (Thur) | |
Lab end exam | 40% | Likely ~ Nov 15 - 17, 2025 |
All activities related to this course (classes, evaluations and exams) will happen in A01-109, first floor computer lab of the Saraswati academic building, Sahyadri Campus, IIT Palakkad.
About
The key objective of this course is to familiarise the students in fundamental and time tested tools that help in improving their productivity. A secondary objective is to gain a deeper understanding of computing principles, basics of programming, algorithms and basic data structures using C/C++. The understanding gained is meant to equip the students to handle subsequent courses in Data structures, Compilers, Operating systems and Networking.
Upon completing the course successfully, the students will be able to:
-
Use command line tools in navigating and managing a linux machine - processes, file systems and related resources.
-
Maintain a large code base using version control and using it along with development tools to build test cases as well as debug programs.
-
Write shell scripts to automate repetitive tasks using common Unix commands and processing large text data using regular expressions.
-
Build and debug C programs that uses systems libraries or system calls and making them performant.
References
- Computer Systems - A programmer’s perspective by Randal E Bryant, David R O’Hallaron. Check here for copies at IITPKD library.