FSU Seal - 1851 Course Organizer
COP 4530 Data Structures, Algorithms, and Generic Programming
Spring Semester 2014
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.
Office Schedule, office hours, and contact information for Chris Lacher
LIB
The course code distribution library LIB = /home/courses/cop4530p/spring14/
Testing Environment Code submitted for assignments will be built and tested on linprog using g++ version 4.7 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
SSH The version of ssh software that FSU pays for and recommends. See SSH, The Secure Shell: The Definitive Guide, Second Edition (O'Reilly) for more info on SSH.
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
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.
Office Hours Instructor office hours and contact information
Unix/Emacs Hints Lacher's Unix and Emacs hints to get started
Princeton
Stanford
Gnu
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.
MazeBuilder
MazeBuilder2
A nifty JavaScript maze accessory. Original by Isaac Olson requires IE 6+. Refactored version by Stephen Brown is compatible with many other browsers, including those running on Linux.
TreeDemo
Models of various ordered set implementations using binary search trees.
Temporal View: Course Calendar
WeekDatesNotesTextAssignmentsDue Date
1 1/6 - 1/12 Chapter 0: Introduction and Reviews
Chapter 1: Algorithm Basics   Vid_2
Chapter 2: Vectors   Video
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
 
1/12
1/17
2 1/13-1/19 Chapter 3: Lists   Video 3.1 - 3.5 Homework 1: fsu::List   ChalkTalk   Video 1/26
3 1/20-1/26 Chapter 4: Deques 3.7.2 Project 1: The Rat Pack   ChalkTalk   Video 2/9
4 1/27-2/2 Chapter 5: ADTs Stack & Queue   Video 3.6,3.7    
5 2/3-2/9 Chapter 6: Function Objects
Chapter 7: Iterators   Video
Chapter 8: Generic Algorithms
  Homework 2: Spyware   Video 2/23
[changed as agreed in DB]
6 2/10-2/16 Chapter 9: Intro to Sets   Video
Chapter 10: Intro to Maps   Video
4.8 Homework 3: WordBench   Video
3/2
7 2/17-2/23 Midterm Exam: See Syllabus for details 2/22 [Sat]
8 2/24-3/2 Chapter 11: Intro to Trees
Chapter 12: Binary Search Trees
4.1,4.2
4.3,4.4
   
9 3/3-3/9 Chapter 13: Balanced BSTs 4.5,12.2 Homework 4: Ordered Associative Array   Video_WB2   Video_OAA 3/16
10 3/10-3/16 Spring Break
11 3/17-3/23 Chapter 14: Tree Iterators   Video
4.6, 4.8.3 Project 2: BST Iterators   Video
3/30
12 3/24-3/30 Chapter 14: Tree Iterators (cont.)      
13 3/31-4/6 Chapter 15: Hashing & Hash Functions
Chapter 16: Hash Tables   Video
5.1 - 5.6 Homework 5: Sparse Matrices   Video 4/13
14 4/7-4/13 Chapter 17: Binary Heaps   Video 6.1-6.4 Homework 6: Heaps and Heap Sort   Video 4/20
15 4/14-4/20 Chapter 17: Binary Heaps (cont.)      
16 4/21-4/27 Review Lecture Notes 1 - 17 Review LIB = course code library, Projects 1 - 2, and Homework 1 - 6
17 4/28-5/3 Final Exam: See Syllabus for details 5/3 [Sat]
18 5/5-5/6 Final grades calculated and turned in to registrar

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 given assignment will be located in the assignment directory.

Submission via script should generate two email responses:

  1. When your submission is received, a receipt is sent via email. The date/time stamp of this email is the official submission time.
  2. 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.