• Edizioni di altri A.A.:
  • 2023/2024
  • 2024/2025

Il materiale didattico di questo insegnamento è disponibile su https://fad.unich.it/course/view.php?id=1320

  • Lingua Insegnamento:
    Italiano. 
  • Testi di riferimento:
    Cay S. Horstmann, Rance D. Necaise
    Concetti di informatica e fondamenti di Python, 2° edizione
    Apogeo Education 
  • Obiettivi formativi:
    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... ; 
  • Prerequisiti:
    Nessuno. 
  • Metodi didattici:
    Il corso si articola in 48 ore di lezioni frontali. 
  • Modalità di verifica dell'apprendimento:
    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).

    È previsto che, durante lo svolgimento delle lezioni, vengano assegnati dei compiti per casa. Si tratta di prove facoltative che, se svolte correttamente, daranno diritto ad un punteggio aggiuntivo al voto dell'esame finale. 
  • Sostenibilità:
    Non tratta tematiche direttamente riconducibili alla sostenibilità ambientale e sociale. 
  • Altre Informazioni:
    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

Avvisi

Nessun avviso in evidenza

Documenti

Nessun documento in evidenza

Scopri cosa vuol dire essere dell'Ud'A

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

icona Facebook   icona Twitter

icona Youtube   icona Instagram