PROGRAMMAZIONE AVANZATA | Università degli studi di Bergamo - Didattica e Rubrica

PROGRAMMAZIONE AVANZATA

Modulo Generico
Codice dell'attività formativa: 
38090-MOD2

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2022/2023
Insegnamento (nome in italiano): 
PROGRAMMAZIONE AVANZATA
Tipo di attività formativa: 
Attività formativa Caratterizzante
Tipo di insegnamento: 
Obbligatoria
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno di corso: 
1
Anno accademico di offerta: 
2022/2023
Crediti: 
6
Responsabile della didattica: 
Altri docenti: 

Altre informazioni sull'insegnamento

Ciclo: 
Primo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
48
Ore di studio individuale: 
90
Ambito: 
Ingegneria informatica
Prerequisiti

Fondamenti di programmazione (OO e procedurale) e progettazione software.

Obiettivi formativi

Imparare i principi dei linguaggi di programmazione (sia procedurali che object oriented che funzionali) per poter poi programmare in modo corretto e efficace.

Contenuti dell'insegnamento

Principi dei Linguaggi di Programmazione.
Fondamenti: storia dei linguaggi di programmazione, compilatori, sintassi.
Tipi e sicurezza dei tipi. Regole di visibilità, funzioni, gestione della memoria (con l'uso del linguaggio C).
Object Oriented programming: concetti fondamentali e loro applicazione con Java e C++.
Alcuni design pattern (facade, singleton, visitor)
Programmazione funzionale con Haskell.

Metodi didattici

Didattica frontale ed esercitazioni in laboratorio.

Modalità verifica profitto e valutazione

Prova scritta (al cumputer) e orale

Altre informazioni

Per la bibliografia e materiale didattico del modulo consulta la pagina web del corso al link http://cs.unibg.it/gargantini/didattica/info3

Prerequisites

Fundamentals of programming (OO and procedural) and of software design.

Educational goals

To learn the principles behind programming languages in order to be able to program effectively and correctly.

Course content

Principles of Programming languages.
Bases: compilers, snytax. Axiomatic Semantics. Types and safety of the various types: parametric polymorphism. Rules on visibility, functions and memory management (by the C programming language).
Object-oriented Programming: basic concepts and their application using Java and C++. Functional programming with Haskell.

Teaching methods

Theoretical lessons and laboratory exercises.

Assessment and Evaluation

WRITTEN EXAM (in laboratory on a PC)+ ORAL EXAM

Further information