| exercises | ||
| lib | ||
| pk3 | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| Makefile | ||
| README.md | ||
Informatik 3 (Winter Semester 2025/26)
This repository provides the materials for the courses Konzepte der Programmierung and Programmierkurs 3.
Getting Your Own Git Repository
Sign up for Konzepte der Programmierung on ZEuS and log into your account on gitlab.inf.uni-konstanz.de no later than noon on October 22, 2025, if you haven't already. Then we will create a repository for you; you will get a notification by email before the first tutorial.
Setting Up Your Environment
Install Git (https://git-scm.com/) or a suitable alternative, and familiarize yourself with its basic functionality. The book Pro Git is available online, and the GitHub cheat sheet is sufficient for a quick start.
Git Essentials
Run the following commands in a terminal.
Clone a repository on your machine. This will create a local working copy.
You should have (by Wednesday 22. Oct) received an invitation to a personal GitLab Repository, which is a fork of the pub repository.
git clone https://gitlab.inf.uni-konstanz.de/dbis/education/info3-25w/ENROLLMENT_NUMBER.git info3
cd info3
git remote add upstream https://gitlab.inf.uni-konstanz.de/dbis/education/info3-25w/pub.git
Alternatively, if you have set up SSH:
git clone git@gitlab.inf.uni-konstanz.de:dbis/education/info3-25w/ENROLLMENT_NUMBER.git info3
cd info3
git remote add upstream git@gitlab.inf.uni-konstanz.de:dbis/education/info3-25w/pub.git
After you've created your submission, commit it and push it to Gitlab, for example:
cd /path/to/info3
git commit -m 'Assignment 1'
git push
To copy (pull) new changes from the main repository to your personal repository:
(You can also click Update Fork in the Web GUI.)
cd /path/to/info3
git pull upstream main
For more info, have a look at the Git cheat sheet from Github.
Getting the New Exercise Sheets
They are distributed through the main repository.
Getting Feedback
- Whenever you push new code to the repository, some tests are executed automatically and you will receive feedback. CAVEAT: Some exercises are graded manually by tutors and are not shown in the pipeline.
- Find the test results in Gitlab under Build → Pipelines, and click on the passed/failed icon of the last status.
Lecture Notes for Programmierkurs 3
The lecture notes are in the pk3 folder.
The file formats are either:
.md(Markdown) with optional separate.hsHaskell examples, or.lhsLiterate Haskell files
The literate version of the files is essentially written in Markdown,
with the convention that lines starting with > will be interpreted as
continuing with Haskell code that GHC will consider as the code to compile/interpret. All the lines not starting with > are interpreted as comments by GHC.
The .lhs files can be loaded in ghci directly as any other Haskell file.
With an editor with syntax highlighting you should be able to read comfortably the files as plain text.
We recommend using the Fira Code font for reading the files, as it contains many math symbols and uses ligatures to display ASCII symbols nicely.
However, sometimes it is nicer to consume the material in other formats. To convert the files you can use Pandoc, which is actually written in Haskell!
A basic way to convert the files:
# Convert LHS -> PDF
# Assumes to be run from root folder of repo
pandoc \
--pdf-engine=lualatex
--lua-filter=lib/custom-blocks.lua
-V colorlinks
-V papersize:a4
-H lib/preamble.tex
--standalone
-f "markdown+lhs+rebase_relative_paths"
-t pdf
-o "pk3-05.pdf"
pk3/05/pk3-05.lhs
Adding --toc adds a table of content to the pdf.