Problem Sets



There are two parts to each problem set: We have packaged up the source code and javadoc for each problem set in a jar file. Each jar file has the following structure:

     src/<psetname>/*.java - source code
     doc/<psetname>/*.html - javadoc generated from the source code
We have also packaged up the compiled class files in an executable jar. This executable jar allows you to run the demo for a problem set without having to compile the source code or unpack the jar file. If you want to view the source or read the javadoc, just unpack the source file using jar.

All problem sets require classes from the cs101 package. This package is a collection of utility classes we have written.

The Java SDK 1.4 or higher is required for several of the problem sets. You can dowload the JDK from Sun's Java Page.

The problem sets are presented in roughly the order we expect they would be used in a class.

As a reminder, all materials on this page are subject to our terms of use.


CS101 Utility Classes

binary jar | source jar | browse javadoc


Setup Laboratory: Introduction (Java Eyes)
usage guide | view handout | executable jar | full source jar | student jar | browse javadoc | WebStart it!
First Laboratory: Expressions, Statements, and Interactions (Etch-a-Sketch)
usage guide | view handout | executable jar | source jar | browse javadoc | WebStart it!
First Laboratory (alt): Expressions, Statements, and Interactions (Spirograph - Deprecated)

This problem set is obsoleted by Etch-a-Sketch which works better, looks better, runs more reliably, makes more sense, and is actually named after the right toy. Other than that, the two are exactly the same :-)

view handout | executable jar | source jar | browse javadoc
Second Laboratory: Interfaces, Classes, and Objects (Ball World)
usage guide | view handout | executable jar | full source jar | student jar | browse javadoc | WebStart it!
Third Laboratory: Systems of Objects; Nodes and Channels (Node Net)
usage guide | view handout | executable jar | source jar | browse javadoc | WebStart it!
Fourth Laboratory: Dispatch and Procedures (Calculator)
view handout | executable jar | source jar | browse javadoc
Fourth Laboratory (alt): Interactive Control Loops (Balance)
view handout | executable jar | source jar | browse javadoc
Fifth Laboratory: GUI, Polymorphism (Breakout)
view handout | executable jar | source jar | browse javadoc
Fifth Laboratory (alt): GUI (Scribble)
view handout | executable jar | source jar | browse javadoc
Sixth Laboratory: Communicating Applications (Cat And Mouse)
view handout #1 | view handout #2 | executable mouse jar | executable cat jar | source jar | browse javadoc
Seventh Laboratory: Client/Server (Shared Whiteboard)
view handout | executable jar | source jar | browse javadoc

Pen-and-Paper

These problem sets do not require the student to write or execute any code. They are written assignments, to be done with pen-and-paper (or text editor).

Written Assignment 1: Program Design
view handout


Written Assignment 2: System Design
view handout


Written Assignment 3: Documentation
view handout


Not ready for prime-time

These problem sets are not ready for prime-time. They are just a bunch of source code (possibly undocumented) that might someday become a problem set. They have functional demos. Feel free to use them at your own discretion.

Pig Latin
executable jar | source jar | browse javadoc


Producers and Consumers
executable jar | source jar | browse javadoc
String Transformers
executable jar | source jar | browse javadoc
This page is a part of Lynn Andrea Stein's Rethinking CS101 project, part of the Computers and Cognition Group at the Franklin W. Olin College of Engineering.
This material is based upon work supported by the National Science Foundation under Grant No. EIA-0196404. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation
Valid HTML 4.01!
Valid CSS!
cs101-webmaster@olin.edu
Last modified: Monday, December 5 2005 at 5:19 AM EST