Skip to content

Latest commit

 

History

History
52 lines (43 loc) · 3.19 KB

cpp-overview.md

File metadata and controls

52 lines (43 loc) · 3.19 KB

Background

This track assumes basic programming knowledge at the level covered in Harvard's CS50.
Our goal is to build up your C++ experience and introduce system development techniques for Computational Science & Engineering.

class CppTrack: public CS107 {
  public:
    void displayTrack(char advanced) {
      (advanced) ? printf("C++ Track!") : printf("Python Track!");
    }
};

C++ Track Outline

C Basics [Lectures 5-6]

C++ Object-Oriented Programming [Lectures 7-8]

Tools and Documentation [Lectures 13-14]

  • Build Systems and Generators: Make, CMake
  • Building and Linking Libraries: static/dynamic libraries, mixed-language programming (C++/F95 Example, Python/C++)
  • Doxygen, Sphinx
  • Testing: TravisCI, Google Test, CMake Tests, Code Coverage

Design Patterns, Data Structures, Algorithms [Lectures 16-20]


Supplemental Information

C++ Tutorial: Reference tutorial for C++.
C++ Cheatsheet: Summary of C++ functionality
Deepnote: Excercises will be hosted in Deepnote as done with the python track.
CS50 IDE: Easy collaboration space for C++ and python. Documentation found here.
CS50 Sandbox: Some of the lecture content may hosted in a CS50 Sandbox.
IDEAS Project: Best Practices for Computational Science Software Developers.


Next: Compilation Basics