Administrative Information

18-649 Distributed Embedded Systems

Carnegie Mellon University
Fall 2013

This page is here to help you understand the details of how this course runs. Please read the whole thing at the start of the semester.


Course Overview

Embedded computers seem to be everywhere, and are increasingly used in applications as diverse as transportation, medical equipment, industrial controls, and consumer products. This course covers how to design and analyze distributed embedded systems, which typically consist of multiple processors on a local area network performing real time control tasks. The topics covered will include issues such as communication protocols, synchronization, real-time operation, fault tolerance, distributed I/O, design validation, and industrial implementation concerns. The emphasis will be on areas that are specific to embedded distributed systems as opposed to general-purpose networked workstation applications. This course assumes that students already know fundamental topics such as interrupts, basic I/O, and uniprocessor scheduling that are commonly taught in introduction-level embedded system courses such as 18-348 and 18-349. Any graduate student who has not taken one of the pre-requisites is responsible for understanding relevant material necessary for this course. Additionally, all students are responsible for knowing or learning on their own intermediate-level programming in Java. Finally, One of 18-213/15-213/15-513 is required for this course (as a pre-req to 18-348/18-349), and this pre-requisite will be STRICTLY ENFORCED for all students, including graduate students.

The syllabus is subject to change during the course of the semester to meet the needs of students and the university. In particular some fine-tuning of content and course organization is to be expected as the semester progresses.

Here is a bit more detail regarding the skills you will need to succeed in this course. If you don't have these skills coming in, you may experience significant problems. You will need every single one of these skills to succeed in this course:


General Information

Send all course-related e-mail to {e-mail address}so we can respond quickly. If you send it to just one of us your reply will probably be delayed.

Course Staff:

Professor Course Administrative Assistant
{short description of image}
Philip Koopman
Hamershlag A-308
Office Hours:
Mon/Wed 2:30-3:00 PM
and by appointment
{Chelsea Mastilak}
Chelsea Mastilak
1112 Hamerschlag Hall
phone: (412)-268-4951
Teaching Assistants: (Times listed are Office Hours)  
{Rui}
Rui Cai
Mon 2:30-3:30pm WeH 5312
{short description of image}
Emily Grove
Tues 4:30-5:30pm WeH 5312
{Dhwani}
Dhwani Kotecha
Wed 4:30-5:30pm PH 125C
{gunjan}
Gunjan Mehta
Wed 5:30-6:30pm Wean 5320
{Ninar}
Ninar Nuemah
Thu 3-4pm WeH 4623
{rohit}
Rohit Vijayaraghavan
Thu 4:30-5:30pm WeH 6423

Attendance and holidays/special needs:

No student may record, tape, or stream any classroom, lab, office hour, or other similar course-related activity without the express written consent of the course instructor, Prof. Koopman. Such permission is not normally given. If a student believes that he/she and needs to record or tape classroom activities, he/she should contact the Office of Disability Resources to request an appropriate accommodation.

Students may only use laptops or other electronic devices in class to take notes or perform work directly relevant to the lecture as being discussed (for example, looking up a technical term they don't understand -- but not to work on homework even for this class). Because laptop use for any other purpose can be highly distracting to other students and the lecturer, students must sit in the back row if they wish to use their laptops in any other manner, including reading e-mail or messaging. Students disrupting class (for example by nudging a neighbor to look at their screen or distracting other students) will be asked to turn off their laptop or may be asked to leave the classroom. Other mobile devices should be turned off during class to similarly minimize distractions.

No student may reproduce, distribute, post, or upload course materials. The course materials are copyrighted by the instructor and are not approved for redistribution (even if they are posted on a web site by the instructor). A specific instance of prohibited distribution is uploading course materials to Web-based course material repository services.


Grading -- based on:

Grading will be performed on a "straight scale":

The basis for grades will be out of 100 points total for the course, with each individual item grade normalized:

Missing tests is strongly discouraged. Students who miss a test without meeting the below makeup test criteria will be given a score of zero. Makeup tests will typically be given at a time convenient to the instructor to avoid the need to schedule multiple sessions due to conflicts (often this means early in the morning). Makeup tests may be different than the tests given to the main class, but will be of a similar nature. Makeup tests will only be given for the following circumstances:

Attendance will be taken at all TA meetings and at randomly chosen classes. We forgive the first THREE absences, and after that you lose points for each absence. This should be adequate to handle job interviews, illness, and other personal situations. Forgiveness beyond the first THREE absences will NOT be granted without a written note from the office of the Dean of Students certifying a truly EXCEPTIONAL situation. This means, for example, that planning three job interviews for class days and then getting sick on a fourth class day leaves you with one unexcused absence. (Don't forget that the "A" cutoff is 90%, so even if you have a fourth absence you still have plenty of room to get an A in the course.) Remote participation in classes and meetings is not permitted (e.g., no Skype-in to a TA meeting).

In-class dates are firm once announced, and will only be changed in extreme circumstances. If you have a conflict for an in-class presentation, it is up to YOU to arrange a swap with another group AND get advance approval from the course staff for that swap once YOU have arranged it. If (and only if) you meet one of the above criteria for makeup tests we will permit you to do a makeup portion of your portion of the in-class presentation. Your team-mates must still give the full presentation at the scheduled time including covering your slides, and you must still contribute your fair share of slides to the presentation. You need only present your slides at the makeup presentation session. Students who miss a presentation without meeting the above criteria will be given a zero for that presentation event.

For each test you will be permitted and required to bring one 8.5"x11" handwritten notes page that you may consult during the test. Your notes page MUST be turned in with the test. The page must be in your own handwriting. Notes pages in someone else's handwriting, photocopied pages, computer printouts and the like are strictly forbidden and will result in point loss on the test up to and including a zero grade. Since each test covers up to 12 lectures, we suggest you divide a page up into six boxes per side and create notes as you go to avoid a last-minute study crunch. Calculators are not permitted for tests.

Late project submissions up to 1 hour late will be penalized 10%. After 1 hour late, submissions will be penalized that 10% plus an additional 10% of grade for every 24 hour period or fractional period they are late, but compounded in your favor (i.e., 81% of credit for late 1 hour to 24 hours, 73% 24 hours to 48 hours; 66% 48 hours to 72 hours; using the formula general MAX(0.43, 0.90N+1 ) multiplied by your score on the assignment where N is the rounded-up number of days late, until you have reached 43% of credit possible). If one project phase is late, that does not extend subsequent project phase due dates. Don't get behind!

Late presentation submissions will be penalized 25% for the first hour, and an additional 25% if later than one hour (50% total penalty). Presentation materials will not be accepted (100% penalty) closer than ONE HOUR to the start of the applicable lecture or recitation. If you don't submit your presentations more than ONE HOUR before start of the session you will be talking in front of a blank screen. Presentations will be projected via our generic Windows laptop computer. If you want to do something fancy with your presentation, arrange a dry run with the TA beforehand to ensure it will work (in general, teams have had bad experiences with trying fancy presentations, so we recommend against this).

Students are expected to be prompt for all class events. We have a lot of ground to cover and it is not possible do to so while waiting for stragglers. Students who miss their presentations will receive a zero. Students who are late for a test will be expected to finish their test at the same time everyone else finishes. Students who show up more than 5 minutes late for a lecture or their team meeting will receive a zero for attendance that day regardless of excuse.

A working mid-term project and working final project are required to be awarded a grade in this course, regardless of point totals, even if they are submitted very late. If in the opinion of the course staff you do not make a good faith attempt within your group to contribute to a working project, we can penalize you, including awarding you zero points for the entire project component of the course if we feel it is justified. Examples of unacceptable excuses are: you don't contribute per the project work distribution requirements and give an excuse such as "I'm not any good at programming in Java," or materially lack other prerequisite knowledge, you drop out of the team project near the end of the semester because you figure you have enough points to pass, or you don't contribute to the project because you're spending too much time out of town interviewing. The course staff are the sole arbiters of this grading point, but of course we will discuss this issue with you if we see a problem developing. If one of your other team members is slacking, it is up to YOU to bring it to our attention BEFORE it becomes so late in the semester it is too late to correct the problem. You must be present in person for your final project demo.

If you wish to dispute a grade you must return the original assignment (or hard copy if it was an electronic submission) along with a succinct written argument to the Course Administrative Assistant within one week after the graded materials have been returned to the class or grade for that item has been posted to Blackboard and made visible to you. Materials not handed back can be picked up from the course administrative assistant after grades are available on Blackboard. Makeup tests might not be returned to students, but will be made available for inspection upon request.

It is the intent that letter grades will be primarily based on the student's ability to demonstrate mastery of the material presented in lecture and covered by projects, with no fixed quota of letter grades. If every student masters the material, then every student will get an A (but don't hold your breath on that).


Submission of Assignments

Please see additional information on the Project FAQ page.

Project assignments will normally be due at 10:00 PM on Thursday evenings unless otherwise noted in the course schedule. Extensions will normally not be given, and have occurred only once (due to a multi-hour afs outage) in the past. You should account for the possibility of problems such as minor facility disruptions, network outages to your off-campus residence, and travel disruptions when planning your time, since these are normal and expected occurrances.

It is highly recommended that you get an early start on all assignments rather than waiting until the last minute. Projects especially have a way of taking longer than you expect. That having been said, we expect the average load for a median student to be about 12-13 hours per week for this course.


Policy on questions and e-mail support

This course has a unique combination of strict requirements and unfettered flexibility. It is representative of an industry environment in a great many ways, but it is something many students have never encountered before. We also have to deal with the reality of limited TA resources with an aggressive project. So here is how we're going to handle it:

We realize that no writeup is perfect (although we have worked very hard to make them good assignments). In most cases, you will be unsure as to what to do at some points in the semester. This is an intentional approach to helping you engage, absorb, and learn the material. But the point is to be reasonable as well. It is also quite representative of real engineering environments in industry. So our graders will apply the following criteria to grading assignments:

Clearly this depends on the definition of the word "reasonable." Since this is a graduate course, you are all supposed to have equivalent working knowledge to a newly graduated working engineer, and should have a feel for what is professionally reasonable and what is not. We consider a reasonable approach to have the following characteristics:

In a murky situation we will tend to give the benefit of the doubt to the student and clarify assignment materials. But don't abuse this slack.

Please use this check-list before submitting an e-mail regarding the course project:

  1. Check blackboard to see if an answer has been posted.
  2. Re-read the assignment to make sure you are reading it correctly.
  3. Look at the grading checklist to see if it has relevant information.
  4. Look at the Pepsi machine example to see if it provides a reasonable example of what you are looking for. (That's the whole point of the course staff spending time on creating a detailed example.)
  5. Discuss the problem with your teammates and see if you can agree upon a reasonable way to proceed without violating written assignment requirements. (See above for definition of reasonable.) If it is reasonable, you don't need our permission, and you don't need us to tell you what to do.
  6. If you simply don't understand, then skip the e-mail and come to office hours.
  7. If there is an ambiguity or problem with the simulator, take a look again at the examples and have a look at the simulator code to see what it does. If the simulator documentation disagrees with the code let us know, but treat the code as what should be happening unless it is a clear and obvious bug.
  8. If you think there is a defect in the course materials, include the URL of the document you have a question about and a specific explanation of the defect or contradiction. "I don't understand" is not considered specific. Ambiguities which can be resolved on your own in a reasonable way aren't defects (but it is OK to report one that is particularly confusing).
  9. Start your e-mail with "I've used the e-mail question checklist, and I think the following is an issue:" or the e-mail might not be replied to.
  10. If you are making a bug report, please follow the instructions in the Project FAQ. If you don't give us enough information to reproduce the bug we probably can't help you.
  11. Wait 5 minutes before sending. Seriously. We get lots of "oops, found it" e-mails less than 5 minutes after sending a query and it wastes a lot of everyone's time.

E-mail responses will be made when the course staff has time, and response time may be up to 24 hours in some cases. Major assignment bugs that are likely to affect multiple project groups will receive the highest response priority.


Policy on required reading


Intellectual Integrity

The ECE Academic Integrity Policy aplies to this course in all respects. The University Policy on Cheating and Plagiarism also applies. The below points are meant to clarify and augment these policies.

Any instance of cheating will result in failure for the entire course (i.e., a grade of "R" for the course). Please take this warning to heart and don't cheat. We are very serious on this point. There are no warnings and no do-overs (unless you are proactive and come to us immediately after making an honest mistake as discussed below). Every student who was determined to be cheating in the course in previous years has been given an R. We have no hesitation whatsoever about failing students for cheating in the future. We will catch cheaters, and we will fail them. Students are reminded that cheating in multiple courses can be (and has been used as) grounds for suspension or even expulsion from the university. We expect to use automatic analysis tools such as MOSS and exam answer analysis for detecting cheating.

Students are not permitted to reference any notes (except the officially permitted notes sheet), receive information from others, provide information to others, record information, play back information, or otherwise have access to information not already in their own head during tests. No sharing of any physical items is permitted during tests. If tests have your name pre-printed, you must take the test with your name printed on it. Students taking makeup exams are strictly forbidden from discussing any aspects of the test with any other student whatsoever until all students have taken the exam. Keep your eyes on your own paper during tests.

Students will be expected to bring a working writing implement (pen; pencil) to all classes for use in tests. Spare writing implements will not be available. Sharing of writing implements is not permitted, and will be considered cheating because it is impractical to police whether answers are being passed as part of such sharing. Calculators, cell phones, PDAs, digital watches with other-than-timekeeping functions, and all communicating devices are specifically prohibited from use during tests. As in an airplane at takeoff, anything with an "off" switch must be turned off and put away.

Students are expected to share project information freely within their own group, but not outside their group except via officially required mechanisms such as in-class oral project reports. Reference to or use of any solution material from other groups, previous semesters, or other sources is specifically forbidden (even if you "found on the Web") unless it is information publicly shared during class or recitation as part of the course (e.g., project status reports) and is appropriately attributed. This includes any use of the solution or advice, whether substantive, cosmetic, or incidental. If you represent that a particular piece is yours, that means you are the primary author of the work (or the primary author of modifications if you are representing you have updated or modified a piece of work), and have done the substantial majority of the work in creating it (exclusive of effort your team members have spent on design reviews for example). If you are required to claim primary authorship of a piece of work and can't do the work, see a TA for help.

We take fraudulent representation of activities or attributions very seriously. This includes, but is not limited to, stating that student X did a part of a project when the majority of the work was really done by student Y. Letting your team-mates pull the load all semester and having them fraudulently report that you did your share of the work is fraud by both you and your team-mates. Additionally, a statement that a check or audit was completed when in fact that check or audit was substantially skipped is considered fraud. Also, having someone else mark you as attending an event when you aren't there is fraud. Fraud in an embedded software process can cause personal injury, property damage, harm to the environment, or even death. We consider fraud to be cheating in terms of this course.

If you make a mistake with regard to intellectual integrity issues, contact the course staff IMMEDIATELY as evidence that you are acting in good faith so that we can seek a reasonable outcome. If you are unsure, ask us. If you are unsure about being unsure, ask us.

The project software, course notes, and other course material provided to students are copyright by the instructor. They may not be reposted, distributed, or represented as other than copyrighted work. This means that posting or representing course materials as public domain or "open source" is strictly prohibited. Among other things, this means that you cannot post course materials on web sites and cannot put course-provided software on public course repositories because students do not own copyright permissions enabling them to designate such materials "public domain" or "open source." Do not use cloud-based version control services that make your code publicly viewable (e.g. do not use Google Project Hosting). If someone copies your publicly posted code, we won't necessarily believe you didn't help them on purpose.


Change log for Fall 2013:


Back to course home page.