CS303 Algorithms and Data Structures Lab


Welcome to CS303 lab home. On this page you can find plenty of information about CS303 lab. The content of this website is ever-changing, so check back frequently.

Note: Use Firefox to view this web site.


Personnel

Lab Instructor Email Office Hours and Location
Lin Yang galabing@cis.uab.edu Monday 1-5pm, Undergraduate lab (CH154)
Swetha Burugupalli swethab@uab.edu Tuesday 2:30-3:30 pm, Undergraduate lab (CH154)

General Information

  1. Lab meet at CH435 every Monday 7:30-9:20. Lab attendance is mandatory.
  2. There are seven assignments in total (the seventh is optional), each with a written homework and programming problems.
  3. All assignments are to be solved and written up alone and independently. Any form of cooperation is forbidden.

Tentative Calendar

Week Date Lab Topics Assignments
1 Jan 12 Administrivia and Java warm-up Assignment 1 released
2 Jan 19 Martin Luther King holiday
3 Jan 26 Algorithm analysis and basic data structures Assignment 1 (homework) due
4 Feb 2 Recursion and trees Assignment 1 (programs) due
Assignment 2 released
5 Feb 9 Sorting Assignment 2 (homework) due
6 Feb 16 Sorting Assignment 2 (programs) due
Assignment 3 released
7 Feb 23 Searching Assignment 3 (homework) due
8 Mar 2 Searching Assignment 3 (programs) due
Assignment 4 released
9 Mar 9 Spring Break
10 Mar 16 Graph basics Assignment 4 (homework) due
11 Mar 23 Graph basics Assignment 4 (programs) deadline extended
Assignment 5 released
12 Mar 30 Directed graphs Assignment 4 (programs) due
Assignment 5 (homework) due
13 Apr 6 Directed graphs Assignment 5 (programs) due
Assignment 6 released
14 Apr 13 Minimum spanning trees and shortest paths Assignment 6 (homework) due
Assignment 7 (optional) released
15 Apr 20 Minimum spanning trees and shortest paths Assignment 6 (programs) due
16 Apr 27 Help session Assignment 7 due

Submission

For each written homework, submission is paper-based, in lab. Whenever possible, edit your homework on a computer and submit printed version; otherwise, write clearly.

For programming problems, submit source code and report in lab. I will provide submission instructions for each assignment.


Resource

Eclipse guidance: a graphical illustration on how to build a program in lab environment - important to starters!
Java documentation: online documentation and tutorials of Java APIs.
TopCoder algorithm tutorials: online articles on algorithm related theories and practical issues written by skilled programmers.
Programming pearls: online essays about insights into applying algorithms to real world applications (by Jon Bentley).
Facebook puzzles: programming puzzles used by Facebook for hiring.