Carnegie Mellon University
Fall 2015
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.
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, and this pre-requisite will be STRICTLY ENFORCED for all students, including graduate students. (18-348/349 will additionally be enforced for undergraduate 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:
Send all course-related e-mail to so we can respond quickly. If you send it to just one of us your reply will probably be delayed.
Course Staff:
Professor |
Philip Koopman Hamershlag A-308 Office Hours: M/W for 30 minutes after class ends and by appointment |
Teaching Assistants: | (Times listed are Office Hours) | |
Zach Rousselle Mon 4:30 PM BH 237B |
Jacob Nelson Wed 8:00 PM BH 237B |
Shane Smith Thu 4:30 PM BH 237B |
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 and discuss it in advance with the instructor.
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 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:
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 most or all classes. We forgive the first THREE absence points, 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 absence points will NOT be granted without a written note from the office of the Dean of Students or your ECE academic advisor 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 will leave 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 because it has proved unmanageable and too subject to abuse (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. Set two alarms. Have your team-mates call you to make sure you are up. Take a bus earlier than the one you usually take. Take a flight that gets into PIT airport before 10 AM in case there is a delay. It is your responsibility to show up for class events on time.
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 and electronic devices 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! Only one version of a project submission will be graded.
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 can be given 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 don't know 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.
Stress Management & Expectations:
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 labs, with no fixed quota of letter grades. If every student masters the material, then every student will get an A (although, realistically, many students will not get an A because they have not mastered the material).
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. All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful. If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. If you are struggling with this course, I encourage you to talk to me sooner rather than later to see what can be done to manage the workload and stress. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
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.
Students are expected to actively participate with their group on each project. There are specific requirements for each project in which must be reported with the project hand-in. For example, a particular project assignment might say that each student must be responsible for one of 4 statecharts. You must accurately report which student worked on each required element, and also which students worked on other significant elements of the project with the hand-in.
Individual student penalties for not performing required tasks are:
Note that if someone else does your project portion for you and puts your name on it, that is cheating by both involved parties. It is YOUR responsibility to ensure that YOUR name has been accurately reported on handed-in project material.
If the effort reporting is not submitted with the project, ALL team members will be assessed penalties per the above as if none of them had done the required effort. Note that the late penalty will apply to the entire project if even one part of the project (such as this effort information) is submitted late.
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:
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.
The ECE Academic Integrity Policy aplies to this course in all respects, and incorporates the University Policy on Cheating and Plagiarism. 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 and sincerely 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.
Tests: 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 (including Apple Watches), 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.
Projects: 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 someone(s) other than student X. 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. Having someone else mark you as attending an event when you aren't there is fraud and result in the failure of both involved students. 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.
Good Faith Mistakes: 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.
Intellectual Property: 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 2015:
Back to course home page.