20875 - Software Engineering

Laurent Poirrier - Fall 2023

This page is for the Fall 2023 course.
See this link for the current Fall 2024 class.

Info

Bocconi links: course synopsis, course schedule

Room: Aula 5 (Sarfatti 25, ground floor)

Office hours:

Assignments:

Notes:

Lectures and tutorials

Date Time Topics and documents
1* Wed Sep 6 16:30 Intro, Boolean logic and integers
2* Fri Sep 8 12:00 Tutorial
3* Mon Sep 11 12:00 Instructions and memory
4* Wed Sep 13 10:15 Compilation, OSs, virtual memory, heap and stack
5 Fri Sep 15 08:30 Compiler invocation, tools, code: objcode.c, optimize.c, overcommit.c, commands used in class
6* Fri Sep 15 12:00 Tutorial, errata, secret.zip, commands used in class
7* Mon Sep 18 12:00 Programming languages
8 Wed Sep 20 10:15 (2h30) Portability, ABIs, APIs, Tutorial, unfinished in-class files
9 Fri Sep 22 08:30 Finished in-class files
10* Mon Sep 25 12:00 Python formatted strings, list comprehensions, Tutorial exercise: t03_ex2.py
11 Wed Sep 27 10:15 (2h30) Regular expressions, Tutorial, in-class solution files
12 Fri Sep 29 08:30 Version control systems
13* Mon Oct 2 12:00 Tutorial, commands used in class
14 Wed Oct 4 10:15 (2h30) Tutorial (continued), Software licenses
15 Fri Oct 6 08:30 Specifications
16 Wed Oct 11 10:15 (2h30) Undefined behavior
17 Fri Oct 13 08:30 Fixed-point and floating-point arithmetic
18 Wed Oct 18 10:15 (2h30) Documentation, tests, static and dynamic code analysis, fuzzing
(partials)
19 Fri Nov 3 08:30 Debugging
20 Wed Nov 8 10:15 (2h30) Pipelined CPUs, memory caches
21 Fri Nov 10 08:30 Benchmarking and static instrumentation
22 Wed Nov 15 10:15 (2h30) Stochastic instrumentation
23 Fri Nov 17 08:30 Tutorial, code: matmul_0.c, filter_0.c, solutions: perf.tgz
24 Wed Nov 22 10:15 (2h30) Data structures in memory: arrays, linked lists
25 Wed Nov 29 10:15 (2h30) Stacks, queues, priority queues
26 Fri Dec 1 08:30 Tries, hash tables, spatial data structures
27 Wed Dec 6 10:15 (2h30) SIMD, threads, distributed computing, hardware acceleration, Falsehoods…


* = deviates from regular Wednesday 10:15–12:45 / Friday 8:30–10:00 schedule.
2h30 = 2h30 lecture (instead of regular 1h30)

Course plan

Exam dates