You are on page 1of 6

CT285: Advanced C++ Programming

Course Description

This course is continuation of programming in C++. It presents advanced concepts of C++ and
object oriented design. Specific topics include: Inheritance, Polymorphism, Dynamic Memory
Management, Overloading, Templates, and Exception Handling.

Course Objectives

At the end of the course, students should have demonstrated their ability to:

Formulate object-oriented approaches to complex software problems in C++.


Construct reusable C++ classes using appropriate encapsulation and data abstraction
principles.
Evaluate the role of inheritance and polymorphism in modern object oriented design.
Demonstrate the ability to enable C++s operators to work with objects using operator
overloading.
Analyze exceptions and techniques of exception handling in C++.
Examine the mechanics of templates and how they reduce code replication when used
properly.
Distinguish between various Standard Template Library components and how each is
used to solve different problems.
Employ Streams I/O classes and manipulators to support I/O in custom classes.

Textbook

C++ Programming. From Problem Analysis to Program Design by D.S. Malik. 7th ed. ISBN:
9781285852744

Course Prerequisites

CS265: C++ Programming


CT285: Advanced C++ Programming

Grade Weights

Category Weight

Discussions 20%

Assignments 50%

Midterm Project 15%

Final Project 15%

Course Activities

Week Assignments
Reading:
Read chapters 10 from our textbook
Read the week one lecture: Classes and Data Abstraction
View the week one videos: C++ Basics" and "Input and
Week 1: Data Abstraction Output Statement"

Assignments:
Participate in the week one discussion: Class vs. Object
Complete the week one assignment: Bank Account

Reading:
Read chapter 11 from our textbook
Read the week two lecture: Inheritance and Composition
Week 2: Inheritance View the week one video: Title of Video

Assignments:
Participate in the week two discussion: Why inheritance?
Complete the week two assignment: Bank Account Extended

Reading

Week 3: Polymorphism Textbook, Chapter 12 (pp. 812-873)


W3 Lecture: Pointers
Control Structures
CT285: Advanced C++ Programming
Assignments

Participate in the Week 3 discussion "Polymorphism: A


principle of OOD"
Complete your Week 3 assignment

Read and Review

Textbook, Chapter 13 (pp. 888-965)


W4 Lecture 1: Overloading
W4 Lecture 2: Overloading and Templates
Week 4: Overloading
Assignments

Participate in the Week 4 discussion "Overloading (and we're


not just talking about your schoolwork!)"
Complete your Week 4 assignment
Complete your midterm project

Read and Review

Textbook, Chapter 14 (pp. 982-1017)


W5 Lecture 1: Exception Handling
Week 5: Exception Handling W4 Lecture 2: Exception Handling (slideshow)

Assignments

Participate in the Week 5 discussion "Exceptions are the norm"


Complete your Week 5 assignment

Read and Review

Textbook, Chapter 16 (pp. 1056-1100)


W6 Lecture 1: Searching, Sorting, and Vectors
W6 Lecture 2: Searching, Sorting, and the Vector Type
Week 6: Sorting and Vectors
Assignments

Participate in the Week 6 discussion "To vector or not to


vector? That is the question."
Complete your Week 6 assignment

Course Objectives
Week 7: Standard Template
Library Distinguish between various Standard Template Library
components and how each is used to solve different problems.
CT285: Advanced C++ Programming
Read and Review

Textbook, Chapter 17 (pp. 1102-1182)


W7 Lecture 1: Linked Lists
W7 Lecture 2: Linked Lists (slideshow)

Read and Review

Textbook, Chapter 18 (pp. 1196-1282)


W8 Lecture 1: Stacks and Queues
W8 Lecture 2: Stacks and Queues (slideshow)
Week 8: Wrap up
Assignments

Participate in the Week 8 discussion "STL"


Complete your Week 8 assignment
Complete your final project

The following table outlines the academic effort required by students to be successful in
this course. While the times in the table are approximate, it is presented to help
students with their time management. Please note, depending on the student's
background knowledge and experience of the course subject and an individual student's
academic capabilities, these times will vary. If you have any questions or concerns,
please direct them to your instructor or student advisor.

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 0.7
Online Discussions 2.0
Assignments 0.0
1 Readings 2.6
Discussions 1.0
Preparation
Assignments 2.0
Clinical/Lab Hours 4.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 0.7
Online Discussions 2.0
2 Assignments 0.0
Readings 1.5
Preparation
Discussions 1.0
CT285: Advanced C++ Programming
Assignments 2.0
Clinical/Lab Hours 4.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 0.6
Online Discussions 2.0
Assignments 0.0
3 Readings 2.3
Discussions 1.0
Preparation
Assignments 2.0
Clinical/Lab Hours 4.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 0.6
Online Discussions 2.0
Assignments 0.0
4 Readings 2.9
Discussions 1.0
Preparation
Assignments 5.0
Clinical/Lab Hours 10.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 0.5
Online Discussions 2.0
Assignments 0.0
5 Readings 1.3
Discussions 1.0
Preparation
Assignments 2.0
Clinical/Lab Hours 4.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 0.5
Online Discussions 2.0
Assignments 0.0
6
Readings 1.6
Preparation Discussions 1.0
Assignments 10.0
CT285: Advanced C++ Programming
Clinical/Lab Hours 4.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 1.1
Online Discussions 2.0
Assignments 0.0
7 Readings 3.0
Discussions 1.0
Preparation
Assignments 2.0
Clinical/Lab Hours 4.0

Estimated Hours
Week Type of Activity Activity
Required
Readings/Lectures 1.2
Online Discussions 2.0
Assignments 0.0
8 Readings 3.2
Discussions 1.0
Preparation Assignments 6.0
Clinical/Lab Hours 12.0
Follow this link for course-related Policies and Contact Information.