• Edizioni di altri A.A.:
  • 2026/2027

  • 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:

    • iimparare 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 è costituito da una prova scritta ed una prova orale. La prova scritta è divisa in due parti, che si svolgono lo stesso giorno, una immediatamente dopo l'altra:

    • Parte analogica: si svolge su carta, senza l'ausilio di computer o altri strumenti di calcolo. Comprende:
      • esercizi di programmazione, in cui si chiede di sviluppare un programma secondo certe specifiche;
      • esercizi in cui si chiede di mostrare la traccia di esecuzione passo-passo di un programma dato;
      • esercizi e domande a risposta aperta (ad esempio, ma non esclusivamente, sulla shell di Linux, la complessità computazionale e gli algoritmi studiati studiati durante il corso).
    • Parte digitale: è previsto l'uso dei computer dell'aula informatica, e consiste essenzialmente in esercizi di programmazione, più articolati di quelli della prova scritta. Durante lo svolgimento è possibile consultare le pagine su FAD, la documentazione ufficiale di Python e il libro di testo.

    Chi ha ottenuto nella prova scritta un voto maggiore o uguale a 18, a meno di diversa indicazione del docente, può verbalizzare direttamente il voto conseguito. Tuttavia, in questo modo, il voto massimo verbalizzabile è 26: un voto superiore ottenuto allo scritto sarà comunque verbalizzato come 26. Chi vuole un voto superiore a 26 deve obbligatoriamente sostenere la prova orale.

    La prova orale consiste in domande teoriche o pratiche su tutto il programma del corso. Alla prova orale si accede su richiesta del docente o dello studente che abbia superato la prova scritta. Il voto conseguito nella prova orale costituirà il voto finale dell'esame, e potrà essere superiore o inferiore a quello della prova scritta.


     
  • Obiettivi Agenda 2030 per lo sviluppo sostenibile:

    Questo insegnamento concorre alla realizzazione degli obiettivi ONU dell'Agenda 2030 per lo Sviluppo Sostenibile.

     
  • 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)

Avvisi

Nessun elemento in evidenza

Eventi

Nessun elemento 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