COP 2224: C++ Programming

Fall 2000 (00-4)


[Arrow Image] C++ programs discussed in class View Project 1 Directions
View Design Project (2) Directions
View Project 3 Directions
Download IOStreams Reference (MS Word document).
How-to: Using make and makefiles
  [Arrow Image] View weekly course schedule
Borland's C++ v5.02 Editor Key Chart Download vi Editor for Windows (vil63w32.zip) Download Free Borland C++ 5.5 (Cmd line tools) Install directions for BC++ 5.5.


COP 2224: C++ Programming

Fall 2000 (00-4)

Time & Place: Ref No. 16096: Tuesday, 7:00 - 9:45 PM, Dale Mabry Tech-426, 3 Credits
Instructor: Wayne Pollock
E-mail Address:   pollock@acm.org
Office & Phone:   Tech-404, 253-7213
Office Hours:   Monday 2-5:20, Tuesday-Thursday, 4:45-5:20 PM, or by appointment
homepage URL:   http://169.139.223.10/pollock/
Text: Deitel & Deitel, C++: How to Program. Third Edition ©2001 Prentice-Hall, Inc.  ISBN: 0-13-089571-7.
Description: "This course is a continuation of Introduction to C focusing on object oriented programs using C++.  This course will introduce the student to the concepts of object oriented programming and will then present the important features of the C++ language as applied to both small programs and also to larger programming projects."  The class format will be lecture and discussion; class participation is strongly encouraged.  In addition, there will be numerous examples and in-class group programming exercises.  (Model solutions to these and all projects will be provided.)

Students are expected to prepare for each class by completing all reading assignments, reviewing examples and model solutions provided, and practicing programming outside of class.  (This is important-you can't learn a skill such as C++ programming only by attending class and reading a book.  You must practice several hours for a few days each week!  If you won't have enough time available consider auditing the course.)

Prerequisite: COP 1220 (Programming in C) or permission of instructor.
Facilities: All programming assignments can be performed on any computer available in the lab or classroom, or on a home computer.  The minimum requirement is a working ANSI C++ compiler.  Borland C++ v5.5 for Windows is free and ANSI compliant and will be used in class.  Student discounts for Borland C++ as well as on other software are available to HCC students at the campus bookstore. 

A free high quality C compiler is available for UNIX and DOS systems from the Free Software Foundation (FSF).  It is called "gcc" (for Gnu C Compiler) or "g++" and it is available using FTP on the Internet at various sites.  MS Visual C++, while not ANSI compliant, will be adequate for this class.

Grading:
3 equally weighted exams: 50%
Several programming projects: 50%

Grade Scale:     A: 90-100,     B: 80-89,     C: 70-79,     D: 66-69,     F: 0-65
(Or you can elect to "audit" the class during the add/drop period.)

  • No make up exams will be offered without the prior approval of the instructor.

  • Class attendance is required for every class.  All phones, pagers, and beepers must be turned off during class time, except with prior permission of the instructor.  Credit for class participation includes attendance, preparedness, and adding to class discussions by asking questions and participating in discussions.  Playing computer games, surfing the internet, or working on other assignments for this or other classes during class time will lose you credit.

  • Additional time outside of class will be required to complete all projects.

  • A project is late if not turned in by the start of class on the day it is due.  Late projects will be accepted up to one week late only if you obtain the instructor's permission at least one week prior to the due date of the project, or for a documented serious medical reason.  All late projects will lose at least one letter grade penalty regardless of the reason for the delay.  Projects later than one week will receive a grade of F (0).

  • Working together on individual assignments is considered as cheating!  Cheating will result in an automatic F (zero) for the project for all parties.  Note that some projects may be group projects, where each member of a small group works together on a project and all receive the same grade. 

    You must follow the academic honesty policy for HCC.  I take these matters very seriously. You have been warned!

Classes Begin: Wednesday 8/23/2000
Add-Drop ends:Tuesday 8/29/2000
Last Day to
Withdraw:
Wednesday, 10/18/2000
Classes End
(Finals Week):
Tuesday, 12/12/2000   (Last regularly scheduled class: Thursday 12/7/00)
No Class on: 9/4/00 (Labor Day), 11/10/00 (Veterans Day), 11/23/00-11/26/00 (Thanksgiving)
Exams: Exams are all closed book tests.  You will need Scantron sheets and a number 2 pencil for exams.  Exams are non-cumulative (not comprehensive).
Projects: Project due dates will be announced later.  There will be two or three large projects will be assigned at various times.  You will have plenty of time to complete the projects.  Some of the components for this project may be developed in class.  In-class programming exercises can be done in groups.  You should work individually on the large projects except when informed that the project is a group project.

Projects are graded according to their design (25%), how well they compile and run (20%), how well your project meets the requirements specifications (20%), the coding style (15%), the amount (and quality) of your comments (10%), and your creativity in extending the project usefully, or an innovative design the uses the features taught in class well, etc. (10%).  Further details will be provided in class.

Request For
Accommodation:
If, to participate in this course, you require an accommodation due to a physical disability or learning impairment, you must contact the Office of Services to Students with Disabilities, Dale Mabry Campus, Student Services Building Room 208.  Voice Phone: (813) 259–6035, TTD: (813) 253-7035, FAX: (813) 253-7336.
Quotes:
Tell me and I'll listen.
Show me and I'll understand.
Involve me and I'll learn.
- Lakota Indian saying
Learning is not a spectator sport! - Chickering & Gamson

COP 2224 Class Schedule

Dates C++ Topics Readings
8/29 Introduction, Computer use, Compiler basics, Borland C/C++ v5.5, First C++ Program, OOPS Preface, chapters 1, 15, 17, 18, Appendix D
9/5 Review of C, C-C++ diff.s, Standard Library, header files, statements.  Using make. Chapters 2, 3.1-3.15, 4, 5, 17, 21.2 Appendix A
9/12
9/19
const, Simple Stream I/O, Dynamic memory (new and delete), References, Default Arguments, inline, Overloading, exceptions, namespaces. Chapters 11, 7.6, 3.16-3.21, 13.1-13.12, 21
9/26 Review       EXAM #1  
10/3
10/10
Introduction to Classes, Horizontal access control, Constructors and destructors, Multi-file projects and make.  C++ String objects.
OOPS: Design using UML
Chapters 6, 18.5, 19
Thinking about Objects case study from chapters 1 through 9
10/17
10/24
Concrete data types, overloading operators, this, static members, friend functions, nested classes, const, mutable Chapters 7, 8, 21.10
10/31 Review       EXAM #2  
11/7
11/14
STL, Inheritance, Vertical access control (protected), Multiple inheritance Chapters 20, 9
11/21 Virtual inheritance, abstract classes, RTTI, auto_ptr, exception hierarchies, type cast operators, explicit Chapters 10, 21.7, 13.13-13.16, 21
11/28
12/5
Templates, Stream input and output, String streams, Manipulators, File I/O Chapters 12, 11, 14
12/12       EXAM #3  


C++ Examples Discussed in Class
Linenum.cpp iostream demo of cin.get     Linenum2.cpp iostream demo of cin.getline
Rot13.cpp iostream use to excrypt text     MaxDeflt.cpp Shows use of default arguments
MaxInlin.cpp Demo of inline function     MaxOvrld.cpp Demo of overloading functions
RefArgs.cpp Demo of pass by reference        
MaxTmplt.cpp Demo of function template     MaxTmpt2.cpp Demo of instantiating a function template
String0.cpp A simple string class     MyManips.h, ... Examples of defining iostream manipulators
String1.cpp A slightly less simple string class        
Matrix1.cpp, ... A 3x3 int matrix class     Matrix2.cpp, ... A more fancy matrix class
IntArray.cpp Array, but with bounds checking     Date.cpp Shows use of inserters & extractors
Boxer.cpp Constructor - destructor demo     vecEx.cpp STL example, using vectors
Slice1.cpp Inheritance & copy construtors     Slice2.cpp Inheritance & copy construtors
MultiInh.cpp Shows a problem with Multiple Inheritance     Phones.cpp Shows simple inheritace, polymorphism, and abstract classes
Using.cpp Shows overriding, overloading, and hiding     Array2D.cpp Shows a template class for dynamic 2D arrays
efector1.cpp Iostream function object: upcase manipulator     efector2.cpp Iostream function object: fmt (number formatter) manipulator
efector3.cpp Iostream function object: bits (binary rep) manipulator     DirDemo.cpp POSIX directory functions
Model Solutions to Assigned Projects
Sketch An app to draw lines and circles     VMail.exe Voice Mail system for a small to medium sized company




Send comments and email to the WebMaster.