The George Washington University
School of Engineering and Applied Science
Department of Computer Science
CSci 190 -- Real-Time Computer Systems -- Spring 2001
Prof. Michael B. Feldman
Some Term Project Ideas
due date: Wednesday, May 2, 2001
I am pretty open-minded about term projects in this course, since better
work is done when the workers are enjoying themselves, and they enjoy themselves
when they’re doing something they basically want to do. But let's repeat
some of the points in the assignment page:
General Points
My experience tells me that in a course like this an active (i.e. design,
code test, etc.) is better than a passive one (read the literature and
regurgitate). There are always exceptions, but I have seen many cases in
past courses where “literature search” papers tend to be enumerations of
facts read, with little of the student’s own analysis and “putting himself
in it.” Overall, my experience is that the ones who really get involved
in it do the better work and end up with the better grades.
The project has to relate, somehow, to the main topic of the course, namely
realtime systems and programming languages.
“Scoping” the project is always difficult. You don’t want something absolutely
trivial, but you don’t want a doctoral dissertation either. You're trying
to satisfy roughly one 3-credit course, so don’t try to solve all the world’s
problems at once. I don’t play silly games myself, though; if you propose
something and run into a snag or it leads you into something more interesting,
I won’t hold you to deliver exactly what you propose. If the outcome of
a project is entirely well-defined at proposal time, it’s probably not
a very interesting project, right?You must keep in close touch with me
on this, though.
Some Ideas
-
Choose an example we've covered in the course and expand it in an interesting
way.
-
Interesting animation
-
Introduce language structures we didn't cover (asynchronous control transfer
in Ada 95, for example)
-
Different approaches (implement and compare lots of dining-philosophers
strategies, for example)
-
Different language or environment
-
Choose an example we didn't cover in the course and implement it in some
interesting way
-
car cruise control
-
elevator controller
-
stock ticker
-
Explore platform-independence of real-time/concurrency stuff using Ada
95 or Java
-
investigate what the standards cover and don't cover, and develop illustrative
programs to test this on at least two platforms (Windows and Solaris, for
example, or add Linux into the mix)