Salta al contenuto principale
CODICE 66061
ANNO ACCADEMICO 2022/2023
CFU
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

Commissione d'esame

LUCIO MARCENARO (Presidente)

PAOLO GASTALDO (Presidente Supplente)

CARLO REGAZZONI (Presidente Supplente)

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale 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.

Calendario appelli

Data appello Orario Luogo Tipologia Note
31/05/2023 09:00 GENOVA Scritto
14/06/2023 15:00 GENOVA Orale
15/06/2023 09:00 GENOVA Scritto
22/06/2023 09:00 GENOVA Orale
11/07/2023 09:00 GENOVA Scritto
28/07/2023 09:00 GENOVA Orale
11/09/2023 09:00 GENOVA Scritto
15/09/2023 09:00 GENOVA Orale