COP3530 -- Discrete Data Structures and Algorithms
Computer & Information Sciences & Engineering Department
University of Florida, Summer-C, 1999
hguo@cise.ufl.edu
), ofc: CSE/E445D, phn: TBD lnoronha@cise.ufl.edu
), ofc: CSE/E445Djsivan@cise.ufl.edu
), ofc: CSE/E436, phn: 392-6849 DESCRIPTION: This course presents in detail essential
mathematical concepts, algorithm design and analysis,
and programming practice for implementing customary
data structures and algorithms. This is not a Java
programming course, or an advanced data structures
course.
The course will begin with a brief overview of
Java, the required programming language for this
class. Data structures will be comprised of
arrays, lists, queues, stacks, trees, and hash tables.
Searching, sorting, and low-level data structural
operations will comprise the majority of algorithms.
Example applications will be taken from the
literature.
TEXTBOOKS:
Goodrich, M.T. and R. Tamassia. Data
Structures and Algorithms in Java
New
York: John Wiley & Sons (1998).
ISBN: 0471193089 [OPTIONAL]
OTHER MATERIAL: Course notes on the Web, at the following URL:
http://www.cise.ufl.edu/~mssz/DatStrucAlg/Top-Level.html
EVALUATION: 5 Programming Projects 50%, 10 Homeworks 20%,
EXAMS will be given in class and are closed book format. However, you may use one handwritten 8-1/2" x 11" crib sheet (both sides). Each midterm exam will require one class period, and will be announced at least one week in advance. The first and second midterm exams have 50 and 100 points maximum score, respectively.
FINAL EXAM: There will be a cumulative final exam having a maximum score of 150 points.
PROJECTS are Java programming assignments done outside of class in one of the CIRCA labs, or in the CISE lab if you have a CISE account. These are INDIVIDUAL projects. Any copying will be considered cheating. Please understand that there is a not-so-subtle difference between discussing your project with a colleague or friend and copying it wholly or in part.
PROJECTS ARE DUE AT THE BEGINNING OF CLASS. LATE PROJECTS ARE PENALIZED BY 10% FOR EACH CALENDAR DAY LATE. PROJECTS MORE THAN 4 CALENDAR DAYS LATE WILL NOT BE ACCEPTED!
Project extensions may be allowed only for documented, unavoidable conflicts REPORTED IN ADVANCE AND ALLOWED BY THE INSTRUCTOR. Only DOCUMENTED emergency medical excuses can be accepted after a project is due.
Project 1 will have a maximum score of 50 points. Projects 2, 3, and 4 will have a maximum score of 100 points. Project 5 will have a maximum score of 150 points, and will thus be more complex. You will have two weeks to complete Projects 1-4, and approximately three weeks to complete Project 5. Assignments may overlap somewhat, due to related topics.
RETURN POLICY: Every attempt will be made to return projects and exams as soon as possible, during class. Old homeworks and exams can be obtained from TAs during office hours.
SCHEDULE:
Week 1 - Review of Discrete Math, Java, Complexity, Recursion Week 2 - Arrays & Lists, Sorting & Searching Weeks 3-4 - Sets & Strings; Stacks, Heaps, and Queues Weeks 5-7 - Graphs & Trees, Operations on Graphs & Trees Weeks 8-9 - Hash Tables, Performance Measurement & Modelling Weeks 10-11 - Applications of Data Structures; Advanced Topics
GRADING: Standard with NO CURVING OF ANY SCORES, as follows:
90 - 100 : A 85 - 89 : B+ 80 - 84 : B 75 - 79 : C+ 70 - 74 : C 65 - 69 : D+ 60 - 64 : D 0 - 59 : E