Commit be3d1f62 authored by Alexander Hirsch's avatar Alexander Hirsch

Add README

parent ad2396ed
# Advanced C++ Programming
| Date | Topic / Exercise |
| ---------- | -------------------------- |
| 2019-10-01 | Welcome + [Crap] C Session |
| 2019-10-08 | [Crap] Tools Session |
| 2019-10-15 | [Crap] Git Session |
| 2019-10-22 | [Crap] Scripting Session |
| 2019-10-29 | [Crap] Techniques Session |
| 2019-11-05 | |
| 2019-11-12 | |
| 2019-11-19 | |
| 2019-11-26 | |
| 2019-12-03 | |
| 2019-12-10 | |
| 2020-01-07 | |
| 2020-01-14 | |
| 2020-01-21 | |
| 2020-01-28 | |
[Crap]: https://git.uibk.ac.at/c7031162/crap
The lab takes place in [rr15](https://www.uibk.ac.at/zid/raeume/architekturgebaeude/rr15.html).
## Lecture Offset
Due to bureaucratic reasons the beginning of the lecture is postponed to November.
To compensate for this, we'll do a recap of C and other, related stuff in October.
This is done in the hope that it will be useful, not only for C++, but in general.
However, attendance during this time is optional and there won't be any exercise sheets.
We'll start with C++ related stuff in November, in sync with the lecture.
## Grading
Grading is done through weekly exercise sheets and QA sessions regarding the side project.
At the beginning of each lab your team is asked to mark the exercises you have solved *and* prepared for presentation.
Marking an exercise not only means that you have a solution, but also that you are able to explain it to the class.
You'll have to answer questions related to the exercise as well as the surrounding context.
You can use the time after the exercises have been presented to work on your side project.
During this time I'll go from team to team and ask questions.
To pass this PS you have to:
- Obtain at least 76% of all exercise points (excluding bonus exercises);
- Receive at least one positive grade for a presentation;
- Receive at least one positive grade for a QA session; and
- Complete the side project
Given these requirements are met, your final grade is simply the average of the first 3 bullets.
The side project itself is not graded since it serves as a sandbox for experimentation.
### Exercises
Exercises can build on-top of each other — even across exercise sheets.
Solutions will *not* be provided under normal circumstances.
Each folder with the `ex` prefix represents one exercise sheet.
Tasks and related material are located within said folder.
Each task is worth a certain number of points based on the estimated workload.
You do not have to submit your solution unless explicitly stated.
### Presentation
How exactly you present your solution is up to you.
Just be prepared to fit your explanation in a 15 minute time slot.
I'll ask questions during the presentation.
Questions from the audience are welcome.
Use a high-contrast colour theme and an easy-to-read font.
While a computer is provided by the ZID, you are advised to bring your own laptop.
Please check if your system is compatible with the installed projector before the lab starts.
Don't forget your adapters.
> In ZID we *do not* trust.
### Side Project
The goal of the side project is to become more fluent with the C++ programming language and its standard library.
There are two options:
- create a simple RPG following the provided specification; or
- come up with your own idea for a side project and ask me for confirmation.
The second option requires you to write a specification upfront, explaining details and establishing objectives.
How much you get out of the side project is entirely up to you.
If you feel like you are learning more from the regular exercises, you are probably not pushing yourself hard enough.
### Absence
You must not be absent more than two times.
You do not have to inform me of your absence.
If a team is only partially present, it can still mark exercises.
However, only the people presenting will receive a grade.
The same goes for the QA sessions.
Note that I will *not* take absence statistics into account when selecting people for presentation or QA.
## Contacting Me
If you have questions or want to know more about a certain topic, I am always glad to help.
You can find me in room 2W05 of the ICT building.
You can also contact me by email, just be sure to send it from your university account.
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)
## Useful References / Tools
- [Awesome Modern C++](https://github.com/rigtorp/awesome-modern-cpp)
- [Boost](http://www.boost.org)
- [C++ 20 Standard (Draft)](https://github.com/cplusplus/draft/raw/master/papers/n4830.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)
- [Online C++ Demangler](https://demangler.com)
- [STL Containers](http://en.cppreference.com/w/cpp/container)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment