University of Bologna
Department of Computer Science and Engineering



Corso di Programmazione

Nome del Corso Programmazione
Codice del Corso 00819
Grado Laurea
SemestrePrimo Semestre
Docenti Prof. Cosimo Laneve e Dr. Ivan Lanese
Linguaggio di Insegnamento Italiano
Crediti 12
Ore di Insegnamento 90
Orario vai a http://corsi.unibo.it/informatica
Orario di Ricevimento Vedere home-page dei docenti: Cosimo Laneve e Ivan Lanese
Obiettivi Al termine del corso, lo studente conosce i principi, gli strumenti e le tecniche della programmazione di applicazioni informatiche. E` in grado di programmare in uno specifico linguaggio di programmazione.
Syllabus
Introduzione alla programmazione con il linguaggio C++.
Programmazione imperativa in C++: algoritmi e programmi, tipi di dato, assegnamento, input/output, condizionali, iterazione, funzioni, ricorsione e funzioni ricorsive, vettori, record, allocazione della memoria, strutture dati dinamiche (liste, code, alberi)
Programmazione object-oriented in C++: classi, metodi, ereditarieta'
Uso dell'ambiente di sviluppo CDT per Eclipse.

Lezioni NEW: progetto 2015.

Lezione 1: Introduzione al corso e obiettivi.

Lezione 1bis: Introduzione alla programmazione, il programma Hello World, compilazione.

Lezione 2: Grammatica dei linguaggi di programmazione, definizione formale di insiemi infiniti, la notazione BNF e EBNF.
Esercizi (Ivan Lanese)

Lezione 3: Identificatori, dichiarazioni, tipi di dato, espressioni, type safety. Esercizi C++

Lezione 4: Il comando if-then-else e if-then, il comando while, il comando for, il comando do-while. Esercizi C++ Triangolo di Tartaglia

Lezione 4bis: Algoritmi per il calcolo del Massimo Comune Divisore.

Lezione 5: Portata delle dichiarazioni e funzioni. Esercizi C++

Lezione 6: algoritmi per il calcolo del massimo comune divisore e cenni di complessita` computazionale. Esercizi C++

Lezione 7: Array. Esercizi C++

Lezione 8: Le strutture (statiche). Esercizi C++

Lezione 9: Strutture dati dinamiche. Versione 4 slide per pagina Esercizi C++

Lezione 10: Funzioni ricorsive. Esercizi C++. Implementazione di insiemi tramite liste ordinate. Esercizi C++.

Lezione 11: Strutture dati dinamiche: gli alberi. Esercizi C++.
Tipo di insegnamento Lezioni frontali
Giudizio Esame scritto
Testi di riferimento
I testi di riferimento sono 1 e 5. In alternativa a 1 si puo` usare uno tra i testi 2, 3 oppure 4.

  1. Walter Savitch: "Problem Solving with C++", Addison-Wesley 2014, 9 ed.

  2. Stroustrup: "Programming: Principles and Practice using C++" Addison-Wesley 2009 (questo corso copre la prima parte di questo testo)

  3. Stroustrup: "The C++ Programming Language", Addison-Wesley 2004 (e` la bibbia sul C++ da parte di chi l'ha inventato: per coloro che intendono approfondire il lingaggio)

  4. Miller: "An Introduction to the Imperative Part of C++", 2011 (ottimo per la parte imperativa)

  5. Lanese, Laneve: " la dispensa di C+o-", 2011

Newsgroup unibo.cs.informatica.programmazione
Per accedere al newsgroup andare sul sito e digitare le credenziali del dipartimento.
I risultati degli esami saranno pubblicati solamente sul newsgroup.