20875 - Software Engineering

Laurent Poirrier - Fall 2025

Info

Bocconi links: course synopsis, course schedule

Room: Aula 5 (Sarfatti 25, ground floor)

Office hours:

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
Hardware: instructions, memory
Wed Sep 17 10:15 (2h30) Software: compilation, OSs, virtualized memory, stack
Fri Sep 19 12:00 Part 2: Software development
  Compiler invocation and build tools
*Mon Sep 22 13:45 (2h30)   (continued)
*Thu Sep 23 10:15 (2h30)   Programming languages
Wed Sep 24 10:15 (2h30)   Portability, ABIs
*Mon Sep 29 13:45 (2h30)   Regular expressions
[Tutorial] regular expressions
*Tue Sep 30 10:15 (2h30)   Version control systems
[Tutorial] git
Wed Oct 1 10:15 (2h30)   Software licenses, development methodologies
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
*Thu Oct 14 10:15 (2h30)   (continued)
(partials)
Wed Oct 29 10:15 (2h30)   Documentation, tests, fuzzing
Fri Oct 31 12:00   Static and dynamic code analysis, debugging
Wed Nov 5 10:15 (2h30) Part 4: Performance
  Pipelined CPUs, memory
Fri Nov 7 12:00   Caches, benchmarking, instrumentation
Wed Nov 12 10:15 (2h30)   Stochastic instrumentation
Wed Nov 19 10:15 (2h30) [Tutorial] performance
Wed Nov 26 10:15 (2h30)   SIMD, multithreading
Wed Dec 3 10:15 (2h30)   distributed computing, hardware acceleration
Fri Dec 5 12:00   (continued)

* = room different from usual Aula 5.

Exam dates