Learning Objective

  • Equip students with system tools that improve productivity.
  • Exposure to advanced programming constructs.
  • Equip students to work on cluster/remote-machines using command line (bash/csh).
  • Exposure on proper usage of hardware resources like CPU cores, memory in programs.

Learning Outcome

  • Familiarity to work on open source systems from source code compilation.
  • Familiarity to work on group projects with proper version control.
  • Parallel programming skills for multi-core CPU clusters.
  • Familiarity on how processes are mapped to machines.

Course contents

Linux basics, version control, coding styles, (4 hours)

Coding conventions, debugger, and build system such as Makefiles (8 hours)

Scripting: Python, Shell (Bash,Csh), Tcl (12 hours)

Processes,Linker, Loader, Memory Layout, Static and Dynamic Linking (12 hours)

Multi-Processing: Shared and distributed systems overview. Parallel Programming with Pthreads, OpenMP and MPI (16 hours)

Text Books

  1. Linux Command Line and Shell Scripting Bible. Author: Richard Blum. Publisher: Wiley Publishing. ISBN-10: 111898384X, ISBN-13: 978-1118983843
  2. Parallel Programming in C with MPI and Openmp, Author: Michael Quinn. Publisher: McGraw-Hill Education. ISBN-10: 0071232656, ISBN-13: 978-0071232654.

Reference Books

  1. The Unix Programming Environment, Authors: Brian W Kernighan and Rob Pike. Publisher: Pearson. ISBN-10: 9332550255, ISBN-13: 978-9332550254.
  2. An Introduction to Parallel Programming. Author: Peter Pacheco. Publisher: Morgan Kaufmann Publishers. ISBN-13: 978-0-12-374260-5

Past Offerings

  • Offered in Aug-Nov, 2023 by Satyajit Das
  • Offered in Aug-Dec, 2022 by Deepak Rajendraprasad, Krishnamoorthy Dinesh
  • Offered in Jul-Dec, 2021 by Albert, Sandeep, Vivek
  • Offered in Jul-Dec, 2020 by Albert, Sandeep, Vivek

Course Metadata

Item Details
Course Title Programming Lab
Course Code CS5107
Course Credits 1-0-3-3
Course Category PML
Approved on Senate 18 of IIT Palakkad
Course revision information Same course as in M.Tech in SoCD