CS2013 Systems Programming

Offered during July-Nov 2025

Department of Computer Science and Engineering @ IIT Palakkad, Kerala, India

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

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:

  1. Use command line tools in navigating and managing a linux machine - processes, file systems and related resources.

  2. Maintain a large code base using version control and using it along with development tools to build test cases as well as debug programs.

  3. Write shell scripts to automate repetitive tasks using common Unix commands and processing large text data using regular expressions.

  4. Build and debug C programs that uses systems libraries or system calls and making them performant.

References