CPS 108 Assignments
Spring 1999
For each project you (or your group) should have a small three-ring notebook
that contains all code, all design documents, and all documentation for
the project. A physical notebook is not required, you can gather all the
paper together and use a large spring-clip; however, you must develop a
software portfolio for each project you do.
Warm-ups
These are simply to help get you acclimated to the course and to give me
a little bit more information about you. They will as much time as you
are willing to spend on them :)
Code Critiques
Code critiques will be given throughout the semester in order to improve
students ability to read and understand code.
-
bowling
To submit, use the assignment name: crit.bowling
Mastery Projects
Mastery projects are solo projects, you must work by yourself. These
mastery projects are designed to ensure that that everyone who completes
the course is "certified" as capable of writing and understanding reasonably
complex C++ and Java programs. For each mastery project, you must hand
in an associated test program that exercises every line in your program.
C++
-
arithmetica
To submit electronically, use the assignment name: arithmetica
Unary and Multi-argument functions are no longer required and will
be considered extra credit if you did them.
Java
-
pig
To submit electronically, use the assignment name: pig
-
whiteboard
Group Projects
Small group projects will be done by two students, medium group projects
by three or four students, and large group projects by four or five students.
Since group projects can often be less than the sum of the individuals
involved, several measures will be taken to help maintain the fairness
of the group's grade. For each group project, you are required to write
an evaluation of the group's effectiveness. Additionally, you will be provided
with your group members for all projects. Your partner will be chosen
randomly for the small group projects and based on your recommendations
for the larger group projects.
There will be one medium group project in C++ and one in Java, one large
group project in Java, and at least two small group projects.
C++
-
HyperWag - Hyper-linked Week-at-a-Glance
Find out which group you are in here.
Some example code to start things off can be found here.
An addendum to the requirements can be found here.
To submit electronically use the following assignment names:
-
First deliverable: hyperwag.design
-
Second deliverable: hyperwag.proto
-
Third deliverable: hyperwag.final1
-
Fourth deliverable: hyperwag.final2
-
Evaluation: hyperwag.eval
-
SCOOBI - Scandir: an Object-Oriented Browser and Indexer
Find out which group you are in here.
Some example code to start things off can be found here.
To submit electronically use the following assignment names:
-
First deliverable: scoobi.scandir
-
Second deliverable: scoobi.sools
-
Third deliverable: scoobi.sync
-
Fourth deliverable: scoobi.final
-
Evaluation: scoobi.eval
Java
-
Adventure
Find out which group you are in here.
An addendum to the requirements can be found here.
To submit electronically use the following assignment names:
-
First deliverable: adventure.proto
-
Second deliverable: alife.proto
-
Third deliverable: adventure.final
-
Evaluation: adventure.eval
Readings
Turning in a one to two page reaction to the following readings by the
specified day can earn you extra credit points. In general, your reaction
should discuss the issues brought up in the reading. It isn't intended
to be a "book report" where you tell what happened in the reading. The
idea is that you talk about how the reading affects your programming, design,
etc. For example, talk about how it could have affected programs you have
written in the course. In general, it should demonstrate that you did the
reading and you thought about and understand it.
-
By Wednesday, March 31:
To submit, use the assignment name: reading.1
Try writing this as if you are trying to convince someone (your boss,
a former/future group member, a company, etc.) that the ideas expressed
in the reading are worthwhile or bunk. Include a brief explanation of who
your proposed audience is and the key idea(s) you are defending or attacking.
Comments?