Caution! You are looking at an out-of-date version of this course website from Spring 2015.

Assignments

On this page you'll find the programming assignments for the course. If you're stuck, we suggest reading the frequently asked questions and the possible progress steps in the checklist. Our extra credit, late day, and collaboration policies can be found on the syllabus page.

# DUE LOGO ASSIGNMENT COLLABORATION SUBMIT
0 Monday
Feb. 9th
Hello, World (Checklist)
This assignment will introduce you to programming in Java and familiarize you with the mechanics of preparing and submitting your assignments.
This is an individual assignment. Submit!
1 Monday
Feb. 16th
Conditionals & Loops (Checklist)
The goal of this assignment is to write five short Java programs to gain practice with loops, conditionals, and arrays.
This is an individual assignment. Submit!
2 Monday
Feb. 23th
N-Body Simulation (Checklist)
Your challenge is to write a program to simulate the motion of N particles in the plane, mutually affected by gravitational forces, and animate the results.
This is an individual assignment. Submit!
3 Monday
Mar. 2nd
Recursive Graphics (Checklist)
Write a program that plots a Sierpinski triangle, as illustrated to the left. Then, you'll develop a program that plots a recursive pattern of your own design.
This is an individual assignment. Submit!
Wednesday
Mar. 4th
Programming Exam 1 Clicking on the submit link prior to the time you take the exam will result in severe penalties. This is an individual exam. Submit!
4 Monday
Mar. 23rd
Hamming Codes & TOY (Checklist)
Write a TOY program to encode data using Hamming codes. Then write a TOY program to correct encoded data that has been corrupted.
This is an individual assignment. Submit!
5 Monday
Mar. 30th
Linear Feedback Shift Register (Checklist)
Write a program that produces pseudo-random bits by simulating a linear feedback shift register, and then use it to implement a simple form of encryption for digital pictures.
This is an individual assignment. Submit!
6 Monday
Apr. 6th
Guitar Hero (Checklist)
Write a program to simulate plucking a guitar string using the Karplus-Strong algorithm. Turn your computer's keyboard into a musical instrument.
You can work with a partner on this assignment. Submit!
7 Monday
Apr. 13th
Markov Model (Checklist)
Use a Markov chain to create a statistical model of a piece of English text. Simulate the Markov chain to generate stylized pseudo-random text.
You can work with a partner on this assignment. Submit!
8 Monday
Apr. 20th
Traveling Salesperson Problem (Checklist)
Implement two greedy heuristics to find good (but not optimal) solutions to the traveling salesperson problem (TSP).
You can work with a partner on this assignment. Submit!
Wednesday
April 30th
Programming Exam 2 Clicking on the submit link prior to the time you take the exam will result in severe penalties. This is an individual exam.
9 Monday
May 11th
Atomic Nature of Matter (Checklist)
Re-affirm the atomic nature of matter by tracking the motion of particles undergoing Brownian motion, fitting this data to Einstein's model, and estimating Avogadro's number.
You can work with a partner on this assignment. Submit!