BCC - Spring 2010 Syllabus
Course Name : CIS-62
Course Description: Object Oriented Programming in C++
Instructor: Igor Kholodov Igor.Kholodov@bristolcc.edu
Office: K211
Telephone: 508-678-2811 ext. 3328
URL of this file: http://www.c-jump.com/CIS62/CIS62syllabus.htm

Catalog Description

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.

Introduction

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.

Course Objectives

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:

Prerequisites

Prerequisite: CIS-60 or permission of the instructor.


Tentative schedule of classes, projects, and assignments


  1. January

    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:


  2. Feb 1 - 15 

    Encapsulation, struct, access specifiers, scope management, function overloading, and friends.


  3. Feb 16 - 28

    Constructors, destructors, new, delete, references.


  4. Mar 1 - 15

    Constructor initializer lists and const qualifiers


  5. *** Spring Break -- NO CLASS ***

  6. Mar 16 - 31

    std::string


  7. Apr 1 - 15

    Substring assignment review


  8. Apr 15 - 30

    Linked Data Structures


  9. May 1 - 15

    Operator overloading, conversion constructors, conversion operators.


  10. May 1 - 15

    Inheritance.


     

  11. Final Project Assignment: Project 2/Part 2, Overloaded substring operators


  12. Self-study

    Namespaces.

    C++ Templates. Template classes and functions.


  13. Self-study

    C++ Standard Library containers, iterators, and algorithms,.

    Exception handling.


  14. Self-study

    Object-oriented design.


Other useful topics and recommended reading:

Required Textbook

Choose one:


New CIS-62 textbook:

Problem Solving with C++,
with Borland Turbo C++ for Windows CD ROM
by Walter Savitch
Publisher: Addison-Wesley
Seventh Edition, Copyright 2009
Publishing Date: 2008/02/20
ISBN-10: 0-321-53134-5
ISBN-13: 978-0-321-53134-6
Online resources: www.aw-bc.com/savitch/

Better text book. New teaching style.
Includes educational Video Notes.


Old CIS-62 textbook
(some of you already may have a copy.)

C++ How to Program
with Microsoft Visual C++ CD ROM
by Deitel and Deitel
Fifth Edition 2005
Prentice Hall Publishing Co.
ISBN# 0-13-185757-6

This classic text book was used at BCC for years,
and many people already have a copy.

However, later editions became overloaded with
reference-like chapters, and got harder for beginners.
(Not recommended for new students.)

The texts were ordered and should be available in the bookstore. We will have a discussion in class about these and other books on the subject.

Class Participation

Be sure to do the required reading and assignments before attending the class. You will be more successful entering into discussion with some understanding of the material before hand.

Course Policies

  1. Requirements for a passing grade in this course:
  2. Learning Experiences:
  3. Grading:
  4. Due Dates:
  5. Teaching Methodology:
  6. Attendance:
  7. Office Hours:

Note: This syllabus 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.