YoVDO

Advanced Programming in C++

Offered By: New York University (NYU) via edX

Tags

C++ Courses C Programming Courses Asymptotic Analysis Courses Computational Complexity Courses

Course Description

Overview

This course will soon be retired. Last day to enroll is 12/31/2022 at 00:00 UTC.

This is the 2nd course in the intermediate undergraduate-level offering in the larger Programming and Data Structures MicroBachelors program. We recommend taking them in order, unless you have a background in these areas already and feel comfortable skipping ahead.

  1. Introduction to Programming in C++
  2. Advanced Programming in C++
  3. Introduction to Data Structures
  4. Advanced Data Structures

These topics build upon the learnings that are taught in the introductory-level Computer Science Fundamentals MicroBachelors program, offered by the same instructor.

This is a self-paced course that continues in the development of C++ programming skills. Among the topics covered is the development of more advanced command-line programs that utilize functions, arrays, and strings to solve problems. Students learn to program in C++ through the lectures and the labs. C++ programming material is presented over eight weeks of interactive lectures with bi-weekly quizzes to assess your understanding of the material Students will experience hands-on practice writing C++ programs through twelve lab challenges.

Students will not only learn to use these more advanced procedural programming functionalities. They will also learn to analyze the computational complexity of their code. Computational complexity theory focuses on classifying computational problems according to their inherent difficulty and relating these classes to each other. A computational problem is a task solved by a computer. A computation problem is solvable by the mechanical application of mathematical steps, such as an algorithm.

A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. The theory formalizes this intuition by introducing mathematical models of computation to study these problems and quantifying their computational complexity, i.e., the number of resources needed to solve them, such as time and storage.


Syllabus

Wk 1 - Function Analysis

  • Primality Testing
  • Runtime Analysis
  • Order of Growth
  • Asymptotic Analysis

Wk 2 - Function Implementation

  • k-Combinations Problem
  • Flow of a Program
  • Runtime Stack Execution
  • Scope of Variables
  • Pass By Value
  • Parameter Passing

Wk 3 - Function Labs

Wk 4 - Arrays

  • Motivation
  • Computing the Average
  • Above The Average

Wk 5 - Array Labs

Wk 6 - Strings

  • Concatenating
  • Indexing
  • Slicing
  • Length
  • Comparing
  • Starting Index

Wk 7 - String Labs

Wk 8 - Final Exam


Taught by

Aspen Olmsted

Tags

Related Courses

Automated and Connected Driving Challenges
RWTH Aachen University via edX
Basics in computer vision
Higher School of Economics via Coursera
Build a Guessing Game Application using C++
Coursera Project Network via Coursera
ะก/C++ for competitive programming
Moscow Institute of Physics and Technology via Coursera
C++ Interacting with the World and Error Handling
Infosec via Coursera