Applications Open now for May 2025 Batch | Applications Close: May 20, 2025 | Exam: July 13, 2025

Applications Open now for May 2025 Batch | Applications Close: May 20, 2025 | Exam: July 13, 2025

Foundation Level

Introduction to C Programming

by Prof. Nitin Chandrachoodan

Course ID: CS1101

Course Credits: 4

Course Type: Foundation

Pre-requisites: None

What you’ll learnVIEW COURSE VIDEOS

This course is intended as a practical introduction to C programming for electrical engineers. The focus is on gaining experience with writing and debugging programs. At the end of this course, a student should be able to:
write, compile and run programs in C
use debugging tools to find and correct errors in programs
use various constructs in C and the standard library of C to implement basic data structures and algorithms
understand the need for an OS and how programs interact with the system

Course structure & Assessments

5 credit course, weekly online assignments, 2 in-person invigilated quizzes, 1 in-person invigilated end term exam & OPPE(s). For details of standard course structure and assessments, visit Academics page.

WEEK 1 How a Computer works, Generalized Memory and Computations, Split Memory Architecture, Loops, Conditions & Branches, Communication between Computer Memory and Outside World, What is Programming, Introduction to C Language
WEEK 2 Data Representation: Number Representation in a Computer, Negative Number and Hexadecimal Representation, Floating Point Representation, Character Representation and Encoding, Instructions Encoding, Compilation: Program Compilation, Role of Operating System in a Computer
WEEK 3 Introduction to C Programming: Structure of a C program, Variables in C, Operators in C, Expression
WEEK 4 Control Statement: Structured Programming, Introduction to Control Flow in C, Conditional statement: if-else-if, switch, Loops: for and while
WEEK 5 Function and Scope: Why Functions, Functions in C, What is a Runtime, Recursion, Scopes
WEEK 6 Pointer: Introduction to Pointers, Endianness, Alignment, Pointers & Variables, Compiler Optimizations
WEEK 7 Array: Introduction to Arrays, Pointer Arithmetic, Examples of Pointer Arithmetic, String: Strings in C, String Functions
WEEK 8 Structured Data and Custom Type: Introduction to struct in C, typedef, union, enum
WEEK 9 Dynamic Memory: Heap and Stack Frames, Dynamic Memory Allocation in C, Multidimensional Arrays
WEEK 10 File Handling: Introduction to File Handling, File Handling in Text Mode, File Handling in Binary Mode, Bit Manipulation
WEEK 11 Preprocessor and Multifile Project: Introduction to Macros, Include File, Multifile Projects in C, Compilation Process of C Programs
WEEK 12 Refresher Free Week
+ Show all weeks

Prescribed Books

The following are the suggested books for the course:

“The C programming language”, Kernighan and Ritchie

Online references

About the Instructors

Prof. Nitin Chandrachoodan
Professor, Department of Electrical Engineering, IIT Madras

Nitin Chandrachoodan received his BTech (electronics and communication engineering) from IIT Madras in 1996, and PhD from the University of Maryland at College Park in 2002, in the area of high-level synthesis techniques for mapping DSP algorithms to architectures. He has been with the department of electrical engineering at IIT Madras since 2004, where he is currently an professor.

...  more

His research interests include digital systems design and design automation tools and techniques, as well as design of embedded systems with a special focus on assistive technologies. He has taught graduate courses on digital integrated circuit design and on mapping algorithms to architectures, and a UG course on data structures and algorithms, as well as a laboratory course on digital design using FPGAs. He is an associate editor of the Springer Journal of Signal Processing Systems.

  less

Other courses by the same instructor: CS2101 - Embedded C Programming , EE2103 - Digital System Design , EE3102 - Control Engineering , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective and - Humanities Elective