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

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;

Co-req: 8.02

Units: 1-5-6

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 Room 38-530.
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 ( on your behalf.

1.2) Midterm

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)

2) Grading

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

Regular Exercises15%
Design Exercises15%
Peer grading5%
Final Project35%*

You must complete your final project to pass 6.08 regardless of overall points.

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 ( 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
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 send an e-mail to the instructors.

2.3) Extensions

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

3) Staff

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

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

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

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 (

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.

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

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.

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

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.

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

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