Dettagli sull'Insegnamento per l'A.A. 2019/2020
Nome:
Laboratorio di Programmazione I / Introduction to Programming
Informazioni
Crediti:
: Bachelor Degree in Computer Science 6 CFU (b)
Erogazione:
Bachelor Degree in Computer Science 1st anno curriculum General Compulsory
Lingua:
Italiano
Prerequisiti
Nozioni matematiche di base (in particolare, insiemi e funzioni). Non e' richiesta alcuna conoscenza di programmazione ne' la conoscenza di specifici linguaggi di programmazione.
Obiettivi
Conoscenze: nozioni di base della programmazione imperativa ed orientata agli oggetti.
Capacita': essere in grado di risolvere problemi semplici, saper implementare i relativi algoritmi correttamente in un linguaggio di programmazione strutturata, essere capace di strutturare dati
complessi e le operazioni su tali dati, essere in grado di utilizzare il calcolatore per eseguire semplici programmi.
Comportamenti attesi: interesse per l'attivita' di formalizzazione di problemi, dati e soluzioni in un linguaggio di programmazione, ed una costante attivita' di programmazione al calcolatore
Sillabo
- Algoritmi, programmi e linguaggi di programmazione. Diagrammi di flusso, struttura di un programma.
- Tipi di dato base. Costanti, variabili, espressioni aritmetiche e booleane. Istruzione di assegnamento. Primitive di Input/Output. Strutture di controllo: sequenzializzazione, if-else, iterazione e ciclo.
- Tipi di dato strutturati: array, stringhe.
- Metodi. Struttura a blocchi e regole di scoping. Meccanismi di passaggio dei parametri. Metodi statici. Ricorsione e metodi ricorsivi.
- Classi e oggetti: concetti base, creazione di oggetti e loro manipolazione. Metodi di istanza. Array di oggetti.
- Ereditarietà e gerarchie. Polimorfismo e late binding. Eccezioni e loro gestione.
Descrittori di Dublino
Alla fine del corso, lo studente dovrebbe
-
have profound knowledge of the basic concepts of imperative and object-oriented programming, have knowledge and understanding of algorithms for solving simple problems, have knowledge and understanding of the core of the programming language used for coding the algorithms, have knowledge of a simple environment to run programs;
-
understand and apply definitions as given by the syntax and the semantics of the programming language;
-
analyse and discuss different algorithms for solving a problem and different implementations of the same algorithm in the given language;
-
explain and illustrate the fundamental notions of basic and structured data types, control structures, methods definition and invocation, parameter passing,
recursive methods, classes and objects, inheritance and exceptions;
-
demonstrate skill in problem-solving, demonstrate ability to use a (subset of a) programming language to code algorithms and test the solutions on computer, demonstrate capacity of abstraction and modularity.
Testi di riferimento
- Cay Horstmann, Concetti di informatica e fondamenti di JAVA , Apogeo. 2007.
- Marco Bertacca e Andrea Guidi, Programmare in Java , McGraw-Hill. 2007.
Modalità d'esame
La prova di esame consiste in una prova intermedia scritta + una prova conclusiva scritta + eventuale prova orale.
Il voto finale della prove scritte, se maggiore o uguale a 18, puo' essere registrato senza sostenere la prova orale.
La prova di esame negli appelli di recupero consiste di una prova scritta + eventuale prova orale.
Note
- Gli studenti immatricolati a partire dall'A.A. 2007/08 dovranno sostenere l'esame unico di Fondamenti di Programmazione con Laboratorio. Questo corso mutua anche i due seguenti insegnamenti del CdL in Matematica: Laboratorio di Programmazione (corso disattivato, 6 cfu, DM509), Informatica (corso attivo, 6 cfu, DM270)
Aggiornamenti alla pagina del corso
Le informazioni sulle editioni passate di questo corso sono disponibili per i seguenti anni accademici:
Per leggere le informazioni correnti sul corso, se ancora erogato, consulta il catalogo corsi di ateneo.
Ultimo aggiornamento delle informazioni sul corso: 11 marzo 2015, 10:04