SPECIAL SCHEDULING NOTE:
This class has students attending in two distinct modes:
- Traditional On-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 interface 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: Class (lecture and recitation) will be met and attendance is
required. (See schedule details below.) All exams will be given in class during
scheduled class time.
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. Go to the URL
http://online.fsu.edu/learningresources/proctoredexam/ for details.
Note that students may be required to identify themselves with official FSU
ID to sit an exam.
CLASS SCHEDULE FOR ON-CAMPUS STUDENTS:
|Lecture ||TEC 142 (Teaching Lab)
||Aug 31 - Dec 14
||Thu ||2:00pm - 4:30pm (Central Time)|
|Recitation ||TEC 142 (Teaching Lab)
||Aug 31 - Dec 14
||Thu ||5:00pm - 6:00pm (Central Time)|
There will be two exams: a midterm exam and a final exam.
The dates for the two exams are shown in the following
||Distance Window (Inclusive)
||Thu Oct 19
||Fri Oct 20 - Tue Oct 24
||Thu Dec 14
||Fri Dec 8 - Tue Dec 12
Chris Lacher, Faculty|
Responsibilities: Lead Instructor, Course Supervisor, On-Site Instruction
|Office: ||Faculty Annex B 101 / Panama City Campus |
|Office Phone (during office hours): |
(these all ring the same instrument)
850-522-5502 (local direct line)|
850-872-4750x251 (local Panama City)
850-644-2090x251 (local Tallahassee)
866-693-7872x251 (toll free)
|Mobile Phone & Voice Mail (24/7): ||850-510-5575 |
|Mail & Delivery:||
Florida State University|
4750 Collegiate Drive
Panama City, FL 32405-1099
, Student Assistant and Mentor|
Responsibilities: Associate Instructor, On-Line Instruction, On-Line Mentor
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 3502, COP 3344, or in some
cases just by parallel independent study. In any case: The student will be
assumed facile and familier 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
3344. In particular:
- The student should be familier with the following devices and be able to use
them to solve programming problems (from CGS 3408 / COP 3014):
This material corresponds approximately to Chapters 1-11 in the textbook.
- Expressions: using the C++ operators in combination; precedance 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 familier with the following Unix services (from COP 3502):
- 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 or g++
The student without the formal pre-/co-requisites of CGS 3408 / COP 3014 and COP
3502 / COP 3344 has the responsibility for making the judgement 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 have experienced, and should
permanently retain a working knowledge of, the following topics and concepts.
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
- Be familier with the use of inheritance, polymorphism, and
runtime binding to solve certain programming problems
- Be able to judge the appropriateness of OOP techniques for specific
- Understand stacks and queues as abstract data types
- Implement stacks using an array data structure
- Implement stacks and queues using a linked list data structure
The overall grade for COP 3330 is an average of two equally weighted parts:
Exams and Assignments. Exams consist of a midterm exam and a final
exam. Assignments consist of eight programming assignments: six homework
assignments (counting 5% each) and two larger projects (counting 10% each).
The dates for the two exams are shown in the
Due dates for other deliverables will be available
on the Course Calendar.
There are 1000 total points that may be earned in the course (not counting
possible extra credit opportunities), distributed as shown in Table 1. At least
350 exam points (midterm and final exams) and 350 assignment points (programming
projects and homework) must be earned to get a course grade
of C or better.
In addition, working solutions for every assignment must be submitted in order
to be eligible for the grade of A or A-.
Once meeting these constraints, the final grade is determined
using Table 2. Extra credit points in one category may not be used in the
other category. Note however that working submissions of all programming
assignments is required for a grade higher than 'B'.
| Table 1: Course Points |
| Item || Points/Item
|| No of Items || Total |
| Homeworks || 50 || 6 || 300 |
| Projects || 100 || 2 || 200 |
| Midterm Exam || 200 || 1 || 200 |
| Final Exam || 300 || 1 || 300 |
|Total Points: || 1000 |
Note: the actual number of assignments may vary slightly;
the total points from assigmments will remain 500.
| Table 2: Letter Grades |
| Points || Grade |
| 925 - 1000 || A |
| 900 - 924 || A- |
| 875 - 899 || B+ |
| 825 - 874 || B |
| 800 - 824 || B- |
| 775 - 799 || C+ |
| 725 - 774 || C |
| 700 - 724 || C- |
| 675 - 699 || D+ |
| 625 - 674 || D |
| 600 - 624 || D- |
| 0 - 599 || F |
NOTE: You must earn at least 350 points in both
Exams (in-term and final exams) and Assignments (projects and homework) to be awarded a course 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-.
Projects will be assessed using Table 3 as a guide, with modifications
depending on the specific assignment.
| Table 3: Project Assessment Guidelines |
| Criterion || Percentage Points Range |
| Deliverables Received and Project Compiles || 0 ... 25 |
| Results of Testing || 0 ... 25 |
| Project Meets Requirements || 0 ... 25 |
| Design, Readability, and Style || -25 ... 25 |
Assessment will be done in two stages. First an objective assessment will be
done to test compilation and correctness of the running program. Then a member
of the instructional staff will add subjective assessment based on the test
results and source code. A report will be emailed to the student after
assessment is complete.
- You may earn up to approximately 75 percentage points for a correctly functioning
project meeting all requirements. (The exact percentage will depend on the
- Your project score may change by plus or minus the remaining percent
during the subjective assessment.
- You must understand your project
work. If you are asked to explain your work, and if you cannot do so, you may be
assigned a grade of zero.
Late Deliverables: Assignments should be submitted by the due
date published in the course
calendar. To receive full credit, assignment deliverables must be
successfully submitted before the initial assessment begins, usually a few days after
the due date. Missing deliverables will be treated as "grossly incorrect" and assessed as resubmissions.
Grossly Incorrect Deliverables: In cases where deliverables
fail the most basic requirements, such as existence, compilation or basic run
requirements, the student will receive a temporary "NG" score and be asked to
correct and resubmit. A resubmission will be re-assessed with a 20%
penalty. "NG" reverts to zero at the end of the resubmission period.
Note that any assignment receiving less than 80% during the original
assessment may be resubmitted for possible grade improvement to 80%.
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
Blackboard 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.
for the course is
Starting Out with C++: From Control Structures to Objects (Fifth
Edition), by Tony Gaddis, Addison-Wesley, 2007 (ISBN 0-321-40939-6).
Note: This is the second course
from this text. We begin with Chapter 12. The previous (fourth) edition of the
text will suffice, if you already have it.
A second book will be used for parallel reading in the latter part of the course:
C++ Primer (Fourth Edition), by Stanley B. Lippman, Josie Lajoie, Barbara E. Moo,
Addison-Wesley, 2005 (ISBN 0-201-72148-1).
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.
will be released through the course calendar.
Blackboard 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, (1997). The C++ Programming Language, Third Edition,
Addison Wesley, 1997.
- 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:
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 distance students, this policy is interpreted as
posting to the discussion forum "First Day Attendance" no later than the first
day of the semester.
Regular Attendance Policy: The university requires
attendance in all classes. Attendance in distance classes shall mean regular
access to the course web site via campus.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 Blackboard.
Proctored Exam Policy: All exams must be proctored and taken at
an approved testing site during the exam window or in class on the designated
date. It is the student's responsibility to arrange for proctored exams in
compliance with the FSU standards. Go to
http://online.fsu.edu/learningresources/proctoredexam/ for details.
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 corrobrating
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:
are expected to uphold the Academic Honor Policy published on-line
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 ...
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
AMERICANS WITH DISABILITIES ACT:
with disabilities needing academic accommodation should: (1) register with and
provide documentation to the Student
Center; (2) bring a letter to the
instructor indicating the need for accommodation and what type. This should be
done during the first week of class.
For more information
about services available to FSU students with disabilities, contact the
Disability Resource Center
Dean of Students Department
08 Kellum Hall
Florida State University
Tallahassee, FL 32306-4400
(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-522-5555
- 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:
This syllabus is a guide for the course and is subject to change
with advanced notice. Such notice will be in the form of an
announcement to the course web site on