Skip to content

Latest commit

 

History

History
111 lines (81 loc) · 3.74 KB

README.md

File metadata and controls

111 lines (81 loc) · 3.74 KB

Teaching Tools

Actions Status Actions Status pre-commit.ci status Code style: black

Teaching tools created for the Software Engineering Lab.

Find all documents online

Paper

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}
}

Documents

Create documents locally. This requires a docker and docker compose installation.

Slides

# Generate Slides as pdf
make slides

# Sever slides
make serve

Docs

# Generate the documentation
make docs

Development

Dependencies

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:

  1. Ensure that Docker is installed and running on your machine
  2. Open this folder in VS Code
  3. Install the Remote Development extension
  4. Open the command palette (F1 on Windows, Shift+Ctrl+P on Linux)
  5. 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

C++

mkdir -p build      # Create build dir
cd build            # Go to build dir
cmake ..            # CMake
make                # Build
make test           # Run Tests

pre-commit git hooks

Setup

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

Usage

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