Italiano.
Cay S. Horstmann, Rance D. Necaise
Concetti di informatica e fondamenti di Python, 2° edizione
Apogeo Education
Obiettivo del corso è insegnare i fondamenti della programmazione strutturata utilizzando Python come linguaggio di programmazione. Non è obiettivo del corso insegnare la programmazione ad oggetti, che sarà invece uno dei punti centrali del corso di Programmazione e Algoritmi 2.
RISULTATI DI APPRENDIMENTO ATTESI
CONOSCENZA E CAPACITÀ DI COMPRENSIONE:
Alla fine dell’insegnamento lo studente dovrà essere in grado di:
* illustrare il funzionamento di base di un calcolatore elettronico e il significato di algoritmo;
* illustrare il concetto di complessità computazionale asintotica di un algoritmo;
* illustrare i fondamenti della programmazione strutturata;
* illustrare le funzioni più importanti della libreria standard Python per la manipolazione di stringhe, i calcoli matematici, l'input e l'output;
* illustrare le caratteristiche e l'utilizzo delle principali strutture dati predefinite in Python: liste, insiemi e dizionari;
* esporre il funzionamento degli algoritmi di ricerca lineare e binaria e degli algoritmi di ordinamento più comuni.
CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE:
Alla fine dell’insegnamento lo studente dovrà essere in grado di:
* determinare manualmente la traccia di esecuzione di un programma in Python;
* scrivere semplici programmi strutturati in Python;
* calcolare la complessità computazionale asintotica di un algoritmo.
ABILITÀ DI COMUNICAZIONE:
Alla fine dell’insegnamento lo studente dovrà essere in grado di spiegare il funzionamento di programmi e algoritmi usando un linguaggio corretto e preciso.
CAPACITÀ DI APPRENDERE:
Alla fine dell'insegnamento lo studente dovrà essere in grado di:
* imparare in maniera autonoma ad utilizzare linguaggi di programmazione diversi da Python, purché basati sullo stesso paradigma (programmazione imperativa strutturata con tipizzazione dinamica), quali JavaScript, PHP, Ruby, etc...
Nessuno.
Il corso si articola in 48 ore di lezioni frontali.
L'esame consiste in una prova scritta/pratica ed una prova orale.
La prova scritta/pratica consiste in una serie di esercizi di programmazione, alcuni da svolgere al computer (ad esempio, scrivere un programma che risponda a determinate specifiche), altri su carta (ad esempio, scrivere la traccia di esecuzione di un programma dato).
A questo insegnamento si accompagna quello denominato "Laboratorio di Programmazione 1", che completa la formazione con esercitazioni pratiche in laboratorio.
Ulteriori informazioni sono disponibili sul sito web dell'insegnamento nella piattaforma di e-learning fad.unich.it. La stessa verrà anche utilizzata come forum per le comunicazioni con gli studenti.
Introduzione alla programmazione. Introduzione a Python. Selezione. Iterazione definita. Iterazione indefinita. Funzioni. Liste, insiemi e dizionari. Gestione dei file. Ricorsione. Algoritmi di ordinamento e ricerca. Cenni di complessità computazionale.
Introduzione alla programmazione.
* Hardware e software
* Programmi e algoritmi
* Linguaggi di programmazione, interpreti e compilatori
Introduzione a Python.
* Il primo programma in Python
* Variabili e tipi di dato numerici
* Espressioni aritmetiche
* Le stringhe
* Input e output da terminale
* Rappresentazione binaria dei dati
Istruzioni ed operatori condizionali.
* L'enunciato if
* Operatori relazionali
* Diramazioni annidate
* Alternative multiple
* Operatori booleani
Iterazione definita e indefinita
* L'enunciato for
* L'enunciato while
* Le istruzioni break e continue
* Cicli annidati
Funzioni.
* Realizzazione e collaudo di funzioni
* Passaggio di parametri
* Risultato delle funzioni
* Ambito di visibilità delle variabili
Liste, insiemi e dizionari.
* Liste
* Algoritmi che operano sulle liste
* Tabelle come liste di liste
* Insiemi
* Dizionari
* Strutture complesse
Gestione dei file.
* Leggere e scrivere file di testo
* Gestione delle eccezioni
Ricorsione.
* Funzioni ricorsive
* La pila dei record di attivazione
Cenni al concetto di complessità computazionale.
* Misurazione delle prestazioni di un algoritmo
* Le notazioni O(n), Θ(n) e Ω(n)
Algoritmi di ordinamento e ricerca.
* La ricerca lineare e binaria
* Ordinamento per selezione
* Ordinamento per fusione (merge sort)
* Quicksort
SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551
SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371
email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693