BCC - Fall 2011 Syllabus
Course Name : CIS-255
eLearning Course Link: Object Oriented Programming
in C++
Igor.Kholodov@bristolcc.edu
Office: K211
Telephone: 508-678-2811 ext. 3328
URL of this file:
http://www.c-jump.com/bcc/c255c/c255syllabus.htm
- Welcome!
- ________________________________________________________
- Posted Dec 9 , updated Dec 11 :
- Upcoming weekly workshop session:
Tuesday Dec 13, room K-104, 3:30 PM.
I plan to go over the final exam online. Be there or be square. Email me if you plan to attend.
- Final Exam Online is now available:
- Exam due date is Thursday, Dec 22.
- The deadline for submitting all outstanding homework and the Final Exam is Thursday, Dec 22 @ 11:59 PM -- absolutely no exceptions!
- Remaining class schedule:
- Tuesday Dec 13, room K-104, 3:30 PM -- Last Workshop
- Thursday Dec 15, room K-104, 11:00 AM -- Lecture
- Thursday Dec 22, room K-104, 11:00 AM -- Final Exam timeslot: I plan to have one more in-class peresentation, since our final exam is posted online.
- Reading -- your homework for this week!
Savitch chapter 18 -- STL. Don't be shy to try the examples from the book.
- Latest demo developed in the classroom demonstrating inheritance:
animation.h
animation.cpp
main.cpp
All files in ZIP format: BeepAnimation.zip
- ________________________________________________________
- Posted Nov 27 , updated Dec 5 :
- Upcoming weekly workshop session:
Tuesday Dec 6, room K-104, 3:30 PM.
Please email me if you plan to attend, so I can plan accordingly. Note that the due date for Project 1/Part 3 is pushed to Dec 8.
- Reading:
Savitch chapter 15 -- Inheritance
- ________________________________________________________
- Posted Nov 13 :
- Upcoming weekly workshop session:
Tuesday Nov 15, room K-104, 3:30 PM.
- Reading:
Savitch chapter 11 -- Operator overloading
- ________________________________________________________
- Posted Nov 7 :
- Last week's weekly workshop session (Tuesday Nov 8), is cancelled again due to unforeseen conflicts in my schedule. Instead, you can ask Wayne Dupont for help with the homework. Wayne will be in K-105 at 3:30 PM on Tuesday.
- Homework Assignment:
Project 1/Part 3, Dynamic stack of integers using linked list
is due Thursday, Dec 8
- Reading:
Savitch chapter 13 -- Linked Lists
Case study: a visualization of STL component interaction at runtime.
- ________________________________________________________
- Posted Oct 19 , updated Oct 24 :
- Sample code:
Copy constructor demo used in class:
dynstack_with_copy_ctr.cpp (download)
- Reading:
Savitch chapter 8 -- std::string.
- Homework Assignment:
Project 2/Part 1, The substring class
is due Thursday, Nov 17
- Sample code:
- icstring.zip - case-insensitive string example
- substring.zip - contains source files you can study to get started on the substring home work assignment.
- ________________________________________________________
- Posted Oct 7 :
- Reading:
Savitch chapter 8 -- std::string.
- Memory usage examples discussed in class:
- C++ Pointers and memory allocation quiz is now available!
Quiz due date is Thursday, Oct 27.
To get your Login and Password credentials for the quiz website, send me email and I will send them to you. NOTE: Quiz password is NOT the same as BCC eLearning. However, once you log in, you can change your password to something that is easy for you to remember.
Be sure to practice before taking the test! You can practice as many times as you'd like. When ready, click the "Go" button to take the test. You will see your grade when the test finishes.
- ________________________________________________________
- Posted Oct 2 :
- Reading:
Savitch chapters 9.1, 9.2, and 10.2.
Note: To better prepare for topics soon to be covered in class, review chapters 9 and 10 of the textbook.
Presentation: C++ object lifetime (also in one file)
- Solution for the copy constructor problem:
- Homework Assignment:
Project 1/Part 2, Dynamic stack of integers
is due Thursday, Oct 13
- ________________________________________________________
- Posted Sep 23 :
- RR xing solution got updated: rrxing_v2.zip. In particular,
- Header guards in header files were added.
- Previously inlined member functions moved out to separate .CPP files.
- To compile properly, add all 4 of the .CPP files to your MSVC project source files.
- If using GCC, then use command line:
g++ main.cpp gate.cpp train.cpp sensor.cpp
- Homework Assignment:
Project 1/Part 1, Stack of integers, all paragraphs, is due Thursday, Oct 6. You should test your solution against this main.cpp (download)
- Material to be covered next week:
Encapsulation (also in one file), especially function overloading and friends.
C++ object lifetime (also in one file)
- Reading: Savitch chapter 9, especially sections 9.1, 9.2, and also 10.2.
- ________________________________________________________
- Posted Sep 16 :
- Class demo: RR xing problem and solution (all files in ZIP format here):
gate.h
sensor.h
train.h
main.cpp
- TA Tutoring and Mentoring:
Wayne Dupont: wdupont1@verizon.net
Please send Wayne email to set up an appointment, or chat with him in class. Thanks Wayne!
- ________________________________________________________
- Posted Sep 12 :
- Pointer sample code written in class on Sep 8 is here: pointer_lecture_samples_day_one.zip.
- Excellent online article: A Beginner's Guide to Pointers.
- Homework Assignment:
Project 1/Part 1, Stack of integers. All paragraphs except paragraph #7
are due Thursday, Sep 29.
- Last year I wrote this IntStack Sample demo, please take a look.
- Sample IntStack code: IntStack_Feb11_2010.zip.
Feel free to use either sample as your starting point for this assignment.
- Reading: Savitch chapter 10, Defining classes
- ________________________________________________________
- Posted Sep 2 :
- C++ Compiler: make sure you have a C++ development environment that works for you. I plan to use MSVC++ installed in the labs on campus.
I have old MSVC++ 2005 CDs for you to install, make a copy, and bring back the originals.
- Homework assignment -- reading:
- Arrays. Savitch chapter 7
- Pointers and Dynamic Arrays. Savitch chapter 9
- Defining Classes. Savitch Chapter 10
- Try some examples from this handout: strlen, strcpy, strcmp
- ________________________________________________________
- Posted Sep 2 :
- Please be sure to read carefully and understand
course policies and formats listed in CIS-255 syllabus.
C++ is a widely used programming language for application development. In this course, the students learn a language that has many practical uses in the real world. The course introduces C++ syntax and functions not found in the traditional C. The fundamental concepts of the object oriented paradigm are introduced and object oriented programming is stressed in place of traditional structured programming. Object arrays, pointers to objects, and linked lists of objects are the focus of the class. Three class hours a week.
This course is designed to enable C programmers to become proficient in C++. Topics include class definitions, overloading functions and operators, access control, single and multiple inheritance, virtual functions and abstract classes, templates, exceptions, and the standard template library. Useful applications such as smart pointers and reference counting are also discussed. Prerequisites: a working knowledge of C, including structures and pointers, is assumed; substantial experience in C is preferred.
At the completion of the course, the students will understand the concepts and be able to write basic C++ programs that make use of the following:
Prerequisite: CIS-155 or permission of the instructor.
Presentation: Classes, objects, members, enumerations, and OOP concepts (also in one file)
Handout: quick overview of Object Oriented Programming in C++.
Assignment 1: Refresh your memory on the following topics:
Encapsulation, struct, access specifiers, scope management, function overloading, and friends.
Assignment: Project 1/Part 1, Stack of integers
See also assignment discussion and sample code.
Constructors, destructors, new, delete, references.
Assignment: Project 1/Part 2, Dynamic stack of integers
Constructor initializer lists and const qualifiers
std::string
Substring assignment review
Midterm Assignment: Project 2/Part
1, The substring class
Linked Data Structures
Assignment: Project 1/Part 3, Dynamic stack of integers using linked list
Operator overloading, conversion constructors, conversion operators.
Assignment: Project 3, Circularly-linked list.
Inheritance.
Namespaces.
C++ Templates. Template classes and functions.
C++ Standard Library containers, iterators, and algorithms,.
Exception handling.
Object-oriented design.
Final Project Assignment:
Project 2/Part 2, Overloaded
substring operators
Other useful topics and recommended reading:
Problem Solving with C++,
by Walter Savitch
Publisher: Addison-Wesley
Seventh Edition:
ISBN-10: 0-321-53134-5
ISBN-13: 978-0-321-53134-6
-- or --
Eighth Edition
ISBN-13: 978-0672330162
Online resources: www.aw-bc.com/savitch/
Better text book. New teaching style.
Includes educational Video Notes.
The textbooks are available in the bookstore.
Note: This is a suggested course outline and will be generally followed, subject to change according to the instructor's discretion and needs. Academic flexibility is important.