Teaching tools created for the Software Engineering Lab.
Find all documents online
If you use our tools or templates please cite our paper.
@inproceedings{hofbauer_2022,
author = {Hofbauer, Markus and Bachhuber, Christoph and Kuhn, Christopher and Steinbach, Eckehard},
title = {Teaching Software Engineering As Programming Over Time},
booktitle = {IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation},
address = {Pittsburgh, PA, USA},
month = {May},
year = {2022},
pages = {1--8},
isbn = {978-1-4503-9336-2/22/05},
publisher = {Association for Computing Machinery},
url = {https://doi.org/10.1145/3528231.3528353},
doi = {10.1145/3528231.3528353}
}
Create documents locally. This requires a docker and docker compose installation.
# Generate Slides as pdf
make slides
# Sever slides
make serve
# Generate the documentation
make docs
To be able to build and execute code, either do the development in the docker container makeappdev/cpp-dev, which is made easy in Visual Studio Code:
- Ensure that Docker is installed and running on your machine
- Open this folder in VS Code
- Install the Remote Development extension
- Open the command palette (
F1
on Windows,Shift+Ctrl+P
on Linux) - Call
Remote-Containers: Reopen in Container
If you don't want to develop inside a docker container, you can install the dependencies directly on your OS using
# Install apt packages
./install.sh
# Create a python venv (optional)
python3 -m venv venv
source venv/bin/activate
# Install python dependencies
pip3 install -r requirements.txt
mkdir -p build # Create build dir
cd build # Go to build dir
cmake .. # CMake
make # Build
make test # Run Tests
We use pre-commit to manage our git pre-commit hooks.
pre-commit
is automatically installed from requirements.txt
.
To set it up, call
git config --unset-all core.hooksPath # may fail if you don't have any hooks set, but that's ok
pre-commit install --overwrite
With pre-commit
, you don't use your linters/formatters directly anymore, but through pre-commit
:
pre-commit run --file path/to/file1.cpp tools/second_file.py # run on specific file(s)
pre-commit run --all-files # run on all files tracked by git
pre-commit run --from-ref origin/master --to-ref HEAD # run on all files changed on current branch, compared to master
pre-commit run <hook_id> --file <path_to_file> # run specific hook on specific file