Introduzione al corso di programmazione 1
Corso di programmazione I (A-E / O-Z) AA 2023/24
Corso di Laurea Triennale in Informatica
Fabrizio Messina
[email protected]
Dipartimento di Matematica e Informatica
Overview
1. Informazioni generali
2. Contenuti
3. Testi consigliati
4. Modalità di esame
5. Docente, tutor e comunicazioni
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 1
Informazioni generali
Descrizione sintetica del corso
Il corso presenta i fondamenti di programmazione degli
elaboratori. In particolare:
• I concetti di base della programmazione strutturata.
• Alcuni strutture dati di base.
• Alcuni algoritmi di ordinamento di base.
• Il linguaggio adottato è’ il C.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 2
Consigli e propedeuticitá
E
Possedere un laptop è altamente consigliato.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 3
Consigli e propedeuticitá
i
Propedeuticità: nessuna. Ma...
• Familiarità con le funzionalità di base di un sistema
operativo (Linux, Windows, MAC, etc):
• Operazioni di base con i files (cancellazione,
spostamento, etc)
• Familiarità con un editor di testo.
• Compilatore? Impareremo insieme ad usare gcc
mediante Shell testuale e un IDE (Code::Blocks).
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 3
Strumenti per il corso
• Slide.
• Libro di testo indicato sul syllabus
• Esempi svolti in C da studiare, compilare ed eseguire, modificare,
etc.
E
Prese elettriche in aula: collegare il proprio laptop
• codificare semplici esempi
• compilare, commentare, studiare, modificare gli esempi
forniti dal docente
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 4
Contenuti
Programma
• Modulo A: Introduzione alla programmazione.
• Modulo B: Caratteristiche del linguaggio C.
• Modulo C: Strutture dati e algoritmi di
ordinamento e di ricerca.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 5
Programma: Modulo A
Introduzione alla programmazione
Problemi, Algoritmi e Diagrammi di flusso.
Tipi di informazione e loro rappresentazione digitale: booleani, interi, float,
stringhe, dati multimediali. Standard IEEE 754.
Cenni al modello di calcolo di von Neumann: memoria+unità di elaborazione.
Variabili; Espressioni; Assegnazioni.
Linguaggi di programmazione: macchina, assembly e di alto livello.
Problema della traduzione: compilazione ed interpretazione.
Notazione lineare strutturata. Teorema di Böhm-Jacopini.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 6
Programma: Modulo B
Caratteristiche del linguaggio C
Installazione del compilatore, primo programma. Fasi di sviluppo.
Costrutti del linguaggio. Tipi di dato; Operatori predefiniti; Conversioni di tipo.
Gestione dell’I/O di base: stdin, stdout, stderr.
Controllo del flusso.
Funzioni e scope delle variabili.
Gestione della memoria.
Puntatori e relativi operatori, aritmetica dei puntatori. Puntatori e array. Const.
Gli array in C e loro gestione. Array multidimensionali.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 7
Programma: Modulo B
Stringhe in C e loro gestione.
Generazione di numeri pseudo-casuali in C.
Passaggio di parametri ad una funzione. Passaggio per indirizzo/riferimento vs
passaggio per valore.
Macro, preprocessore.
Gestione delle chiamate mediante stack delle attivazioni.
Ricorsione.
I Record (struct), le union e le enum.
Argomenti alla funzione main.
Gestione dei file in C.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 8
Programma: Modulo C
Strutture dati di base, ordinamento e ricerca
Array ordinato e non ordinato. Pile e code.
Liste concatenate: semplici, doppie.
Algoritmi di ordinamento e ricerca.
Selection Sort, Insertion sort e Bubble Sort.
Ricerca sequenziale e ricerca dicotomica.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 9
Testi consigliati
Testi consigliati
• Il linguaggio C Fondamenti e tecniche di
programmazione - 9/Ed. Paul J. Deitel - Harvey M. Deitel.
ISBN: 9788891906236
• Il linguaggio C - Principi di programmazione e manuale di
riferimento - B. Kernighan - D. Ritchie - ISBN:
9788891908230
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 10
Modalità di esame
Prove di Programmazione I
P1 Prova teorica con domande a risposta multipla. Esito
immediato.
P2 Prova di laboratorio (si tiene nello stesso giorno della P1),
solo se P1 superata con successo.
P3 Prova orale, solo se P2 superata.
NB P1 e P2 si tengono nello stesso giorno. P2
immediatamente dopo P1. Risultati P2 dopo giorni
(visione elaborato da parte del docente).
P3 Prova teorica (colloquio orale) sugli argomenti trattati a
lezione.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 11
Prove di Programmazione I
Prova in itinere (Dicembre 2022):
• P1) ridotta ai soli argomenti svolti fino a Dicembre.
NB: E’ consentito sostenere ogni singola prova nell’arco dell’intero
Anno Accademico in appelli e/o sessioni separate.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 12
Voto finale.
V2
V = + I;
I rappresenta un incremento dovuto all’esito della
prova orale
V 2 è la votazione conseguita nella prova di
laboratorio P2.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 13
Calendario Esami Programmazione I
Calendario esami disponibile a partire dalla pagina web
https://web.dmi.unict.it/corsi/l-31/esami
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 14
Docente, tutor e comunicazioni
Docente
i
Sito web:
www.dmi.unict.it/messina
E-mail: [email protected]
Pagina web didattica:
http://www.dmi.unict.it/messina/teaching.html.
Pagina web dedicata al corso (AA 23/24): (NB: In continuo
aggiornamento)
http://www.dmi.unict.it/messina/teaching.html#prog1 2023 24
• Slide mostrate a lezione.
• Esercizi svolti, codice di esempio, etc.
• Testi di esame (*) assegnati nel corso dell’AA ed eventuali
svolgimenti.
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 15
Tutorato qualificato AA 2023/2024
Dr. ??? Da definire.
Esercitazioni in aula
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 16
Avvisi/comunicazioni
Canale Telegram per il corso A-E / O-Z (iscrizione
altamente consigliata!):
https://t.me/prog1 AEOZ 2324
Pagina degli avvisi del Corso di Laurea in
Informatica:
http://web.dmi.unict.it/corsi/l-31/avvisi
Pagina degli avvisi dei DOCENTI del Corso
di Laurea in Informatica:
http://web.dmi.unict.it/corsi/l-31/avvisi-
docenti
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 17
Domande??!!!
QUESTIONS ??
Fabrizio Messina DMI Unict [PDF generato il 4 ottobre 2023 alle ore 17:07] 18