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. The content of this home page is ever-changing, with new things added in frequently.


Personnel

Lab Instructor Email Office Hours and Location
Lin Yang galabing@cis.uab.edu Tue 8:00am ~ 12:00pm, CH154 (Undergrad Lab) or by appointment

General Information

  1. Lab meet at CH145 every Wednesday.
  2. Lab attendance is MANDATORY (and for that matter, lecture attendance is MANDATORY).
  3. There are five assignments in total, each including a written part and a programming part (except for the first one). Usually the written part dues in one week, the programming part dues in another week, and then you can take a short break before the next one comes in :) Please refer to the calendar for details.
  4. All assignments are to be solved and written up alone and independently. Any form of cooperation is forbidden.

Tentative Calendar

Week Date Topics Assignment
1 Aug 22 Introduction A1(programming) assigned
2 Aug 29 A1 help session
3 Sep 5 A1(programming) due
4 Sep 12 A2(written+programming) assigned
5 Sep 19 A2 help session
Review A1(programming)
A2(written) due
6 Sep 26 A2(programming) due
7 Oct 3 A3(written+programming) assigned
8 Oct 10 A3 help session
Review A2(written+programming)
A3(written) due
9 Oct 17 A3(programming) due
10 Oct 24 A4(written+programming) assigned
11 Oct 31 A4 help session
Review A3(written+programming)
A4(written) due
12 Nov 7 A4(programming) due
13 Nov 14 A5(written+programming) assigned
14 Nov 21 A5 help session
Review A4(written+programming)
A5(written) due
15 Nov 28 A5(programming) due
16 Dec 5 Review A5(written+programming)

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
A1 (programming) Aug 22 Sep 5
A2 (written) Sep 12 Sep 19
A2 (programming) Sep 12 Sep 26
A3 (written) Oct 3 Oct 10
A3 (programming) Oct 3 Oct 17
A4 (programming) Oct 16 Nov 7
A4 (written) Oct 24 Oct 31
A5 (written) Nov 14 Nov 28

Submission

For the written part, the submission is paper-based, in lab on the due date. No submissions are accepted after that.

Don't forget to write down your full name and Blazer ID on top of each page.

For the programming part, the source code should be sent as eamil attachment to galabing@cis.uab.edu by the midnight on the due date, so you have a final chance to work on it during the earlier lab session. You should zip all the files of source code (not executables) into FirstName_MI_LastName_Ax.zip (replace the corresponding names and 'x' with the number of the assignment: e.g. James_A_Gosling_A2.zip). No late submissions are accepted!

All source code modules should be well documented, and at the beginning of each file include your full name and Blazer ID in comments. A readme.txt should be provided in each programming submission, explaining how to run the program and any other information, including if the program doesn't work.

If you create your own file (which is not necessary), make sure you describe the module clearly at the beginning of the file.

Important:
  1. For email submission, use the subject CS303 Submission.
  2. Submit as early as possible (during the lab time is prefered), espcially don't wait till the last minute -- your clock may be slower than the one in lab!
  3. Even if your program is not completed, you should submit it by the deadline if you don't want to receive a 0 on this assignment.

Grading

The grade for each assignment (written and programming treated separately) will be on a scale from 0 ~ 10 (the weight distribution is specified within each assignment).

The average grade on all assignments will serve as your final lab grade for CS303.

I know nothing beyond this point. The combinition of your class and lab grades is handled by Dr. Sloan.