Obiettivi

 
Il corso intende presentare i fondamenti della programmazione. A questo scopo, nella prima parte del corso, viene introdotto C, come esempio di linguaggio di programmazione. Al termine del corso gli studenti devono essere in grado di tradurre un metodo astratto di risoluzione di un problema in un programma funzionante. Questa parte del corso è fortemente integrata con il corso di Laboratorio di Programmazione. Successivamente il corso si propone di illustrare alcuni concetti di informatica teorica. In particolare si farà cenno alla classificazione delle grammatiche e dei linguaggi formali e si affronterfarà la teoria degli automi a stati finiti.





Programma

Il corso si svolge nel primo semestre del primo anno e tratta i seguenti argomenti:
  • Concetti di base della programmazione.
  • Linguaggio C, come esempio di linguaggio di programmazione.
  • Cenni di teoria degli automi e dei linguaggi.



Organizzazione

Il corso ha 6 ore di lezione per settimana, comprese le ore di esercitazione, e 2 di laboratorio.

Il materiale didattico principale è costituito dalle pagine del sito web del corso.




Modalità di valutazione

L'esame consiste di
  • una prova pratica di programmazione; e di
  • una prova orale, che verterà sia sui contenuti di teoria che su quelli di laboratorio.



Materiale didattico

Questo gruppo di pagine web.

Testi di riferimento

  • S. Ceri, D. Mandrioli, L. Sbattella. Informatica: programmazione McGraw-Hill.
  • J.E. Hopcroft, R. Motwani, J.D. Ullman. Automi, linguaggi e calcolabilità. Addison-Wesley.
  • J.E. Hopcroft, J.D. Ullman. Formal languages and their relation to automata. Addison-Wesley.

Bibliografia di approfondimento

  • B. W. Kerninghan, D. M. Ritchie. Linguaggio C Pearson.
  • A. Bellini, A. Guidi. Linguaggio C, guida alla programmazione. McGraw-Hill.