If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.csail.mit.edu) to authenticate, and then you will be redirected back to this page.
1) Catalog Description
Introduction to embedded systems in the context of connected devices, wearables and the "Internet of Things" (IoT). Topics include microcontrollers, energy utilization, algorithmic efficiency, interfacing with sensors, networking, cryptography, and local versus distributed computation. Students design, make, and program an internet-connected wearable or handheld device. In final project, student teams design and demo their own cloud-connected IoT system. Enrollment limited; preference to first- and second-year students.
Prerequisites: 6.0001 or 6.145;
Lectures: Monday 1:00-2:00 pm, room 10-250
1.1) Lab sections
All lab sections are held in 38-530
- Section 1: Tuesday, Thursday 9:00-11:30,
- Section 2: Tuesday, Thursday 12:00-2:30,
- Section 3: Tuesday, Thursday 2:30-5:00,
- Section 4: Tuesday, Thursday 7:30-10:00,
Lab sections will all take place in
Attendance at both lab sessions is mandatory. You must be in the same section on both Tuesday and Thursday. If you are unable to attend due to illness or other personal difficulties, please see a dean in Student Support Services and ask them to contact Joe (firstname.lastname@example.org) on your behalf.
There is one midterm exam. It is scheduled for Tuesday April 7, 2020 at 7:30pm. Room(s) TBA.
1.3) Office Hours
Weekly office hours will be offered at the following times (but may change):
- Monday 7:00-10:00 PM
- Wednesday 7:00-10:00 PM
- Friday 12:00-3:00 PM
- Sunday 4:00-10:00 PM
All office hours will be in 38-530 (Lab area)
Your grade in 6.08 will be the weighted average of the following component grades:
2.1) Midterm Exams
The midterm exam will be given in the evening (7:30-9:30pm) of Tuesday April 7th. The exam will cover all materials contained in lectures, online tutor problems, and labs, up to the date of the exam. Details of the exam and prep material will be provided several weeks prior to the exam.
If you must miss the exam because of a direct conflict with an MIT class or MIT extracurricular activity, please contact Joe Steinmeyer (email@example.com) early, and we will figure out a plan for making up the exam. Other than direct conflicts with other MIT classes and MIT extracurricular activities, alternative arrangements for exams will only be made for personal or medical issues, with written support from S^3.
2.2) Lab and Regular Exercises
Lab and regular exercise grades are based on completion. We expect that students should be able to arrive at the correct answer to these questions after some work, and so online questions will be considered completed if you arrived at the correct answer, regardless of the number of submissions you used (within the limits of provided attempts).
In addition! For every lab you have not fully completed at the end of the semester, a half-letter grade will be subtracted from final grade. Missing the exam without an excuse will also result in a half-letter grade subtraction (in addition to the 0 on the exam).
Due dates for online (regular) exercises, design exercises, and checkoffs are posted on the web site.
For regular exercise and labs, the grades for late submissions will be multiplied by a lateness penalty P that is calculated from n, the number of minutes late:
P = max(0.0, min(1.0, 1-float(n)/(7*24*60*2)))
as shown below:
The lateness multiplier for late assignments decreases linearly from 1.0 at 0 minutes late to 0.0 at 14 days late. Assignments completed more than 2 weeks after the due date will not receive credit. For lab checkoffs, the completion of which requires your presence in the lab, only times during office hours will count toward this penalty.
This penalty is applied to each question or checkoff independently, so questions and checkoffs that were completed on time will not be penalized, even if other parts of the same lab or exercise were completed late.
The following table shows some examples:
|Submitted||Max Credit Received|
|1 hour late||99.7%|
|8 hours late||97.6%|
|24 hours late||92.8%|
|2 days late||85.7%|
To help you manage your obligations, each student will be given two automatic one-week extensions. Each of these extensions applies to all regular assigments that are due in a given calendar week (typically, two labs and one set of regular exercises). The extensions are automatic: they are granted by an algorithm that is run at the end of the semester. The algorithm applies the extension to the two weeks that minimize your loss of credit due to lateness. Design exercises are not subject to these one-week extensions because they are not required in any given week.
These two automatic one-week extensions are intended for use with things like sports, music, inteviews, projects, or any other reason. You do not have to ask for the automatic extensions to be applied.
If you are experiencing personal or medical difficulties that prevent you from completing some of the work in 6.08, please talk with a dean at S^3, and, with their support, we can offer additional extensions or alternative arrangements. Without written support from Student Support Services, we cannot offer any exceptions to the rules outlined on this page.
2.4) Design Exercises
For every set of homework exercises, we will generally have one or two open-ended Design exercises, which ask for implementing a neat mini-project will little scaffolding from the staff. These Design Exercises serve as preparation for the final project and are meant to increase your confidence in your ability to solve open-ended problems. Over the course of the term, each student can complete as many design exercises as they want. Each design exercise can be worth up to 3.75% of your final grade, and is graded by succesful demo and code submission, with partial credit a possibility, however grading is extremely discrete. Each design exercise must be accompanied by a write-up. See the design exercise page in a given week for a template file and further details. 15% of the overall class grade comes from design exercises, so the points gained from them will max out at that (you cannot do 5 design exercises perfectly and get bonus points or something....it will just cap at 15%). Students are allowed to do as many design exercises as they want, though after a point they don't provide more points as per the limits discussed.
Pick design exercises based on interest. Design Exercises will cease when final projects begin.
Design Exercises are not subject to extensions or the linear point decay of regular exercises and labs. The one week extensions cannot be applied to them. We manually grade these assignments and therefore punctual submission is critical. Design Exercises will generally be due two weeks after they are released (so yes, there is overlap in terms of which ones are "active"). Pay attention to dates! Turning a design exercise in late means it is worth 0 points.
2.5) Peer Grading
Throughout the semester you will be working in teams. You will provide feedback to your teammates in labs and then in final projects. This feedback as well as observations/experiences with staff will be used to determine this score. In general, be a good partner, and your score will be fine. Avoid working in teams, or try to avoid partner work in labs and this score will be low.
You can contact the 6.08 instructors (Joe, Stefanie, Karl, and Anthony) via
firstname.lastname@example.org. You can contact the TAs and UTAs via
The big message here is RESPECT. We are a community, and an important piece of maintaining and growing that community is to treat people and things (be it hardware or someone else's work) with respect. Pushing the limits of things can and should be a natural part of learning, but that needs to be tempered with an awareness for how it may make others feel.
We are providing quite a bit of hardware for you to borrow. We expect you to treat the hardware components with care. The hardware should always be in the carrying/fire-suppressant case unless using it. Damage to and/or loss of a kit may result in you having to pay to replace it.
You can feel free to use the hardware for your own projects outside of class! Just make sure to not do anything that prevents use for 6.08. Also, we won't have the resources to help debug hardware issues that arise if you take the system apart and are unable to put it back together, or if you try to develop outside the scope of our software stack. There are ways to irreversibly "brick" components, so please be careful.
You will have to return your 6.08 kit at the end of the semester minus a few specific parts which you can keep. Failure to return parts in a timely manner will result in a significant letter grade drop, potential fine, and possibly referral to the Committee on Discipline at MIT.
4.2) Malicious Code
In this class you will be writing code that will run on a public-facing server. Any attempts to write malicious code to run on the server will result in a course grade of F and immediate referral to the Committee on Discipline.
The same goes for the course website (the web infrastructure you're reading this on now). Any attempts to inject malicious code into exercise checkers will result in significant grade deductions and immediate referral to the Committee on Discipline.
However, if you have found a potential security flaw, please notify Joe Steinmeyer (email@example.com).
4.3) Database Code of Conduct
Tutor exercises, labs, design exercises, and the final project may make use of shared databases. Submitting derogatory, inflammatory, or profane content to the database will result in a 0 for that assignment, additional overall grade deductions, and may result in immediate referral to the Committee on Discipline at MIT. Depending on the severity of the infraction, dropping the course will not absolve you of consequences. Treat other with respect.
The primary goal of the labs and tutor problems is educational. We ask you to work through exercises largely on your own because we feel that the experience will cement the basic technical ideas and lead you to think about bigger conceptual issues. It is your responsibility to take advantage of the opportunity to do this; working too closely with others will rob you of the chance to engage deeply with the material and may lead to poorer understanding and, ultimately, worse performance on the exams, projects, and beyond.
We encourage students to discuss assignments in this subject with other students and with the teaching staff to better understand the concepts. However, there are limits to what you can do, to ensure that everybody has a good individual learning experience.
This page is designed to give you a sense of what kind of interactions are allowed, and which are not, when working on 6.08 coursework. The policies below are in place in order to help with our primary goal for the exercises (i.e., that you deepen your understanding of the course materials by working through them).
5.1) All Assignments: Sharing of Work
Regardless of the assignment, you should never use results from other students, nor from the staff, in preparing your solutions to online tutor problems. We will run periodic checks on submitted code. If your code is taken from other students this year (or previous years), and may You should not take credit for computer code or graphics that were generated by other students unless you developed those materials while working with your lab partner.
In addition, students should never share their solutions (or staff solutions) with other students, including through public code repositories such as Github.
5.2) Homework ("Required Exercises")
You are expected to give your best effort and work as far as you can on your own for every exercise before asking for help or using other resources. You should spend at least 10 minutes working though each exercise before consulting any external resources (including online resources, course staff, or your fellow students).
If you are still stuck on a problem, you may talk about the question with a staff member or a fellow student, but all exchanges of information should be general in nature. See the sample interactions below for examples of what is considered okay, and what is inappropriate.
After having received help on an exercise and reaching a solution, you should wait a day or so, and then try to work through the exercise again from scratch on your own.
You will work with a partner in the labs. You and your partner can equally share all results, code, and graphs that you develop as a team.
You should work through the entirety of the lab as a team to produce one result, and each partner should be prepared to discuss their results with a staff member during a lab checkoff. A "divide-and-conquer" approach, where each partner only works through a portion of the lab, is unacceptable.
When you have completed an exercise or an experiment, you should share your results with your partner. Each partner should enter tutor exercises on their own account, and by the end of the lab, each partner should have a copy of any results, code, and graphs that you developed as a team.
5.4) Final Project
You will work with a partner (or partners) for the independent design project. You will jointly be responsible for all deliverables, including demos and presentations.
Incidents of plagiarism will result in a grade of zero on the assignment and,
at the discretion of the staff, may be reported to the Committee on Discipline
(COD). More information about what constitutes plagiarism can be found at
5.6) Sample Interactions
Scenario: Alyssa and Ben sit down to work on a homework set together...
or...As Alyssa and Ben each solve a circuit, they speak aloud the steps they are taking, to make sure they are both following the right steps.
Scenario: Louis had a very busy week. He has already used his two automatic extensions and has made almost no progress on the week's problem set. Ben wants to help.