# EE382C Embedded Software Systems - FAQ

*What are the pre-requisites?*

- EE360C Algorithms
- EE380L-5
Engineering Programming Languages
- Either

EE360C gives the following background necessary for the class:
- object-oriented design concepts: abstraction and hierarchy
- data structures: efficient representation of data types
- algorithm analysis: quadratic,
*n* log *n*, etc.,
in the size of the data structure representing the problem being solved
- basics of graph theory: directed graph notation and partitioning graphs.

Both EE 345L and EE 345S have
EE 313
Linear Systems and Signals as a pre-requisite.
EE 313 is a sophomore-level class that provides an introductory
background for signal processing and communication systems.
At times, I will refer to signal processing and communication systems
as a motivation for a particular model of computation.
A quick way to get up to speed on digital signal processing at a
sophomore level, then you might acquire
James H. McClellan, Ronald W. Schafer, and Mark A. Yoder,
DSP First: A Multimedia Approach, Prentice-Hall,
ISBN 0-13-243171-8, 1998. On-line Multimedia CD ROM.

A key concept is the notion of a difference equation as
a filter that works on signals (e.g. speech, audio, and
images). Difference equations are directly useful in
both analysis and implementation.

*What does this course cover?*

The Embedded Software Systems course surveys formal methods
for specifying, simulating, and synthesizing complex, heterogeneous
embedded systems. The course describes the specification,
scheduling, and simulation of ten models of computation. For one model,
we also detail the synthesis of software from it.
A formal method has a rigorous mathematical foundation. Some of
these formal methods are available in the high-end system-level design
CAD tools from Cadence, Mentor Graphics, Synopsys, and Agilent EEsof.
We will cover the following topics:

Dataflow models, scheduling, hardware/software codesign, hierarchical
finite state machines, synchronous languages, reactive systems, and
heterogeneous systems.

*What's the trick for doing well in the course?*

Do well on the project.
In this course, 50% of the grade is based on the project. The project
will consist of two equal parts: a literature survey due just before
Spring Break and a final report due on the last day of lecture for
the semester. I have several ideas for projects on the course Web
pages, and I recommend (but not require) that you work in teams of
two or three. Both reports will be no more than 8 pages long of
double-spaced, 12pt font text, not including the title page and abstract.

The key to doing well on the project is to do a project related
to any research, development, or design work you are doing
at UT or at your company.
Other keys include getting started as soon as possible, finding
a fun topic, and recruiting a good team.

*What's the benefit of working so hard on the project?*

A side benefit to doing well on the project is that you might produce
work that will be published.
I set the length of the project reports to match the length required
for papers for most of the related IEEE/ACM conferences and for short
papers to an IEEE/ACM journals.
Four of the seven final reports during the Spring 1997 semester
and four of the twelve final reports during the Spring 1998 semester
have been published in IEEE conferences.
Two of the projects have resulted in journal papers.
*What UT courses are related?*

The following courses are related to EE382C-9:

Updated 01/16/05.