Caution! You are looking at an out-of-date version of this website from Fall 2015.
To access the current version, click here.

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
Sept. 21st
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
Sept. 28th
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
Oct. 5th
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
Oct. 12th
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!
4 Monday
Oct. 19th
Global Sequence Alignment (Checklist)
Write a program to compute the optimal sequence alignment of two DNA strings. This program will introduce you to the field of computational biology.
You can work with a partner on this assignment. Submit!
5 Monday
Nov. 9th
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
Nov. 16th
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
Nov. 30rd
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
Dec. 7th
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!
9 Monday
Jan. 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!
With special thanks to Kathleen Ma '18 for creating these wonderful assignment logos.