2020-10-01 16:14:01 +02:00
|
|
|
![Advanced C++ Programming](images/banner.gif)
|
2020-09-29 13:15:55 +02:00
|
|
|
|
|
|
|
## Grading
|
|
|
|
|
|
|
|
Throughout this course you have to complete 2 assignments.
|
|
|
|
|
2020-10-09 15:17:10 +02:00
|
|
|
- [Assignment 1](assignment1) has 9 points to score
|
|
|
|
- [Assignment 2](assignment2) has 11 points to score
|
2020-09-29 13:15:55 +02:00
|
|
|
- You need at least 13 points to pass this course
|
|
|
|
|
|
|
|
Points will be subtracted for shortcomings discovered during evaluation.
|
|
|
|
This includes things like:
|
|
|
|
|
|
|
|
- Executables *segfaulting*
|
|
|
|
- Unnecessary waste of time or space (memory leaks)
|
|
|
|
- …
|
|
|
|
|
2020-10-06 13:22:55 +02:00
|
|
|
Attendance is not required for this course.
|
|
|
|
|
2020-10-06 12:34:06 +02:00
|
|
|
## Exercises
|
|
|
|
|
|
|
|
While the previous iterations of this course leveraged weekly exercise sheets, this one does not.
|
|
|
|
However, I would like to keep these exercises around as they support the lecture and explore certain auxiliary topics relevant to C++.
|
|
|
|
You are encouraged to solve (or at least think about) these exercises and participate in the discussions during the stream.
|
|
|
|
You will not submit a solution as these exercises are optional, but feel free to ask questions when running into problems.
|
|
|
|
|
|
|
|
The [`exercises`](exercises) folder will be updated throughout the semester.
|
|
|
|
|
2020-09-29 13:15:55 +02:00
|
|
|
## C++ Related Questions
|
|
|
|
|
|
|
|
Break code specific questions down to a minimal example.
|
|
|
|
State your question and observations as comments in the code.
|
|
|
|
Please use [Compiler Explorer](https://compiler-explorer.com/) and its short link functionality under *Share*.
|
|
|
|
|
|
|
|
## Contacting Me
|
|
|
|
|
2020-10-01 16:14:01 +02:00
|
|
|
You can contact me by email, just be sure to send it from your university account.
|
2020-09-29 13:15:55 +02:00
|
|
|
Please keep your email informal and include the course number in the subject.
|
|
|
|
Preferably use the following link.
|
|
|
|
|
|
|
|
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703807%20-%20)
|
|
|
|
|
|
|
|
## Essential References
|
|
|
|
|
|
|
|
- [C++ 17 Standard (Draft)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf)
|
|
|
|
- [C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
|
|
|
|
- [cppreference.com](http://en.cppreference.com)
|
|
|
|
|
2020-11-20 23:18:40 +01:00
|
|
|
## 🎥 Talks
|
2020-10-09 15:17:10 +02:00
|
|
|
|
|
|
|
- [CppCon 2018 — *Simplicity: Not Just For Beginners*](https://www.youtube.com/watch?v=n0Ak6xtVXno)
|
2020-10-23 10:18:03 +02:00
|
|
|
- [CppCon 2019 — *Naming is Hard: Let's Do Better*](https://www.youtube.com/watch?v=MBRoCdtZOYg)
|
|
|
|
- [CppCon 2015 — *Give me 15 minutes & I'll change your view of GDB*](https://www.youtube.com/watch?v=PorfLSr3DDI)
|
2020-10-30 17:01:42 +01:00
|
|
|
- [CppCon 2018 — *OOP is dead, long live Data-oriented design*](https://www.youtube.com/watch?v=yy8jQgmhbAU)
|
2020-11-06 01:36:40 +01:00
|
|
|
- [CppCon 2014 — *Back to the Basics! Essentials of Modern C++ Style*](https://www.youtube.com/watch?v=xnqTKD8uD64)
|
2020-11-27 11:27:44 +01:00
|
|
|
- [CppCon 2014 — *Modern Template Metaprogramming: A Compendium* Part 1](https://www.youtube.com/watch?v=Am2is2QCvxY) / [Part 2](https://www.youtube.com/watch?v=a0FliKwcwXE)
|
|
|
|
|
2020-10-09 15:17:10 +02:00
|
|
|
|
2020-09-29 13:15:55 +02:00
|
|
|
## Useful References / Tools
|
|
|
|
|
|
|
|
- [Awesome Modern C++](https://github.com/rigtorp/awesome-modern-cpp)
|
|
|
|
- [Boost](http://www.boost.org)
|
|
|
|
- [C++ 20 Standard (Draft)](https://isocpp.org/files/papers/N4860.pdf)
|
|
|
|
- [Clang Sanitizers](https://clang.llvm.org/docs/UsersManual.html#controlling-code-generation)
|
|
|
|
- [Clang Tidy](http://clang.llvm.org/extra/clang-tidy/)
|
|
|
|
- [CMake](https://cmake.org)
|
|
|
|
- [Curated List of Awesome C/C++ Stuff](https://github.com/fffaraz/awesome-cpp)
|
|
|
|
- [DevDocs](https://devdocs.io/)
|
|
|
|
- [Doxygen](http://www.stack.nl/~dimitri/doxygen)
|
|
|
|
- [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
|
|
|
|
- [Google Test](https://github.com/google/googletest)
|
|
|
|
- [Modern C++ Features](https://github.com/AnthonyCalandra/modern-cpp-features)
|
2020-10-09 15:17:10 +02:00
|
|
|
- [Modern CMake](https://cliutils.gitlab.io/modern-cmake/)
|
2020-09-29 13:15:55 +02:00
|
|
|
- [Online C++ Demangler](https://demangler.com)
|
|
|
|
- [STL Containers](http://en.cppreference.com/w/cpp/container)
|