CS 303 Algorithms and Data Structures (Laboratory)

Welcome to the CS 303 (lab) home page. On this page you can find plenty of information about this lab. Please pay special attention to the calendar and the submission policy (I will put them on this website later). The content of this home page is ever-changing, with new things added in frequently.


Syllabus

[Read Syllabus] Please read the course syllabus carefully! (You will need the Acrobat reader to read the syllabus)

Personnel

Lab Instructor Email Office Hours and Location
Wei-Bang Chen wbc0522@uab.edu Thu 2:00pm ~ 3:00pm, CH128 or by appointment

General Information

  1. Lab meet at CH430 every Thursday.
  2. Lab and lecture attendance is MANDATORY. I will pass a sign-in sheet (begin at Jan 17, 2008). Please remember to sign-in!
  3. There are six (or seven) assignments in total, each including a written part and a programming part. The written part dues in one week, the programming part dues in 2 weeks. Please refer to the Assignment section for details.
  4. All assignments are to be solved and written up alone and independently. Any form of cooperation is forbidden.

Laboratory Instructions

The lab concentrates on practical applications of algorithm design and analysis. The programming language for this lab is JAVA, and the major platform is Eclipse. For each programming assignment, a skeleton code is provided so that you don't have to worry about the trivial issues like data I/O. All you have to concentrate on is the core algorithm.

A graphical illustration is provided on how to create and run a java program using Eclipse -- important to starters!

Important: DON'T just save your files on the computer. They might be removed after you log off!
Instructions on how to save your data


Assignments

Assignment Date Assigned Date Due References / Source Code Solution
Written Assignment 1 Jan 10 Jan 17 N/A N/A
Programming Assignment 1 Jan 10 Jan 24 Download N/A
Written Assignment 2 Jan 24 Jan 31 What is sequence alignment? Solution for Q1 & Q2
Programming Assignment 2 Jan 24 Feb 7 Download (LinkedList solution) N/A
Written Assignment 3 Feb 7 Feb 14 N/A Solution
Programming Assignment 3 Feb 7 Feb 28 Download Solution
Written Assignment 4 Mar 7 Mar 20 N/A Solution
Programming Assignment 4 Mar 7 Mar 20 (Extend to Mar 27) The Java Tutorials: Creating a GUI with JFC/Swing N/A
Written Assignment 5 Mar 20 Mar 27 N/A N/A
Programming Assignment 5 April 3 April 17 N/A N/A
Written Assignment 6 April 10 April 17 N/A N/A
Programming Assignment 6 April 9 April 24 Download N/A
Written Assignment 7 (Optional) April 10 April 24 N/A N/A
Programming Assignment 7 (Optional) April 9 April 24 N/A N/A

Lab exercises

Lab exercise Date Topic Source Code
Lab exercise 1 Jan 10 Programming in Java N/A
Lab exercise 2 Jan 17 List, stack and queue N/A
Lab exercise 3 Jan 24 Linked list Download
Lab exercise 4 Jan 31 Binary tree Download
Lab exercise 5 Feb 7 Hash Download
Lab exercise 6 Feb 14 Palindrome N/A
Lab exercise 7 Feb 21 Array based binary min-heap N/A
Lab exercise 8 Feb 28 Dijkstra's algorithm (Shortest Path Problem) N/A
Lab exercise 9 Mar 6 Depth-first Search algorithm N/A
Lab exercise 10 Mar 20 Finding Spanning tree in un-weighted graph N/A
Lab exercise 11 Mar 27 Prim's algorithm - Solving minimum spanning tree problem in a weighted graph N/A
Lab exercise 12 April 3 Application - Game tree N/A