6.08 Spring 2020 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 (EST (UTC-5h) until March 14th 2AM and then EDT (UTC-4h) after that)

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, Online (See note below)

2) Lab Sections

There are four lab sections:

  • Section 1: Tuesday, Thursday 9:30-12:00,
  • Section 2: Tuesday, Thursday 12:00-2:30,
  • Section 3: Tuesday, Thursday 2:30-5:00,
  • Section 4: Tuesday, Thursday 7:30-10:00,

For the first two weeks of class, lab sections will be completely remote. This is an MIT rule, not just our rule. After the first two weeks of class, lab sections can continue to happen remotely, however several sections will also take place in Room 38-530 or nearby lab space. Only on-campus students may attend in-person lab sections. Details about in-person lab section attendance will be released early in the semester once enrollment has stabilized.

Attendance at both lab sessions (in person or virtually) is mandatory. You must be in the same section on both Tuesday and Thursday. You cannont mix and match.

3) Midterm

There is one midterm exam. It is scheduled for Tuesday-to-Wednesday April 13-14, 2021.

4) 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

All office hours will be virtual and (when possible) in the 38-530 (Lab area)

5) 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.

6) Lectures

Lectures will be pre-recorded and posted for asynchronous consumption. Right now the intention is to get these lectures out on Sunday at some point. On the page of the lecture, there will be a few short questions posted that you should answer after watching lecture (worth about 2.5% of final grade). On Monday 1-2pm, there will be an optional Q&A session via Zoom which you may attend run by Joe Steinmeyer. The Zoom link will be posted on the lecture pages.

7) Grading

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

Regular Exercises15%
Design Exercises15%
Peer grading and Participation and Lecture Questions5%
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, half a 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 also result in a half-letter grade subtraction (in addition to the 0 on the exam).

7.1) Components

7.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 due to long weekends; 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.

7.1.2) Labs

Labs generally 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. If in-person, this will be a table number (and possibly a room number if we are in multiple lab areas). If remote, this location will be an automatically-generated video link where you should meet your partner (a jitsi room served by catsoop). From that poin, you are free to continue using that room or you are also free to use your own room (Zoom or something else) that you and your partner agree upon. Just make sure that when asking for assistance, you provide the correct room location for staff to find you.

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).

7.1.3) 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. Design Exercises will cease when final projects begin (see calendar for the submission date for the last design exercise.)

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.

7.1.4) Midterm Exam

The midterm exam will be offered over a twenty-four hour window from 9AM on April 13th, 2021 to 9AM on April 14th, 2021. You will have two hours to take the midterm. You decide when to start by pressing a button on a midterm page. Once the button is pressed, the clock starts running. Starting the midterm at any point after 7AM on April 14th, 2021 will result in you having less than two hours to finish the exam. 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 ( 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. Additional accomodations related to the exam should be brought up early.

7.1.5) 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. Avoid working in teams, or try to avoid partner work in labs and this score will be low.

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

7.2.1) Regular Exercises

You can continue to work on and submit answers from the regular exercises after they are due. 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)/(14*24*60))) which corresponds to a linear decay rate of approximately 0.005% per minute until it hits 0 at two weeks after the due date.

7.2.2) Design Exercises

Design exercises are manually graded and it takes a while to process them on the staff side. As a result the system just can't tolerate late submissions. 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.

7.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)/(14*24*60))) which corresponds to a linear decay rate of approximately 0.005% per minute. Basically after two weeks (to the minute after the nominal due date) the L is 0. Checkoffs must be done in-person (or over video chat) 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.005% per minute, however it only accrues during office hours (approximately 13 hours over the span of a week), with the caveat that after two weeks, the value drops to abruplty to 0.

7.2.4) Auto-Extensions

To help you manage your obligations such as interviews, travel, or weeks where your schedule is particularly busyt, each student will be given three automatic four-day 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, however they do not impact design 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 three spots 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.

We repeat: Design Exercises are NOT subject to these auto-extensions.

7.2.5) 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.

7.2.6) Do the Math

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 of the two-week point factor.

Submitted Max Credit Received
on time 100%
1 hour late 99.7%
8 hours late 97.6%
24 hours late 92.8%
2 days late 85.7%

If you have any questions about this policy or its impact on your grade, please post on piazza.

8) 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.

8.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.

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

8.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.

9) Collaboration

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).

9.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),

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

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

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

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

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

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

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

9.8) Sample Interactions

Scenario: Alyssa and Ben sit down to work on a homework set together...

After trying a question on his own, Ben asks Alyssa for help. Alyssa asks Ben a leading question that helps him discover a reasonable next step to take when solving the problem.


After trying a question on his own, Ben asks Alyssa for help. Alyssa talks Ben through some of the finer points of op-amps using a separate but related example problem. Ben then tries to apply these ideas to the problem he was stuck on.


Alyssa notices that Ben is struggling with a problem, so she gives him her answer and explains to him how she arrived at it.


After trying a question on his own, Ben asks Alyssa for help, and she explains that it is easy: you just take equation 3.12 from this book, insert equations 2.5 and 3.2, integrate, and you should get the right answer!


After trying a question on his own, Ben asks Alyssa for help. Alyssa describes in detail the steps she took to solve the problem and Ben follows those steps without thinking about them.


Bob has access to a "bible" of 6.08 answers from previous terms, which he consults when he gets stuck.


After having made reasonable efforts individually, Alyssa and Ben talk in general terms about different approaches to doing a problem. They draw diagrams on a whiteboard. When Alyssa discovers a useful Python structure, she mentions it to Ben. When Ben makes an observation about voltage dividers, he shares it with Alyssa.


As Alyssa and Ben type lines of code, they speak the code aloud to the other person, to make sure they both have the right code.


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.


After they have both solved a problem, Alyssa and Ben talk in detail about the approaches they took, and the relative merits/drawbacks of each.


Alyssa and Ben sit down to work on a homework set together. They decide to divide up the problems: Alyssa will work through the even-numbered problems, and Ben the odd-numbered ones. When they are done, they will discuss their work with each-other so that each has a complete solution.


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.

Ben works near Louis and answers his questions when they come up, after Louis has made a reasonable effort.


Ben has been helping Louis or a while, but he needs to get back to his own work. He gives his code to Louis, after Louis promises only to look at it when he really has to.


10) Staff

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