6.08 Spring 2022 Syllabus

You are not logged in.

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 ( to authenticate, and then you will be redirected back to this page.

1) Catalog Description

All times referenced on this page refer to MIT time

Introduction to embedded systems in the context of connected devices, wearables and the "Internet of Things" (IoT). Topics include microcontrollers, energy utilization, algorithms, 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

Co-req: 8.02

Units: 1-5-6

Lectures: Monday 1:00-2:00 pm

2) Staff

You can contact the 6.08 instructors (Joe, Stefanie, and Anthony) via You can contact the TAs and UTAs via

3) Lab Sections

There are four lab sections:

  • 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,

Attendance at both lab sessions is mandatory. You must be in the same section on both Tuesday and Thursday. You cannot mix and match. You cannot show up late and expect to attend a later section.

4) Midterm

There is one midterm exam. It is scheduled for Tuesday April 5, 2022. The exam will be in person and last two hours. 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 ( at least a week before the exam, 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. Additional accommodations related to the exam should be brought up early.

5) Office Hours

Weekly office hours will be offered at the following times (but may change):

  • Monday 7:00-9:00 PM
  • Wednesday 7:00-10:00 PM
  • Friday 12:00-3:00 PM
  • Sunday 4:00-9:00 PM

Office hours will be in the 38-530 (Lab area).

6) Piazza

The class piazza will be used for all important announcements as well as our official help forum for the class. It is the student's responsibility to make sure to join it and to set their email up so they see these announcements in a timely manner.

7) Lectures

Lectures are in 10-250 at 1pm on Mondays. They will be recorded and posted afterwards. Once final projects start, we have no more lectures.

8) Grading

Your grade in 6.08 will be the weighted average of the following component grades:

Regular Exercises15%
Design Exercises15%
Peer grading and Participation5%
Final Project35%

In addition to the raw percentages, there are several non-linear grade modifiers:

  • You must complete all labs (get all checkoffs). For each missing lab at the end of the term, a half-letter grade will be subtracted off of your overall grade, in addition to whatever points are lost from not completing that lab in the first place.
  • You must complete your final project to pass 6.08, regardless of overall points. If you have a 98% on everything else and you stop working on your project, you will receive an F in the class.
  • Missing the exam without an excuse will result in failing the class, regardless of your final score.

8.1) Assignments

8.1.1) Regular Exercises

Regular exercises come out once a week, usually by Monday 4pm and are due the following Sunday at 11:59pm unless otherwise stated (variations exist; please see calendar). Grades are based on getting answers correct and 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). If you used up all attempts on a problem, you cannot get more. We do not give more checks on questions because you used a code submission box as an editor. You have infinite checks on your local machine so you should use them.

8.1.2) Design Exercises

Along with every set of regular exercises, there will generally be 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 based on specifications we give you. 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 quantized. In general, design exercises are graded as either 0%, 33%, 66% or 100% based on performance. Failing to meet specification and/or failing to demonstrate and explain specification will result in lost points.

Each design exercise must be accompanied by a report. If you do not include a report, nothing will be graded and you receive a 0 for that assignment. 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 and you can do as many design exercises as you want, but the points gained from them will max out at 15 (you cannot do 5 design exercises perfectly and get bonus points or will just cap at 15%). Just to reiterate: students are allowed to do as many design exercises as they want, though after hitting 15 cumulative points they don't provide more points as per the limits discussed.

Choose design exercises based on interest. Despite what students say, they do not get "harder" as the semester moves along. Also most design exercises are new this year so that's exciting.

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 on the calendar.

It is expected that there will be 13 design exercises released, approximately two per week with the exception of one in the first week and 0 in week 8. We will not release additional design exercises at the end.

There are no design exercises released in Exercise 08. Plan accordingly.

8.1.3) Labs

Labs happen on Tuesday and Thursday. Each lab session is 2.5 hours long. At the start of your lab section, you will be partnered with somebody else in the section. This will be indicated at the top of the lab page along with a location where you are to meet them.

Labs consist of exercises, both theoretical and applied as well as checkoffs which you do with staff. Labs are to be done in pairs. This means actually working together. You are not supposed to just work separately and then ask for checkoffs separately. One partner is not supposed to just rush ahead of another partner. You should work together and help one another and have discussions on the content and assignments. Labs are generally designed to be completed before the 2.5 hours of the lab session are up. If you do not complete you can finish in office hours with a relatively minimal penalty (see Lateness and Extension Policy below).

You are expected to be on time to lab. Consistently missing lab or being late will result in grade deduction at the end of the semester.

8.1.4) Peer Grading and Participation

Throughout the semester you will be working in pairs and 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. If you are not a good partner, or you avoid working in teams, or you try to avoid partner work in labs by coming to lab late or to another section because you think we are stupid and won't notice, this score will be low.

8.2) Lateness and Extensions

The lateness policy for different components of the class varies so please read below to make sure you do not apply the set of rules for one type of assignment to a different type.

8.2.1) Regular Exercises

You can continue to work on and submit answers from the regular exercises after the nominal due date. After that point, the grades for late submissions will be multiplied by a lateness factor R that is calculated from n, the number of minutes late such that: R = max(0.0, min(1.0, 1-float(n)/(5*24*60))) which corresponds to a linear decay rate of approximately 0.015% per minute until it hits 0 at five days after the due date.

8.2.2) Design Exercises

Design exercises are nominally due at 11:59pm on the night of their due date. From that point for the next six hours, work can be submitted but it is multiplied by a lateness factor D such that D= max(0.0, min(1.0, 1-float(n)/(6*60))) which corresponds to a linear decay rate of approximately 0.27% per minute, meaning at 6:00AM D is 0. Design Exercises often contain multiple elements that are turned in separately (code and report and video link, for example). The time of the last submission of all of these is used in calculating overall submission time. Manage your time wisely. It is the student's responsibility to submit all necessary material on time. Metadata on a file can be easily manipulated, so sending us a screenshot showing that a file hasn't been modified won't count as proof that it was all good before the deadline.

Design Exercises have a different lateness policy than regular exercises!

8.2.3) Labs

Labs have two parts: Questions and Checkoffs. Both can be turned in late. Questions (things that are auto-graded like code or theory questions) have an identical lateness factor as regular exercises. The score earned will be multiplied by a lateness factor L that is calculated from n, the number of minutes late such that: L = max(0.0, min(1.0, 1-float(n)/(7*24*60))) which corresponds to a linear decay rate of approximately 0.015% per minute. Basically after one week (to the minute after the nominal due date) the L is 0. Checkoffs must be done in-person and can only be obtained in lab or office hours sessions. The lateness factor for checkoffs is the same linear decay rate of approximately 0.015% per minute, however it only accrues during office hours (approximately 13 hours over the span of a week), with the caveat that after one week, the value drops to abruplty to 0.

8.2.4) Extensions

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.

9) Responsibilities

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.

9.1) Hardware

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.

9.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 (

9.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 others with respect.

10) Collaboration

The primary goal of the labs and exercises 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).

10.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), you will receive a 0 on that assignment and additional administrative action may be taken, including receiving a failing grade in the class.

In addition, students should never share their solutions (or staff solutions) with other students, including through public code repositories such as Github.

10.2) Regular 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. Copying of solutions is not allowed.

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.

10.3) Design Exercises

Design Exercises are to be completed on your own. You can get limited help from staff, however the intention of these projects is for you to get experience working and designing things on your own. Sharing of work between students on design exercises will result in scores of 0 for involved students as well as further administrative action.

10.4) Labs

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.

10.5) Midterm

The midterm is to be done completely on your own. Collaboration between students in any form, including discussion of the exam before the staff allows it (there are makeup exams so don't assume when you are done, you can talk about it), will result in a 0 on the midterm as well as further administrative action.

10.6) Final Project

You will work with a team for the independent design project. You will jointly be responsible for all deliverables, including demos and presentations.

10.7) Consequences

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