Information
Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.
Catalog Description
Students work in teams to engineer systems that solve important problems in society. Leverages technical EECS background to make design choices and partition the system with an emphasis on the societal, ethical, and legal implications of those choices. Explores case studies of existing engineered systems to understand implications of different system architectures. Teams design and build functional prototypes of useful systems. Grading is based on individual- and team-based elements. Enrollment may be limited due to staffing and space requirements.
Units: 2-3-7
Prerequisites
In steady state this class will have strict pre-reqs of all three 6-5 core classes: 6.200[6.002], 6.191[6.004], and 6.310[6.302] which is transitioning toi 6.300[6.003]. There may be flexibility in our earlier offerings, so please reach out if you don't have these pre-reqs.
6.900 is a core system design class in the new 6-5 degree and the 6-2_2022 degree. It is also an AUS2, II, DLAB in 6-1, 6-3, 6-4, and old 6-2.
What is this class about?
In this class we'll integrate our knowledge from 6-2/6-5 core system design subjects to design complete systems that incorporate hardware and software. So we'll learn, in the HW/SW context, how to develop requirements and specifications for a system, then use those specifications to partition systems into subsystems, how to assign functionality to hardware or software, how to manage data and energy, and so on. We'll learn a bit about mechanical design, industrial design, and so on as needed to create our systems.
To guide our learning, we'll undertake a large-scale group project to develop a complete system to meet the needs of a partner institution (we'll reveal the partner during the first week of class). We expect to design and build real systems that really encompass the full stack: from sensors and electronics, to microcontrollers with embedded firmware, to a server system that integrates data across multiple sensor systems, to a data dashboard to visualize the data, to the industrial design that interacts with the installer and user.
We'll also use miniature guided lab activities in the first half of the term to learn about many of the fundamentals and skills that we'll apply to the group project.
In the course of doing all this, you'll learn some practical skills, like how to do PCB design/layout and surface mount component assembly; how to specify and choose components, and read datasheets; how manage & measure energy in edge devices; how to set up a server machine, web server, and db from scratch; and how to design/draw/3Dprint enclosures. You'll also learn how to evaluate different technologies to attain a functional goal, and how to work in teams.
Perhaps most critically, you'll learn how to be a real engineer, part of team that delivers a complete system. You'll have an authentic experience to talk about with potential employers, and confidence that comes from designing & building a real system.
That's alot of stuff. Why learn everything, I just want to focus on [electronics, programming, data science, etc.]?
In industry you'll be part of a team, and you're right that you'll initially focus on part of a system (unless you're the co-founder and technical lead for a startup!). But it's incredibly useful to get a sense of how all the parts fits together. This will help you and your team work better with the rest of the organization. In fact, this class was inspired in part from conversations with alumni and industry execs who emphasized the importance of understanding how subsystem tradeoffs affect overall system design.
Lectures and Labs
Lectures: Tuesday, Thursday 11a - 12:30p in 34-304.
Labs: Will be self-scheduled by individuals and teams throughout the week -- the calendar is on our main page. You will need to come to a staffed lab time to get check-offs, and for weekly check-ins with your team. All labs will take place in the EECS Teaching Labs, in 38 5th floor in the back right of the lab room (across from the 6.200 space).
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. Our Piazza link is here as well as in the site top menu.
Grading
Your overall grade is based on the following breakdown:
- Weekly PSets: 20% [Individual & Team]
- Lab Checkoffs: 10% [Individual]
- Project Milestones and Deliverables: 20% [Team]
- First Review: 10% [Team]
- Second Review: 10% [Team]
- Final Review: 20% [Team]
- Peer Review: 5% [Individual]
- Attendance: 5% [Individual]
Attendance and engagement
We will have roughly 16 lectures during the semester, and you are expected to attend those lectures sessions. In some lectures we'll have activities that will directly help your class project, or provide a broader view helpful in your career. Other lectures will be given by guest lecturers who have taken time out of their day to come share their expertise with us. These are an important feature of the class and thus required.
To gauge attendance, at each lecture we'll ask students to fill out a brief paper-based question to provide immediate feedback and input on that lecture.
We understand sometimes you need to attend an interview, or you have a sporting event, stuff like that. So you get 2 free missed lectures, no questions asked. After that, you start losing the attendance credit.
Beyond physically being present, what is most important is to be engaged in the lecture. We understand the ever-present lure of the laptop and the phone to "multitask" aka doomscroll TikTok or Reddit, work on a pset for another class, and so on. Not only does this prevent you from actually learning much of what is going on, but it distracts your fellow students. So unless we're actively using laptops for a class activity, we ask that you stay off electronics.
PSets
Problem sets will generally be released on Tuesdays and due the following Monday afternoon. Some problems may have different due dates, which will be listed. Problem sets will have a mixture of individual work, extensions of lab activities, and team project work.
Labs
We will have weekly labs. Some labs, primarily in the first half of the semester, will be focused on individual guided activities. Starting on week 2, all labs will include a team meeting. You'll need to find a time to come to a staffed lab hour with your team for check-ins, and for check-offs on individual work.
Final Project etc...
This is the main focus of the class, and will have a dedicated set of pages.
Exams
There will be no exams in 6.900. Enjoy your evening.
Late Submissions
- Some components of the labs and psets are due at the due date. However they can be turned in late (or the checkoff obtained late) with an increasing point penalty based on lateness. Every day late, they lose 20%. A few additional details on this:
- Lateness is calculated to the day (minutes and seconds do not come into play). So if a pset is due Tuesday at 9a and you hand it in at 9:17a, it is one day late and worth 80%.
- Lateness is applied to each part of the lab or pset individually. For hypothetical EX01, if you do the first problem on time and are late on problem 2, the lateness is only applied to that problem
- There is a 48-hour freeze on the accrual of late days from 11:59:00pm on Friday to 11:59:00pm on Sunday. Consequently, a theoretical assignment due Wednesday night can be turned in on Saturday or Sunday for 60% credit (the same as on Friday), and turning in on Monday would be 40%, Tuesday 20%, the following Wednesday 0%, the following Thursday -20% (lol/jk).
If you feel you need an extension on a lab or pset, email me >= 24 hours in advance of the lab or pset deadline. Let me know what's going on / how the lab or pset is coming / a general reason why you need some extra time, and as long as you get to me before that 24-hour mark you can generally assume we will grant you a 24 hour extension on the lab or pset.
If you have any extenuating circumstances that warrant an extension please go to S^3 and then reach out to Joel.
Collaboration
This is a team-based design class. Most of your work will be with your team, even if the work is individual. But some work will be individual, especially on some of the problem sets. Again, we'll try to be clear which are team activities and which are individual activities. If you are unsure, ask before collaborating. Not after.