FSU Seal - 1851 Course Organizer
COP 4530 Data Structures, Algorithms, and Generic Programming
Summer 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 Canvas 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.
Canvas The FSU/Canvas 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
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 g++ compiler and the ISO-11 standard library, using flags -std=c++11 -Wall -Wextra.
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
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
Email Very brief reminders on setting up and checking CS Email.
g++ The gnu compiler manual, maintained by gnu itself.
Models of various ordered set implementations using binary search trees.
Temporal View: Course Calendar Consider entries in draft form until the date of release
WeekDatesNotesTextAssignmentsDue Date
1 5/14-5/20 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
Register & Sign Up For Exams with ODL
Assignment 0: Submission Verification & Portfolio Creation
Project 0: The programming Environment (self-eval)
5/18 [FRI]
2 5/21-5/27 Chapter 4: Deques
Chapter 5: ADTs Stack & Queue   ADTs.mp4   ADTs.rt
3.6,3.7 Project 1: alt2c::List   ChalkTalk 5/27
3 5/28-6/3 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 6/3
4 6/4-6/10 Chapter 9: Intro to Sets   Intro2Sets.mp4   Intro2Sets.rt
Chapter 10: Intro to Maps   Intro2Maps.mp4   Intro2Maps.rt
4.8 Project 3: WordBench   WordBench.mp4   WordBench.rt
5 6/11-6/17 Chapter 11: Intro to Trees
Chapter 12: Binary Search Trees
Chapter 13: Balanced BSTs   OAA.mp4   OAA.rt
Project 4: Ordered Associative Array   WordBench2.mp4   WordBench2.rt
6 6/19-6/25 Chapter 14: Tree Iterators   TreeIterators.mp4   TreeIterators.rt
4.6, 4.8.3 Project 5: ADT-Based BST Iterators   BSTIterators.mp4   BSTIterators.rt
7 6/25-7/1 Midterm Exam     Schedule: See Syllabus for details     Coverage: Weeks 1-5 6/29 [FRI]
8 7/2-7/8 Chapter 15: Hashing & Hash Functions
Chapter 16: Hash Tables   HashTables.mp4   HashTables.rt
5.1 - 5.6 Project 6: Hash Table   HashAnalysis.mp4 7/8
9 7/9-7/15 Notes 1: Graph Representation & Search   Project 7: Graphs and Graph Search 7/15
10 7/16-7/22 Chapter 17: Binary Heaps   Project 8: Degrees of Separation   The KB Game 7/29
11 7/23-7/29 Buffer Week - complete capstone project and prep for final exam
12 7/30-8/5 Final Exam     Schedule: See Syllabus for details     Coverage: Weeks 1-11, Projects 1-8, all LIB code 8/3 [FRI]
13 8/6-8/7 Final grades calculated and turned in to registrar