[LABS] [Course Objectives] [Schedule] [Text] [Grading] [Project]

Project Suggestions

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 or usable.

  1. 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 library of AJAX (Asynchronous JavaScript + XML) functions that can be used without any Javascript knowledge. 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 includes 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. Like 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!

  2. Compiler Labs Have you had a compiler course? Or even if you haven't, this project is more about this course than compilers.

    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: http://web.cs.wpi.edu/~kal/courses/compilers/project/index.html 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!

  3. Teach Yourself Programming. Modeled after the Teach Yourself (Russian, Finnish, etc.) language series books, this site 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.

  4. 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 courses:

    Interaction Design
    Foundations of Computer Science

    Previously, students have requested that I create an Operating Systems course, so that is one possibility

  5. Something else. Send me email describing what you want to do, and perhaps I will approve it.