Topic outline

  • Presentazione del corso

    Scopo del corso è presentare i concetti fondamentali sulla architettura degli elaboratori, per ciò che riguarda l'hardware e i sistemi operativi, e sulla logica, in particolare le inferenze e i ragionamenti.

    Programma

    Il corso si può dividere in tre argomenti principali: logica, architettura degli elaboratori e sistemi operativi. Quello che segue è il programma dettagliato. All'interno del programma i simboli PA, TA, EN indicano i capitoli corrispondenti nei libri di Palladino, Tanenbaum/Austin ed Englander.

    Logica
    • Inferenze e ragionamenti (PA introduzione)
    • Proposizioni semplici (PA 1)
    • Proposizioni composte (PA 2)
    • Connettivi vero-funzionali (PA 2)
    • Forme proposizionali e tabelle di verità (PA 2)
    • Tautologie (PA 3)
    • Equivalenza e conseguenza logica (PA 4, sezioni 1 e 2 delle dispense)
    • Linguaggio e regole della logica del prim'ordine (PA 5, sezione 3 delle dispense)
    • Logica dei predicati con identità (PA 7.1, 7.2)

    Rappresentazione Binaria dei Dati
    • Sistemi di numerazione posizionali (EN 3) (TA appendice A)
      • numeri interi e frazionari
      • conversione tra basi
      • operazioni aritmetiche: somma, differenza e prodotto
      • base binaria, ottale ed esadecimale
    • Rappresentazione dei dati numerici (EN 5) (TA appendice A e B)
      • numeri interi positivi: rappresentazione little-endian vs big-endian
      • numeri interi con segno: rappresentazioni modulo e segno, complemento a 2, complemento a 1.
      • numeri in virgola fissa e virgola mobile
      • rappresentazione BCD
    • Rappresentazione dei dati non numerici (EN 4, TA 2.4.7)
      • valori booleani singoli e a mappa di bit
      • testo: set di caratteri, ASCII, ASCII esteso, Unicode
      • immagini: immagini bitmap e vettoriali, compressione lossless e lossy
      • video
      • audio: campionamento e quantizzazione, compressione lossless e lossy, file MIDI
      • linguaggi di descrizione di pagina

    Architettura e Sistemi Operativi
    • Panoramica sui sistemi di elaborazione (EN 1, EN 2) (TA 1.1 , 1.3)
      • Componenti di un sistema di elaborazione
      • Hardware, software, dati e comunicazione
      • Il concetto di virtualizzazione
      • Standard e protocolli
      • Il concetto generale di sistema
      • Il concetto di architettura di un sistema
      • Architetture applicative
    • Architettura degli elaboratori
      • Un caso di esempio: il Little Man Computer (EN 6)
      • CPU e memoria
      • Architettura di von Neumann e sue estensioni
      • Input/output
      • Periferiche
    • Sistemi Operativi
      • Struttura di un sistema operativo
      • Interfaccia utente
      • Gestione dei file
      • Funzionamento interno


    Materiale didattico

    Per la parte di logica, si utilizzerà il seguente libro di testo:

    Per le parti di architettura dei calcolatori e sistemi operativi, si utilizzerà uno dei seguenti libri di testo, a scelta dello studente:



    Il testo in inglese di Englander è quello più conforme al contenuto delle lezioni, ma se avete problemi con l'inglese, potete anche studiare sul testo di Tanenbaum, combinato con le slide. Oltre hai libri di testo, questa pagina web contiene vario materiale diviso in materiale didattico e materiale didattico integrativo. Tutto ciò che è sotto la voce "materiale didattico" fa parte integrante del programma del corso.

    Esame

    Normalmente l'esame è solo scritto, ma docenti e studenti possono chiedere una prova orale aggiuntiva. Lo scritto è diviso in una parte di logica ed una di architettura e sistemi operativi, che si svolgono insieme e non possono essere separate (unica eccezione è il caso in cui sia stato superato il parziale di logica, vedi oltre per utteriori dettagli). Ognuna di queste due parti contribuisci un massimo di 16 punti al voto finale. L'esame si intende superato se la somma dei voti delle due parti è maggiore a uguale a 18, purché su entrambe le parte lo studente abbia ottenuto il voto minimo di 7. Un voto complessivo superiore a 30 dà diritto alla lode.

    Prova parziale

    Il 26/11/2018 è prevista una prova parziale della parte di logica, da svolgersi durante l'orario delle lezioni in aula 32. Chi supera la prova parziale (voto minimo pari a 15) potrà sostenere negli appelli successivi solo la parte relativa ad architettura dei sistemi di elabotazione e sistemi operativi. Per sostenere la prova parziale è obbligatorio iscriversi entro le ore 20:00 del 25 novembre e portare con se un documento di riconoscimento valido (con fotografia), oltre ad una penna per scrivere. Non è necessario conoscere il proprio numero di matricola. La prova parziale vale per tutti gli appelli del 2019 (inteso come anno solare), anche nel caso si sostenga più di una volta la parte di architettura e sistemi operativi.

    Appelli d'esame

    Questi sono le date previste per gli appelli di Fondamenti di Informatica. Le date sono ufficiose. La data ufficiale è quella del sito per l'iscrizione agli appelli.

    • 17/01/2019 ore 09:00 - 13:00
    • 07/02/2019 ore 09:00 - 12:00 
    • 07/06/2019 ore 09:00 - 12:00  
    • 25/06/2019 ore 09:00 - 12:00
    • 17/07/2019 ore 09:00 - 12:00
    • 16/09/2019 ore 09:00 - 12:00
  • Logica

    • 25/9: Inferenze e proposizioni, regole di inferenze a livello proposizionale e predicativo.
    • 1/10: Inferenze e ragionamenti. Ragionamento deduttivo, induttivo, abduttivo e per default. Proposizioni semplici del 1° e del 2° tipo.
    • 2/10: Funzioni proposizionali. Variabili libere e vincolate. Termini chiusi e aperti.
    • 8/10: Proposizioni composte: negazione, congiunzione, disgiunzione.
    • 15/10: Proposizioni composte: condizionale e bicondizionale.
    • 16/10: Connettivi NAND e NOR. Connettivi non vero-funzionali.
    • 22/10: Forme proposizionali: presentazione formale e informale. Tabelle di verità delle forme proposizionali. Ricavare una forma proposizionale da una tabella di verità. Tautologie e contraddizioni.
    • 23/10: Equivalenza logica. Tautologie ed equivalenze logiche notevoli. Semplificazione di forme proposizionali.
    • 29/10: Verifica di tautologie col metodo indiretto. Basi di connettivi. Conseguenza logica.
    • 5/11: Regole di inferenza e loro correttezza. Regole di inferenza notevoli (modus ponens, modus pollens, regola della doppia negazione, etc...)
    • 6/11: La logica dei predicati. Formule ben formate. Interpretazione.
    • 7/11: Formalizzazione della logica dei predicati.
    • 12/11: Formule valide, equivalenza logica, conseguenza logica, regole di inferenza per la logica dei predicati. Regole di inferenza notevoli.
    • 14/11: Equivalenze logiche notevoli.
    • 19/11: Logica dei predicati con identità.
    • 20/11: Esercitazione su logica dei predicati con identità.
    • 22/11: Esercitazione straordinaria preparativa alla prova parziale.
    • 26/11: Prova parziale
  • Rappresentazione binaria dei dati

    • 26/9: Sistemi di numerazione non decimale. I casi dei sistemi binario, ottale ed esadecimale.
    • 3/10: Rappresentazione di numeri al calcolatore: interi positivi, codifica BCD, interi negativi, modulo e segno, complemento a 1, complemento a 2
    • 9/10: Ancora su rappresentazione in complemento a 2. Numeri frazionari: virgola fissa e virgola mobile.
    • 24/10: Rappresentazione big-endian e little-endian. Rappresentazione di dati booleani (singoli e mappe di bit). Rappresentazione di caratteri: ASCII e ASCII esteso, UNICODE.
    • 30/10: Esperimento su rappresentazioni di file di testo. Immagini bitmap.
    • 21/11: Esperimenti su rappresentazioni di immagini. Immagini vettoriali o a oggetti. Linguaggi di descrizione di pagina. Audio.

  • Architettura e Sistemi Operativi

    • 17/10: Introduzione ai sistemi di elaborazione. Virtualizzazione. Protocolli. Standard. Sistemi e loro architettura. Architetture applicative client-server e peer-to-peer.
    • 27/11: Il Little Man Computer
    • 28/11: Esercitazione sul Little Man Computer - Sessione 11:00
    • 28/11: Esercitazione sul Little Man Computer - Sessione 12:30
    • 03/12: Architettura hardware. La macchina di Von Neumann.
    • 04/12: Gestione della memoria. Cache. Architettura multi core. Assembler. Memoria secondaria. Memoria flash. RAID.
    • 05/12: Sistemi operativi. Stati di un processo. Politiche di scheduling del processore. Interrupt.
      Comandi: ps, ps aux, top
    • 10/12: Gestione della memoria. Memoria virtuale. Paginazione.
      Comandi: free
    • 11/12: File system
      Comandi: ls -l, ls -l --time=atime, ls -l --time=ctime, ln, ln -s, ls -li
    • 17/12: File management system. Percorsi.
      File system di Linux: il file system, permessi dei file , check dei dischi, comandi principali
    • 18/12 Esercizi su Little Man Computer