[000981L] - PROGRAMMAZIONE E ALGORITMI 1 + LABORATORIO (2025/2026)
Schema della sezione
-
Attenzione!
Questa pagina non sarà più aggiornata. Per informazioni relative ai prossimi appelli e modalità d'esame del corso di Programmazione e Algoritmi 1 o del corso di Laboratorio di Programmazione 1, consultare la pagina web del corso dell'a.a. 2026/27.
Obiettivo
Obiettivo di questi due insegnamenti è presentare i fondamenti della programmazione strutturata. Python è il linguaggio scelto per illustrare i concetti, ma i principi appresi si applicano a qualunque linguaggio di programmazione. I due insegnamenti sono strettamente correlati: in Programmazione e Algoritmi 1 si svolgono le lezioni frontali, mentre in Laboratorio di Programmazione 1 si svolgono le esercitazioni pratiche. Non è un obiettivo di questi insegnamenti quello di presentare la programmazione ad oggetti, che sarà uno dei punti centrali dell'insegnamento di Programmazione e Algoritmi 2, al secondo anno.
Programma
Introduzione alla programmazione. Introduzione a Python. Selezione. Iterazione definita. Iterazione indefinita. Funzioni. Liste. Gestione dei file. Eccezioni. Ricorsione. Algoritmi di ordinamento e ricerca. Cenni di complessità computazionale.È disponibile anche il programma dettagliato dell'insegnamento.Ricevimento studenti
Gli insegnamenti saranno tenuto dal prof. Gianluca Amato. Il prof. Amato, oltre alla lezioni in aula e/o in laboratorio, è a disposizione degli studenti durante il proprio orario di ricevimento, per chiarire dubbi su qualunque aspetto, organizzativo o disciplinare, di questo insegnamento. È possibile recarsi al ricevimento studenti sia a titolo personale che in gruppo. Si rimanda alla pagina del profilo del docente per l'indicazione del giorno e orario del ricevimento studenti. È Inoltre possibile contattare il docente tramite email all'indirizzo: gianluca.amato@unich.it. Sempre per email è possibile fissare un appuntamento con il docente in alternativa all'orario di ricevimento standard.
Modalità didattica
Gli insegnamenti si terranno in presenza. In particolare, Programmazione e Algoritmi 1 si svolgerà tramite lezioni frontali. Diversa invece l'organizzazione per il Laboratorio di Programmazione 1 che si terrà in aula formatica: ogni lezione sarà costituta da una parte di didattica frontale ed una parte di esercitazione autonoma dello studente al calcolatore, sotto la guida del docente. L'insegnamento di Laboratorio di Programmazione 1 è diviso in due canali, a seconda della lettera inziale del cognome dello studente.
Alcuni studenti con particolari requisiti potranno accedere alle lezioni in streaming e registrate:
- team per Programmazione e Algoritmi 1
- team per Laboratorio di Programmazione A-L
- team per Laboratorio di Programmazione M-Z
Gli studenti che hanno diritto ad accedere alle lezioni on-line saranno inseriti automaticamente all'interno del team. Richieste estemporanee non saranno accettate.
-
Questa sezione contiene il materiale didattico che non è strettamente collegato ad una specifica lezione. Nelle sezioni successive troverete l'elenco dettagliato delle lezioni e, per ogni lezione, il materiale didattico relativo.
-
Il libro di testo è pensato per essere letto e studiato, quanto meno nelle parti che vengono trattate in questo insegnamento e che saranno evidenziate nell'elenco dettagliato delle lezioni, più sotto in questa stessa pagina. Il libro, molto probabilmente, sarà utilizzato anche per il corso di "Programmazione e Algoritmi 2". Leggere, studiare e capire il libro di testo è essenziale per trarre profitto da questo corso: slide e materiale di altro tipo che verranno distribuiti nel corso dell'anno vanno intesi come ausilio e integrazione al libro di testo, e non come sostituti. Il libro contiene anche una nutrita selezione di esercizi.
-
Questo è il programma dettagliato (congiunto) degli insegnamenti di Programmazione e Algoritmi 1 e di Laboratorio di Programmazione 1 per l'anno accademico 2025/26.
-
Un breve documento con le istruzioni per installare sui vostri computer l'ambiente di sviluppo che utilizziamo (Python + Visual Studio Code + estensioni di VS Code) nei sistemi Windows, macOS e Linux.
-
Trovate qui dentro tutti i notebook e i programmi d'esempio utilizzati come materiale didattico nell'a.a. 2024/25. Tutto ciò che è contenuto in questa cartella è fornito soprattutto per chi ha piacere ad anticipare lo studio di un argomento prima di seguire la corrispondente lezione. Tenete conto però che gli argomenti potrebbero essere trattati in modo leggermente diverso da quanto fatto quest'anno. In ogni caso, è possibile accedere liberamente alla pagina web del corso di Programmazione e Algortimi 1 + Laboratorio dell'a.a. 2024/25.
-
Trovate qui dentro tutte le slide, i notebook e i programmi d'esempio utilizzati come materiale didattico nell'a.a. 2025/2026. Questo materiale non è un sostituto del libro di testo e delle lezioni. Le spiegazioni presenti nei notebook è spesso eccessivamente succinta per essere utilizzata come unica fonte di studio.
-
Questo modulo viene utilizzato per gli esercizi in cui bisogna eseguire il programma passo-passo, tenendo traccia dei valori delle variabili durante l'esecuzione.
-
Non fa propriamente parte del materiale didattico e quindi (ovviamente) non va studiato. Si tratta delle slide che sono state proiettate durante la presentazione del gruppo Python Pescara e degli eventi Django Girls 2025 e Google Devfest 2025.
-
Si tratta della documentazione ufficiale del linguaggio Python, che sarà accessibile anche durante lo svolgimento della parte pratica della prova d'esame.
-
Si tratta della documentazione ufficiale della libreria ezgraphics, che sarà accessibile anche durante lo svolgimento della parte pratica della prova d'esame.
-
-
Questo è l'enco dettagliato delle lezioni di "Programmazione e Algoritmi 1" e del relativo materiale didattico integrativo. I file notebook (etichettati con NB) non possono essere aperti con il browser: devono essere salvati e aperti con Visual Studio Code.
- 22/09/2025: (1 ora) Presentazione dell'insegnamento. Hardware e Software. Linguaggi di programmazione.
- 23/09/2025: Algoritmi. Introduzione a Linux e al software libero.
- 25/09/2025. Interazione con Python e primi passi.
- 30/09/2025. I tipi numerici
intefloat. Funzioni. - 07/10/2025. Il tipo stringa. I metodi.
- 09/10/2025. Conversioni di tipo. Libreria
ezgraphics. Introduzione all'istruzioneif. - 14/10/2025. Ancora sull'istruzione if.
- 16/10/2025. Il tipo
bool, operatori logici e relazionali. Collaudo di programmi. - 21/10/2025. Assegnamento aumentato, concatenazione di metodi, l'istruzione
while. - 23/10/2025. Prossimi argomenti: ancora su istruzione
while. - 28/10/2025. Schemi di utilizzo dell'istruzione
while. L'istruzionefor...range. - 04/11/2025. Cicli e stringhe, l'istruzione
forgenerale, cenni sui cicli annidati. - 06/11/2025. Cicli annidati. Numeri casuali e simulazione.
- 11/11/2025. Funzioni definite dall'utente
- 12/11/2025. Esercitazione preliminare per la prova in itinere.
- 13/11/2025. (1 ora) Ancora sulle funzioni.
- 20/11/2025. Liste.
- 25/11/2025. Oggetti e riferimenti.
- 26/11/2025. Operare sul posto con le liste
- 27/11/2025. Operazioni di cancellazione ed inserimento sul posto. List comprehension. Primi passi con le tabelle.
- 02/12/2025. Ancora sulle tabelle.
- 04/12/2025. Rappresentazione di dati complessi. I file.
- 09/12/2025. Ancora sui file. Ricorsione.
- (NB) File
- I file CSV di supporto alla lezione sui file: pokemon-short.csv e pokemon.csv
- (NB) RIcorsione
- 16/12/2025. Ancora sulla ricorsione.
- 17/12/2025. Algoritmi di ricerca: ricerca lineare e ricerca binaria
- 18/12/2025. Algoritmi di ordinamento: ordinamento per selezione e per fusione
- 08/01/2026. (Esercitazione)
Approfondimenti: materiale aggiuntivo che non fa parte del programma del corso per l'a.a. 2025/26, ma che potreste trovare interessante.
-
Questo è l'enco dettagliato delle lezioni di "Laboratorio di Programmazione 1" e del relativo materiale didattico. I file notebook (etichettati con NB) non possono essere aperti con il browser: devono essere salvati e aperti con Visual Studio Code.
- 22/09/2025 (1 ora). L'aula informatica.
- L'aula informatica: lezione ed esercizi
- 29/09/2025. Interazione con Python.
- (Slide) Interazione con Python
- Interazione con Python: esercizi
- 06/10/2025. La shell di Linux
- Introduzione alla shell di Linux: lezione ed esercizi, soluzioni
- 13/10/2025. Primi passi con Python. Stringhe. Libreria ezgraphics.
- 20/10/2025. Preferenze in Visual Studio Code. L'istruzione if.
- Preferenze in Visual Studio Code: lezione ed esercizi
- L'istruzione if: esercizi, soluzioni
- 27/10/2025. L'istruzione while.
- 03/11/2025. Il debugger di VSCode. Ancora sul while e l'istruzione for.
- Il debugger di VSCode: videolezione, esercizi
- Ancora sul while e l'istruzione for: esercizi, soluzioni
- 10/11/2025. F-stringhe. Cicli annidati e stringhe.
- (NB) F-stringhe
- F-stringhe: esercizi, soluzioni
- Cicli annidati e stringhe: esercizi, soluzioni
- 17/11/2025. L'espressione condizionale. Funzioni. Debugging di funzioni con VSCode.
- (NB) L'espressione condizionale
- L'espressione condizionale: esercizi, soluzioni
- Debugging di funzioni con VSCode: videolezione, esercizi
- Funzioni: esercizi, soluzioni
- 24/11/2025. Moduli. Collaudo di funzioni. Liste.
- (NB) Moduli
- Collaudo di funzioni: lezione
- Liste e collaudo di funzioni: esercizi, soluzioni
- 01/12/2025. Tuple. Ancora su liste e affini.
- (NB) Tuple
- Ancora su liste e affini: esercizi, soluzioni
- 15/12/2025 mattina. Tabelle e file.
- 15/12/2025 pomeriggio. Sviluppo del gioco Forza 4.
- 19/12/2025 mattina. Ricorsione. Funzionalità avanzate di ezgraphics.
- (NB) Funzionalità avanzate di ezgraphics
- Il file di supporto alla lezione sulle funzionalità avanzate di ezgraphics: udalogo.png
- Funzionalità avanzate di ezgraphics: esercizi, soluzioni
- Ricorsione: esercizi, soluzioni
- 19/12/2025 pomeriggio. Verso l'implementazione di Campo Minato.
Approfondimenti: esercitazioni aggiuntive che non sono state svolte in aula, ma che potreste trovare interessanti.
- Il gioco dell'impiccato: esercizi e soluzioni
- 22/09/2025 (1 ora). L'aula informatica.
-
Il corso di Programmazione e Algoritmi 1 e quello di Laboratorio di Programmazione 1 sono a tutti gli effetti due insegnamenti separati. Pertanto, si svolgeranno due esami distinti, con modalità completamente diverse tra di loro. Tra questi due esami non c'è nessuna relazione di propedeuticità, potete sostenerli nell'ordine che volete.
Le regole qui sotto valgono per gli studenti degli anni accademici a partire dal 2023/24. Per gli studenti degli anni accademici 2022/23 e precedenti ci sono regole leggermente diverse, per le quali vi invito a consultare la sezione specifica.