Reports #
Overleaf LCSC templateA (mini-)report is an assembly of the theoretical and practical exercises given. The idea is to integrate answers in an cohesive format without copying the exercise structure. Aim for an article writing-style more than a book/thesis writing style, this means that not every concept need to be introduced to the reader. It is also not needed to explain how you have implemented the code, unless it is necessary for the results (for example, why a certain RNG is faster). You may use the Overleaf template, but don’t have to.
- Send the document in per e-mail (PDF only) to a.b.m.graas@uu.nl.
- Attach your source code in a compressed format (e.g., ZIP or TAR). Do not include binary files, object files, or CMake build directories.
- If you can’t attach to an e-mail, for security reasons or exceeding file size (>25M), use a file-sending platform like SURFfilesender. Please do not send files using a platform that requires registration.
Writing #
- Use LaTeX formatting.
- Only insert code if the focus of a result is C/C++, otherwise consider algorithms.
- Report must be in English. I’m not strict with British/American spelling, but try to be consistent.
- Layout:
- theoretical section(s):
- the solutions of the exercises (not the tutorials)
- a sufficient amount of theory to refer to explain results, not repeating trivialities
- figures to illustrate theoretic concepts
- long proofs go into an Appendix
- numerical experiments and outcomes:
- experimental details
- plots of results
- intermediate conclusions
- thorough discussion/conclusion section
- Appendix:
- software-related: an overview of classes/files if necessary, explain software design that is not trivial.
- reproducable results: mention hardware (CPU/RAM specs), software (library versions, if used), compilation toolchain: which compiler, compile flags if any, CMake version, operating system and version.
- theoretical section(s):
Code #
- Code must compile and execute with a recent GCC version and/or recent LLVM version, on MacOS and/or on Linux, and with a recent version of CMake. So Microsoft users should not depend on Windows API’s (using
windows.h
, for example). - Preferably use the C99 or C++20 standard.
- If an executable requires any command line arguments, input files, or environment variables, please specify these clearly in the report.
- For CMake projects, include the
CMakeFile.txt
. - Citing: make references to code that you have consulted or used, using a comment in your source.
void goes_to_zero(int x) { /* Used https://stackoverflow.com/questions/1642028/what-is-the-operator-in-c-c but translated it to C++ */ while (x --> 0) { // x goes to 0? std::cout << x << " "; } }
- Unless indicated, using existing software or source code, or consulting/using the work of your fellow students, is not permitted. It is OK to use snippets or small ideas from the internet, provided that you cite. If in doubt, ask. C/C++ books or reference websites do not need to be cited.