Skip to content
Public template

About

Teaching Software Engineering As Programming Over Time

Topics

Resources

Stars

9 stars

Watchers

2 watching

Forks

Latest commit

 

History

75 Commits

Folders and files

Repository files navigation

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

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 and install python dependencies
uv venv
uv sync --locked
source .venv/bin/activate

Export Files

Run the following command to export the student homework project and all lecture samples using the File Export module.

make package

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

We use pre-commit or prek to manage our git pre-commit hooks.

Setup

prek is automatically installed from uv.lock. 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
prek install --overwrite

Usage

With prek, you don't use your linters/formatters directly anymore, but through prek:

prek run --file path/to/file1.cpp tools/second_file.py  # run on specific file(s)
prek run --all-files  # run on all files tracked by git
prek run --from-ref origin/master --to-ref HEAD  # run on all files changed on current branch, compared to master
prek run <hook_id> --file <path_to_file>  # run specific hook on specific file

About

Teaching Software Engineering As Programming Over Time

Topics

Resources

Stars

9 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages