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: |
Grade Scale: A: 90-100, B: 80-89, C: 70-79,
D: 66-69, F: 0-65
| ||||
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: |
|
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. |