Homework 1: Extensible Design

CS290A Spring 2009

A common software problem is to develop a set of tools operating on a collection of data. The goal of extensible design is to structure the system so that new tools and new data types can be added without changing the code for existing tools and data types.

In this assignment, you are asked to come up with an example programming problem and demonstrate an extensible design on the example problem. The specific requirements are

  • the problem should involve data with recursive data types
  • the existing solution should have at least one data type and one tool
  • the addition should include at least one new data type and one new tool

The design will be evaluated not only in terms of correctness but also the brevity and clarity of your program. You are encouraged to use this exercise as a way to evaluate the object-oriented features of your favorite languages and maybe discover a better alternative.

Submit your example and solution code through the CS department wiki by creating a page and make it changable by only you and viewable by you, (Kostas, your wiki id here), and ChenDing. You can make the page public after the assignment is due.

To format your answer, you can use wiki editting short-cuts, html, or an pdf file upload. Here are some useful resources:

  • WelcomeGuest for simple instructions on wiki page creation and formatting
  • Kostas, your c-2-html can be given here.
  • A example page with the read/write protection setup (Kostas, please make an example page or just give the Set commands.
Edit | Attach | Watch | Print version | History: r20 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2009-01-23 - KonstantinosMenychtas
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback