This repository contains the Quarto website and teaching-support files for Introduction to Programming at Frankfurt School of Finance & Management.
The course is configured for the 2026-WiSe semester as a 6 ECTS Bachelor-level course taught in English.
course.ymldefines course metadata such as title, semester, credits, language, instructor, repository URL, and schedule settings.index.qmddefines the course homepage, session table, group schedule, and links to notes.teaching_notes.qmdlists instructor notes for each session.assets/styles.csscontains website-level styling, including the session color chips used in the group schedule.data/sessions.generated.ymlis generated schedule data and should not be edited manually.materials.qmdis the automatically generated student-facing index of files inmaterials/.data/materials.generated.mdis the generated Materials page content and should not be edited manually.template/sources.ymlrecords reviewed source repositories and the template update process.
Run commands from the repository root:
make siterenders exercises and the website.make pdfscreates slide PDFs with Decktape.make exercisescreates assignment and solution variants.make sync-eventsregenerates generated schedule data when handbook schedule data are configured.make cleanremoves generated build artifacts.python scripts/generate_materials_overview.pymanually refreshes the Materials page index (Quarto also runs it before every render or preview).PYTHONPATH=. pytest -qruns the Python test suite in this environment.
- Update
index.qmdfirst when the session overview, group dates, or group times change. - Keep each
notes/session_XX.qmdaligned with the matching row in the session table. - If a session number appears multiple times in the group schedule, reuse the same
session-XXCSS class so the color remains consistent. - Update this README when course-level details, file organization, or local commands change.
The website's Materials page is built automatically by recursively scanning
materials/. Quarto runs scripts/generate_materials_overview.py before rendering
and includes the resulting data/materials.generated.md fragment in materials.qmd.
The generator only rewrites that fragment when its contents change.
Hidden files and directories, cache and build directories, Quarto fragments whose
names start with _, Office temporary files beginning with ~$, solution files,
.DS_Store, and generated HTML files that have a matching QMD source are excluded.
To update the overview without rendering the site, run
python scripts/generate_materials_overview.py from the repository root.
Teaching content defaults to CC BY 4.0 unless noted otherwise.
Helper scripts are template infrastructure and intentionally do not declare a separate software-license decision.