EECS 373: Overview
Fall 2009
Course Overview
We have a number of educational goals when teaching 373. The primary ones
are:
- Learning the basics of embedded systems including hardware/software
interfacing.
- Learning about computer architecture outside of the CPU core.
- Design and implementation of non-trivial projects involving both
hardware and software.
In the classroom, we will focus on generic principles and ideas. In the
lab, we will focus on the Motorola PowerPC 823 (MPC823) 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.
Prerequisites
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,
etc.).
General Policies
- The honor code is in force on all assignments and
exams.
See the Engineering Honor Council web page for more details.
- All individual assignments (e.g., prelabs, 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 agressive in dealing with any occurences.
Lab policies
- Prelabs are due in lab during the week the lab is to
start. All prelabs must be turned in within the 20 minutes after
the offical start of lab (on the half hour)
(to allow for tardiness, printing problems, etc.) or
you will only get 50% of the credit otherwise earned. Prelabs more
than one week late will earn no credit. For labs which span
multiple weeks the prelab is due during the first week of that lab.
As described under General Policies, prelabs are to be done
individually unless otherwise specified in the lab itself!
- Postlabs are due in lab the week after the last
week of that lab. Again, they are due 20 minutes after the start of
that lab period.
Just like prelabs, late labs earn only 50% of the credit
otherwise earned and postlabs which are more than 1 week late get no
credit. Postlabs are to be done by the group unless otherwise
specified in the lab itself!
- In-labs are due by Friday of the last week of the lab in
open lab hours (you are welcome to turn it in before this and most
students do). One of the lab instructors must sign your in-lab form
by that time for the in-lab to be on time. You should hand in the
signed (and dated) in-lab form with your postlab. Late inlabs lose
10% of their value per bussiness day (Monday though Friday not
including holidays) they are late. As described under General
Policies, you should only be working with your lab group (generally
one other person.)
- 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
execption is that inlab sign-offs will be given reasonable priority.
- Students doing tasks that
could be performed on a CAEN machine (code or schematic
entry or simple debugging that could be done on a
simulator) may be asked to leave to make room for other students who
need to be in the lab.
Grading
The following gives the approximate grade breakdown for labs and exams.
Overall breakdown:
Item Weight
====== =========
Labs (8) 30% (lab 1 0.5%; lab 2 1.5%; lab 5,7 4%; lab 3,4,6,8 5%)
Exams (2) 42% (20% for midterm exam, 22% for final exam)
Project 23%
Presentation 4%
Homework and misc. 1%
In spite of this breakdown, you will not earn a C in this course
unless you have a C average on the labs+project (as a group) and on the exams!
Each lab grade will generally be broken down as follows:
Lab grade breakdown:
Item Weight
======= =======
Prelab 30%
Inlab 40%
Postlab 30%