COMP 2510: Programming in C/C++

C++ is an object-oriented relative of C and one of the most widespread computer languages today. Especially, in the computer and software industry, it is one of the most sought-after skills. Many of the more recent computer languages and advanced data processing techniques require previous exposure to C/C++. This course is open to Computer Science students and students from other disciplines.

Lab In addition to classes, this course has one structured laboratory session per week.

Prerequisites:  COMP 1001 or  COMP 1510 or the former 1710 or Engineering 1020 (or equivalent)

Availability: This course is usually offered in Spring, or in Spring/Summer Intersession.

Course Objectives

This course gives a comprehensive treatment of the C/C++ programming languages. It is intended for students with some first programming experience. This course starts with a discussion of fundamentals of C and C++, moves on to the object-oriented aspects of C++, and introduces some advanced topics. It is an essential course for mastering the power of this rich programming language.

Representative Workload
  • Assignments (5-8) 20%
  • Labs (10) 10%
  • In-class Exam 20%
  • Final Exam 50%
Representative Course Outline
  • Overview of C (/C++) (8 hours)
    • fundamental data types and conversion
    • flow control and functions
    • pointers, compound types, and structures
    • preprocessing
    • essential libraries
    • memory models, separate compilation, storage duration, scope, linkage, and namespaces
  • Objects and classes (8 hours)
    • class constructors and destructors
    • class scope
    • this pointer
    • function and operator overloading
    • friends
  • Inheritance (8 hours)
    • access control
    • single and multiple inheritance
    • polymorphism
    • class type cast
    • static and dynamic binding
    • abstract based classes
  • More topics (8 hours)
    • runtime type identification
    • the string class
    • exceptions
    • smart pointers
    • class templates
    • Standard Template Library
Notes
  • Students can receive credit for only one of Computer Science 2510 or Engineering 3891.

Page last updated May 24th 2021