Salta al contenuto principale della pagina

FONDAMENTI DI PROGRAMMAZIONE

CODICE 66061
ANNO ACCADEMICO 2022/2023
CFU
  • 6 cfu al 1° anno di 9273 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE(L-8) - GENOVA
  • SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01
    LINGUA Italiano
    SEDE
  • GENOVA
  • PERIODO 2° Semestre
    MATERIALE DIDATTICO AULAWEB

    PRESENTAZIONE

    Insegnamento di base sulla programmazione di calcolatori elettronici basata sul linguaggio C con alcuni cenni al paradigma object oriented (C#).

    OBIETTIVI E CONTENUTI

    OBIETTIVI FORMATIVI

    L’insegnamento si propone di fornire una introduzione alla progettazione di un sistema software. La trattazione parte dall'architettura di un sistema di elaborazione e copre le regole sintattiche e semantiche dei linguaggi, coprendo sia il paradigma strutturato (linguaggio C) che il paradigma object-oriented (C#).

    OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

    Lo studente che abbia seguito con profitto l’insegnamento di "Fondamenti di Programmazione" sarà in grado di

    1. capire i concetti fondamentali della programmazione imperativa
    2. applicare i concetti acquisiti per implementare semplici programmi
    3. analizzare e valutare programmi funzionanti per identificarne la struttura base
    4. progettare, creare e verificare il funzionamento di un sistema software base partendo da modelli teorici

    In particolare, durante questo insegnamento lo studente imparerà a:

    • Capire la differenza tra hardware e software, la struttura base di un calcolatore elettronico e le differenze tra i linguaggi di programmazione
    • Sviluppare semplici programmi utilizzando il linguaggio di programmazione C. In particolare l’allievo sarà in grado di:
      • creare ed utilizzare variabili
      • scrivere e leggere dalla console
      • scrivere ed utilizzare istruzioni condizionali, cicli e vettori
      • scrivere ed utilizzare funzioni
      • creare ed utilizzare array
      • utilizzare puntatori
      • creare nuove strutture dati e semplici classi
    • Scrivere semplici programmi C# utilizzando un approccio orientato agli oggetti. In particolare l’allievo sarà in grado di:
      • capire la differenza tra classi ed oggetti
      • utilizzare i metodi di un oggetto
      • capire i concetti base di composizione, ereditarietà e polimorfismo

    PREREQUISITI

    Nessun prerequisito richiesto.

    MODALITA' DIDATTICHE

    L'insegnamento è costruito da una parte di lezione frontale e una parte di esercitazione. Durante la lezione frontale, il docente presenta gli argomenti fornendo sempre esempi di codice che vengono provati su strumenti di compilazione. Gli studenti possono utilizzare i propri calcolatori durante la lezione per mettere in pratica quanto proposto dal docente. Durante le esercitazioni, gli studenti devono affrontare al calcolatore problemi reali che possono essere risolti applicando le tecniche viste durante le lezioni frontali.

    PROGRAMMA/CONTENUTO

    Il seguente elenco riporta i contenuti affrontati durante le lezioni:

    • Introduzione
    • Hardware e Software
    • Basi del linguaggio C
    • Algoritmi e Strutture di Controllo
    • Controllo del flusso
    • Funzioni
    • Array, Ricerca e Ordinamento
    • Puntatori
    • Simpletron
    • Strutture Dati
    • OOP - Classi, Oggetti, Metodi
    • OOP - Composizione, Ereditarietà e Polimorfismo

    TESTI/BIBLIOGRAFIA

    Slide delle lezioni (scaricabili su AulaWeb)

    Per approfondire (solo per chi è interessato)

    Gli studenti con disturbi dell'apprendimento ("disturbi specifici di apprendimento", DSA) potranno utilizzare modalità e supporti specifici che verranno di volta in volta stabiliti d'intesa con il delegato dei corsi di Ingegneria nella Commissione per la Inclusione di studenti con disabilità.

    DOCENTI E COMMISSIONI

    LEZIONI

    Orari delle lezioni

    L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

    ESAMI

    MODALITA' D'ESAME

    L'esame comprende una parte "scritta" (in laboratorio con calcolatore) per la realizzazione di un programma software e una parte "orale". Gli studenti possono utilizzare per sostenere la prova scritta il proprio portatile, se lo desiderano. E' possibile consultare durante la prova scritta qualsiasi tipo di materiale che sia utile alla realizzazione del progetto software. La prova orale è costituita da domande sugli argomenti teorici trattati a lezione.

    E' necessario sostenere la prova scritta in una qualunque sessione d'esame che sia precedente alla prova orale. L'orale può essere sostenuto in una qualsiasi sessione successiva allo scritto.

    MODALITA' DI ACCERTAMENTO

    Allo studente che sostiene l'esame di "Fondamenti di Programmazione" viene assegnato un semplice problema da risolvere attraverso l'implementazione di un programma in C o C#, utilizzando un calcolatore elettronico. Attraverso l'analisi della soluzione sviluppata dallo studente in sede di esame, si verifica a che livello siano stati compresi i concetti fondamentali della programmazione imperativa, come tali concetti siano stati applicati per l'implementazione del programma, se lo studente è in grado di analizzare e valutare il funzionamento del programma realizzato e come i modelli teorici studiati a lezione siano applicati per progettare e creare il software richiesto. La valutazione della prova scritta si basa sul codice sorgente consegnato dallo studente al termine della prova, in particolare sulla sua funzionalità, sulla qualità del codice e sulla chiarezza nella stesura.