# 2018-2019 (1o Sem.) Sapienza - Informatica

Course page (Informatica@SEFA 2018/2019)

This is an introductory course to computer science and programming for students of SEFA 2018. The course introduces basic concepts of computer science, of programming in Python, and of databases operation using SQL.

# 2017-2018 (1o Sem.) Sapienza - Informatica

Course page (Informatica@SEFA 2017/2018)

This is an introductory course to computer science and programming for students of SEFA 2017. The course introduces basic concepts of computer science, of programming in Python, and of databases operation using SQL.

# Fall 2015 TokyoTech — Introduction to Proof Complexity

“Proof Complexity” is the study of the complexity of proving propositional theorems. In this course we discuss various proof systems and we will show lower bounds for them.

# Spring 2014 KTH — Sum of squares and integer programming relaxations

The strongest approximation algorithms in literature employ linear and semidefinite positive relaxations of integer programs.

“Sum of Squares” is a simple computation model that captures all such techniques. We only know a handful of lower bounds for this model, very few compared to more established (but weaker) Lovász-Schrijver and Sherali-Adams hierarchies.

This course will focus on Sum of Squares: we will give an overview of its relation with these earlier systems, and we will see how to use it to develop better approximation algorithms. Then we will study its fundamental limitations, in the form of rank lower bounds.

TIMEFRAME: the course will consist in 16 lectures of 2 hours each. It will start in Week 05 (period 3) and will finish in Week 15 (period 4).

# Fall 2012 KTH — Communication Complexity (Co-Lecturer)

This year the course 2D2441 (i.e. “Seminars on Theoretical Computer Science”) is devoted to Communication Complexity and is taught by Jakob Nordström.

Consider the following problem: Alice and Bob want to compute a function $$f(x,y)$$. Alice has input $$x$$ while Bob has input $$y$$: how many bit do they need to exchange in order to compute the desired function? The study of such communication complexity has application in circuit design, data stream algorithms, cryptography, ecc…

# 2010-2011 Uniroma1 — Fondamenti di Programmazione (Esercitazioni)

Lo scopo delle esercitazioni di questo corso è quello di introdurre gli studenti alla programmazione, utilizzando in particolare il linguaggio C. Le peculiarità di questo linguaggio permettono agli studenti di acquisire familiarità con il concetto di memoria, di puntatore, di gestione degli indirizzi ed in generale di concetti che i linguaggi di programmazione più moderni tendono a nascondere.

Per maggiori informazioni sul corso consiglio di visitare le seguenti pagine web:

# 2009-2010 Uniroma1 — Metodi Matematici per L'Informatica (Esercitazioni)

Nell’anno accademico 2009-2010 ho condotto le esercitazioni del Canale P-Z del corso di “Metodi Matematici per L’Informatica”. Le informazioni per questo corso non sono su questo sito, e possono essere trovate alla seguente pagina web:

A grandi linee il corso introduce agli studenti i concetti più semplici della logica e del ragionamento deduttivo. Sia dal punto di vista formale, attraverso lo studio dei sistemi logici, sia dal punto di vista pratico, mettendoli di fronte all’esigenza di capire, riprodurre e <em>produrre</em> dimostrazioni matematiche corrette.

# 2007-2008 Uniroma1 — Architettura 2 (Tutoraggio)

Qui potete trovare il codice sorgente legato alle sessioni di tutoraggio per il corso di architettura 2. Se avete domande sul codice potete contattarmi o farle durante le sessioni di tutoraggio. Alcuni di questi programmi possono essere leggermente diversi da quelli visti in classe. Vi prego di segnalare eventuali sviste ed errori nel codice!

Update: Il codice è stato rimosso.