Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Practical Python | 8,671 | a day ago | 3 | cc-by-sa-4.0 | Python | |||||
Practical Python Programming (course by @dabeaz) | ||||||||||
Swirl_courses | 4,041 | 3 months ago | 188 | other | R | |||||
:mortar_board: A collection of interactive courses for the swirl R package. | ||||||||||
Cobol Programming Course | 2,515 | 11 days ago | 11 | cc-by-4.0 | COBOL | |||||
Training materials and labs for a "Getting Started" level course on COBOL | ||||||||||
Byte Of Python | 2,022 | 3 months ago | 10 | Python | ||||||
Beginners book on Python - start here if you don't know programming | ||||||||||
Python For Absolute Beginners Course | 1,923 | 7 months ago | mit | Python | ||||||
Code samples and other handouts for our course. | ||||||||||
Android Kotlin Fundamentals Apps | 1,395 | 10 months ago | 471 | other | Kotlin | |||||
android-kotlin-fundamentals-apps | ||||||||||
Futurecoder | 1,099 | 5 days ago | 55 | mit | Python | |||||
100% free and interactive Python course for beginners | ||||||||||
Learn4haskell | 886 | 2 months ago | 25 | mpl-2.0 | Haskell | |||||
👩🏫 👨🏫 Learn Haskell basics in 4 pull requests | ||||||||||
Modern Cpp Programming | 734 | 2 months ago | ||||||||
Modern C++ Programming Course (C++11/14/17/20) | ||||||||||
Autolab | 681 | 3 days ago | 128 | apache-2.0 | Ruby | |||||
Course management service that enables auto-graded programming assignments. |
This open-access course is directed at those who are already familiar with C and object-oriented programming towards a proficiency level of C++ programming. The course covers the basics of C++ programming and moves on to advanced C++ semantics and concepts.
Key features:
If you enjoy the course or you find it useful, please add a Star
TITLE | MAIN FOCUS | |
---|---|---|
1 | Introduction | History of C/C++, Areas of Applications, Course introduction |
2 | Basic Concepts I - Fundamental Types | Integral data types, floating-point, operators, and conversion |
3 | Basic Concepts II - Entities and Control Flow | Enumerators, structures, control flow statements |
4 | Basic Concepts III - Memory Management | Heap, Stack, pointers, references, const properties, conversion operators |
5 | Basic Concepts IV - Functions and Preprocessing | Functions, lambda expressions, preprocessing directives |
6 | C++ Object Oriented Programming I - Class Concepts | Class hierarchy, constructor, destructor, class keywords |
7 | C++ Object Oriented Programming II - Polymorphism and Operator Overloading | Polymorphism, operators overloading |
8 | C++ Templates and Meta-programming I - Function Templates and Compile-Time Utilities | Function template, type traits |
9 | C++ Templates and Meta-programming II - Class Templates and SFINAE | Class template, SFINAE |
10 | Translation Units I | Linkage and One Definition Rule |
11 | Translation Units II | Dealing with multiple translation units and files, #include , and modules |
12 | Code Conventions | Project organization and main code conventions |
13 | Ecosystem I | Debugging, and testing |
14 | Ecosystem II | Cmake, documenting, and other Tools |
15 | Utilities | Main std libraries |
16 | Containers, Iterators, and Algorithms | Containers, iterators, algorithms, ranges |
17 | Advanced Topics I | Move semantics, universal reference, type deduction |
18 | Advanced Topics II | Error handling, C++ idioms, smart pointers |
19 | Optimization I - Basic Concepts | Ahmdal Law, performance bounds, architecture concepts (ILP, SIMD, etc.), memory hierarchy |
20 | Optimization II - Code Optimization | Arithmetic optimizations, memory optimizations, etc. |
21 | Optimization III - Non-Coding Optimizations and Benchmarking | Compiler optimizations, profiling and benchmarking tools |
2. Basic Concepts I - Fundamental Types
void
type, Pointer type and nullptr
auto
declaration<=>
, Safe Comparison Operatorssize_t
, When use signed/unsigned integer? Promotion, Truncation, Undefined behaviorNaN
), Summary, Properties3. Basic Concepts II - Entities and Control Flow
struct
, Bitfield, union
if
Statement, for
Loop, Range-base for
loop, switch
, goto
4. Basic Concepts III - Memory Management
new
, delete
, Non-allocating placement allocation, Non-throwing allocation, Memory leak&
, Referenceconst
, constexpr
, consteval
, constinit
static_cast
, const_cast
, reinterpret_cast
, Type punningsizeof
Operator5. Basic Concepts IV - Functions and Preprocessing
#
), #pragma
and #error
, Token-Pasting Operator (##
), Variadic Macro6. C++ Object-Oriented Programming I - Class Concepts
explicit
keyword= default
)this
, static
, const
, mutable
, using
, friend
, delete
7. C++ Object-Oriented Programming II - Polymorphism and Operator Overloading
virtual
methods, Virtual table, override
keyword, final
keyword, Common errors, Pure virtual method, Abstract class and interface[]
, Comparison operator <
, Spaceship operator <=>
, Function call operator ()
, Conversion operator T()
, Return type overloading resolution, Increment and decrement operators ++
/--
, Assignment operator =
, Stream operator <<
, Operator Notes8. C++ Templates and Meta-programming I - Function Templates and Compile-Time Utilities
auto
Placeholder, Class template parameter type, Array and pointer types, Function typestatic_assert
, decltype
Keyword, using
Keyword9. C++ Templates and Meta-programming II - - Class Templates and SFINAE
typename
and template
Keywords, friend
Keyword, Template Template Argumentsconcept
Keyword, requires
Clause, requires
Expression, requires
Expression + Clause, requires
Clause + Expression, requires
and constexpr
, Nested requires
static
and extern
keywords, Internal/External linkage examplesconst
and constexpr
: Static Initialization Order Fiascoinline
functions/variables, constexpr
and inline
extern
keywordextern
keyword#include
Issues: Forward declaration, Include guard, Circular dependencies, Common linking errorsstatic
methods, Namespace alias, Anonymous namespace, inline
namespace, Attributes and namespacesrc/include
directories#include
valgrind
, Stack protectionclang-tidy
cmake
and ctest
doxygen
clang-format
, Compiler Explorer
, Code transformation - CppInsights
, Code autocompletion - GitHub Co-Pilot/TabNine/Kite
, Local code search - ripgrep
, Code search engine - searchcode/grep.app
, Code benchmarking - Quick-Bench
, Font for Codingofstream/ifstream
std::string
, Conversion from/to numeric balues, std::string_view
, std::format
<random>
, Seed, PRNG period and quality, Distribution, Quasi-randomstd::byte
std::pair
, std::tuple
, std::variant
, std::optional
, std::any
16. Containers, Iterators, and Algorithms
std::array
, std::vector
, std::list
, std::deque
, std::forward_list
std::set
, std::map
, std::multiset
std::stack
, std::queue
, std::priority_queue
std::span
std::advance
, std::next
, std::prev
, std::distance
, Container access methods, Iterator traitsstd::find_if
, std::sort
, std::accumulate
, std::generate
, std::remove_if
lvalues
and rvalues
references, Move semantic, Compiler implicitly declared, std::move
&
, &&
Overloading - Ref-qualifiersauto
deductionconst
Correctnessnoexcept
keyword, Memory allocation issues, Alternative error handling approachesstd::unique_ptr
, std::shared_ptr
, std::weak_ptr
19. Optimization I - Basic Concepts
20. Optimization II - Code Optmization
printf
, Memory mapped I/O, Speed up raw data loading21. Optimization III - Non-Coding Optimizations and Benchmarking
gprof
, uftrace
, callgrind
, cachegrind
, perf
Linux profilerOnline compiler and execution: CompilerExplorer
If you find any typo, conceptual error, or section to improve, please report them by writing directly to me or by using the issue
panel
Federico Busato