Bocconi links: course synopsis, course schedule
Room: Aula 5 (Sarfatti 25, ground floor)
Office hours:
Assignments:
Resources:
| 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) | Part 4: Performance |
| Fri Oct 31 | 12:00 | Pipelined CPUs, memory |
| Wed Nov 5 | 10:15 (2h30) | (continued) |
| 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.