Applications for the September 2026 Qualifier are open. Apply by September 27, 2026. Apply now
Foundation Level

Embedded C Programming

Code CS2101
Credits 4 Credits
Type Foundation
Prerequisites
Core Competencies

What You'll Learn

View Course Videos
  • This course addresses the use of microcontrollers (uCs) to implement embedded systems. At the end of this course, a student should be able to: identify and distinguish types of uCs, their uses, and make design selection decisions

  • write, compile, execute, and debug programs on generic uCs

  • understand interfacing of peripherals and construction of basic embedded systems involving uCs and external peripheral circuits

12-Week Roadmap

Course Structure & Syllabus

For details of standard term assessment timelines and exam structures, visit our Academics page.

WEEK 1
Types of microcontrollers; programmability, memory, compute capacity, functionality, interfacing
WEEK 2
Memory maps; peripheral interfacing; register mapping
WEEK 3
Typical data structures and programming styles for embedded systems
WEEK 4
General purpose IO, low speed interfaces
Reading List

Prescribed Books & References

  • Class Notes
  • The C Programming Language, Kernighan and Ritchie
  • Curated online reference material
Faculty & Experts

About the Instructors

Prof. Nitin Chandrachoodan

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.

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.