The following are this year's projects. Although I prefer you
pick one of these, you may propose a project of your own
(of course, I'll have to approve it!)
IMPORTANT: The final version of the project will be graded for
four factors: Usability, Technology, Completeness, and
Adaptiveness. There is a high degree of HCI in this course. A
simpler project that is complete (works well)
and that has a good presentation will receive a higher grade than
one that uses sophisticated technologies, but isn't as complete
- Ruby on Rails Module
Ruby is a programming language that somewhat resembles a cross
between Perl or PHP. Rails (sometimes referred to as "Ruby on
Rails") is a web application framework written in the Ruby
programming language. Rails includes an extensive
As you can see, we have a Ruby Module, but previous versions of
this course found it too difficult, and some of the directions
didn't quite work.
Your task is to edit this Module 9 which
content on Ruby, Ruby on Rails, and Ajax. It should continue
to look like the
other labs; that is, it should
contain Objectives, Background material, an Assignment and a
Quiz. You may adapt what is there or create something new.
all the projects, usability (HCI issues) is a major
goal. Ideally, you will have something ready to test later in the
course and then fix the module so it can be used by those who
choose to do the Ruby Module.
There is an audience analysis due the 3rd or 4th week, and having
people try the module as it is will be a good source of info.
I like you NOT to use people in the course for this (but we can
talk about this).
This is a great
way to learn Ruby and Ruby on Rails!
- Compiler Labs Have you had a compiler course?
Or even if you haven't, this project is more about this course
Last year a project in this course
created compiler labs (real labs- not like the "labs" of this
course). I teach this course in Nepal where the programming
experience isn't as great and they are in general unable to do
the project even though it is broken into parts.
You can see the project parts and the labs as they exist now at:
The labs work well, but the presentation (both the
pedagogy and the way they look) needs work.
This is a good way to learn something about compilers or to use
what you do know!
- Teach Yourself Programming. Modeled after the Teach Yourself
(Russian, Finnish, etc.) language series books,
leads non-programmers through a sequence of programming languages based on
java. I'd like to see this site enhanced.
First, there are some problems with the RoBOTL module (probably
due to old versions of java). Second, perhaps add
a bb, wiki, or blog. Third, it might be nice to add a Scheme
module (I've seen them on the web).
I'd also like ideas on how it could attract users etc.
- A new online course Create an online course like the
one you are taking. It should have a syllabus with objectives,
modules (like your "labs"), a project if appropriate etc. As well
as this course, you can look at some of my other online
of Computer Science
Previously, students have requested that I create an Operating
Systems course, so that is one possibility
- Something else. Send me email describing what you
want to do, and perhaps I will approve it.