- Docente: Stefano Ferretti
- Crediti formativi: 9
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Moduli: Stefano Ferretti (Modulo 1) Stefano Ferretti (Modulo 2) Catia Prandi (Modulo 3)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2) Convenzionale - Lezioni in presenza (Modulo 3)
- Campus: Cesena
- Corso: Laurea in Tecnologie dei sistemi informatici (cod. 6007)
-
Orario delle lezioni (Modulo 1)
dal 02/10/2024 al 23/10/2024
-
Orario delle lezioni (Modulo 2)
dal 24/10/2024 al 14/11/2024
-
Orario delle lezioni (Modulo 3)
dal 15/11/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 C++, sia dal punto di vista concettuale che dal punto di vista pratico, per lo sviluppo di applicazioni software di media complessità. In particolare: - possiede i fondamenti metodologici per l’analisi e lo sviluppo di sistemi software secondo il paradigma imperativo e a oggetti - conosce le tecniche di programmazione, sia dal punto di vista concettuale che dal punto di vista pratico, e sa applicarle a casi concreti di media complessità - conosce e sa utilizzare le strutture dati fondamentali e i relativi algoritmi - possiede le nozioni fondamentali relative agli aspetti funzionali nei moderni linguaggi a oggetti.
Contenuti
Il corso di Programmazione è finalizzato a fornire una forte competenza sulla programmazione. 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 alcuni problemi fondamentali ed alcuni dei principali e più interessanti algoritmi risolutori.
Organizzazione della memoria di un calcolatore, indirizzi, parole, puntatori. Tipi di dato. Strutture dati. La struttura di un programma, l'inclusione degli header, le librerie. Puntatori; aritmetica sui puntatori. Array e matrici e loro rappresentazione in memoria. Strutture dati complesse. 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.
Testi/Bibliografia
Copia dei lucidi usati a lezione e materiale didattico messi a disposizione dal docente sul sito dedicato al corso.
Paul J. Deitel, Harvey M. Deitel, Il linguaggio C: Fondamenti e Tecniche di Programmazione, Pearson
Programmazione in C - Kim N. King - Apogeo.
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
L'esame del corso di Programmazione è composto da una prova scritta e una successiva 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 dal sito dedicato al corso.
Link ad altre eventuali informazioni
http://www.programmazione.info
Orario di ricevimento
Consulta il sito web di Stefano Ferretti
Consulta il sito web di Catia Prandi
SDGs
L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.