EECS 373: Overview
We have a number of educational goals when teaching 373. The primary ones
In the classroom, we will focus on generic principles and ideas. In the
lab, we will focus on the ARM Cortex M3 and the specific
support hardware and software found in the lab. When needed the lecture
will support the lab, and where possible, the lab will support the lecture.
You will find that you will need to spend large amounts of time in the
lab in order to complete your projects -- this is a lab intensive class.
- Learning the basics of embedded systems including hardware/software
- Learning about computer architecture outside of the CPU core.
- Design and implementation of non-trivial projects involving both
hardware and software.
You must have taken EECS 270 and EECS 370 to take this course. This also
implies you have taken EECS 280. I will assume you are familiar with (on the
hardware side) Boolean algebra, gates, multiplexers, flip-flops, and
finite-state machines, (on the computer architecture side) assembly
language, pipelining, memory, and caching, and (on the software side)
program control structures (if/then/else, while and for loops), functions,
procedures, parameter passing, pointer-based data structures, and basic
structured programming techniques (information hiding, modular programming,
- The honor code is in force on all assignments and
See the Engineering Honor Council web page for more details.
- All individual assignments (e.g. homework and exams)
are to be performed on your own. All group assignments (e.g.,
lab work, lab reports, and postlabs) are to be performed only by
members of the group. Verbal collaboration between members of
different groups is permitted for the purpose of helping classmates
to understand concepts essential to the labs or providing one
another with insights into the best way to approach the in-lab
assignments. However, any non-verbal collaboration (e.g. drawing
sample schematics on paper or chalkboard, sharing schematics or
code) is forbidden. You may not help debug another group's hardware
or software without consent from the lab or course instructor. You
are also not allowed to possess, look at, use, or in any way derive
advantage from the existence of code, lab reports, or other material
prepared in prior years.
It is my opinion that students who are
cheating are putting their peers at a disadvantage. We will
very aggressive in dealing with any occurrences.
- Lab assignments are due in lab the week after the lab is
assigned unless otherwise noted. They are due 20 minutes after the
start of that lab period. You will lose up to 5% of the points for
the lab for each school day that the assignment is late.
- You are expected to attend the lab section for which you are
registered. If you would like to switch lab sections, but the
section you want is full, you must find someone in that lab section
to switch with. Once you have agreed on a switch, send email to Matt
Smith. All section switches must be completed before the
second week of lab.
- If there are computers available, you may work in lab during
other lab sections. However the lab staff's first priority will be
the students who are actually enrolled in that lab. The one
exception is that inlab sign-offs will be given reasonable priority.
Each student will be in a 2 or 3 person presentation group. Each group will
give a 12-15 minute technical talk in class. Each group will have two
graded practice sessions. The goals of these presentations are to A)
Educate students about a wide variety of topics at a "familiarity" level B)
Provide students with the opportunity practice preparing and giving
technical talks to their peers. In some cases students will be able to give
talks on topics related to their class project.
The following gives the approximate grade breakdown for labs and exams.
Labs (7) 25%
Exams 40% (20% midterm; 20% final)
HW/Guest talks 6%
Oral presentation 4%