Lecture notebooks for the course on Search-Based Software Engineering. Chapters are added here once they have been presented in class. Every notebook is also available as rendered Markdown in rendered/, which you can read without running anything.
| Week | Core lecture path | Notebook |
|---|---|---|
| 1 | Encoding, objective, random search, neighbourhoods, hill climbing; compiler flags | Random and Local Search – Part 1 (rendered) |
| 2 | Restarts, tabu search and simulated annealing (Part 1); fair budgets, distributions and effect sizes; measuring fitness landscapes (Part 2) | Random and Local Search – Part 1 (rendered) |
Use Python 3.12. Some chapters draw trees and networks, which also requires
Graphviz's dot executable; install Graphviz with your operating system's
package manager.
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m ipykernel install --sys-prefix --name sbse2026 --display-name "SBSE 2026"
jupyter notebookOn Windows, activate the environment with .venv\Scripts\activate instead.
Select the SBSE 2026 kernel, run from the repository root, and use
Restart & Run All.