School of Engineering and Applied Science
Department of Computer Science
CSci 190 -- Real Time Computer Systems
http://www.seas.gwu.edu/~csci190
Prof. Michael B. Feldman
mfeldman@gwu.edu

CSci 190 -- Real-Time Computer Systems -- Spring 2003
Prof. Michael B. Feldman
Some Term Project Ideas

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)