Salta al contenuto principale
CODICE 80299
ANNO ACCADEMICO 2021/2022
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

Il corso di Introduzione alla Programmazione ha l'obiettivo di fornire le prime basi di programmazione, dando una particolare enfasi agli aspetti di ragionamento scientifico e pensiero computazionale. Il corso prevede attività di didattica frontale affiancate a laboratori guidati che servono per approfondire e consolidare gli argomenti visti in classe.

Il corso ha un forte connotato applicativo, lo studente è incoraggiato ad affrontare problemi di complessità crescente in autonomia.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

- Fornire la conoscenza di base dei concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici: macchina virtuale; codifica dei dati e delle istruzioni; modello Von Neumann; linguaggio formale, analisi lessicale, sintattica e semantica; algoritmo; tipo di dato; asserzione invariante; complessità di calcolo. - Imparare ad usare un linguaggio di programmazione imperativo e un ambiente testuale di sviluppo di programmi, come per esempio il linguaggio C oppure C++ (limitato alla parte non object-oriented), con un editor di testi, il compilatore GCC e GNU Make. - Imparare a progettare, realizzare e far funzionare un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

  • Principi del pensiero computazionale
  • La conoscenza di base dei concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici 
  • Introduzione ad un linguaggio di programmazione imperativo e un ambiente testuale di sviluppo di programmi, come per esempio il linguaggio C oppure C++ (limitato alla parte non object-oriented), con un editor di testi, compilazione ed esecuzione da linea di comando.
  • Principi di progettazione, realizzazione e validazione di un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente. 
  • Capacità di produrre codice corretto e comprensibile; capacità di comprendere, utilizzare, modificare codice prodotto da altri

MODALITA' DIDATTICHE

  • Lezioni frontali "teoriche" (in aula)
  • Laboratori guidati 
  • Esercizi erogati tramite aulaweb

 Vista l'importanza culturale di questo insegnamento (alla base di tutti gli insegnamenti di informatica del corso di laurea) la frequenza assidua è particolarmente consigliata e incoraggiata. 

PROGRAMMA/CONTENUTO

l corso è formato da una parte di lezioni teoriche che si svolgono in aula e da una consistente parte pratica di programmazione che si svolge in laboratorio. La data di inizio del laboratorio verrà comunicata in aula. 

Argomenti trattati in aula

  • Introduzione al corso, al pensiero computazionale e alla programmazione.
  • Ambienti di programmazione e linguaggi formali.
  • Programmazione imperativa: variabili e istruzioni; assegnazione; input/output; condizionale; cicli; tipi base; tipi di dato strutturato: array/vettori/tabelle,  stringhe, struct; funzioni e  meccanismi di passaggio dei parametri; puntatori; allocazione dinamica sullo heap; vettori dinamici;  liste semplici e operazioni su liste semplici; ricorsione.

TESTI/BIBLIOGRAFIA

Le lezioni saranno in gran parte svolte con l'ausilio di slide. Le slide possono essere utilizzate come traccia ma *non* sono sufficienti per la preparazione dell'esame.

  • Durante le lezioni si farà in gran parte riferimento al libro: D.S. Malik Programmazione in C++ Apogeo, 2011, ISBN 978-88-503-2967-0
  • Va benissimo anche (ed e' consigliato come testo di riferimento): B. Stroustrup, Programming: Principles and Practice Using C++, Addison-Westley, 2009, ISBN 978-0321543721. 1272 pagine (disponibile solo in inglese - ce ne sono alcune copie in biblioteca)
    Quest'ultimo libro tratta però un programma molto più ampio di quello coperto dal corso. 

DOCENTI E COMMISSIONI

Commissione d'esame

FRANCESCA ODONE (Presidente)

STEFANO ROVETTA

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'esame si compone di due parti

  1. prova scritta
  2. prova di laboratorio, alla quale si puo` accedere dopo aver superato lo scritto

Dettagli sulle tipologie di prova e sul meccanismo di valutazione verranno forniti sul modulo aulaweb del corso

Calendario appelli

Data appello Orario Luogo Tipologia Note
14/01/2022 09:00 GENOVA Scritto
18/01/2022 09:00 GENOVA Laboratorio
01/02/2022 09:00 GENOVA Scritto
04/02/2022 09:00 GENOVA Laboratorio
13/06/2022 09:00 GENOVA Scritto
16/06/2022 09:00 GENOVA Laboratorio
04/07/2022 09:00 GENOVA Scritto
08/07/2022 09:00 GENOVA Laboratorio
13/09/2022 09:00 GENOVA Scritto
16/09/2022 09:00 GENOVA Laboratorio