COP 3530 (5540/00S)
Data Structures and Algorithm Analysis

Last modified:  7 May 2000 by R.Levow


New and Updated Items:
    Grades have been posted to WebCT.  (5/7)


Professor: Roy B. Levow (http://www.cse.fau.edu/~roy)

Class Time:  Saturday 9:00 - 11:50 am, LA-332 (Davie)


Textbook:  C++: An Introduction to Data Structures by Larry Nyhoff, Prentice-Hall, 1999.
     The author's website contains source code, presentation slides, and other materials.  The publisher's  text website supplemental materials.

Recommended References: (any C++ reference including the following)
     C++: The Complete Reference by H. Schildt, 3/e, Osborne McGraw-Hill, 1998.
     C++ How to Program by Deitel & Deitel, 2/e, Prentice-Hall, 1997.
     C++ Primer, by Lippman & Lajoie 3/e, Addison Wesley. 1998.

For helpful links on reviewing or getting up to speed on the portions of C++ that are covered in Foundations of Computer Science, check out C++ and Programming Classes at FAU and other useful links, including C++ Standard and C++ STL Reference.

Click here to view the Course Syllabus

Cleick here for General Information concerning course policies.

Click here for information on WebCT quizzes.


Reading Assignments and Exam Schedule

There will be weekly electronic quizzes based on the assigned readings using questions from the chapter review questions in CPL and the readings in LP.  Each quiz will last between 10 and 15 minutes and can be taken during the 48 hours before class.  As soon as the quiz is available a link will be added to the list below.  There will be a quiz for each class session except the first class and exam dates.  The quizzes can be accessed on the FAU WebCT server.
  1. January 15:  Ch. 1
  2. January 22: Ch. 2 - 4
  3. January 29: add Ch. 5; Quiz will be on Ch. 3 - 5
  4. February 5:Ch. 6 sections 1 - 3
  5. February 12: Ch. 6 sections 4-6, Ch. 7 sections 1 - 3
  6. February 19: Exam 1 (1 hour) and Ch. 7 sections 4 - 6 (no Quiz)
  7. February 26: Finish previously assigned material; no quiz
  8. March 4: Ch. 8
  9. March 11: Ch. 8 (no Quiz)
  10. March 18: Spring Break
  11. March 25: Ch. 9 sections 1 and 4 (no Quiz)
  12. April 1: Exam 2 (1 hour) and Ch. 10 (no Quiz)
  13. April 8: Ch. 10 (cont.)
  14. April 15: Ch. 10 (cont.)
  15. April 22: Ch. 12
  16. April 29: Final Exam

Programming Assignments

  1. Assignment 1: Modified Stack and RPN Evaluator:  Due: Saturday, February 5.
  2. Assignment 2: Queue Template Class: Due: Saturday, February 12
  3. Assignment 3: Linked List  with Iterator: Phase A Due: Saturday, March 25; Phase B Due: Saturday, April 1
  4. Assignment 4:  BST, Due: Saturday, April 22

Grading of programming assignments

As specified in the course syllabus, program functional correctness is only one component of the grade assigned to a program. The remainder of the grade is based on the program's style (including header and in-line comments, indentation, identifier names) and design (how you decompose the solution, what classes you use, etc.) A fuller description is contained in Programming Style Guidelines.
 

Submission of Programming Assignments

Programming assignments are due at the start of class on the date listed on the assignment unless otherwise specified.   Programs are to be submitted in two forms

Getting Help

You can get help from me in several ways. If you are seeking help with a program, you need to bring or provide the following If you are using email, send these as attachments to your mail message.  Be as specific as possible in describing the nature of the problem.  ("I'm having trouble." or "The program won't compile." or "The program doesn't work." don't give me enough information.  If you get a bus error or segmentation fault, use the debugger to find out exactly where in the program the error is occurring.  I'm available and willing to help, but you have to do your part.


Cheating and Abuse of Computing Privileges

Programming and other assignments should be completed by each student on their own. It is expressly forbidden for students to collaborate on assignments without the permission of the instructor.  Collaboration must be avoided.  It is okay to ask another student for advice when stuck on a program design, debugging, etc. A few friendly pointers and a bit of advice is fine, but "borrowing" or copying another's work is grounds for punitive action, including a failing grade on the assignment or for the course and on a second occurrence possible dismissal from the University.

Students are subject to the policy on academic irregularities contained in the FAU Undergraduate Catalog and the student handbook. If I receive programs or homework assignments that are substantially equivalent, I will not hesitate to punish all involved parties as provided by the rules.  Penalties range from an F (zero) on the particular work up to and including a failing grade for the course.  All such incidents are reported to the Registrar's Office and noted on the student transcript.  A second academic irregularity can lead to dismissal from the University.

In addition, the University and the computer science department maintain policies regarding proper behavior on its computer systems. Failure to adhere to these policies can result in loss of computer privileges, and possible legal action.


Programming Environment

While students may use their own PCs to develop and test their programming assignments, the final version of the program must be executable on the department's Unix workstations.   Student programs will occasionally be run to test them.

All programming projects must be written in C++, using only the standard C++ libraries.  The use of the C++ constructs taught in this course is an essential part of the assignments and the use of standard C constructs instead will be penalized.