Prerequisite (if any): Introduction to Programming or programming background which will be assessed by an entry test
Course Content
Linux Fundamentals - linux file system, absolute and relative file paths, pseudo files, Linux terminal, navigation and simple commands, version control (1 lecture + 3 hours lab)
Basic structure of a computer: processor, memory, secondary storage and I/O peripherals; mapping of programming constructs to hardware elements - variables and its addresses, data types and its representation, ranges and overflow (1 lecture + 3 hours lab)
C/C++ programming: Arrays, Array indexing, memory view of (multi-dimensional) arrays, functions, pointers, dereferencing and address operators, pass-by-value and pass-by-reference mechanisms in function calls, pointer arithmetic, array manipulation using pointers, user-defined/abstract data types, file operations (5 lectures + 9 hours lab)
Debugger, Coding across multiple files, Coding conventions, Stages of compilation (preprocessor, compiler, assembler, linker, loader), Static and Dynamic libraries (2 lectures + 6 hours lab)
Makefile, make variables, pattern substitutions and wildcards, Organizing code into multiple folders, order-only prerequisites of Makefiles (2 lectures + 6 hours lab)
Shell scripting, I/O redirection, UNIX pipe ( | ) and command pipelines (2 lectures + 6 hours lab)
Multi-threaded programs (using libraries), multi-process programs and inter-process communication (including sockets) (1 lecture + 3 hours lab)
Learning Outcomes
- Prepare students to write performant C/C++ programs
- Equip students with tools that improve their software development productivity
- Give them hands-on experience on advanced programming constructs
Text Books
-
Harvey M. Deitel, and Paul J. Deitel, C How to Program, Published by Pearson, ISBN: 978-0132261197
-
Richard Blum, Linux Command Line and Shell Scripting Bible. Publisher: Wiley Publishing. ISBN-10: 111898384X, ISBN-13: 978-1118983843
References
-
The Unix Programming Environment, Authors: Brian W Kernighan and Rob Pike. Publisher: Pearson. ISBN-10: 9332550255, ISBN-13: 978-9332550254.
-
Randal E. Bryant, and David R. O'Hallaron, Computer Systems: A Programmer's Perspective, Published by Pearson Education India, ISBN-10: 9332573905, ISBN-13: 978-9332573901
-
Blogs and other materials available on the internet (as prescribed by the instructors)
Past Offerings
- Offered in Aug-Nov, 2023 by Albert Sunny
Course Metadata
Item | Details |
---|---|
Course Title | Systems Programming |
Course Code | CS2013 |
Course Credits | 1-0-3-3 |
Course Category | PMC |
Proposing Faculty | Piyush P Kurur, Sandeep Chandran & Albert Sunny |
Approved on | Senate 20 of IIT Palakkad |
Course prerequisites | Introduction to Programming or Programming background which will be assessed by an entry test |
Course status | NEW |