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 secondo 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.

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




Modalità di valutazione

L'esame consiste in una prova scritta e in una prova orale, alla quale si accede a condizione che si sia ottenuto la sufficienza alla prova scritta.



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.