Skip to content

heig-tin-info/pset-c

Repository files navigation

Problem sets for Info1/Info2 C course

C exercise series (INFO1/INFO2), written in Markdown and rendered to PDF with TeXSmith and the exam template.

Repository Layout

  • series/: Markdown sources (series-*.md) with frontmatter config.
  • series/common.yml: shared TeXSmith config.
  • assets/: shared assets used by series.
  • pelican/ + pelicanconf.py: static site generation for dist/index.html.

Temporary build outputs:

  • build/: local build output (build/series/<id>/...).
  • dist/: static distribution folder (PDFs + site).

Tooling

  • uv for Python environment and dependency management.
  • texsmith + texsmith-template-exam for Markdown -> LaTeX -> PDF.
  • pelican for static index page generation.
  • make for build orchestration.

Prerequisites

  • uv
  • make (recommended)

Install Dependencies

make deps

Equivalent command:

uv sync --extra dev

Build PDFs

Build everything (pset + solution for all series):

make all

Build one series (example series-20):

make series-20

Outputs:

  • build/series/<id>/pset/pset.pdf
  • build/series/<id>/solution/solution.pdf

Build Distribution

make dist

This command:

  • Builds all series.
  • Copies PDFs to dist/.
  • Copies source Markdown files (series-*.md) to dist/.
  • Regenerates dist/index.html using Pelican.

Cleanup

make clean      # remove build/
make mrproper   # clean + remove dist/*.pdf

Development for template-exam

Default behavior uses latest GitHub revision of texsmith-template-exam from pyproject.toml.

To work in debug mode (editable local checkout, useful for Agent work):

  1. Clone template-exam next to this repository:
git clone git@github.com:yves-chevallier/template-exam.git ../template-exam
  1. Enable editable override:
make deps-dev-template

This installs ../template-exam in editable mode into this repo's .venv, so local changes are picked up immediately.

  1. When finished, publish your changes in template-exam, then reset this repo to pinned dependency behavior:
make deps-reset-template

Tip: if your local checkout path differs, pass it explicitly:

make deps-dev-template TEMPLATE_EXAM_PATH=/path/to/template-exam

After pushing changes to template-exam:

  1. Update the rev under [tool.uv.sources] in pyproject.toml.
  2. Run uv lock.
  3. Commit pyproject.toml and uv.lock in this repository.

About

Séries d'exercices en C

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors