SPECIAL SCHEDULING NOTE:
This class has students attending in two distinct modes:
- Traditional Classroom, Panama City Campus
- Distance Learning On-Line
The content, objectives, assignments, assessments, and grading are the same for
all students. Obviously, however, on-campus and distance students
sometimes participate in different ways.
For all students:
Regular participation via the
course management system is required. Official course announcements, lecture
materials, assignments, and help archives will all be on-line at this site. Note
that all registered students should have the course web site listed on their
portal page. Be sure to test this and resolve any difficulties no later
than the first week of classes.
For on-campus students: Classes will meet most weeks - any exceptions
will be announced via email. All exams will be given in class at the
regularly scheduled class meeting. If you prefer to take exams with the
flexibility of online students, please change your registration to one of the
distance sections. (You may still attend classes on campus.)
For on-line students: All exams must be proctored and taken
during the exam window. It is the student's responsibility to arrange for
proctored exams in compliance with the FSU standards.
(See COURSE POLICIES for details.)
Examity Remote Proctoring Service:
Online students may sign up for the Examity web-based Remote Proctoring
Service. This service uses your own computer's webcam and microphone to
monitor your Exam at an Internet-connected location of your own choice.
Details are here:
Proctor Designation Page.
There will be an Examity link button in the Canvas course site that leads to
the Examity dashboard. To use Examity:
- Designate Examity as your proctor on the Online Proctor Designation
- Click the Examity Proctor button to create your account in the Examity
- Use the Examity dashboard to test your system and schedule an Exam
appointment within the Exam window.
- Be sure you know the rules: any suspicious activity flag raised by an
Examity proctor will AUTOMATICALLY trigger an Honor Code incident report.
FSU ID: Note that students may be required to identify themselves with official FSU
ID to sit an exam.
CLASS SCHEDULE FOR ON-CAMPUS STUDENTS:
|Lecture||Lacher||A110N Holley Academic Center [HAC]
||Jan 8 - Apr 30
||5:00pm - 7:30pm (Central Time)|
Please note that class will meet on average once weekly. This will mean
two meetings in some weeks (i.e., both Tue and Thu) and no meetings in other
weeks. The live calendar displayed with Lacher contact info will show which
days class actually meets.
Lacher, Lead Instructor|
Responsibilities: Lectures, Exams, Assignments, Exam Assessment, Final Grades, Course Manager
|Office: ||A-211-O Academic Center / Panama City Campus |
|Office Phone (during office hours):
|Mobile Phone & Voice Mail (24/7): ||850-510-5575 |
||lacher "at" cs "dot" fsu "dot" edu
|Mail & Delivery:||
Florida State University|
4750 Collegiate Drive
Panama City, FL 32405-1099
Responsibilities: Co-Instructor, On-Line Mentor, On-Line Help,
||wharris "at" cs "dot" fsu "dot" edu
Responsibilities: Assignment Assessment
||ardonne "at" cs "dot" fsu "dot" edu
A previous programming course in C or C++, such as CGS 3408 or COP 3014, is a
prerequisite for COP 3330. There is also a pre-/co-requisite for a course in
Unix or Linux. This topic may be picked up in COP 3353 or in some
cases just by parallel independent study. In any case: The student will be
assumed facile and familiar with the basics of programming as taught in CGS 3408
/ COP 3014 and with basic Unix and related services as taught in COP 3502 / COP
3353. In particular:
- The student should be familiar with the following devices and be able to use
them to solve programming problems (from CGS 3408 / COP 3014):
These topics correspond roughly to Chapters 1 - 8 in Deitel's
How to Program (7e).
- Expressions: using the C++ operators in combination; precedence rules
- Branching: if, else, else if, and switch statements
- Looping: for, while, and do statements
- Functions: Declaring (prototyping), defining (implementing), and using (calling) functions
- Arrays, pointers, and character strings
- Classes or structures: class or struct
- The student should be familiar with the following Unix services (from COP 3353):
- Basic shell commands such as mkdir, cd,
ls, and rm
- Use of on-line manual pages through man
- Use of Email services through applications such as Elm or Pine
- Creating and editing text files using Emacs or Vi
- Compiling programs using command line compilers, such
as gcc, g++, or clang++
The student without the formal pre-/co-requisites of COP 3014 and COP 3353 has
the responsibility for making the judgment whether to continue in the course.
Object-oriented programming (OOP) is the most accepted and widely used
methodology for programming modern systems. This course will teach many aspects
of programming, using OOP in the C++ language.
This course covers many topics in modern programming, including object-oriented
programming (classes, objects, inheritance, and polymorphism); introduction to
data structures (vectors, lists, stacks, and queues) and container classes
(templates); files and I/O; and many of the subtleties of programming in the C++
At the end of this course, the student should be able to accomplish the
- Demonstrate the use of arrays and pointers in the solution of programming
- Understand the Object Oriented Programming concept and be able to discuss
differences between procedural and object oriented languages.
- Demonstrate the ability to create and use classes within the C++ programming
- Demonstrate the ability to create, compile, and execute programs within the
Visual C++ environment and the UNIX environment, using the Object-Oriented
- Be able to program using important C++ techniques, such as composition of
operator overloads, dynamic memory allocation, inheritance and polymorphism,
I/O, exception handling, templates, preprocessor directives, and basic data structures.
Object Based Programming in C++
- Write programs using the full engineering power of C++, including:
classes and objects, encapsulation and
information hiding, class inheritance, overloading of
operators and functions, template classes and functions,
bitwise programming, I/O using streams, and the use and
management of external data files
- Create and manage multi-file projects using g++ and make
- Design and implement solutions to programming problems requiring up to five
hundred lines of code and multiple source code files.
- Improve reliability, maintainability, and
correctness of programs through software engineering principles and
techniques including component re-use, coding style, and use of language
features such as const, static, and namespace
Object Oriented Programming
- Use inheritance, polymorphism, and
runtime binding to solve certain programming problems
- Be able to judge the appropriateness of OOP techniques for specific
- Define and use abstract data types stack and
queue as algorithm control structures and data storage structures in
- Implement stacks using an array data structure
- Implement stacks and queues using a linked list data structure
The following course components are essential:
The following optional reference books are sanctioned for this course:
(this document) establishes course
policies on grading, attendance, and exams.
The syllabus should be read in detail at beginning semester.
serves as a central organizer for the course. The organizer is accessible through
canvas.fsu.edu or directly by bookmarking the URL.
Course Calendar (part of
the organizer) is particularly useful to keep up with weekly topics,
assignments, and lecture notes.
Textbook for the course is
Absolute C++ (6e),
by Walter Savitch, Pearson, 2016 (ISBN-13: 978-0-13-397078-4). (Students with previous editions
should be OK.) Page references should be correct for the 6th edition, but only
approximate for other editions.
are in the form of a slide
show with an accompanying narrative. Lecture notes provide a compact view of the
important topics of the course, while the textbook and reading assignments
provide more detail.
Assignments will be released through the course calendar.
portal should list a site for 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
- Stroustrup, Bjarne, (2013). The C++ Programming Language, Fourth Edition,
Addison Wesley, 2013.
- Sutter, Herb and Alexandrescu, Andrei (2005). C++ Coding Standards,
- Oram, A. and Talbott, S. (1991). Managing Projects with
Make. Sebastopol, CA: O'Reilly & Associates, 1991.
- Cameron, D., Rosenblatt, B., and Raymond, E. (1996). Learning GNU Emacs,
2nd Edition. Sebastopol, CA: O'Reilly & Associates, 1996.
The following are useful on-line references:
The overall grade for COP 3330 is determined by 8 programming projects
(including any associated quizzes) and 3 exams.
The dates for the exams are shown Table 1 below.
Due dates for other deliverables will be available
on the Course Calendar.
Course Grade There are 1000 total points that may be earned in
the course, distributed as
shown in Table 2. The final grade is determined using Table 3, subject to the
additional constraints discussed below the tables.
|Table 1: Exam Schedule|
||On-Line Window (Dates Inclusive)
||Feb 2 - Feb 8 [Sat - Fri]
||Mar 23 - Mar 29 [Sat - Fri]
||Apr 27 - May 3 [Sat - Fri]
| Table 2: Course Points |
| Item || Points/Item
|| No of Items || Points [Percent] |
| Projects || 50 +/- || 8 || 400 |
| Exam 1 || 150 || 1 || 150 |
| Exam 2 || 200 || 1 || 200 |
| Final || 250 || 1 || 250 |
|Total Points [Percent]: || 1000 ||
| Table 3: Letter Grades |
| Percent || Grade |
| 93 - 100 || A |
| 90 - 92 || A- |
| 88 - 89 || B+ |
| 83 - 87 || B |
| 80 - 82 || B- |
| 78 - 79 || C+ |
| 73 - 77 || C |
| 70 - 72 || C- |
| 68 - 69 || D+ |
| 63 - 67 || D |
| 60 - 62 || D- |
| 0 - 59 || F ||
- The exam windows run for an entire 7-day week. These windows cannot be widened or
otherwise changed. It is very important to check with your testing center to
verify that the exam can be taken in the window. Changing testing centers may be
necessary, but requires planning in advance.
- FSU Testing requires that you register your test site within the first two
weeks of classes. Be sure to take care of that promptly.
- Deadlines for deliverables are firm. Please note the deadlines listed in the
- The actual number of assignments may vary slightly, but the total point
value will not change.
- If there is a quiz with a particular assignment, it will count as assignment points.
The following are additional constraints on the final grade in
Certain components of assignments in this course have been designated by
Department of Computer Science for assessment of the following expected
outcomes for its degree programs, as required by our accreditation agencies,
University and the State of Florida:
- use of arrays and pointers in the solution of programming problems using C++
- create and use classes within the C++ programming language
- create, compile, and execute C++ programs within
the Unix environment, using the Object-Oriented design model
- program using C++ techniques: composition of objects,
operator overloads, dynamic memory allocation, inheritance and polymorphism,
and file I/O
- program using C++ techniques: composition of objects,
templates, preprocessor directives, and basic data
These will be assessed using the following rubric:
| Rubric for Outcomes i.-iv. || I || E || H
I = ineffective
E = effective
H = highly effective
|i.|| Use Arrays and Pointers ||- ||- ||- ||Project 1|
|ii.|| Use Classes and Objects ||- ||- ||- ||Projects 2,3|
|iii.|| OO Programming Techniques ||- ||- ||- ||Projects 4,5,|
|iv.|| Inheritance, Polymorphism, I/O ||- ||- ||- ||Project 4,5|
|v.|| Templates, Basic Data Structures, Preprocessor Directives, and Composition ||- ||- ||- ||Projects 6,7,8|
In order to earn a course grade of C- or better, the assessment must result in
Effective or Highly Effective for each outcome.
An effect of the ABET/SACS requirement is that 280 assignment points are
required to pass with a grade of C- or better.
In addition, you must submit a working version of every assignment in
order to be eligible for the grade of A or A-.
See Assessment of Programming
Assignments for policies on assessment and late submissions.
First Day Attendance Policy: Official university policy is
that any student not attending the first class meeting will be automatically
dropped from the class. For ALL STUDENTS: This policy is implemented using the
FDA Quiz in Canvas. Answering in the affirmative by the posted deadline
is interpreted as first
Regular Attendance Policy:
The university requires
attendance in all classes. Attendance in distance classes shall mean regular
access to the course web site via canvas.fsu.edu and regular
participation in the class discussion forums. Here, "regular" shall mean a
substantial amount of time on a weekly basis. Note that individual access
statistics are maintained by Canvas. It is expected that every student read
every new discussion post daily.
Excused absences include documented illness, deaths in the immediate family and
other documented crises, call to active military duty or jury duty, religious
holy days, and official University activities. Accommodations for these excused
absences will be made and will do so in a way that does not penalize students
who have a valid excuse. Consideration will also be given to students whose
dependent children experience serious illness.
Proctored Exam Policy: All exams must be proctored and taken at
an approved testing site during the exam window.
For on-campus students, the exam must be taken at the regularly scheduled class
meeting that falls within the exam window.
For distance/online students, it is the student's responsibility to arrange for proctored exams in
compliance with the FSU standards. Go to
Student Testing Responsibilities for complete information
on setting up a proctored exam site. Please note also that students taking exams
on main campus in Tallahassee are now required to sign up for a time slot at the
Exam Makeup Policy:
An exam missed without an acceptable excuse will be recorded as a grade of zero
(0). The following are the only acceptable excuses:
- If submitted prior to the day of the scheduled exam:
- A written and signed explanation as to why the exam will missed. Illness or required
professional travel are acceptable, while discretionary or personal travel
are not. In any case the explanation should be accompanied by corroborating
documentation, including names and contact information, and the explanation must
be accepted by the instructor prior to missing the exam.
- Evidence from a university official that you will miss the exam due to
university sanctioned travel or extracurricular activity.
- If submitted on or after the day of the scheduled exam:
- A note from a physician, university dean, spouse, parent, or yourself indicating an illness
or other extraordinary circumstance that prevented you from taking the exam and
could not be planned for in advance. Again, corroborating information should be
All excuses must be submitted in writing, must be signed by the excusing
authority, and must include complete contact information for the authority,
including telephone numbers and address.
Missed exams with acceptable excuse will be made up or assigned the average
grade of all other exams, at the option of the course instructor.
Missed, and acceptably excused, final exams will result in the course grade of
'I' and must be made up in the first two weeks of the following semester.
Grade of 'I' Policy:
The grade of 'I' will be assigned only under the following exceptional circumstances:
- The final exam is missed with an accepted excuse for the absence. In this
case, the final exam must be made up during the first two weeks of the following
- Due to an extended illness or other extraordinary
circumstance, with appropriate documentation, the student is unable to
participate in class for an extended period. In this case, arrangements must be
made to make up the missed portion of the course prior to the end of the next semester.
Completion of Work Policy:
To be eligible for the grade of A or A-, working versions of all programming
assignments must be submitted.
ACADEMIC HONOR POLICY:
The Florida State University Academic Honor Policy outlines the
University’s expectations for the integrity of students’
academic work, the procedures for resolving alleged violations of those
expectations, and the rights and responsibilities of students and faculty
members throughout the process. Students are responsible for reading
the Academic Honor Policy and for living up to their pledge to
“. . . be honest and truthful and . . . [to] strive for personal and
institutional integrity at Florida State University.” (Florida
State University Academic Honor Policy, found at
are expected to uphold the Academic Honor Policy.
Please note the following items are defined and made violations by the policy:
- Unauthorized Group Work
- Fabrication, Falsification, and Misrepresentation
- Multiple Submission
- Abuse of Academic Materials
- Complicity in Academic Dishonesty
- Attempted ...
- Students are expected to do their own work on any classwork or
test submitted for a grade (unless designated as a group assignment).
Proctored Exam Violations. All exams in this course are required to be
proctored. Proctors are trained professionals and will be observing you while
sitting for the exam. Any suspicious activity flag that is raised by
an exam proctor will result in automatic initiation of formal
proceedings with the FSU Dean of Students.
- It is NOT appropriate to work on coding assignments with other students or
to give or receive solutions to or from anyone before an assignment
is due and handed in (by all parties). (It is appropriate to discuss
conceptual issues with other students.)
- It is NOT appropriate to share any amount of code with your
- DO NOT POST YOUR CODE ONLINE. If I find your code online (online
compilers, text sites, blogs,
help sites, etc...), no matter what the intent was in posting your code, this is
automatically in violation
of the Academic Honor Policy and the appropriate actions will be taken. DO
NOT USE online compilers, chat rooms, or
post any amount of your code on the web. I'll find out, trust me.
- If you've posted a homework question for a solution on sites like Chegg,
course hero, etc. This is considered a violation of the honor code
- "Pay for code" is also obviously an honor code violation. You wont pass my
tests anyways if you choose this route.
- Discussing solutions and techniques on assignments with other
students after the assignment has been graded and handed back
is okay, and encouraged.
- When you turn in work with your name on it, you are representing that
work as your own. If your submission matches that of
another student, this is considered a violation of the
Academic Honor Code.
- If you have previously taken the course, you are NOT permitted to submit
your old work for any assignment
in the current semester. You must do your work from scratch. This is
included in the FSU honor policy. See the
- If it is found that a student has violated the academic honor policy
the student is not permitted to drop or withdraw from the course, and must
complete the course
with the sanctions accessed via the policy. This is a UNIVERSITY policy. (Added
for clarification, 2/17/15)
- It is HIGHLY suggested that you only go to our course TA's or the instructor
for help if/when needed. Outside tutors are
Violations of the academic honor policy may result in failing grades and/or
dismissal from the university. All students are expected to read and understand
Checking for Plagiarism: FSU subscribes several databases of papers and computer
source code that have been previously published or turned in for credit in
university courses worldwide. Student work may be checked in one or more of
these databases for originality. Note that turning in work that contains uncited
quoted material from any source is considered plagiarism and a violation of the
FSU honor code.
Student Help Policy:
Students in this class are encouraged to help each other within the official
course Canvas site. Instruction staff will also help there and be able to
monitor student interaction to assure correctness and guide the nature of the
help when appropriate.
It is a violation of the course code of ethics for students to receive help in a
medium outside the visibility of the course, such as in a third party
discussion board, chat room, or via email. The only help that is condoned is
that obtained from any instructor or from discussions on the Canvas course
site or in class. If help outside the course environment is discovered, both the giver and
receiver of help will be given a failing grade.
Code Distribution Policy:
Department policy is that students and former students are not permitted to
freely distribute or make available to the public any code that has been used
part of a course assignment. Former students who have either graduated or are
cleared for graduation may put code in a portfolio that is password protected
and may divulge the password to appropriate individuals for the purpose of
applications for employment and other professional evaluations.
Transgression of this policy will be considered honor code violations.
A list of known violations will be maintained by the department.
AMERICANS WITH DISABILITIES ACT:
Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Student Disability
Resource Center; and
(2) bring a letter to the instructor indicating the need for accommodation
and what type. This should be done during the first week of
This syllabus and other class materials are available in
alternative format upon request.
For more information about services available to FSU
students with disabilities, contact the:
Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
(This syllabus and other class materials are available in
alternative format upon request.)
EMERGENCY MANAGEMENT INFORMATION:
Information regarding the status of FSU in an emergency situation may be
obtained from the following sources:
- For information specific to the Panama City Campus go to the FSUPC web page at http://www.pc.fsu.edu/ or call the Campus
Hotline number 850-770-2000
- For information related to FSU in general and the Tallahassee Campus go to
the FSU alerts web page at http://www.fsu.edu/~alerts/
- For state-wide and national information, go to the Florida Division of
Emergency Management information pages at http://www.floridadisaster.org/
Any specific information related to this class will be posted on the course web site
or sent via email to your fsu email address.
SYLLABUS CHANGE POLICY:
Except for changes that substantially affect implementation of the evaluation
(grading) statement, this syllabus is a guide for the course and is subject to
change with advance notice.
Such notice will be in the form of a posting to the course web site and a
listing at the top of this document.