Intermediate Programming

Johns Hopkins · EN.601.220 · Fall 2021

C and C++ for intermediate to advanced programming. Covers low-level programming techniques, object-oriented class design, and the use of class libraries. Topics include pointers, dynamic memory allocation, polymorphism, overloading, inheritance, templates, collections, exceptions, and others.

Johns Hopkins - EN.601.220 (03) - Fall 2021

General

Linux Basics

Tools

Git

The C Language

Welcome to C

Basics of C

Control Flow

Arrays and C Strings

File I/O and Assertions

Functions

Recursion

Separate Compilation

Multi-Dimensional Arrays

Pointers

Memory

Lifetime and Scope

Structures

Binary IO

Bitwise

Pseudo Random Numbers

Number Representation and Type Conversions

Linked List

The C++ Language

Welcome to C++

Strings

STL Containers

STL Algorithms

IO Streams

Intro to OO

C++ References

C++ Dynamic Allocation

  • How do you use new and delete to dynamically allocate memory?

C++ Classes

Constructors and Destructors

Overloading

Initialization and Assignment

  • What is the difference between == and =?

Rule of Three

  • What is the rule of three?

Template Functions

Template Class

Inheritance

Polymorphism

Dynamic dispatch

Function Hiding and Abstract Classes

OO Design and UML

Enumerated Types

What is the difference between scoped and unscoped enumerators?

Exceptions

Writing Iterators