Basi di informatica (DM 270) - a.a. 2013/14

 

Programming in C++

 

Anno accademico 2013/2014

Codice dell'attività didattica
MFN1627
Docenti
Prof. Stefano Berardi (Titolare del corso)
Prof. Ugo de' Liguoro (Titolare del corso)
Corso di studi
Laurea in Matematica
Anno
1° anno
Periodo didattico
Secondo semestre
Tipologia
D.M. 270 TAF A - Base
Crediti/Valenza
6
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto
Prerequisiti
Nessuno
 
 

Obiettivi formativi

Introdurre alla programmazione, intesa come realizzazione di algoritmi ed in generale di metodi automatici di elaborazione. L'enfasi è posta sui metodi di costruzione dei cicli, nonché sugli aspetti di organizzazione del programma e di verifica della correttezza.

Conoscenza e capacità di comprensione

Il corso, partendo dalle conoscenze di semplici nozioni di base di matematica, introduce i primi concetti relativi ai programmi, utili per lo sviluppo di semplici algoritmi di uso comune in matematica.


Capacità di applicare conoscenza e comprensione

Il corso presenta nozioni relative a cicli e efficienza di programmi, con un largo uso di esempi e osservazioni empiriche. Si considerano solo risultati trattabili con i mezzi a disposizione a uno studente del primo anno. Questo non impedisce allo studente di comprendere e impadronirsi di concetti di primaria importanza. Il corso è orientato alla soluzione di problemi, che vengono regolarmente assegnati, corretti dal docente e poi discussi in aula. Esercizi di difficolta’ comparabile sono riproposti come prova d’esame.

Autonomia di giudizio
Gli esercizi che vengono proposti possono venir risolti individualmente o in gruppo. Il confronto con i compagni di corso, nel lavoro a casa o durante le correzioni in aula, favorisce lo sviluppo di capacità logiche per riuscire a chiarire ai compagni le proprie soluzioni. Spesso gli esercizi proposti possono venir risolti in modi molto diversi. La presentazione di soluzioni di altri permette di sviluppare capacità di riconoscimento di errori in programmi e la comprensione di programmi corretti alternativi.


Abilità comunicative
Le numerose discussioni sui diversi metodi per risolvere gli esercizi proposti consentono di migliorare le capacità di comunicazione. Inoltre la formalizzazione in programmi di semplici congetture matematiche o modelli del mondo esterno allena lo studente a rivolgersi a un pubblico non matematico, presentando risultati di studi matematici.

Capacità di apprendimento
Il corso fornisce alcuni concetti di base della teoria informatica che saranno utili a quanti approfondiranno questi studi per avere in mente semplici esempi che illustreranno concetti più astratti. Gli stessi concetti, specie quelli relativi alla programmazione dinamica, potranno essere di grande utilità in ambito lavorativo. L’apprendimento del metodo informatico alla base della progettazione di programmi potrà poi rivelarsi utile, anche a distanza di tempo, per la simulazione computerizzata di realtà di svariata natura.  

 

 

 

Risultati dell'apprendimento attesi

Saper programmare in C++ in modo strutturato e ben organizzato, usando funzioni e tipi di dato statici e dinamici; saper verificare la corretteza dell'implementazione rispetto alla specifica.

 

 

Modalità di insegnamento

Il corso alterna un'ora di lezione frontale, in cui il docente spiega esempi presi dal libro di testo e li utilizza per introdurre concetti di programmazione, con un'ora di laboratorio in cui lo studente, sotto la guida del docente, sviluppa a sua volta semplici esempi simili a quelli esposti nell'ora precedente.

 

Modalità di verifica dell'apprendimento

  • Italiano
  • English

L'esame si svolge in laboratorio. Consiste in primo luogo nel rispondere a domande a risposte chiusa attraverso la piattaforma Moodle, per un totale di 6 punti. Totalizzando almeno 3 punti si accede alla fase successiva. La fase successiva consiste nel completare il codice di semplici programmi in conformità alle richieste del docente. Queste domande assegnano un totale di 24 punti. Totalizzando almeno 12 punti si accede all’ultima fase dell’esame. Nell’ultima fase dell’esame si deve rispondere a una domanda a risposta aperta proposta attraverso la piattaforma Moodle: quest’ultima fase dell’esame assegna 6 punti. Il voto e’ la somma dei voti delle prove parziali, ogni voto superiore al 30 viene contato come 30 e lode.

 

Attività di supporto

Il corso alterna un'ora di lezione, e una di attività di laboratorio. Una volta alla settimana ci sono due ore (facoltative) di tutorato tenute da un dottorando. Ci si avvale inoltre della piattaforma Moodle per la distribuzione di materiale didattico (lucidi, dispense ed esercizi), per la consegna e la correzione di esercitazioni, per le discussioni e gli avvisi.

 

 

Programma

 

  • Italiano
  • English

 Il corso verte sulla programmazione, spiegata attraverso il linguaggio C++. L'oggetto del corso, tuttavia, non è il linguaggio C++ in tutti i suoi dettagli, ma alcuni aspetti di base della programmazione. Gli argomenti del corso includono (non necessariamente in ordine di presentazione):

1. Variabili e tipi
2. Funzioni
3. Conditionale e ricorsione
4. Iterazione
5. Stringhe ed oggetti elementari
6. Strutture
7. Vettori

 

 

 

Testi consigliati e bibliografia

Tutto il materiale sara' a disposizione ESCLUSIVAMENTE sul sito moodle del corso: NESSUN materiale sara' a disposizione qui. 

Testo obbligatorio:

Allen B. Downey, How to Think Like a Computer Scientist C++ Version, capitoli 1-10

scaricabile liberamente da http://greenteapress.com/thinkcpp/index.html

Una lettura integrativa in Italiano e': D. S. Malik, Programmazione in C++, Apogeo 2011 (trad. it. di Introduction to C++ Programming, 2009 Course Technology).

 

Note

BASI DI INFORMATICA, MFN1627 (DM270), 6 CFU INF/01, TAF A (base), ambito formazione informatica Modalità di verifica/esame: prova pratica.

 
Ultimo aggiornamento: 26/03/2015 12:47
Campusnet Unito

Non cliccare qui!