COM 1204 Object-Oriented Design - Summer 2001 - Honors Adjunct

Professor Futrelle -- College of Computer Science, Northeastern U., Boston, MA

(Updated Friday 7/6/2001)


A very large number of students (sixteen) signed up for the Honors Adjunct. This is going to make logistics a bit messy -- how to get everyone together at once. So much of the course will be handled electronically. What I'll do is to list a bunch of topics below and have you work on them individually or in pairs. (Larger groups require specific permission from me.) Some of the projects involve graphics, since there are up-to-date resources on graphics on my website for COM1370 which I'm also teaching this summer. Please feel free to send me suggestions as to somewhat different projects. But remember this is an adjunct to a course on Object-Oriented Design. I may add to this list as new ideas arise as the course progresses, from you or from ideas that occur to me.

Additional information for any of the projects below is always available via searches.

News -- Friday 7th of July 2001

Remember, turn in something every Monday before our meeting to bring me up to date on what you're doing. As for our meetings, we will continue with our Monday 3:30 meetings as well as during my office hours on Wednesdays 3:30-5:30. I've reserved 149CN for the Monday time. Our first meeting was pretty short -- everyone just wanted to go ahead and get started so there wasn't a lot to discuss. I'm happy to talk to you one-on-one, but be sure to follow up with email so I can keep track of just who is doing what. For example, one student told me that he'll be working on Java cell phones, but he needs to get some email to me confirming this and adding a some details.

Today (7/6) I sent email listing some of the project ideas I've gotten from students. Here's a copy of the material, from two emails.

Possible Honors projects: A preliminary list.

  1. Given a few simple class definitions, create an applet that includes the class definitions as a (long) string, analyzes them and draws a simple UML class diagram for them. E.g., start with a tiny class and another tiny one that extends it.
  2. Given a simple for loop as a string with a body that calls some stub (do-nothing) function, create an applet that shows the calls and values as an animation. You'll need to include the string in the applet code, since applets have restricted file access.
  3. Build an applet that allows the user to enter simple assignment statements and shows the results they make to the stack and heap as in Figures 2.2 and 2.3 of your textbook. It should also draw the arrows appropriately.
  4. Create a system that will find the REQUIRES, MODIFIES and EFFECTS clauses of a specification and create an HTML page summarizing them for all methods in a given class. (The system reads in the source file, finds the method definitions and then finds and organizes the specification clauses.)
  5. Write an application that analyzes source code to compute the number of distinct paths through a single procedure that would need to be tested. Start, for example, with a single if statement.
  6. Create an animated applet that highlights statements in source code in the order they're executed. Your goal is to automate this as much as possible, extending the simpler loop animation project described above.
  7. Study the discussions and controversies surrounding the design of Java, including the community process and Java 1.4 and 1.5 and
  8. Study the debates surrounding "Extreme Programming" as a method for design and write a thoughtful report on it.
  9. Develop UML descriptions for some of the major examples in the book and compare them to the Alloy-based notation used in the textbook, Chap. 12+. See also the major Alloy document.
  10. Find material, including books, on Java style and relate it to the object-oriented design concepts of this course, in an essay you write.
  11. Study the "Patterns" movement and suggest specific patterns that you find that could help us in design and implementation.
  12. A critique of various parts of our textbook, for clarity, consistency, etc. Must include specific details and suggestions for improvements.
  13. Compare our textbook to other leading textbooks on OO design. Again, specific examples needed.

How the work should proceed: You must send a report of your progress to me and Ms. Shan EVERY WEEK, by Monday midnight. Do this even is you've had little time to work on your project in the preceding week or have made little progress. It should also include what you plan to do next, etc. This is a 1 QH adjunct, so we don't expect prodigious amounts of work.

Always start simply. It is always a mistake to take a complex project and try to attack it in its full, final form. Try to think of some of the smallest parts of it you can experiment with or an incredibly simplified version of it and start by solving those problems.

I vastly prefer your work to be developed and handed in as web pages.

(The names and email for the students in this Honors Adjunct this summer are on a separate private page.)

Go to COM1204 home page

Return to Prof. Futrelle's home page