uibk_703807-Advanced-CXX/README.md

76 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

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)
- [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)