20875 - Software Engineering

Laurent Poirrier - Fall 2025

Info

Bocconi links: course synopsis, course schedule

Room: Aula 5 (Sarfatti 25, ground floor)

Office hours:

Assignments:

Resources:

Lectures and tutorials

Date Time Topics
Fri Sep 5 12:00 Introduction
Part 1: How computers work
Boolean logic
Integers, characters and text
Fri Sep 12 12:00 Hardware: integrated circuits
*Tue Sep 16 10:15 (2h30) [Tutorial] Python formatted strings and list comprehensions
[Tutorial] Boolean logic and integers, files: truthtables_2op.py, truthtables_generic.py, popcount.c
Hardware: instructions, memory
Wed Sep 17 10:15 (2h30) Software: compilation, OSs, virtualized memory, stack, files: mem.c
Fri Sep 19 12:00 Part 2: Software development
[Tutorial] Using a shell, executable analysis and make, files: secret.zip, overcommit.c, Makefile
*Mon Sep 22 13:45 (2h30) Compiler invocation and build tools
*Thu Sep 23 10:15 (2h30) Programming languages, files: silly_interpreter.py, silly_compiler.py, remove_comments.py, refcount_simple.py, refcount_cycle.py
Wed Sep 24 10:15 (2h30) Portability, ABIs
Regular expressions
*Mon Sep 29 13:45 (2h30) [Tutorial] regular expressions, files: t03_regex.zip
*Tue Sep 30 10:15 (2h30) Version control systems
Wed Oct 1 10:15 (2h30) [Tutorial] git, commands used in class
Software licenses
Fri Oct 3 12:00 Part 3: Correctness
Specifications
Wed Oct 8 10:15 (2h30) Undefined behavior
Fri Oct 10 12:00 Fixed-point and floating-point arithmetic
*Tue Oct 14 10:15 (2h30) Documentation, tests, fuzzing
Static and dynamic code analysis, debugging
(partials)
Wed Oct 29 10:15 (2h30)   Assignment 1 introduction, Backus–Naur form
Part 4: Performance
Pipelined CPUs, memory, caches
Fri Oct 31 12:00 Benchmarking, instrumentation
Wed Nov 5 10:15 (2h30) [Tutorial] performance, files: matmul_and_filter.zip
Fri Nov 7 12:00 Parallel computation
Wed Nov 12 10:15 (2h30) SIMD
Wed Nov 19 10:15 (2h30) Multithreading
[Tutorial] multithreading
Wed Nov 26 10:15 (2h30)   Assignment 2 overview: fuzzing
Wed Dec 3 10:15 (2h30) [Tutorial] Multithreading challenge
Fri Dec 5 12:00   Distributed computing and hardware acceleration

* = room different from usual Aula 5.

Exam dates