CSE 373 Homework Assignments

Assignment 1

Our first assignment has two parts. The first consists of several pencil-and-paper exercises that involve working with sets, relations, and functions. The second is a Java programming problem that involves linked lists and a recursive method. By the time you are done with these, you'll be warmed up and ready to dig into new material.
Here are solutions prepared by Ben Hindman.

Assignment 2

The second assignment gets us directly into Eclipse and the Visual Applet Framework. Here you will enhance a pushdown stack ADT with some extra operations and also implement some modifications to the display options.

Assignment 3

The third assignment is an opportunity to gain fluency with three mathematical techniques for studying data structures and algorithms: functional description of abstract data types, proofs by mathematical induction, and comparing growth rates of functions using big O notation and its variations.
Here are solutions to the induction problems prepared by Artem Zhurid. Note that Artem's solutions are longer than they have to be, because he has provided a lot of explanation to make it clear to everybody why he has done things the way he has. This set of solutions also contains the induction proof for the sample midterm question dealing with the number of edges in a tree containing n nodes.

Assignment 4

This programming assignment involves partnerships, demonstrations and serves as a warm-up activity for the projects.

Project

The project is the main opportunity provided in the course for pursuing a topic of your choice related to the class. It is primarily a programming assignment involving partnerships and demonstrations. However, in most cases there is also a research component in which you gather information about your topic. There is also a written report.