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
Sagar Thapaliya sagar (at) cis.uab.edu Wednesday 12:30 - 2:00 pm, GRAIL lab (CH142) and with appointment

General Information

  1. Lab meet at CH435 every Wednesday, 3:00-5:30. Lab attendance is mandatory.
  2. There are seven assignments in total (the seventh is optional), each with a) written homework b) programming problems and c) Writing Assignment
    Programming assignment should be accompanied with code documentation.
    Written assignment should describe your approach to programming assignment, your implementation and what you learnt from the project.
  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 Jun 3 Administrivia and Java warm-up Assignment 1 released
Stub Codes
2 Jun 10 Algorithm analysis and basic data structures Assignment 1 (homework) due
3 Jun 17 Data Structures, Recursion Assignment 1 (programs) due
Assignment 2 released
4 Jun 24 Data Structures, Recursion Assignment 2 (homework) due
5 July 01 Sorting and Searching Assignment 2 (programs) due
Assignment 3 released
Stub Codes for Sort
Stub Codes for Search
Sample input/result files
6 July 08 Sorting and Searching Assignment 3 (homework) due
7 July 15 Graph Assignment 3 (programs) due
Assignment 4 released
Stub Codes
10 Jul 29 Last lab
All works 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.