There are two parts to each problem set:
- The HTML handout given to the students before they do the problem
set
- The source code that provides functionality for the 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
- It is no longer neccessary to download a separate jar containing the
cs101 package. These utility classes have been included in all of the jars
provided.
Setup Laboratory: Introduction (Java Eyes)
usage guide |
view handout |
executable jar |
full source jar |
student jar |
browse javadoc |
WebStart it!
- To run the demo:
java -jar javaeyes.jar
First Laboratory: Expressions, Statements, and Interactions (Etch-a-Sketch)
usage guide |
view handout |
executable jar |
source jar |
browse javadoc |
WebStart it!
- This application contains a third-party tool called BeanShell for compiling code at
run-time.
- New: Etch-a-Sketch now handles infinite loops in
student code gracefully!
- To run the demo click the WebStart link above
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
- This application contains a third-party tool called BeanShell for compiling code at
run-time.
- To run the demo:
java -jar spirograph.jar
Second Laboratory: Interfaces, Classes, and Objects (Ball World)
usage guide |
view handout |
executable jar |
full source jar |
student jar |
browse javadoc |
WebStart it!
- To run the demo click the WebStart link above.
Third Laboratory: Systems of Objects; Nodes and Channels (Node Net)
usage guide |
view handout |
executable jar |
source jar |
browse javadoc |
WebStart it!
- To run the demo click the WebStart link above
Fourth Laboratory: Dispatch and Procedures (Calculator)
view handout |
executable jar |
source jar |
browse javadoc
- To run the demo:
java -jar calculator.jar
Fourth Laboratory (alt): Interactive Control Loops (Balance)
view handout |
executable jar |
source jar |
browse javadoc
- To run the demo:
java -jar balance.jar
Fifth Laboratory: GUI, Polymorphism (Breakout)
view handout |
executable jar |
source jar |
browse javadoc
- To run the demo:
java -jar breakout.jar
Fifth Laboratory (alt): GUI (Scribble)
view handout |
executable jar |
source jar |
browse javadoc
- To run the demo:
java -jar scribble.jar
Sixth Laboratory: Communicating Applications (Cat And Mouse)
view handout #1 |
view handout #2 |
executable mouse jar |
executable cat jar |
source jar |
browse javadoc
- To run the demo, use these commands in this order either on
two different computers, or on the same computer:
java -jar mouse.jar
java -jar cat.jar
Seventh Laboratory: Client/Server (Shared Whiteboard)
view handout |
executable jar |
source jar |
browse javadoc
- The client application requires scribble.jar.
- To run the demo, use these commands. You need one server, and can
run several clients. The server and clients can run on different
computers, or on the same computer.
- Server:
java -cp "sharedwhiteboard.jar" cs101.net.RunServer
- Client:
java -jar sharedwhiteboard.jar
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
- To run the demo:
java -jar piglatin.jar
Producers and Consumers
executable jar |
source jar |
browse javadoc
- To run the demo:
java -jar pnc.jar
String Transformers
executable jar |
source jar |
browse javadoc
- To run the demo:
java -jar stringtransformers.jar
This page is a part of