Page begin -
Logo DISCO
|
Go to the Highly accessible area
|
Go to the Content page
|
Go to the End of content
|
Go to the Main menu
|
Go to the Navigation Bar (location)
|
Go to the Navigation menu (tree)
|
Go to the Commands list
|
Go to the Further readings
|
Go to the Bottom Menu
|
Logo Ateneo
   
Education
Programmazione

INSEGNAMENTO: Programmazione

 

Course name: Programming

 

Docente responsabile:  Francesco Tisato

 

 

Obiettivi e contenuti

Acquisire le basi della progettazione software, della programmazione procedurale, della programmazione a oggetti e del testing. Utilizzo di Java e di UML. Test e debug di programmi Java con JUnit in ambiente Eclipse.

 

Programma

 

  • Progettazione

- Ciclo di sviluppo del software

- Astrazioni sui dati. Oggetti, classi, associazioni

- Notazioni UML e E-R

- Astrazioni sul controllo. Diagrammi di attività e di stato

- Astrazioni procedurali.

- Specifica dei requisiti. Invarianti, pre- e post-condizioni

- Ereditarietà

- Documentazione, testing e debugging in ambiente Eclipse con uso di Junit

 

  • Programmazione 1

- Struttura logica di un elaboratore e codifica dell'informazione. Gerarchia dei linguaggi di programmazione, compilatori e interpreti. La Java Virtual Machine. Algoritmi e programmi

- Tipi di dati primitivi. Variabili, dichiarazioni e assegnamenti. Espressioni e valutazione. Type checking. Stringhe

- Ingresso/uscita

- Strutture di controllo selettive e iterative. Esempi elementari di algoritmi

- Array di tipi primitivi

- Metodi, definizione ed invocazione. Record di attivazione. Precondizioni e postcondizioni

 

  • Programmazione 2

- Classi e oggetti in Java

- Il concetto di reference: cenni alla gestione della memoria in Java

- Metodi con tipi di dati complessi: definizione e invocazione

- Array di reference

- Creazione e manipolazione di semplici strutture dati (liste)

- Information hiding e incapsulamento. Modificatore di visibilità sui metodi

- Ereditarietà e polimorfismo in Java

- Costruttori

- Overloading e overriding

- Metodi di classe. Attributi di classe

 

Risultati di apprendimento previsti

Alla fine del corso lo studente dovrà padroneggiare i principali meccanismi di astrazione utili nella analisi e nel progetto di piccole applicazioni software ed essere capace di progettare, sviluppare e testare semplici programmi in Java.

 

Prerequisiti

Le conoscenze acquisite nella scuola media superiore, con riferimento in particolare a quelle di tipo matematico e logico.

 

Tipo esame: scritto.

 

Testi consigliati:

Programmazione con Java - Walter Savitch e Frank M. Carrano, Edizione in Italiano, 2010, Pearson Education Italia, ISBN 9788871926148

 

UML Distilled – Martin Fowler, Edizione in Italiano, 2010, Pearson Education Italia

 

***********************************************************************************

 

Aims and contents

To get the basic elements of software design, procedural programming and object-oriented programming. Use of Java and UML. Testing and debugging of Java programs by exploiting JUnit under Eclipse.

 

Program details

 

  • Design

- Software lifecycle

- Data abstractions. Objects, classes, associations

- UML and E-R notations

- Control abstractions. Activity and state diagrams

- Procedural abstractions

- Requirements specification. Invariants. Pre- and post-conditions

- Inheritance

- Documentation, testing and debugging in the Eclipse environment by using Junit

 

  • Programming 1

- Computer structure. Information coding. Programming languages hierarchy, compilers and interpreters. Java Virtual Machine. Algorithms and programs

- Primitive data types. Variables, declaration and assignment. Expressions and evaluation. Type checking. Strings

- Input/output

- Control structures: selection and iteration. Examples of elementary algorithms

- Array of primitive types

- Methods: definition and invocation. Activation record. Pre- and post-conditions

 

  • Programming 2

- Classes and objects in Java

- the concept of reference: basics on memory management in Java

- Methods with complex data types: definition and invocation

- Array of reference

- Creation and manipulation of simple data structures (lists)

- Information hiding and encapsulation. Visibility modifiers on methods

- Inheritance and polymorphism in Java

- Constructors

- Overloading and overriding

- Class methods and class attributes

 

Learning outcomes

At the end of the course the student is expected to master the major abstraction mechanisms useful in the analysis and design of small software applications. S/he will be capable of designing, developing and testing simple Java programs.

 

Prerequisites

Basic knowledge from the high school, in particular mathematical and logical issues

 

Further readings
(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - last update of this page 25/03/2011