C++ Programming

Description

This is a introductory course to the C++ programming language and is intended for those with little programming background. C++ is a general purpose programming language that supports various computer programming models such as object-oriented programming and generic programming. By learning C++, students will be able to create applications that run on a wide variety of hardware platforms. This course will help students develop programming skills, knowledge of data structures and object-oriented programming and introduce them to algorithm design.

Course Objectives

Basic Programming Skills (Foundation for USACO Programming Contests)

  • Basic Data Types and I/O
  • Branches and Loops
  • Operators
  • Arrays, Vectors, Strings
  • Function and Recursion
  • Pointers and Reference
  • Searching and Sorting
  • Data Structures
  • Algorithms (Breadth-First Search, Depth-First Search, Dynamic Programming, Big O Notation)

Object-Oriented Design (Foundation for AP Computer Science)

  • Object-Oriented Programming
  • Data Members
  • Member Function (Accessor, Modifier, Constructor, Destructor)
  • Overloading and Overriding
  • Inheritance and Polymorphism
  • Abstract Class and Virtual Functions
  • Encapsulation and Interface
  • Standard Template Library (Containers, Algorithms, Iterators, Function Objects)
  • Standard Library Containers (Vectors/List/Dequeue, Set/Map/Multiset, Stack/Queue/Heap)
  • Standard Library Algorithm

Syllabus

Lecture 1: Getting Started

Lecture 2: Working with Variables and Constants

Lecture 3: Creating Expressions and Statements

Lecture 4: Functions

Lecture 5: More Functions

Lecture 6: Understanding Object-Oriented Programming

Lecture 7: More Object-Oriented Programming

Lecture 8: Program Flow

Lecture 9: Understanding Pointers

Lecture 10: Exploiting References

Lecture 11: Managing Arrays and Strings

Lecture 12: Standard Template Library

Lecture 13: Implementing Inheritance

Lecture 14: Polymorphism

Lecture 15: Advanced Classes and Functions