Class Project - CSCI 200L, Fall 2011

The two classes, CSCI 201 and CSCI 200, will cooperate to design and build a manufacturing assembly cell. The CSCI 201 team will do the backend, while the CSCI 200 will do the GUI and animation. The teams will cooperate in the design of the API between the backend and frontend.
Points and Deadlines
(Please note that access to homework assignments is restricted.)
Class Project Points Due
Factory Design 20 11:45PM, 10/23/2011
Factory Skeleton v.0 20 11:45PM, 11/6/2011
Factory Final Design 30 11:45PM, 11/13/2011
Factory Release 1 40 11:45PM, 11/13/2011
Factory Release 2 50 11:45PM, 11/27/2011
Final Presentation 10 11/28 & 11/30 during class
[BC: paragraph added 10/3/2011]
The team member list for the Factory project teams have been made available. If you would like to swap a team member with another team, please let me know by 10/7/2011. I would require an e-mail from each of the two team members saying that they agree to the swap.

[BC: paragraph added 10/20/2011]
Usage guide for SVN can be found here (.doc).

You can also get up to 10 extra credit project points if you participate in the USC Joint Education Program. The detail of this will be given out at the beginning of Lecture 2

[BC: section changed 11/7/2011]
There are two major changes to the grading policy for the Factory project:
  1. Unlike HW submissions, your project submissions are expected to be on-time. Late submissions will risk a grade of zero.

  2. There are only "team points" and no "individual points". The TAs will try their best to give "extra credits" to individual if the team can document which students performed above and beyond their assigned duties.

    Finally, if a team manager informs the instructor that a certain student should not receive credit for a particular deliverable, that student will receive a grade of zero for his/her "team points" for that deliverable.

The Operational Concepts Description
(According to the CS 201 web page.)
Factory Project Description
Please see The Kitting Cell.
Each team will be managed by a student taking the software management class. The managers will NOT assist with the design, implementation, or integration. Instead, the managers will manage: attend meetings, make sure meetings are effective, check to see if students are on plan, etc. Managers will produce a weekly status report for the instructors.
eXtreme Programming
You are to use the eXtreme programming methodology. Mostly that means detailed plans for delivery and task cards for individuals. These task cards will be reviewed by the managers. How you implement task cards (physical cards or pages on the wiki) is up to you and your manager.
Subversion is a repository for managing your code. Rather than emailing code around, you will store it, check it out, and update it. More about subversion will be forthcoming.
There will be six deliverables (due dates below):
  1. A design for the v.0 skeleton. This includes interaction diagrams, agent/backend design (for CSCI 201), frontend design (for CSCI 200), and the DoXXX(...) API. The point of v.0 is to get the teams off to a quick start and have some code working without worrying about the full integration.

    [BC: added 10/17/2011] For CS 200 students, this means that you need to:

    1. For every screen your team can think of, draw a layout of the screen. This includes all the control panels.
    2. For every class the CS 200 part of the team needs to implement, figure out what properties/attributes it should have.
    3. Jointly design and document the DoXXX(...) API with your CS 201 teammates.

  2. v.0: A skeleton. This will be stored in the tags part of your repository as "KittingCell-v0". Your skeleton will have 3 non-integrated parts:
    1. The kit robot picking kits from the agv/conveyor, putting them on the stand, and the reverse.
    2. The parts robot picking up parts from the nests and putting them in the kit - includes vision.
    3. Parts dumped into bins and fed down the lanes.

  3. A final design that includes both v1 and v2. This includes interaction diagrams, agent/backend design (for CSCI 201), frontend design (for CSCI 200), and the DoXXX(...) API. The design is a living document for the life of the project. As design decisions change, this document should be updated. The design must handle the non-normative scenarios.

  4. v.1: A working version of the normative scenario for the cell. This will be stored in the tags part of your repository as "KittingCell-v1".

  5. v.2: A second and full delivery of the cell with all the non-normative cases handled. This will be stored in the tags part of your repository as "KittingCell-v2".

  6. Final Presentations during the last week of classes.
Academic Integrity Policy
Please make sure you read the Academic Integrity Policy of this course.

[Last updated Sat Sep 19 2020]    [Please see copyright regarding copying.]