FONDAMENTI DI INFORMATICA

Obiettivi formativi

Obiettivi generali: Far acquisire allo studente alcune tecniche fondamentali della programmazione, attraverso il linguaggio di programmazione Python, dando enfasi alle caratteristiche del linguaggio di programmazione che richiedono una comprensione approfondita del modello di esecuzione dei programmi, fra cui ricorsione e strutture collegate. Nozioni introduttive sul costo dei programmi e tecniche algoritmiche di base su tipi di dati astratti complessi come i grafi completano gli argomenti del corso. Obiettivi specifici: -------------------------- Conoscenza e comprensione: -------------------------- Al termine del corso gli studenti: - sviluppano la capacità di programmazione in ambiente Python; - sono in grado di comprendere l'architettura dei calcolatori; - conoscono i principi basilari dell'informatica. ------------------------------------ Applicare conoscenza e comprensione: ------------------------------------ Gli studenti sono in grado di utilizzare strumenti software per progettare algoritmi ed implementarli in linguaggio Python. -------------------------------- Capacità critiche e di giudizio: -------------------------------- Lo studente acquisice autonomia di giudizio nel proporre l’approccio più opportuno per sviluppare un programma in Python. ---------------------- Capacità comunicative: ---------------------- Le lezioni in aula e le esercitazioni del corso permettono agli studenti di essere in grado di comunicare/condividere i dettagli tecnici di una applicazione sviluppata in Python, nonché le scelte progettuali adottate. -------------------------- Capacità di apprendimento: -------------------------- Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, in particolare le esercitazioni in laboratorio, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

Canale 1
ANDREA MARRELLA Scheda docente

Programmi - Frequenza - Esami

Programma
- Nozioni introduttive: Architettura generale di un calcolatore. Concetto di algoritmo - Nozioni elementari sulla programmazione in Python: Uso della shell e I/O di base. Uso dell'ambiente di sviluppo IDLE - Aspetti di base della programmazione in Python: Espressioni aritmetiche e tipi di dati elementari. Variabili e istruzioni di assegnazione. - Rappresentazione dell'informazione. Il tipo di dato stringa. - Decisioni: costrutti if ed else-if (elif) - Cicli: Ciclo for. Ciclo while. Cicli annidati - Funzioni e moduli: Introduzione alla programmazione Python con funzioni. - Moduli e loro uso. Esecuzione di script. - Liste: Proprietà di base. Operazioni sulle liste. Algoritmi elementari che fanno uso di liste. Rappresentazione di tabelle e matrici. - File e file system: Apertura, chiusura e manipolazione di file di testo. Funzioni di base per l'accesso al file system. - Classi e Oggetti: La nozione di classe ed oggetto. I metodi di classe. Definizione di classe - Insiemi: Creazione e Modifica di insiemi. Iterazione sugli elementi di un insieme. Operazioni su insiemi - Dizionari: Accesso e manipolazione di dizionari. Uso di dizionari per realizzare strutture dati complesse. - Ricorsione: Definizioni. Esempi di base. Funzionamento della ricorsione. - Problemi di ordinamento e ricerca: caratterizzare e confrontare l'efficienza di algoritmi e programmi. Cenni alla complessità computazionale. Algoritmi per la ricerca sequenziale e per quella binaria. - Grafi e alberi: Definizioni e nozioni fondamentali. Rappresentazione di grafi (matrice di adiacenza e liste di incidenza). Uso di dizionari per la rappresentazione di grafi. Realizzazione di funzionalità di base.
Prerequisiti
Nessun prerequisito specifico è richiesto per il superamento del corso.
Testi di riferimento
C. Horstmann R. D. Necaise "Concetti di Informatica e fondamenti di Python" ed. Maggioli, ISBN 9788891605085
Modalità di esame
L'esame consiste in una prova scritta che si svolge a laboratorio in un unico slot temporale.
SIMONE AGOSTINELLI Scheda docente
Canale 2
EDOARDO BARBA Scheda docente
FLAVIA MONTI Scheda docente
  • Codice insegnamento1017401
  • Anno accademico2024/2025
  • CorsoIngegneria Gestionale
  • CurriculumCurriculum unico
  • Anno1º anno
  • Semestre2º semestre
  • SSDING-INF/05
  • CFU12
  • Ambito disciplinareIngegneria informatica