For practical reasons, the principles of this course will assume that the learner is
familiar with a CLI (command line interface).
All the work done in this course will be done using a command line.
Regardless of the host OS, it is expected that the learners will be able to use a command line for this course.
In order to use this course, you must be familiar with git.
There are a number of resources available to learn git.
This link here provides simple, concise information to help you understand git basics.
The content of this course focuses on learning C++ and general computer science information.
Along with learning the language, the content may also focus on build systems,
various testing frameworks, design principles, hardware components and functionalities,
or any other information that is deemed important.
The course will be structured with concise information for a specific topic.
The content of each topic could contain learning resources, exercises, questions, or any other learning material.
The topics themselves will be structured in various directories.
The learner will be expected to study each topic and complete any material involved.
The learner should clone the repo and create branches for learning each topic.
The learner may wish to create directories in their individual branches that mirror the course material.
Any exercises that need to be completed can be done in those directories.
The content may be organized into various modules.
As it's planned, each module will have a project that would need to be completed
before advancing to the next module.
Some modules, and therefore projects, will allows learners to collaborate and work together.
In those cases, the directory names for each learner should be specified in the directory.
All PRs (pull requests) to the main branch must be approved by the code owner.
It is expected that the learner will not use any AI tools for the material in this course.
While using AI tools can be largely beneficial in many cases,
using AI tools could hinder the learners ability to solve unique problems that advance learning.