Computer Science (COMP) 306

C++ for Programmers (Revision 2)

COMP 306

View previous revision

Delivery Mode: Individualized study online (with eTextbook)

Credits: 3

Area of Study: Science

Prerequisite: Prior computer programming training and/or experience in a third generation language such as C or Java and approval by the course professor.

Precluded Course: COMP 206, COMP 307 and COMP 389. (COMP 306 cannot be taken for credit if credit has already been obtained for COMP 206, COMP 307 or COMP 389).

Faculty: Faculty of Science and Technology

Centre: School of Computing and Information Systems

COMP 306 is not available for challenge.

Check availability

**Note: Students who are concerned about not meeting the prerequisites for this course are encouraged to contact the course coordinator before registering


COMP 306 is designed to extend the students' knowledge and practice in programming to the C++ computer programming language. The course progresses from first principles to advanced topics in Object Oriented programming using C++. To be able to complete this course, a student should have prior programming experience in a third generation language such as C or Java, and some good programming skills in that language.


COMP 306 consists of the following units:

  • Unit 0: Introduction to C++ for Programmers
  • Unit 1: Introduction to Objects
  • Unit 2: Making & Using Objects
  • Unit 3: The C in C++
  • Unit 4: Data Abstraction
  • Unit 5: Hiding the Implementation
  • Unit 6: Initialization & Cleanup
  • Unit 7: Function Overloading & Default Arguments
  • Unit 8: Constants
  • Unit 9: Inline Functions
  • Unit 10: Name Control
  • Unit 11: References & the Copy-Constructor
  • Unit 12: Operator Overloading
  • Unit 13: Dynamic Object Creation
  • Unit 14: Inheritance & Composition
  • Unit 15: Polymorphism & Virtual Functions
  • Unit 16: Introduction to Templates

All units are closely based on material from Thinking in C++, 2nd Edition by Bruce Eckel.

Learning Outcomes

Upon successful completion of the course, you should be able to

  • articulate the principles of object-oriented problem solving and programming.
  • outline the essential features and elements of the C++ programming language.
  • explain programming fundamentals, including statement and control flow and recursion.
  • apply the concepts of class, method, constructor, instance, data abstraction, function abstraction, inheritance, overriding, overloading, polymorphism, and templates.
  • program with basic data structures using array, list, and linked structures.
  • explain the object-oriented design process and the concept of software engineering.
  • program using objects and data abstraction, class, and methods in function abstraction.
  • analyze, write, debug, and test basic C++ codes using the approaches introduced in the course.
  • analyze problems and implement simple C++ applications using an object-oriented software engineering approach.
  • apply advanced C++ topics to applications and programs.


To receive credit for COMP 306, you must achieve a course composite grade of at least D (50 percent), including a grade of 50 percent on each assignment, at least 50 percent on the final examination. The weighting of the composite grade is as follows:

Activity Weighting
Assignment 1 15%
Assignment 2 15%
Assignment 3 20%
Assignment 4 20%
Final Exam 30%
Total 100%

The final examination for this course must be taken online with an AU-approved exam invigilator at an approved invigilation centre. It is your responsibility to ensure your chosen invigilation centre can accommodate online exams. For a list of invigilators who can accommodate online exams, visit the Exam Invigilation Network.

To learn more about assignments and examinations, please refer to Athabasca University's online Calendar.

Course Materials


Registration in this course includes an electronic textbook. For more information on electronic textbooks, please refer to our eText Initiative site.

Eckel, B. (2000) Thinking in C++, 2nd ed. Prentice Hall, Upper Saddle River, NJ.

A print version of the eText may be available for purchase from the publisher through a direct-to-student link provided on the course website; you can also acquire the textbook on your own if you wish.

Other Resources

All other learning resources will be available online.

  • Computer Science 306 Study Guide.

Available from the Course website:

  • Tutor Marked Exercises and Instructions.
  • A Course Evaluation Form.
  • Links to Other Web-based Course Resources.

Available from Other websites:

  • C++ Compiler and development environment tools.
  • Online version of Thinking in C++
  • Program examples from Thinking in C++

Additional supporting materials of interest to students may occasionally be made available electronically.

Special Course Features

COMP 306 is offered by computer mediated communications (CMC) mode, and can be completed at the student's workplace or home. It is an elective in all Computing and Information Systems programs.

Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized-study counterparts.

Opened in Revision 2, May 9, 2014.

View previous revision