- Docente: Antonella Carbonaro
- Crediti formativi: 12
- Lingua di insegnamento: Italiano
- Moduli: Antonella Carbonaro (Modulo 1) Mirko Ravaioli (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Cesena
- Corso: Laurea in Ingegneria e scienze informatiche (cod. 8615)
-
Orario delle lezioni (Modulo 1)
dal 23/09/2024 al 17/12/2024
-
Orario delle lezioni (Modulo 2)
dal 18/09/2024 al 18/12/2024
Conoscenze e abilità da conseguire
Al termine del corso, lo studente ha una competenza di base sulla programmazione mediante linguaggio C e sull'analisi di alcuni problemi fondamentali e dei relativi algoritmi risolutori.
Contenuti
Il corso di Programmazione è finalizzato a fornire una forte competenza sulla programmazione dei calcolatori elettronici. Non sono richiesti prerequisiti di tipo informatico. Viene inizialmente fornita una prima descrizione dell'approccio algoritmico alla soluzione di problemi mediante computer. Successivamente, facendo uso del linguaggio C, di cui viene fornita una descrizione dettagliata che prescinde da ogni eventuale competenza pregressa degli studenti, vengono analizzati i principali problemi, strutture dati e algoritmi risolutori.
Il linguaggio C
Organizzazione della memoria, indirizzi, parole, puntatori. Tipi di dato. Strutture dati. Il linguaggio C: scopi e caratteristiche. La struttura di un programma C, header, dichiarazione, librerie. Puntatori; aritmetica sui puntatori. Array e matrici e loro rappresentazione in memoria. Strutture dati: liste, pile, code, alberi. Funzioni di libreria e funzioni definite dall'utente. Passaggio di parametri. Funzioni ricorsive. Funzioni di input/output. Funzioni sui file. Funzioni per la gestione diretta della memoria. Funzioni su stringhe.
Progetto ed analisi di algoritmi
Tipi di dato; specifica algebrica e implementazione: vettori, liste, pile, code, alberi. Algoritmi con strutture dati: costruzione, ricerca e ordinamento.
Testi/Bibliografia
Copia dei lucidi usati a lezione e materiale didattico messi a disposizione dal docente sul sito dedicato al corso.
Programmazione in C - Kim N. King - Apogeo, 2009.
Introduction to Algorithms - T. H. Cormen, C. E. Leiserson, R. L. Rivest - MIT Press, Cambridge, 1990.
Metodi didattici
didattica frontale, esercitazioni in aula, esercitazioni in laboratorio.
In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, [https://elearning-sicurezza.unibo.it/] in modalità e-learning.
Modalità di verifica e valutazione dell'apprendimento
La verifica dell'apprendimento avviene attraverso lo svolgimento di una prova scritta e di una successiva prova orale. La prova scritta mira ad accertare le abilità acquisite nella programmazione tramite linguaggio C, con l'implementazione di algoritmi efficienti, e a verificare l'acquisizione delle conoscenze previste dal programma del corso.
La valutazione della prova scritta deve risultare almeno sufficiente (i.e., lo studente deve ottenere una valutazione ≥ 18/30) per poter accedere alla successiva obbligatoria prova orale. La prova orale, anch'essa valutata in trentesimi, mira a verificare l'acquisizione da parte dello studente delle conoscenze previste dal programma del corso.
Il voto finale, espresso in trentesimi, tiene conto delle valutazioni ottenute nella prova scritta e nella prova orale.
Strumenti a supporto della didattica
Tutto il materiale utilizzato durante le lezioni frontali e durante le esercitazioni di laboratorio viene reso disponibile anche in formato elettronico e raggiungibile sugli spazi di Ateneo dedicati al corso.
Link ad altre eventuali informazioni
http://www.programmazione.info
Orario di ricevimento
Consulta il sito web di Antonella Carbonaro
Consulta il sito web di Mirko Ravaioli
SDGs


L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.