Carnegie Mellon University
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.
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, concurrency, and embedded control networks. Real time operation is emphasized, including writing a preemptive RTOS scheduler. 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. Pre-reqs: 18-240 and 18-213.
Here are practical skills that students are expected to have coming into 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 or entirely lost by a spam filter.
e-mail: ece348-staff -- at -- ece.cmu.edu
Attendance and holidays/special needs:
No student may record or tape any classroom, lab, office hour, or other similar course-related activity without the express written consent of the course instructor, Prof. Koopman. If a student believes that he/she is disabled and needs to record or tape classroom activities, he/she should contact the Office of Disability Resources to request an appropriate accommodation.
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.
Students may only use laptops 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 last occupied row of seats if they wish to use their laptops, including processing e-mail or messaging. Students disrupting class (for example by nudging a neighbor to look at their screen) will be asked to turn off their laptop or, for repeated infractions, will be asked to leave the classroom. Other mobile devices should be turned off during class to similarly minimize distractions.
This course has weekly lab content that is done as a lab team of two students. We will do our best to honor requests for specific lab partners and lab nights that are made immediately at the start of the semester. However, we must also hold to a maximum size for each lab section. We will not force uninvolved students to change lab sections to make room for some other requested pairing. Once a lab pair has been created, it is our policy not to dissolve it unless there are exceptional circumstances and the change actively benefits both partners. Note that you do not need to be in the lab for the entire 3-hour period, so partial overlaps of lab time with other commitments can be accommodated so long as you make reasonable arrangements with the TA ahead of time to schedule your lab demo. We will try to avoid groups of size 1 and 3 if at all possible, and will break of a team of 3 to have the third person pair with a single if that becomes necessary during the course of the semester. Graduate students may work as a "group" of 1 with instructor permission. Out of fairness to regularly enrolled students, if you wish to audit this course or take it pass/fail, you must pair with another student in that status or do the labs on your own.
Grading will be performed on a "straight scale" with no plus/minus grades:
The basis for grades will be out of 100 points total for the course:
Class participation points are at the discretion of the instructor and recitation TA, with attendance being a significant factor. Unless otherwise noted, assignments within each grading category are normalized to be equally weighted regardless of the number of points within each particular graded item (e.g., all pre-labs are worth the same number of course grade points regardless of the number of points in any particular pre-lab assignment). Students must complete the final lab and turn in equipment to receive grade in the course (students not fulfilling these requirements will receive an Incomplete with default letter grade at the discretion of the instructor).
Late pre-lab submissions and late lab skill demonstrations will be penalized 10% for the first hour late plus an additional 10% of grade for every day late, but compounded in your favor (90% of credit for up to 1 hour late; 81% of credit for late for 1 to 24 hours, 73% 24 hours to 48 hours; 66% 48 hours to 72 hours; using the general formula 0.90N+1 credit where N is the rounded-up number of days late). The late penalty will be frozen after 7 days at 57% penalty (assignment score * 0.43 awarded for a late assignment, including students who are resolving incomplete grades for the course). Don't get behind!
Unless otherwise noted, hand-in deadlines are 9:00 PM. Early pre-lab submissions received by 1:30 PM on the due date will receive a 5% bonus (i.e., total awarded pre-lab grade will be multiplied by 1.05).
If lab partners do not demo together, they will be graded separately for the demo. For example, if one lab partner demos on time and the other demos late, only the late partner will be assessed a late penalty. Lab partners should demo together if both can demo on time.
Many pre-lab and lab assignments will have "bonus" content. The idea behind these assignments is to enrich the experience for and challenge those students who would otherwise spend fewer than 12 hours per week (on average) for the course. Completing these assignments is completely optional! If you don't have time to do them, then don't do them. If you need to improve your grade, in every case we've seen you will be better off spending time understanding the baseline material to get better test grades rather than chasing these bonus points!! In most cases the value of the bonus points is low compared to the amount of effort required for an average student to earn them. If you are spending too much time on this course, then don' t do the bonus content.
In the event that a student submits multiple versions of a particular assignment, the following rules will apply in this priority: (1) the latest version before the early submission deadline will be graded; (2) if there is no early submission, the latest version before the on time deadline will be graded; (3) if there is no early submission and no on-time submission, the latest version submitted at the time the TA performs grading will be graded. If students want some other version to be graded, they must make their intentions known in writing (both via e-mail and a readme.txt in all the relevant hand-in directories) before the on-time deadline. Out of fairness to the TAs and other students, in no case will more than one version of an assignment be graded. Split hand-ins are not permitted (i.e., if some questions are handed in early, some on-time, and some late the student must still designate exactly one complete hand-in from one timeframe for grading; this applies to bonus questions as well). Empty or corrupted files will receive no credit. It is the student's responsibility to double-check that handed in files are the version they intend to hand in and are not corrupted by the file transfer process. We strongly advise you to download files and check integrity when doing a hand-in.
If you wish to dispute a grade you must return the assignment along with a succinct written argument within one week after the graded materials have been returned to the class or grade has been posted. All grade change requests require you to hand back in your original graded materials and the written argument to the course managament assistant pending a decision about the grade change, regardless of situation. Please send e-mail to the course staff letting us know you have submitted materials for re-grade to make sure we know to take a look at them.
Exam contents will include: lecture material (both slides and discussion), recitation material (both slides and discussion), pre-lab material, required reading, and lab material.
Lab equipment must be returned within one week of the last class meeting. Students who do not return equipment in a timely manner will be assigned an "I" (incomplete) for the course, with a default grade of "R" if equipment is not returned within 60 days of the "I" being assigned. Students are strongly encourage to work with course staff to deal with any equipment issues. Equipment failures due to normal wear and tear are to be expected; return of nonfunctional equipment or with minor omissions (e.g., a few missing resistor components) is OK so long as students are acting in good faith. Lost or destroyed equipment can be paid for if necessary.
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 that is unlikely to happen).
Due dates and times for assignments are firm. Extensions will not be given unless Carnegie Mellon is officially closed on the day of the due date. You should account for the possibility of problems such as typical facility disruptions, network outages to your off-campus residence, malfunctioning lab hardware, dead CPU modules, compiler bugs, getting a cold, and travel obligations when planning your time, since these are normal and expected occurrances. (All these things happen in the real world too.) No scores will be dropped and no deadline extensions will be given, because (except for exams) you can simply complete work early if necessary. The exam dates are announced at the start of the semester, and we expect you to attend. A note from the office of the Dean of Student Affairs is required for any deviation from standard exam times, extensions of deadlines, or any grading accommodations. If you are too sick to complete work or attend scheduled class functions, an excuse signed by your primary care provider, Health Services, or the office of the Dean of Students will normally be required to grant extensions or other accommodation.
Students will be expected to bring a working writing implement (pen; pencil) to all exams and labs. Spare writing implements will not be available. Students are not allowed to share anything during exams (information, physical objects, or even significant glances). No calculators are permitted during exams. Devices with the ability to communicate (e.g., Bluetooth, WiFi, cell phone, texting, infrared data transfer) are strictly prohibited during exams and must be TURNED OFF during the exam. If you can't turn it off, don't bring it with you.
Please make sure assignments are legible. Graphing can be done by hand if desired, but must be to scale on graph paper (hand sketches on un-gridded paper are not acceptable). Concise answers are prefered over long rambling essays. In many cases there will be a stated word limit on answers (e.g., "10 words or fewer"); answers not conforming to the word limit will be marked as incorrect. Full and complete sentences are not required when conforming to word count limits. Phrases or bullet point format answers are OK. The ability to express yourself clearly and concisely is a critical engineering skill -- let's get started on that one now.
It is highly recommended that you get an early start on all assignments rather than waiting until the last minute. Labs especially have a way of taking longer than you expect. In the event that are defects in assignments, the lab bug handling policy applies (at a high level, if a change to a lab to fix a problem is released near the deadline, you have the option to take that fix into account or complete the lab as it was before the change). We will go out of our way to avoid indirectly penalizing anyone for doing their work early -- if you think this is happening to you, please let us know so we can make the situation right.
The University Policy on Cheating and Plagiarism applies, as amplified by the below points.
Students are not permitted to reference any notes, receive information from others, or otherwise have access to information not in their own head during exams. The sole exception is that for exams students are permitted to bring a single 8.5"x11" two-sided notes page in their own handwriting. A notes page that is not in the student's own handwriting (e.g., containing printed images of slides or clip art) is prohibited. The notes page must additionally have the student's name. Notes pages must be handed in with exams, but will be available for return. Students must keep their eyes on their own paper during exams. All items except permitted test-taking materials (e.g., pencil) must be left at the front of the exam room during the exam. This specifically includes that students must not have cell phones or PDAs with or near them during exams.
Students are expected to do the pre-lab entirely on their own (except in one or more cases in which collaboration is specifically permitted in writing for a particular pre-lab -- if in doubt, ask before collaborating). So this means: the pre-lab is an individual homework, and labs (including all work after the pre-lab is handed in, including lab prep, demo, and writeup) is a team-of-two effort. There shall be no help nor conversation whatsoever (regardless of whether that help is technically substantive, or even just about cosmetic issues) with classmates or others about solution approaches, except for discussions with course staff. Students can get help in understanding lecture and reading materials from anyone, but not in how to apply those lecture materials to the assignments. Students can share information about general lab equipment issues (e.g., "I'm having trouble with the USB connection; can anyone help?") so long as such sharing does not provide or lead to solutions to lab questions in a reasonably direct manner (e.g., NOT acceptable would be "The lab asks me to write a division routine; can someone show me their division software or give me hints on the homework so I can see how to do it?"). As a guideline, if you are asking about what an assignment question means or how to go about solving an assigned problem, that is something you should NOT be discussing with anyone except course staff (or, when permitted, your lab partner). If you think you have an equipment problem or found a bug in course-supplied tools, it is OK to ask for help from other students to determine if it is a bug/problem or not. While we intend to be reasonable, it is the student's responsibility to actively avoid gray areas in this regard, and ask for clarification if in doubt.
Reference to or use of any examination, quiz, pre-lab, lab solution, other assignment or solution material from other groups, previous semesters, or other sources beyond the official course web site and current-year blackboard system is specifically and strictly forbidden. This applies even if you "found it on the Web" or "my friend told me it was OK." This includes any use of material, whether substantive, cosmetic, or incidental, and includes verbal as well as written information. Cheating specifically includes knowingly providing information to others (if two students exchange information in a manner that means the recipient is cheating, then both are cheating). If in doubt, ask the course staff for guidance on whether a particular source is fair game. Anything explicitly included on this year's course web site or blackboard site (for example, if the instructor posts a copy of a previous-year test on an official course web site) is OK to use. If you are unsure, ask us. If you are unsure about being unsure, ask us (the course staff). If you make a mistake or something happens that causes you concern, come to the staff IMMEDIATELY (before the assignment, exam, etc. is handed in) to explain the situation, and we will work out something if you are acting in good faith. For example, if someone tells you an answer even though you didn't ask to hear it, come to us before handing in your work so that we can work it out without a cheating penalty being applied.
Any instance of cheating will result in failure for the entire course (i.e., a grade of "R" for the course). This will happen on the first instance of cheating, without exception. Please take this warning to heart and don't cheat. We're very serious on this point. We have failed students for cheating frequently in the past, and have no hesitation whatsoever about doing so in the future. 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 for detecting cheating, and we have found that they are quite effective at detecting even sophisticated cheating. All that having been said, we can easily tell the difference between cheating and having studied hard. Getting a great solution to a difficult problem on your own won't cause you a problem. If you aren't cheating, you have nothing to worry about.
Back to course home page.