FSU Seal - 1851 Course Organizer
COP 4531 Complexity and Analysis of Data Structures and Algorithms
Fall Semester 2015
Root View: Course Components
Syllabus
The course syllabus establishes course policies on grading, attendance, and exams. The syllabus should be read in detail at beginning semester.
Calendar
The 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.
Projects Programming assignments ("Projects") are intended to be total learning experiences, not merely grade-earning opportunities. The assignment documents in particular are used to elaborate on topics and introduce new ones. The content is of equal importance with the lecture notes. Programming assignments will be released through the calendar. Programming assignments will be assessed using the policy described here. Note there is a 5-day grace period for programming assignments. We expect polished, thoughtfully prepared work and will assess accordingly. Note that a work log is expected for each programming assignment.
Homework Written assignments ("Homework") are intended to provide thoughful experiences above the level of computer code. Reading and researching is encouraged and may be required. Written assignments should be prepared in a document processing system that publishes in pdf format. Assignments should be submitted to Blackboard using the appropriate button. Deadlines for written assignments are strictly enforced -- there is no grace period.
LIB The course code distribution library LIB = /home/courses/cop4531p/LIB
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.
Students helping students Policy on students helping students. PLEASE NOTE: students may help other students in a Blackboard forum or a designated classroom. Any other form of help, whether using email or an external facility such as "slack", is a violation of the code of conduct for this class.
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
Schedule, office hours, and contact information for Chris Lacher
Extras: Miscellaneous Resources and References
COP 3330
COP 4530
Lecture notes from previous courses in the sequence
Parts 1-4
Part 5
An 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
Make2
Two 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 [no grace period] Programming [grace rulz] Due Date
1 8/24 - 8/30 0: Introduction 1: Positional Containers
2: Associative Containers
10
11, 12, 13
Review COP 4530 Lecture Notes
Homework 1  Latex  Sol
Assignment 0: Portfolio Creation
Register & Sign Up For Exams with ODL
8/30
9/4 [Fri]
9/6
2 8/31 - 9/6 3: Hash Tables   HashTables.mp4
4: Algorithms   Hash Analysis
11 (emphasize chaining)   Project 1: Hash Analysis    proj1.mp4 9/13
3 9/7 - 9/13 5: Generic Set Algorithms
6: Data Structure Algorithms
1,2,3 Homework 2  Latex  Sol   9/20
4 9/14 - 9/20 7: Generic Heap Algorithms
8: Sorts
6
6,7,8
  Project 2: Generic Sort Algorithms 9/27
10/4
5 9/21 - 9/27 9: Amortized Analysis
10: Disjoint Set Algorithms    DisjointSets.mp4
17
21
Homework 3  Latex  Sol
Project 3: RanMaze   proj3.avi
10/4
10/18
6 9/28 - 10/4 Notes 1 - 10 1,2,3, 6,7,8, 10,11,12,13, 17, 21 Take Practice Exam 1 and review hw 1,2,3 and proj 1,2,3 [doc only] 10/4
7 10/5 - 10/11 Midterm Exam: See Syllabus for exact dates. 10/11
8 10/12 - 10/18 11: Graphs 1 (1,2,3)
GraphBasics.mp4   GraphSearch.mp4
22.1 - 22.5   Project 4: Graph Algorithms
proj4.avi
10/25 11/1
9 10/19- 10/25 11: Graphs 1 (4,5)   Homework 4  Sol   11/15
10 10/26 - 11/1 12: Graphs 2 23, 24 (Kruskal, Prim, Dykstra)   Project 5: Movie Match   The KB Game 11/8 11/15
11 11/2 - 11/8 13: String Sort Overview [notes from class]
13: Strings: Sorting by String Keys
 
     
12 11/9 - 11/15 14: Strings: Searching by String Keys Trie    TST
  Project 6: Rabin-Karp Substring Search
11/22 11/29
13 11/16 - 11/22 15: Substring Search Overview [class]
15: Strings: Substring Search
16: Strings: Regular Expression Pattern Matching
32 (KMP, Rabin-Karp) KMP
ConstructNFA   RunNFA
  Project 6xc 11/29
14 11/23 - 11/29 Thanksgiving Week
15 11/30 - 12/6 Review all notes Review all items cited above Take Practice Exam 2 and review all assignments 12/6
16 12/7 - 12/13 Final Exam: See Syllabus for exact dates. 12/13
Ω 12/14 - 1/1 Semester Break - you've completed a capstone course!