CSC 2210 - Procedural and Object-Oriented C++

4 lecture hours 0 lab hours 4 credits
Course Description
This course introduces students to the C and C++ programming languages. It relates the high-level computational model of these languages to their machine level execution, including details about number representation, a simplified view of microprocessor architecture. Students are introduced to the concepts of compilation, memory management, linking, efficient implementation of objects, and the Standard Template Library. The course contrasts type systems and other characteristics with those of other languages.
Prereq: CSC 1120  (quarter system prereq: CS 2852)
Note: None
This course meets the following Raider Core CLO Requirement: None
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Write procedural C and C++ programs
  • Explain how signed 2's complement and unsigned numbers, and floating point numbers are represented within a computer, and explain how that impacts performance
  • Describe the transformation of code from a high-level language like C++ to machine-level instructions
  • Describe the execution of a line of high-level code and flow of control in terms of interaction with the underlying hardware like the PC, registers, stack and the datapath
  • Explain how variables are allocated in memory, the relationship between variables and pointers, and the scope and lifetime of variables
  • Make use of argument passing by value, reference, and address
  • Write object-oriented C++ programs making use of C++ operator overloading, polymorphism, and virtual vs. non-virtual methods
  • Write robust C++ programs that use dynamic memory allocation
  • Write robust C++ programs using template functions and the Standard Template Library
  • Debug C and C++ implementations using a debugger
  • Use preprocessor directives to conditionally compile source code and support project configuration
  • Compare the C++ type system with other languages with respect to efficiency, reliability, and readability

Prerequisites by Topic
  • Object-oriented programming
  • Java programming
  • Data structures

Coordinator
Dr. Sohum Sohoni, Dr. Robert Hasker


Print-Friendly Page (opens a new window)