Course ID: CS2101
Course Credits: 4
Course Type: Foundation
Pre-requisites: CS1101 - Introduction to C Programming
Course ID: CS2101
Course Credits: 4
Course Type: Foundation
Pre-requisites: CS1101 - Introduction to C Programming
What you’ll learnVIEW COURSE VIDEOS
Course structure & Assessments
6 credit course, weekly online assignments, 2 in-person invigilated quizzes, 1 in-person invigilated end term exam. For details of standard course structure and assessments, visit Academics page.
| WEEK 1 | Introduction to Embedded Systems and Microcontrollers. |
| WEEK 2 | Basics of Embedded C Programming. |
| WEEK 3 | Intermediate STM32 Programming and Architecture. |
| WEEK 4 | Advanced Peripheral Interfacing. |
| WEEK 5 | Digital Communication Protocols |
| WEEK 6 | Advanced Peripheral Interfacing II. |
| WEEK 7 | Practice and Problem Solving. |
| WEEK 8 | Embedded Software Design Patterns and System Architecture. |
| WEEK 9 | Introduction to Real-Time Operating Systems (RTOS). |
| WEEK 10 | Advanced Embedded C Concepts. |
| WEEK 11 | Development Tools and Debugging Techniques. |
| WEEK 12 | Safety, Ethics, and Professional Practices. |
Prescribed Books
The following are the suggested books for the course:
Class Notes
The C Programming Language, Kernighan and Ritchie
Curated online reference material
About the Instructors
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.
Other courses by the same instructor: EE2103 - Digital System Design and EE3102 - Control Engineering