FSU Seal - 1851 Course Organizer
COP 4530 Data Structures, Algorithms, and Generic Programming
Summer 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.
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
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 with all warning flags set. This is invoked on linprog with the command: clang++ -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
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.
Models of various ordered set implementations using binary search trees.
Temporal View: Course Calendar
Week Dates Notes Text Assignment Due Date
1 5/11-5/17 Chapter 0: Introduction and Reviews
Chapter 1: Algorithm Basics   Algos_2.mp4   Algos_2.rt
Chapter 2: Vectors   Vector.mp4   Vector.rt
1.1 - 1.6
2.1 - 2.4
3.3 - 3.4
Activate CS account
Assignment 0: Submission Verification & Portfolio Creation
Register & Sign Up For Exams with ODL
5/15 (Fri)
2 5/18-5/24 Chapter 3: Lists   List.mp4   List.rt
Chapter 4: Deques
3.1 - 3.5
Project 1: fsu::List   ChalkTalk   List_hw.mp4   List_hw.rt 5/24
3 5/25-5/31 Chapter 5: ADTs Stack & Queue   ADTs.mp4   ADTs.rt 3.6,3.7 Project 2: Post Machine 5/31
4 6/1-6/7 Chapter 6: Function Objects
Chapter 7: Iterators
Chapter 8: Generic Algorithms   GenericAlgs.mp4   GenericAlgs.rt
  Project 3: Spyware   Spyware.mp4   Spyware.rt
Estimating Runtime
Project 3 Answers
5 6/8-6/14 Chapter 9: Intro to Sets   Intro2Sets.mp4   Intro2Sets.rt
Chapter 10: Intro to Maps   Intro2Maps.mp4   Intro2Maps.rt
4.8 Project 4: WordBench   WordBench.mp4   WordBench.rt
6 6/15-6/21 Chapter 11: Intro to Trees
Chapter 12: Binary Search Trees
RQ1 available Week 6 only!
Project 5: Ordered Associative Array   wb2.mp4   wb2.rt
7 6/22/6/28 Midterm Exam     Schedule: See Syllabus for details     Coverage: Everything assigned or released in Weeks 1-5 6/28
8 6/29-7/5 Chapter 13: Balanced BSTs   OAA.mp4   OAA.rt 4.5,12.2 Project 6: RBLL Trees and ADT-Based Iterators   BSTIterators.mp4   BSTIterators.rt
9 7/6-7/12 Chapter 14: Tree Iterators   TreeIterators.mp4   TreeIterators.rt
4.6, 4.8.3 Project 7: Threaded BSTs   BSTIterators.mp4   BSTIterators.rt
10 7/13-7/19 Chapter 15: Hashing & Hash Functions
Chapter 16: Hash Tables   HashTables.mp4   HashTables.rt
5.1 - 5.6 Project 8: Hash Tables
Project 9: Sparse Matrices   SparseMatrices.mp4   SparseMatrices.rt
11 7/20-7/26 Chapter 17: Binary Heaps   BinaryHeaps.mp4   BinaryHeaps.rt 6.1-6.4 Project 10: Priority Queues 8/2
12 7/27-8/2        
13 8/3-8/9 Final Exam     Schedule: See Syllabus for details     Coverage: Everything assigned or released in Weeks 1-12 8/9
14 8/10 Final grades calculated and turned in to registrar