C++ Track Overview
Key Word(s): C++
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]
- Compilation Basics
- Source & Header Files
- C-Preprocessor
- C Data Types
- Operators, Loops, Functions
- Arrays, Pointers, Memory, References
- Function Pointers
C++ Object-Oriented Programming [Lectures 7-8]
Tools and Documentation [Lectures 13-14]
- Project Organization
- Build Systems and Generators: Make, CMake
- Building and Linking Libraries: static/dynamic libraries, mixed-language programming (C++/F90, Python/C++)
- Doxygen, Sphinx
- Testing: TravisCI, Google Test, CMake Tests, Code Coverage
Design Patterns, Data Structures, Algorithms [Lectures 16-20]
Lecture Markdown Files
View These Lectures on Github!: Good source code coloring!
Supplemental Information
C++ Tutorial: Reference tutorial for C++.
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.