CS 240E is an introduction to embedded wireless systems. It assumes
a basic background in packet communication and software systems.
CS110 (or equivalent) is a prerequisite, CS140 is recommended (but not
required). Programming assignments are in C (or a C variant) and involve
running code directly on embedded system hardware. Students can choose
to use either Arduino-based Intel Galileo devices or TinyOS-based
Research projects last over the entire
quarter. Projects may range from low-level systems research to
a new application or software service.
Students who do not have an ongoing
research project should talk with the
instructors in the first week to discuss and
decide on their project. There are four
major milestones in the project:
Students will join the instructors in reading
and reviewing assignment 2, focusing on constructive
feedback to the authors.
- a short presentation to the class mid-quarter
on the problem and approach,
- a 3-4 paper describing the problem and
approach due mid-quarter,
- a short presentation to the class at the
end of the quarter showing results
- a 6-10 page paper in conference proceedings
format describing the project results.
The class will meet once weekly, on
Wednesdays. Class time is split into two halves.
In the first half of class will cover engineering
fundamentals in embedded systems, such as interrupt
handling, control registers, memory regions, instruction
sets, power, energy, execution models, operating systems,
and protocols. The second half will cover 1-2 research
papers. Students are expected to have read the papers
before class and to participate in discussion.
1-2 students will be assigned to help lead the
The intention is that this discussion is not
solely a factual presention of the paper, but
also interpretation and opinions
of the work. For example, preparation should
consider prior and later work. The goal is
that the presenting student reads the paper
very deeply and places it in the context of
the broader wireless research literature, and
presents his or her own thoughts. Students
who are not helping in presenting also read the paper; class
is an open discussion.
Course grades will be split evenly between
participation in class
(presentation, discussion) and the final project.
The beginning of the quarter will have lab sessions to
help you get up to speed on either the Intel Galileo (Arduino)
or TMote (TinyOS) embedded platforms. There will be one
programming assignment to keep everyone on track to implement
a new idea in their research project.
We'll settle on the the exact dates and times based on
While not officially listed as an equivalent EE 300-level
class, its research component means I'll sign
petitions to that effect.