Syllabus

I have attempted to be brief.

Course Objectives

I have three goals for each of you in this course:

  1. Master the use of six major data structures.

  2. Demonstrate competence regarding the algorithmic complexity of the use of these structures.

  3. Be comfortable reading and writing programs in the Java programming language.


To develop mastery (#1), you must practice—a lot. Therefore, we will spend a substantial amount of time reading and writing programs in the Java programming language that make use of the structures we are studying (#3). As part of this process, we will evaluate the performance, both empirically and algorithmically, of those structures (#2).

Contact

The course mailing list is datastructures at rockalypse dot org. Most of your questions about content can go there. Why? Because we should all be supporting each other in our learning efforts.

My email is mjadud at allegheny dot edu. Use it for questions of a more personal nature (making appointments, etc.). My AIM name is jadudm. Allegheny's GTalk might work as well (mjadud).

You have my phone number. Remember: no voicemail. Unless, of course, it is an emergency. You are welcome to use SMS for quick things, that works for me. And, as always, you can't wake me up, so don't worry about calling on the late side. Email and IM are the preferred modes of communication.

My full schedule is available online.

Grading

The majority of your grade will come from activities that directly show your progress towards achieving the course goals. For this reason, we will stress the importance of good programming practice and testing in a variety of ways.

10% Attendance and Participation. Failure to attend and participate actively will hurt your final grade. See here for more about participation. Missing two labs (unexcused) drops a letter grade automatically, and missing four will be grounds for failure in the course.
65% Coursework. Your efforts in this course will be criterion referenced, and they contribute equally to your final grade.
10% Code Review. Each pair will do one code review this semester.  Given our numbers, that works out to one per structure.
15% Examinations. We will have a mid-term checkup and a final exam.


The majority of your course grade comes from graded laboratory/homework assignments. 

Failure to be prepared for class and participate on a regular basis can cost you a letter grade. Failure to do well on both the midterm and final exam can cost you a letter grade. A student who does perfect work on all of the homework, never comes to class, and gets a zero on both examinations would receive a C in this course.

Submission and Revision

Assignments may be submitted up to one week late without penalty. After that, one letter grade per day may be lost.

All assignments may be revised. However, you must 1. submit your work on time, and 2. the pair responsible for the work must meet with me within a week of receipt of grades if a revision is to take place. You have one week for revisions after that point.

Creative Commons License Creative Commons BY-NC-SA 3.0 Licensed where possible.