UNC-CH COMP 410

Class Assignments

   Info For ALL:


  Info For ALL:



Assignment 5: Dijkstra's Algorithm for single source shortest path (weighted)
due Wed, November 28, at 11:55pm
(hand in via Sakai)

Implement and test a directed graph in Java. For building the digraph data structure, details are here.

For this problem, the digraph you work on will have weighted edges, and it may have cycles. Now you will use your digraph to solve the single source shortest path problem using Dijkstra's algorithm.

Details of Dijkstra are here.

You MAY USE the Java Collections library for this assignment. You may want lists, queues, hashmaps, etc. You will need a priority queue to make Dijkstra's algorithm efficient. Use your own ADT's or use the Java collections versions, your choice. Write your own graph code and your own Dijkstra's code.




Assignment 3: BHEAP Implementation in Java
due Wed, Oct. 28 11:55pm
(hand in via Sakai)

Implement and test a priority queue using a minimum binary heap in Java.
Assignment details here.

About midway in the development time, the JAR file for the oracle tests and the informal test explanations will be released to you via Sakai.

Do not use the Java Collections library for this assignment. Write all your own code.




Assignment 2: BST Implementation using Linked Cells, in Java
due Sunday, Oct. 7, 11:55pm
(hand in via Sakai)

Implement and test a Binary Search Tree in Java. Use linked cells (not arrays).
Assignment details here.

As befoer, about midway in the assignment period we will post a test oracle and explanation on Sakai. This is to help you, but do your own testing and be thorough.

Do not use the Java Collections library for this assignment. Write your own linked cell and tree code.

object delegation ... notes on doing this program here.




Assignment 1: LIST Implementation using Linked Cells, in Java
due Tues, Sep. 11, 11:55pm
(hand in via Sakai)

Implement and test a LIST in Java. Use linked cells (not arrays).
Do not use the Java Collections library for this assignment. Write your own linked cell and list code.

Assignment details are here.

By about mid-point in the assignment time frame, we will post a jar file on Sakai with tests in it; we will also post an English description of what those tests are requiring your ADT implementation to do.

Before that point, you should be creating your own tests to thoroughly exercise your code. When you receive the oracle tests, you should already be convinced that your code works properly. Applying the oracle tests will conform this (hopefully) and also confirm for you that your code is in the proper format to feed to the grader.

Use the english specs in the Assignment writeup to decide what behavior you need to implement and what each methods should do, especially with the special data cases.

the sentinel ... notes on doing this program here.




Assignment 0: Hello World! (Using Eclipse with the Test Oracle)
due Sun, Sep. 2 at 11:55pm
(hand in via Sakai)

This assignment is intended to show you how to use our test oracle with Eclipse.

The test oracle for each assignment is intended to assist you in thoroughly testing your code. It is not intended to be a complete set of tests. You can think of the oracle as a partial set of test cases that will help you make sure your code is written to the correct structure and format. The goal of giving you the oracle is so you can know that your code will be gradable by our software.

We want you to write your code, and also give good thought to how to completely test it (how to uncover the errors that might be in your work). You should test your code with your own tests first, and when you are convinced you have done a thorough job you can use the supplied test oracle to check.

The oracle is not a substitute for doing your own thinking about how your code should be exercised. We publish an english version of the tests to help you see what behavior we are looking for.

Details here.