FSU Seal - 1851 Course Organizer
COP 4530 Data Structures, Algorithms, and Generic Programming
Spring Semester 2018
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.
Lectures This is the main knowledge resource for the course. Lectures are in the form of 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 resizable window.) Please report bugs/corrections in the appropriate Blackboard discussion forum. Note: The lecture notes are undergoing revision during the semester.
Calendar The course calendar: coverage, assignments, lecture notes all released here.
Assignments Assignments are intended to be total learning experiences, not merely exercises in programming. The assignment documents in particular are used to elaborate on topics and introduce new ones. The content of assignments is of equal importance with the lecture notes. Assignments will be released through the calendar. Note that assignment deadlines will be enforced and that successful completion of most assignments requires starting at least two weeks in advance of the deadline. Assignments will be assessed using the policy described here. We expect polished, thoughtfully prepared work and will assess accordingly. Note that a work log is expected for each programming assignment.
Blackboard 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.
Office Hours Instructor office hours and contact information
LIB
The course code distribution library LIB = /home/courses/cop4530p/LIB/
Testing Environment Code submitted for assignments will be built and tested on linprog using the clang++ compiler and the ISO-11 standard library.
Code Stds A C++ coding style guide - required for this course.
Extras: Miscellaneous Resources and References
COP 3330 The lecture notes from the pre-requisite course
FAQ Frequently Asked Questions harvested from discussion boards
Make1
Make2
Two tutorials on the make utility and makefiles
Valgrind Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools.
C++ Ref A resource to look up C and C++ libraries
Unix/Emacs Hints Lacher's Unix and Emacs hints to get started
Princeton
Stanford
More Emacs help info - from various sources.
Email Very brief reminders on setting up and checking CS Email.
g++ The gnu compiler manual, maintained by gnu itself.
TreeDemo
Models of various ordered set implementations using binary search trees.
Temporal View: Course Calendar
WeekDatesNotesTextAssignmentsDue Date
1 1/8-1/14 Course Syllabus
Chapter 0: Introduction and COP3330 Review
Chapter 1: Algorithm Basics   Algos_2.mp4   Algos_2.rt
Chapter 2: Vectors   Vector.mp4   Vector.rt
Chapter 3: Lists   List.mp4   List.rt
1.1 - 1.6
2.1 - 2.4
3.1 - 3.5
Activate CS account
Assignment 0: Submission Verification & Portfolio Creation
Register & Sign Up For Exams with ODL
Project 0: The programming Environment (self-eval)
Project 1: alt2c::List   ChalkTalk
 
1/14
1/19 [FRI]
?/?
1/28
2 1/15-1/21 Chapter 4: Deques
Chapter 5: ADTs Stack & Queue   ADTs.mp4   ADTs.rt
3.6,3.7    
3 1/22-1/28 Chapter 6: Function Objects
Chapter 7: Iterators   GenericAlgs.mp4   GenericAlgs.rt
Chapter 8: Generic Algorithms
3.6,3.7 Project 2: Spyware   Spyware.mp4   Spyware.rt   Solutions 2/4
4 1/29-2/4 [Buffer Week]   Take Exam 1 Example [under Practice Exams] 2/2 [FRI]
5 2/5-2/11 Exam 1     Schedule: See Syllabus for details     Coverage: Weeks 1-4 2/9 [FRI]
6 2/12-2/18 Chapter 9: Intro to Sets   Intro2Sets.mp4   Intro2Sets.rt
Chapter 10: Intro to Maps   Intro2Maps.mp4   Intro2Maps.rt
4.8 Project 3: WordSmith   WordSmith.mp4   WordSmith.rt
2/25
7 2/19-2/25 Chapter 11: Intro to Trees
Chapter 12: Binary Search Trees
Chapter 13: Balanced BSTs   OAA.mp4   OAA.rt
4.1,4.2
4.3,4.4
4.5,12.2
Project 4: Ordered Associative Array   WordSmith2.mp4   WordSmith2.rt
3/4
8 2/26-3/4 Chapter 14: Tree Iterators   TreeIterators.mp4   TreeIterators.rt
4.6, 4.8.3 Project 5: Thread-Based BST Iterators   BSTIterators.mp4   BSTIterators.rt
3/18
9 3/5-3/11 Chapter 15: Hashing & Hash Functions
Chapter 16: Hash Tables   HashTables.mp4   HashTables.rt
5.1 - 5.6 Project 6: Hash Table
4/1
4/15
10 3/12-3/18 Spring Break
11 3/19-3/25 [Buffer Week]   Take Exam 2 Example [under Practice Exams] 3/23 [FRI]
12 3/26-4/1 Exam 2     Schedule: See Syllabus for details     Coverage: Weeks 1-11 3/30 [FRI]
13 4/2-4/8 Chapter 18: Intro to Graphs   Project 7: Graphs and Graph Search 4/15
14 4/9-4/15 Chapter 17: Binary Heaps   Project 8: Kevin Bacon   The KB Game 4/22
15 4/16-4/22        
16 4/23-4/29 [Buffer Week]   Take Exam 3 Example [under Practice Exams] 4/27 [Fri]
17 4/30-5/6 Final Exam     Schedule: See Syllabus for details     Coverage: Weeks 1-16 [Lecture Notes 1-18, LIB = course code library, Projects 1-8] 5/4 [Fri]
18 5/7-5/9 Final grades calculated and turned in to registrar