12BHDLZ – Informatica

L’insegnamento, obbligatorio per tutti gli studenti, si propone un duplice obiettivo: da un lato, introdurre gli studenti alle problematiche legate all’informatica, sia dal punto di vista ‘culturale’, sia dal punto di vista ‘tecnologico’. Dall’altro lato, insegnare l’uso della programmazione di un elaboratore quale strumento per la soluzione di problemi reali.

Lo studente deve acquisire due tipologie fondamentali di conoscenze; la soluzione di problemi concreti mediante programmi da realizzare tramite un linguaggio di programmazione eseguiti su un calcolatore; la capacità di comprendere aspetti quantitativi dell’informatica quali prestazioni, capacità di calcolo, rappresentazione dell’informazione, e l’organizzazione degli elaboratori. Queste

[wptab name=’News’]

News

 

[/wptab]

[wptab name=’Syllabus’]

Rappresentazioni numeriche e non numeriche

  • Numeri senza segno
    • concetto di intervallo di rappresentazione
    • operazioni in binario puro: somma, sottrazione, overflow
  • Numeri con segno
    • modulo e segno: rappresentazione
    • complemento a due: rappresentazione, somma, sottrazione, overflow, shift
  • Numeri frazionari e reali (fixed e floating point)
    • fixed-point e floating-point (rappresentazione esponenziale)
  • Codifica dei caratteri (ASCII, UNICODE)

Algebra di Boole

  • Operatori AND, OR, NOT ed espressioni logiche
  • Tabelle di verità di una generica funzione Booleana

Architettura di sistemi di elaborazione

  • Modello Von Neumann (programma in memoria, UC, UO)
  • CPU (velocità di esecuzione) e cache
  • Architettura di un PC (dispositivi e bus)
  • L’hardware e i programmi: linguaggi macchina e ad alto livello di astrazione
  • Traduzione di linguaggi ad altro livello in linguaggio macchina: i compilatori

Problem solving e algoritmi

  • Diagrammi di flusso (flow chart), pseudo-codice
  • Risoluzione di problemi mediante la scrittura di programmi

Linguaggio C

  • Tipi di dato primitivi
  • Costanti simboliche
  • Operazioni di input e output (printf e scanf)
  • Costrutti per il controllo di flusso (condizionali e iterativi)
  • Vettori e matrici (di interi, float e caratteri)
  • Funzioni e meccanismo di passaggio parametri (by value/reference e quanto necessario sui puntatori)
  • Stringhe e vettori stringhe
  • Gestione della linea di comando (argc e argv)
  • File
  • Strutture

[/wptab]

[wptab name=’Exam’]

Esame

L’esame consiste di una prova scritta che punta ad accertare le conoscenze dello studente sia sugli aspetti teorici della materia (tramite esercizi numerici o a risposta aperta) sia sulla parte di programmazione (tramite la realizzazione di un programma in linguaggio C che implementi la soluzione di un problema pratico).

In particolare la prova consiste in 3 domande di toria e nella stesura di un programma C. E’ necessario rispondere correttamente ad almeno due delle tre domande di teoria perchè la prova di programmazione sia valutata.

[/wptab]

[wptab name=’Links’]

[/wptab]

[wptab name=’Resources’]

ATTENZIONE: If you don’t see the teaching material click here.

Tools

Libri di testo

Non è necessario acquistare nessun libro di testo. Per coloro che fossero interessati due libri contenenti materiale attinente al corso sono:

  • Deitel Paul J., Deitel Harvey M., C. How to Program (6th ed), 2009
  • Kernighan Brian W., Ritchie  Dennis M., The C Programming Language, Prentice Hall, 2004

[/wptab]

[end_wptabset]

Leave a Reply

Your email address will not be published. Required fields are marked *