FSU Seal - 1851

    COURSE SYLLABUS

    COP 3330 Object Oriented Programming
    Spring Semester 2015


SPECIAL SCHEDULING NOTE:

This class is online only - there is no on-campus component.

Regular participation via the campus.fsu.edu [Blackboard] 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 campus.fsu.edu portal page. Be sure to test this and resolve any difficulties no later than the first week of classes.

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.)

Note that students may be required to identify themselves with official FSU ID to sit an exam.

INSTRUCTIONAL STAFF:

Chris 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): 850-770-2256
Mobile Phone & Voice Mail (24/7): 850-510-5575 
Email:  lacher "at" cs "dot" fsu "dot" edu
Fax:850-872-7720
Mail & Delivery: Florida State University
4750 Collegiate Drive
Panama City, FL 32405-1099
Lacher Weekly Schedule Effective Jan 12 - Apr 24, 2015 (excluding Jan 19 and Mar 9-13)
 
Tony Harris, Associate Instructor
Responsibilities: On-Line Mentor, On-Line Help, Assignment Assessment
 
Email:  wharris "at" cs "dot" fsu "dot" edu
Debora Roy
Responsibilities: On-Line Mentor, On-Line Help, Assignment Assessment
 
Email:  droy "at" cs "dot" fsu "dot" edu

COURSE PREREQUISITES:

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:

  1. The student should be familiar with the following devices and be able to use them to solve programming problems (from CGS 3408 / COP 3014):
    1. Expressions: using the C++ operators in combination; precedence rules
    2. Branching: if, else, else if, and switch statements
    3. Looping: for, while, and do statements
    4. Functions: Declaring (prototyping), defining (implementing), and using (calling) functions
    5. Arrays, pointers, and character strings
    6. Classes or structures: class or struct
    These topics correspond roughly to Chapters 1 - 8 in Deitel's How to Program (7e).
  2. The student should be familiar with the following Unix services (from COP 3353):
    1. Basic shell commands such as mkdir, cd, ls, and rm
    2. Use of on-line manual pages through man
    3. Use of Email services through applications such as Elm or Pine
    4. Creating and editing text files using Emacs or Vi
    5. Compiling programs using command line compilers, such as gcc or g++

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.

COURSE RATIONALE:

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.

COURSE DESCRIPTION:

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++ language.

COURSE OBJECTIVES:

At the end of this course, the student should be able to accomplish the following:

Required Objectives

  • Demonstrate the use of arrays and pointers in the solution of programming problems using C++
  • Understand the Object Oriented Programming concept and be able to discuss the differences between procedural and object oriented languages.
  • Demonstrate the ability to create and use classes within the C++ programming language
  • Demonstrate the ability to create, compile, and execute programs within the Microsoft Visual C++ environment and the UNIX environment, using the Object-Oriented design model.
  • Be able to program using important C++ techniques, such as composition of objects, operator overloads, dynamic memory allocation, inheritance and polymorphism, file 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 programming problems

Data Structures

  • Define and use abstract data types stack and queue as algorithm control structures and data storage structures in C++ programs
  • Implement stacks using an array data structure
  • Implement stacks and queues using a linked list data structure

COURSE MATERIALS:

The following course components are essential:

  • The Syllabus (this document) establishes course policies on grading, attendance, and exams. The syllabus should be read in detail at beginning semester.
  • The Course Organizer serves as a central organizer for the course. The organizer is accessible through campus.fsu.edu or directly by bookmarking the URL.
  • The Course Calendar (part of the organizer) is particularly useful to keep up with weekly topics, assignments, and lecture notes.
  • The Textbook for the course is C++ - How to Program: Late Objects Version (7e), by Deitel, Prentice Hall, 2010 (ISBN 9780132165419). (Students with previous editions should be OK.) Page references should be correct for the 7th edition, but only approximate for other editions.
  • The Lecture Notes 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.
  • The campus.fsu.edu 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 announcements.
The following optional reference books are sanctioned for this course:
  • Stroustrup, Bjarne, (2013). The C++ Programming Language, Fourth Edition, Addison Wesley, 2013.
    ISBN 0-321-56384-0
  • Sutter, Herb and Alexandrescu, Andrei (2005). C++ Coding Standards, Addison-Wesley, 2005,
  • Oram, A. and Talbott, S. (1991). Managing Projects with Make. Sebastopol, CA: O'Reilly & Associates, 1991.
    ISBN 0-937175-90-0
  • Cameron, D., Rosenblatt, B., and Raymond, E. (1996). Learning GNU Emacs, 2nd Edition. Sebastopol, CA: O'Reilly & Associates, 1996.
    ISBN 1-56592-152-6

The following are useful on-line references:

GRADING/EVALUATION:

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 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. 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 3.

Table 1: Exam Schedule
Exam On-Line Window (Dates Inclusive)
Midterm Exam Mon Feb 16 - Sun Feb 22
Final Exam Mon Apr 27 - Sun May 3
  
 Table 2: Course Points 
 Item   Points/Item   No of Items   Points [Percent]  
 Homework   50   6   300 [30]
 Projects   100   2   200 [20]
 Midterm   200   1   200 [20]
 Final   300   1   300 [30]
Total Points [Percent]:    1000 [100]
 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 
 NOTES:
  1. The exam windows run Mon - Sat only. 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.
  2. FSU Testing requires that you register your test site within the first two weeks of classes. Be sure to take care of that promptly.
  3. Deadlines for deliverables are firm. Please note the deadlines listed in the calendar.
  4. The actual number of assignments may vary slightly.
  5. If there is a quiz with a particular assignment, it will count as assignment points.
  6. The total points from assignments and assignment quizzes will remain 500.

Course Grade There are 1000 total points that may be earned in the course (not counting possible extra credit opportunities), distributed as shown in Table 2. 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 3 and the following notes.

The following are additional constraints on the final grade in this course.

  1. Certain components of assignments in this course have been designated by the Department of Computer Science for assessment of the following expected outcomes for its degree programs, as required by our accreditation agencies, the University and the State of Florida:
    1. the ability to translate a specification to a valid solution
    2. perform input and output
    3. make effective use of a defined set of programming constructs (e.g., primitive data types, subprograms, conditional statements, loops, classes)
    4. document a program through appropriate name choices, logical organization, readable code, and where needed internal documentation
    Departmental policy does not permit a final grade of "C-" or better to be assigned unless the student has earned a grade of "C-" or better on each of these components, regardless of performance on other work in the course.
  2. In addition, 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.
  3. Finally, 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.

COURSE POLICIES:

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 answering "True" to the First Day Attendance Quiz in the Blackboard site.

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.

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. 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 site.

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 supplied.

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 semester.
  • 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 http://dof.fsu.edu/honorpolicy.htm.)

All students are expected to uphold the Academic Honor Policy. Please note the following items are defined and made violations by the policy:

  1. Plagiarism
  2. Cheating
  3. Unauthorized Group Work
  4. Fabrication, Falsification, and Misrepresentation
  5. Multiple Submission
  6. Abuse of Academic Materials
  7. Complicity in Academic Dishonesty
  8. 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 the policy.

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.

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 class.

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)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/

(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 on campus.fsu.edu.