![]()
Course Organizer
COP 4531 Complexity and Analysis of Data Structures and Algorithms
Fall Semester 2013
Root View: Course Components Syllabus
jumpThe course syllabus establishes course policies on grading, attendance, and exams. The syllabus should be read in detail at beginning semester. Calendar
jumpThe course calendar provides a detailed temporal view of the course, including lecture coverage, assignments, and due dates. The calendar will be updated regularly. Lectures
Notes
Lecture notes are in one of two forms: (a) a slide show with an accompanying narrative (click "Narrative on" to see the narrative, click "Frames[Windows]" to toggle between displaying the narrative in a separate frame or a separate resizeable window.) (b) a pdf document suitable for detailed reading. These notes provide a compact view of the important topics of the course. They also serve to ground the text material in a real programming environment. Lecture slides and other documents will be created and updated "on the fly" during the semester, so you should visit them regularly. Report bugs/corrections in the appropriate Blackboard discussion forum. Assignments Assignments will be released through the Calendar. See also Submitting Assignments (below) and Grading Assignments. LIB The course code distribution library LIB = /home/courses/cop4531p/fall13 My FSU
The FSU/Blackboard Portal, where you will find this course. The course site is the main communication resource for the class. Here you can get help, talk to other students, retrieve your grades, and generally keep up with course news and announcements. Textbook
The textbook for the course is Cormen, T.H., et al, Introduction to Algorithms (3rd ed.), MIT Press, 2009 (ISBN 978-0-262-03384-8). The textbook provides many details and extra material not covered directly in the notes, as well as a more mathematical treatment of algorithms. Reading and understanding the assigned portions of the text is essential for deeper understanding of many topics in the course. Report bugs/corrections in the appropriate Blackboard discussion forum. Office
jumpSchedule, office hours, and contact information for Chris Lacher
Extras: Miscellaneous Resources and References COP 3330
COP 4530Lecture notes from previous courses in the sequence Parts 1-4
Part 5An alternate text has been approved for COP 4530, and you may use it now as a reference for this course: Robert Sedgewick, Algorithms in C++ (any edition, or the newer Java edition). C++ Style Coding style manual for this course SSH
The version of ssh software that FSU pays for and recommends. Unix/Emacs Hints
A few Unix and Emacs hints to get started Make1
Make2Two tutorials on the make utility and makefiles Stats The NIST Engineering Statistics Handbook TreeDemo Nifty demonstrator for various binary search tree implementations SortDemo Nifty animation for various key-comparison sorts, plus some good references. The Hungarian Dance Sort is worth a look. Formulas A short collection of frequently used formulas. FAQ Frequently asked questions on nuts and bolts of programming in C++ and compiling using g++, ld, and make
Temporal View: Course Calendar Week Coverage Assignments / Videos # Dates Course Notes / Videos Text Chapters / Demos Written Programming Due Date 1 8/26 - 9/1 0: Introduction
1: Algorithms
1,2,3Review COP 4530 Lecture Notes Assignment 0: Portfolio Creation
9/1
2 9/2 - 9/8 2: Positional Containers
3: Associative Containers10
11,12,13Assignment 1 Latex 9/18
3 9/9 - 9/15 4: Hash Tables
5: Generic Set Algorithms
11 (emphasize chaining)
6Assignment 2 Latex
VideoProject 1: Hash Analysis
9/25 +/- 4 9/16 - 9/22 6: Generic Heap Algorithms
7: Sorts
8: Data Structure Algorithms
6
6,7,8
Least Squares
Assignment 5: Sort ReportProject 2.1: Sort Code
Project 2.2: Sort Data Plan
Project 2.3: Sort Report
10/6
10/13
11/245 9/23 - 9/29 9: Amortized Analysis 17 6 9/30 - 10/6 10: Disjoint Set Algorithms Video 21 Assignment 3 Latex Project 3: RanMaze
10/27 +/- 7 10/7 - 10/13 Midterm Exam: See Syllabus for exact dates. RQ1 available 9/28 - 10/6 only. 10/12 8 10/14 - 10/20 11: Graphs 1 (1,2,3) Basics Search 22.1 - 22.5 Project 4: Graph Algorithms
11/3
9 10/21- 10/27 11: Graphs 1 (4,5) Assignment 4 11/13 10 10/28 - 11/3 12: Graphs 2 23, 24 (Kruskal, Prim, Dykstra) Project 5a: Movie Match
12/8 11 11/4 - 11/10 13: Strings: Sorting by String Keys
13: Strings: Searching by String Keys
Trie TST
12 11/11 - 11/17 13: Strings: Substring Search
13: Strings: Regular Expression Pattern Matching32 (KMP, Rabin-Karp) KMP
ConstructNFA RunNFA
Project 5b: GREP
12/8 13 11/18 - 11/24 14: B-Trees: Searching Big Data Assignment 5: Sort Report 11/24 14 11/25 - 12/1 Thanksgiving Week 15 12/2 - 12/8 Review / Projects 16 12/9 - 12/15 Final Exam: See Syllabus for exact dates. RQ2 open 12/1 - 12/8 only. 12/14 Ω 12/16 - 1/1 Semester Break - you've completed a capstone course!
Blackboard Submission Process and Requirements:
Written assignments must be submitted via Blackboard | Assignments | [specific assignment name].
The only formats that are acceptable for written assignments are "portable document format" (.pdf) and "plain text" (.txt). Mathematical discussions must be typeset appropriately and converted to pdf before submission.
Unix Script Submission Process:
Most programming assignments will be submitted via a specific Unix script from your CS Majors account logged in to shell.cs.fsu.edu. The submission script for a particular assignment will be located in the assignment distribution directory.
Submission via script should generate two email responses:
- When your submission is received, a receipt is sent via email. The date/time stamp of this email is the official submission time.
- After your submission has been unpacked and placed in your portfolio, a second message is sent containing a copy of all files that were unpacked. This is a record of exactly what was received and placed in your portfolio.
After submission, be sure to check your email for these two messages. Normally these would arrive within a few seconds of submission. If you do not get both email responses, a malfunction occurred. When you do receive these confirmation emails, save them. If a problem were to arise with your files, these emails are your proof of submission.
Note that revisions may be submitted any time prior to the deadline and will automatically replace the previous submission.