Read this section only if you prefer to work on a project based on your own idea. Conversely, if you decided to work on one of the projects described in the class lecture notes in Section 1.5, you can skip this section and go immediately to Section 3: Proposal Format, Submission, and Feedback.
When thinking about a new project, please keep in mind that the project must be equivalent in terms of difficulty to the projects described in the class lecture notes in Section 1.5.
When deciding about the project, the most important thing to keep in mind is that the software product you will develop should require lot of programming. This is a design rather than a programming course. However, in order to learn good design, the process must include actual implementation of the design. Therefore, the project must include programming.
For example, creating a data-bank and processing this data is a programming task. If your system just allows the user to set or modify values of different database records, that is not data processing. Examples of programming (data processing) include, data-bank re-organization, keyword-based search and retrieval, filtering and summarization of the data-bank, selecting a small group of users for notification, etc. However, just saying: The system will provide search facilities, may mean that you are using SQL database calls and doing no programming at all. And, programming is done in a programming language, such as C, C++, Java, or C#.
Note: Designing web pages passive web pages which
contain only HTML is not programming. Therefore,
your project can include web page design, but that is not
enough.
On the other hand, designing active webpages using AJAX, Flash, etc.,
is programming and is perfectly acceptable for the class
project.
Focus more on automatic data processing: not what what user can manually do , but what system does automatically to save the user's effort. For example, suppose you are designing a system for online purchasing of airline tickets. You could incorporate the following data processing features:
Keep in mind that the key purpose of this course is that you learn how to do modular design of software and how to document the design using symbolic representations, i.e., UML diagrams. Thus, you should avoid flashy user interfaces and proprietary software. These will definitely not contribute positively to your grade, and may have negative effects. Limit your software to the tools commonly and freely available on the Web.
It is a good idea to review the first demo and second demo descriptions to see how your project will be graded.
The proposed topic can be almost anything; however, it is advisable to come up with something novel and innovative to keep you interested in its realization, and because innovativeness tends to make impression on the reviewers.
You could get an idea for interesting service(s) by exploring these web-sites:
Your project may or may not be Web based, but it must include programming.The process of casting out the right-size project for a given period of performance can be very frustrating. You cannot ever know what you'll encounter while working on it. I believe that it's better to start more ambitious and later scale down, if necessary. Start with an initial idea of desirable services and discuss as much details as possible with your partners to figure out whether or not you asa team can develop it in the given time frame. Of course, you'll have chance to adjust your goals during the semester, as you learn more details about your target product.
In case of novel project proposals (not based on the projects described in the class lecture notes), make sure that it is obvious to the reviewer that the proposed project includes programming. Note that Item 4.b.ii (list of the services) is not use cases; do not show those as a use case diagram. Rather, describe what value they offer to the customer. In general, avoid technical details of how you plan to develop it; rather, focus on what you're planning to develop. The proposal is more of a marketing document, and less of a technical document. However, it must be clear from the proposal what value is in your proposed project for the potential customers.
The document should be prepared on computer (special negative points for handwriting and hand-drawn figures).
Since the project should is team work, each team submits a
single document to the TA. Bring a printed copy of
the document to the TA's office on or before
the due date.
Submission deadline: 5:00 p.m. on the due date
In case of novel project proposals (not based on the projects described in the class lecture notes), email immediately the breakdown of the individual contributions to the proposal.
We will provide written feedback only for novel project proposals via email in case we feel the proposal should be revised. No feedback will be provided for proposals based on the projects described in the class lecture notes. The only two reasons for revision could be:
The students are encouraged to be ambitious in the first
iteration of the project. You will have chance to revise your project
objectives at the end of the first iteration, by the time of Demo #1. At that time, you must be
realistic and you may have decide that you need to scale down
the project scope, so to be able to finish it by the end of the
semester.