| Nome del Corso |
Programmazione
|
| Codice del Corso |
00819
|
| Grado |
Laurea
|
| Semestre |
Primo 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, overloading, ereditarieta'
Uso dell'ambiente di sviluppo CDT per Eclipse.
|
| Lezioni |
Lezione 0:
Introduzione al corso e obiettivi, il programma Hello World, compilazione.
Lezione 1:
Grammatica dei linguaggi di programmazione, definizione formale di insiemi infiniti, la notazione BNF.
Lezione 2:
Identificatori, dichiarazioni, tipi di dato, espressioni, type safety.
Lezione 3:
Il comando if-then-else e if-then, il comando while, il comando for.
Lezione 4:
algoritmi per il calcolo del massimo comune divisore e cenni di complessità computazionale.
Lezione 5: Portata delle dichiarazioni e funzioni.
Lezione 6: Funzioni ricorsive.
Lezione 7: Array.
Lezione 8: Le strutture (statiche).
Lezione 9: Strutture dati dinamiche.
Lezione 10: Strutture dati dinamiche: gli alberi.
Lezione 11: Alberi binari di ricerca.
Lezione 12: Classi.
Lezione 13: Sottoclassi ed ereditarieta`.
Lezioni del Dott. Lanese
Lezione 0: Eclipse e sua installazione.
Lezione 1: Esercizi sulle grammatiche (Soluzioni).
Lezione 2: Esercizi sulle espressioni.
Lezione 3: Esercizi su input/output e comando condizionale.
Lezione 4: Esercizi su comandi iterativi.
Lezione 5: Esercizi su debugging e funzioni.
Lezione 6: Esercizi su funzioni ricorsive.
Lezione 7: Esercizi su array.
Lezione 8: Esercizi su strutture.
Lezione 9: Esercizi su puntatori e liste.
Lezione 10: Esercizi su alberi.
Lezione 11: Esercizi su classi.
Lezione 12: Esercizi su ereditarieta`.
Lezione 13: Preparazione all'esame 1.
Lezione 14: Preparazione all'esame 2. Soluzione alternativa esercizio 3
|
| Tipo di insegnamento |
Lezioni frontali
|
| Giudizio |
Esame scritto
|
| Testi di riferimento |
Si suggerisce di usare il testo 4 e uno solo, a scelta, tra 1, 2, e 3.
- Stroustrup: "Programming: Principles and Practice using C++"
Addison-Wesley 2009
(questo corso copre la prima parte di questo testo)
-
Savitch: "Problem Solving with C++", Addison-Wesley 2004
(ottimo testo di introduzione alla programmazione e che usa C++)
-
Stroustrup: "The C++ Programming Language", Addison-Wesley 2004
(è la bibbia sul C++ da parte di ci l'ha inventato: per coloro che intendono approfondire il lingaggio)
-
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.
|
|