Foto personale

Pagina personale di Paolo VALENTE

Dipartimento di Scienze Fisiche, Informatiche e Matematiche
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Contenuti Insegnamento: Programmazione 1

Corso di studio: INFORMATICA (D.M.270/04) (offerta formativa anno 2017)
  • CFU: 9
  • SSD: INF/01

Obiettivi formativi

L'insegnamento ha per obiettivo l'introduzione dello studente ai fondamenti della programmazione. Come linguaggio di riferimento viene usato il sottoinsieme procedurale del C++. Nel corso si adotta l'approccio "imparare facendo": quasi ogni nuova nozione o dettaglio sono subito messi in pratica al calcolatore con esercizi di complessità crescente.

Prerequisiti

Nessuno

Programma del corso

Presentazione del corso, obiettivi e contenuti dell'informatica, algoritmi e programmi. Costanti e variabili, tipi di dato primitivi, definizioni e dichiarazioni, espressioni aritmetiche e logiche, istruzioni di assegnamento, operatori, input/output, conversioni di tipo. Concetto di blocco. Strutture di controllo condizionali e iterative. Regole di visibilità e durata delle variabili. Tipi di dato strutturati: vettori, matrici, stringhe, struct. Concetto di riferimento e puntatore. Funzioni, passaggio dei parametri per valore e per riferimento. Memoria dinamica, record di attivazione delle funzioni, gestione memoria stack. Gestione dei file di testo e dei file binari. Panoramica sui linguaggi di programmazione. Interpreti, compilatori, linker.

Testi di riferimento

Visitare il sito del corso: http://algogroup.unimore.it/people/paolo/courses/programmazione_I/

Metodi Didattici

Fusione di lezioni frontali ed esercitazioni in laboratorio. Nel corso si adotta infatti l'approccio "imparare facendo": quasi ogni nuova nozione o dettaglio è subito messo in pratica al calcolatore con esercizi di complessità crescente. Pertanto l'intero corso è tenuto in laboratorio. Gli studenti non frequentanti possono accedere alle slide delle lezioni e al materiale delle esercitazioni. In particolare, tutto il materiale didattico è stato rielaborato per facilitarne la fruizione per studenti non frequentanti. Ad esempio, le presentazioni relative alle lezioni guidano anche nella fruizione delle presentazioni sulle esercitazioni.

Verifica dell'apprendimento

L'esame si compone di due prove principali: 1) Una prova scritta con maggioranza di domande a scelta multipla e alcune domande aperte. 2) Una prova di programmazione da svolgersi su calcolatore. Infine, nel caso di superamento della prova di programmazione, ma di insoddisfazione rispetto al voto proposto, è possibile sostenere un ultima prova orale (che potrà migliorare ma anche peggiorare il voto acquisito dalle prove scritta e di programmazione).

Risultati attesi

Conoscenza e comprensione Gli studenti avranno solide conoscenze e capacità di comprensione nei seguenti ambiti: - progetto, analisi ed implementazione di semplici algoritmi; - progetto e uso di strutture dati di media complessità; - paradigmi e linguaggi di programmazione imperativi; - rappresentazione dell'informazione in un elaboratore. Capacità di applicare conoscenza e comprensione La conoscenza completa del sotto-insieme procedurale del linguaggio C++ si traduce (anche e soprattutto grazie alle molte ore dedicate al laboratorio) nella capacità concreta di sviluppare soluzioni originali a problemi noti o ancora mai affrontati prima. Autonomia di giudizio Lo studente avrà una buona capacità di reperire dati e informazioni utili allo svolgimento del proprio lavoro, in particolare nella formulazione di problemi e nella definizione di strategie di risoluzione dei medesimi. Sarà in grado di fornire giudizi autonomi sulle scelte operate e di valutare criticamente i risultati ottenuti, anche in funzione di tali scelte. Abilità comunicative Lo studente sa organizzare e presentare con chiarezza e sinteticità, oltre che con linguaggio tecnico appropriato (ove necessario), i risultati del proprio lavoro, utilizzando varie metodologie e tecnologie comunicative. Ha capacità di leggere con profitto letteratura tecnica (informatica) in lingua inglese. Capacità di apprendimento Gli studenti devono acquisire elevate capacità di apprendimento continuo e autonomo anche a causa delle caratteristiche della disciplina, l'Informatica, in continua e rapida evoluzione.