FSU Seal - 1851 Course Organizer
COP 3330 Object Oriented Programming in C++
Spring Semester 2019
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.
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. READ THE DOCUMENT && (FOLLOW THE RULES || FACE THE CONSEQUENCES).
Office Hours Instructor office hours and contact information
LIB
The course code distribution library LIB = /home/courses/cop3330p/LIB/
Testing Environment Code submitted for assignments will be built and tested on linprog using clang++ with all warning flags set and the ISO-11 standard library.
Code Stds A C++ coding style guide - required for this course.
Extras: Miscellaneous Resources and References
SSH The version of ssh software for Windows that FSU pays for and recommends. From off-campus, you will need a username and password - these will be on the course site where your FSU login is required. 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
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.org.
clang The clang compiler manual, maintained by clang.org.
Temporal View: Course Calendar*
Week Coverage Deliverable
# Dates            Lecture Notes Chapters Text Chapters Assignment Due Date
1 1/7 - 1/13
0: Introduction   Distance Student Responsibilities
1: C/C++ Basics   Stroustrup on C++11
2: C/C++ Control Flow   COP3014 Chapter 6: Arrays
3: C/C++ Functions   COP3014 Chapter 7: Pointers
Is Tech Destroying Jobs?
Ch 1,2
Ch 3,4
Ch 5
Establish CS Login
Assignment 0: Create Portfolio
Register For Exams [Distance Students Only]
Project 0: The Programming Environment (self-eval)
ASAP
ASAP+1
1/20
1/20
2 1/14 - 1/20
4: C++ Classes 1   Classes1.mp4
5: C/C++ Pointers   Pointers.mp4
6: C++ Classes 2   Classes2-1.mp4   Classes2-2.mp4
Ch 6
Ch 9,10
Ch 7,8
Quiz 1
Project 1: Sorting C-Strings
 
1/27
1/27
 
3 1/21 - 1/27
7: Bit Vectors   BitVectors.mp4
8: C++ Classes 3   Classes3.mp4
Ch 11
Ch 14
Project 2: The Product Class  Product.mp4
 
2/3
 
4 1/28 - 2/3
Buffer Week   Take Practice Exam 1
Ch 1-10,14
Project 3: fsu::BitVector
2/24
5 2/4 - 2/10 Exam 1 Covers Weeks 1 - 4 Exam windows run [Sat - Fri]! 2/8 [Fri]
6 2/11 - 2/17
9: I/O   IO.mp4
 
Independent Study: Ch 12
2/24
7 2/18 - 2/24
10: C++ Classes 4   Classes4.mp4
Ch 15
Project 4: SunPass Vehicles 
3/3
8 2/25 - 3/3
10: C++ Classes 4   Classes4.mp4
Ch 15
Project 5: SunPass Tracker  SunPass.mp4
3/10
9 3/4 - 3/10
11: C++ Templates  
Ch 16
Project 6: Sort Templates
3/31
10 3/11 - 3/17
12: Data Structures   ADTs.mp4
13: Introduction to fsu::List   14: Linked List Programming
Ch 17
Take Practice Exam 2
Project 7: Stack
Project 8: Queue
4/14
4/21
11 3/18-3/24 Spring Break
12 3/25 - 3/31 Exam 2 Covers Weeks 1 - 8 Exam windows run [Sat - Fri]! 3/30 [Fri]
13 4/1 - 4/7
Testing class templates    
 
 
 
14 4/8 - 4/14
Review:   Templates, Stack, Queue
Ch 16,17
 
 
15 4/15 - 4/21
Recursion    
Ch 13
 
 
16 4/22 - 4/28
Buffer Week   Take Practice Exam 3
Ch 1-17
 
4/26 [Fri]
17 4/29 - 5/5 Final Exam / Exam 3 Covers Weeks 1 - 15 Exam windows run [Sat - Fri]! 5/3 [Fri]
Ω 5/6 - 5/8 Final grades calculated and turned in to registrar

*Items distributed via the course calendar are not officially realeased until the date they appear in the calendar. Items that are visible in advance may be used, but always check for the updated version at the release date.