Midterm Information

You are not logged in.

Note that this link will take you to an external site (https://oidc.mit.edu) to authenticate, and then you will be redirected back to this page.

1) Overview

The midterm comprises 15% of your final grade in 6.08 and will take place over two hours. The exam will be paper-based and you are allowed a calculator and three sheets of notes (front and back) used however you want so long as you can use them unaided (no microfilm, no paper-based computers, etc. Origami is acceptable, I suppose). All necessary documentation will be provided on the exam including pinouts, and necessary code or API documentation.

Note: Cellphones are not allowed on your desk or table during the exam. A cellphone will not be a permissible calculator. We make no guarantees that we will have spare calculators for you, so please prepare ahead. Math will be at or below the order of complexity you've seen in some of the power exercsises, so you really don't really need a calculator, but it may allow you to move faster through certain problems.

The midterm will take place from 7:30pm to 9:30pm Eastern Standard Time on Tuesday April 10th, 2018. Depending on first letter of you surname, you will be in one of three rooms. The distribution is as follows and are surname (last name) ranges with bottom inclusive to top inclusive (not like Python):

• A-K: Go to 2-190
• L-Sh: Go to 4-270
• Si-Zzzz: Go to 4-370

Regardless, all three rooms will be in the same neighborhood on campus.

All rooms will start at the same time. This will be made possible by three ESP32's performing GET requests on the server which will be providing timestamps. No worries there.

2) Content

Any and all material from the first eight weeks of class may be on the exam. This includes exercises, labs, and lectures. Particular/Specific Design Exercises, while an important part in learning, will not be on the exam, though it is possible that experience from them will help on the exam.

2.1) What the Exam Is

Our goal is to test you on what we've gone over so far in class and to provide motivation to prepare and fill in any gaps in your knowledge for the lead-up to the final project so you can be as effective as possible in that portion of the course. With that in mind, most of what you've done in this class has occurred in the exercises and labs so focus on those. Lectures should be viewed through the lens of how they supplemented these lectures and labs.

2.2) What the Exam Is Not

We do not expect you to have memorized detailed syntax elements of SQL (I barely remember these myself), or the particular structure of the request dictionary handed to you on the server, and while you should be able to synthesize some code, keep in mind we have to grade this so we're going to keep this limited to a few problems max. You do not need to have the wiring of your system memorized, but you should be able to debug a breadboard and synthesize and debug across both the hardware and software domains.

3) Exam Study Materials

In terms of content, we strongly recommend going back through exercises and labs. If there were questions you just sort of "got", make sure you review how you arrived at the answer. Particular exercises that the staff has found "inspiring" include, but are not limited to:

Go back through these and make sure you are familiar/fluent with them!

3.1) Practice Midterm

HERE is the 2017 6.08 midterm exam and HERE are the solutions for it. We are posting this here so you have an idea of the general structure of the exam since we intend for the midterm for this year to be approximately similar in length and style (it will be different of course, though). Note that the hardware the server infrastructure have changed since last year, and as a result some aspects of the system detailed in the exam, and what we would have expected students to be familiar with have changed as well.

I will release a second set of a few practice problems (most likely actual midterm rejects) in a few more days. I'm undecided whether solutions will be posted with these questions (partially because of point below). Instead we'll maybe use Piazza to crowd-source solutions.

Please, speaking as an educator, and friend, do not just browse the exam when you study. Try to actually do the problems out without looking at the solutions immediately. Time yourself! In not doing this you'll fall prey to P vs. NP issues, where a given solution is easy to verify but difficult to generate. If you study by verifying answers handed to you, you may not develop the same problem solving skills that you'd do otherwise. I'm convinced this is 90% of the problem with people when they study (speaking from experience...in undergrad I'd be like, "of course the answer is 5.43 hours! Studying done. Now let's play some Far Cry 1 and browse Limewire for stuff.", but deep down I didn't develop the skill/practice to solve that problem, which is really what it is all about).

3.2) Some More Practice Problems

This file contains about three-ish problems (merged into two large ones) that were dropped from the 2018 midterm creation. I'm including them here just since they are new things to look through and might prove helpful. I don't have a solution file. Ask questions on Piazza (or even better, post your solution on Piazza and we can go over it in the spirit of learning). Note that these questions are a bit more start-from-scratch-code-heavy than we expect the midterm to be (part of the reason they were cut). Also note that these aren't polished questions. I didn't invest the time adding in chaperoned function documentation for the coding parts...you can just use the internet for now. If something is left out, just ask about it. Otherwise take them as they are....more like thinking prompts.

4) Partial Credit?

Yes we will do partial credit on the midterm.

5) Questions?

As always feel free to email the staff and/or post on Piazza!!!