15-348 Syllabus


15-348: Embedded Systems

This course covers the broad range of foundational skills that apply across all embedded computer system application areas, from thermostats to self-driving vehicles. The emphasis is at the layer where hardware meets software. Topics include microcontroller hardware, assembly language, embedded C programming, analog I/O, timers, code optimization, interrupts, and concurrency. Real world engineering practices, constraints, and example applications are integrated throughout the course. Weekly hands-on hardware and software experiences with an industry-strength automotive embedded controller are coordinated with the lecture content to reinforce core skills

Units: 9

Textbook: Real-Time Interfacing to ARM® Cortex™-M Microcontrollers, 5th Edition by Jonathan Valvano (Official Textbook - Get your copy from the bookstore)

Objectives & Learning Outcomes

Students completing this course will be well positioned to:

  • Discuss the major components that constitute an embedded system
  • Implement small programs to solve well-defined problems on an embedded platform
  • Develop familiarity with tools used to develop in an embedded environment

Learning Outcomes
Students completing this course will be well positioned to:

  • Understand what is a microcontroller, microcomputer, embedded system
  • Understand different components of a micro-controller and their interactions
  • Become familiar with programming environment used to develop embedded systems
  • Understand key concepts of embedded systems like IO, timers, interrupts, interaction with peripheral devices
  • Learn debugging techniques for an embedded system


Ryan Riley
Email: rileyrd@cmu.edu
Office: CMUQ 1019
Office Hours: TBA

Eduardo Feo-Flushing
Email: efeoflus@andrew.cmu.edu
Office: CMUQ 1005
Office Hours: TBA

Lectures: Sunday & Tuesday, 8:30am - 9:45am, Room 2049

Lab: Thursday, 8:45am - 9:35am, Room 1051 (Embedded Systems Lab behind the ARC)

Grading and Submission

Grading Policy

 Course Component   Weight 
Worst Exam10%
Best Exam15%
Software Homeworks30%
Hardware Labs30%

Letter Grade Assignment
The course uses the standard grade percentages as follows:

  • [90, 100]: A
  • [80, 90): B
  • [70, 80): C
  • [60, 70): D
  • < 60: F

Software Homework Late Submission Policy
Due dates for every software homework are provided on the course schedule. Unless otherwise stated, software assignments are due on those days. However, we recognize that sometimes "life happens." In these instances, you may use your allotted three flex days. These days allow you to submit software homework up to three days late without penalty. You can use these days for any software homework and any reason. You do not need to provide us with an explanation; just submit late. Once you've exhausted your flex days, then point deductions will occur for any software homework submitted after the deadline:

  • An assignment submitted up to 24 hours after the due date will only be eligible for 75% of the maximum number of points allotted.
  • Assignments submitted more than 24 hours but less than 48 hours after the due date will only be eligible for 50% of the maximum number of points.
  • Assignments submitted more than 48 hours but less than 72 hours after the due date will only be eligible for 25% of the maximum number of points.
  • Assignments submitted more than 72 hours after the due date won't be accepted.
Please note that you can use, at most, three flex days for a single assignment.

Hardware Lab Late Submission Policy
Due dates for every hardware lab are provided on the course schedule. Unless otherwise stated, hardware labs are due every Thursday. There are no flex days for hardware labs. A hardware lab not submitted on the corresponding Thursday can be submitted the following Thursday (one week late) and will only be eligible for 80% of the maximum number of points allotted.

Make-up Exams or Quizzes
No late / make-up exams will be administered, except in the case of medical or family emergencies or other university-approved absences. For university-approved absences, students must obtain instructor approval and schedule the make-up exam before missing the exam.

Academic Integrity

Unless otherwise noted, for homework assignments, students are encouraged to talk to each other, to the course staff, or to anyone else about the assignments. This assistance, though, is limited to the discussion of the problems in general. Each student must develop his or her own solutions to the homework. Consulting another student's solution is prohibited, and submitted solutions may not be copied in whole or in part from any source.

Specifically: Do not look at other students' code or written answers, and do not show them your code or written answers.

And: Do not email or otherwise electronically or physically transfer your code to other students, and do not receive such transmissions from other students.

In particular, this precludes students helping each other debug their code (since you may not even look at their code). Of course, students may (and should!) seek debugging assistance (and any other help) from the course staff, who provide extensive support to all students via Piazza, office hours, review sessions, and 1-on-1 tutoring by appointment.
Also, if you find a reference (say, in an optional textbook or some online source) that contains code or a written solution that is identical or overtly similar to an assigned problem, then you are required to not look at that code or written solution! You may still refer to supporting figures and explanatory text, but you may not look at or copy the code.

In addition to manual checks on homework and exam submissions, we will also routinely use an automated plagiarism detector.
The issue of cheating will be taken seriously by the instructor and CA's. Any violations will be handled in accordance with the University regulations, with serious consequences on the first offense.

Classroom Etiquette

Research has shown that devices can greatly detract from student learning. Therefore, students may only use electronic devices in lecture during learning activities which involve those devices.

Outside of these events, students should only use electronic devices with explicit permission from the instructors. Notes may still be taken, of course, but should be done with pen and paper. This policy is meant to help all students focus, as electronic devices are distracting not only for the user, but also for the students surrounding them.

Students may not record audio or video of lectures or recitations without explicit permission in writing from the instructor. Violations will result in your failing the course. Exceptions will be granted in accordance with university guidelines for accessibility concerns, but even then such recordings may not be shared publicly or privately and must be deleted at the end of the semester.

Lab Etiquette

Lab Safety Policy
Familiarize yourself with the lab safety policy. Every student will need to sign a copy of the policy at the beginning of the semester.

Policy violators may lose lab privileges, even if this means failing the course. This can occur on a first offense.

Lab Clean-up Policy
At the end of the semester, students are responsible for cleaning their lab station and leaving it in the same condition that they received it. If a student does not clean their lab station prior to the deadline stated in class, then the student will receive an incomplete grade in the course until cleaning has occurred.


It is my hope that students from a diversity of backgrounds and perspectives be well served by this course, that students' learning needs be addressed both in and out of class, and that the diversity students bring to this class be viewed as a resource, strength and benefit. It is my intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally or for other students or student groups.
This statement is adapted from The University of Iowa Department of Education.

Accommodations for Students with Disabilities
Carnegie Mellon University is committed to providing reasonable accommodations for all persons with disabilities. To access accommodation services you are expected to initiate the request and submit a Voluntary Disclosure of Disability Form to the office of Health & Wellness or CaPS-Q. In order to receive services/accommodations, verification of a disability is required as recommended in writing by a doctor, licensed psychologist or psycho-educational specialist. The office of Health & Wellness, CaPS-Q and Office of Disability Resources in Pittsburgh will review the information you provide. All information will be considered confidential and only released to appropriate persons on a need to know basis.

Once the accommodations have been approved, you will be issued a Summary of Accommodations Memorandum documenting the disability and describing the accommodation. You are responsible for providing the Memorandum to your professors at the beginning of each semester.

For more information on policies and procedures, please visit Assistance for Individuals with Disabilities on Scotty.

For additional information, please feel free to contact any of the following:

Take Care of Yourself
Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, I strongly encourage you to seek support. Student Affairs staff are here to help: call 4454 8526 or send Renee Camerlengo an email at reneec@andrew.cmu.edu. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night at 5554-7913, which is staffed by trained mental health care providers.

If the situation is life threatening, call 999.