CSCI A201
Introduction to Programming I

* Home  * Description  * Overview  * Syllabus  * Resources  * Quizzes *
* Announcements  * Assignments  * Projects  * Grades  * Students *


These group projects are developed over the course of the semester. The groups are self-selected and consist of between four to five students to create and develop a program with some specific criteria that will be posted here. The various milestones (proposal, status report, final submission) and their due dates are in the Syllabus page.


NEW! I have started a FAQ for projects, since there probably are many common questions from people. Feel free to suggest other questions you may want to see answered here.

Typical A201 projects

We expect a typical A201 project to be finished in about 6 weeks from the time it is proposed. A typical project will be about 100 lines times the number of team members roughly. Each team should have at least 4 members. A set of deadlines for the different stages of the projects is shown below. I am also listing a set of guidelines in choosing your team and projects.

Guidelines on forming a team

Guidelines in selecting a topic

Team logistics

Each team should have at least the following two positions identified. Both may be filled by the same person, although it is not recommended.

In addition to the above, you may want to assign someone as the "Guru" who will be able to teach others about particulars of the chosen topics. A "documentor" who keeps track of the documentation, decisions taken during meetings will also be an useful position.

Each team should meet at least once every week starting now until the project is finished. You may meet before or after the lab time, or any time over the week as is convenient.

Deliverables

The following are the various milestones in the project, and the deliverables for each milestone.

  1. Team formation and project brainstorming: (Due: March 10, 1999)

    Deliverables in this milestone include the proposal document. This document should include at least the following:

  2. Initial design and status report: (Due: March 24, 1999) This deliverable was handled off line. No written material was due for this part.
  3. Implementation and testing: (Due: April 23, 1999) In this stage you will actually implement the program and test it. To fulfill the requirements of the project, the following must be turned in to your AI:
    1. A folder (real one, not electronic :-) ) with the name of your project and the names of the team members clearly written on top.
    2. A floppy disk containing all your programs, including data files if any. If your program does not fit in a floppy disk, contact your AI for an alternative submission method.
    3. A users' manual for your program. A user manual consists mainly of instructions on how a user can run your program. You should describe in as much detail as possible how to run your program. We will be using this document to test out your code, and you may get a really low score if we cannot figure out how to run your program. The following are some of the issues you should address:
      • What does the program do?
      • How does a user invoke the program?
      • What options does the user have once the program is run?
      • What do the various screens look like when the program is run? (On windows, you can do this by hitting "Print Screen", which takes a snapshot of the screen in memory which you can then paste to a document. (you may need to paste this into paint, cut out only the part that you are interested in, and paste it in your users' manual
    4. A programmers' reference manual for your program. This document should have details on all the classes, their methods and variables. You can use comments in your code to write this document. However, if you do this, make sure your comments follow the javadoc commenting style, so that the documentation can be automatically generated from the code. You should address the following issues here:
      • What does each of your classes and methods do?
      • Which parts of the code were written by which member of your team? (it may be possible that the same class or method is written by more than 1 member. It may also be possible that one of the members did mostly testing and writing documentation, in which case his/her name will not be here.
      • Are there any known bugs in your program? If so, where?
      • Did you have to do something different from what you proposed?
    5. As a precautionary measure, you should print out your code (double-sided, if possible) and submit that along with the rest of the items.