Programmazione ad Oggetti per la Fisica

Slides:



Advertisements
Presentazioni simili
Incontri tematici su GNU/Linux ed il Software Libero - programmazione per la scuola secondaria - ● Introduzione ● Perché la programmazione? ● Strumenti.
Advertisements

Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
Progettare e programmare PROF.SENAREGA. Progettazione nella scuola  Processo mirato a definire e descrivere le finalità e le caratteristiche o modalità.
Musolino Carmelo Borsista del progetto di formazione NEMBO.
La progettazione concettuale
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Introduzione alla programmazione MIDI
Rileaborato da M. Lenzerini - Basi di dati
© 2007 SEI-Società Editrice Internazionale, Apogeo
Università degli Studi di Modena e Reggio Emilia
Analisi Statistica del Reddito e delle Condizioni di Vita
Piattaforma per industrie stampaggio
Lavoro di gruppo 3^E sia Peroni Jessica Mascheroni Beatrice
Java World Introduzione.
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Real-time 3D skeletal animation and mesh skinning
Psicologia della Comunicazione 6 CFU – 30 ore Docente Alessandra Tasso
di Basi di Dati: Overview
Introduzione al linguaggio C
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Istituzioni di Economia Informazioni generali sul Corso
Programmazione per la Musica | Adriano Baratè
Programmazione per la Musica Presentazione del corso
1 Metodologia per la gestione dei colori e forma del prodotto attraverso l’analisi di scenari di tendenza Metodologia per la gestione dei colori e forma.
La ricerca in campo educativo. Problemi e metodi
Basi di Dati: Introduzione
Programma del corso e indicazioni operative
Paradigma MVC Ing. Buttolo Marco.
Ingegneria Meccanica dei Materiali
Introduzione alle griglie computazionali
Programmazione a oggetti
Docimologia e Valutazione dell’apprendimento permanente
I FILES AD ACCESSO SEQUENZIALE
Forme per rappresentare l’algoritmo:
UML Creato da: Enrico Tarantino Alessandro Vilucchi Roberta Barcella.
Istituzioni di Economia Informazioni generali sul Corso
Sviluppo di un'applicazione web per l'utilizzo del framework SparkER
Lezione 9 – A.A. 2016/2017 Prof. Giovanni Acampora
Corso di Ingegneria del Web A A Domenico Rosaci 1
Corso Java Introduzione.
Presentazione del Manifesto 2017/2018
Programmazione e Laboratorio di Programmazione
Classe III A A.s – 2012 Programma di Informatica
Programmazione e Laboratorio di Programmazione
OBJECT ORIENTED DATABASE

Programmare.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Progettazione concettuale
Corso di Laurea in Ingegneria Informatica
ORGANIZZAZIONE AZIENDALE (A.A )
La ricerca in campo educativo. Problemi e metodi
Sistemi informativi statistici
Ricorsione 16/01/2019 package.
Classe V A A.s – 2012 Programma di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
© 2007 SEI-Società Editrice Internazionale, Apogeo
Istituzioni di Economia Informazioni generali sul Corso
APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Java Introduzione.
La ricerca in campo educativo. Problemi e metodi
UML Diagramma statico di una classe
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Orario Ricevimento: venerdì 13:00 – 15:00
Linguaggio di Modellazione Unificato
Il questionario: progettazione e redazione II Modulo
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Programmazione ad Oggetti per la Fisica Laurea Magistrale in Fisica - Anno Accademico 2017-2018 Prof. Giovanni Acampora

Obiettivi del Corso Fornire una conoscenza approfondita delle metodologie di progettazione e implementazione Object-Oriented per lo sviluppo di software; Fornire la conoscenza di un linguaggio di modellazione per sistemi Object-Oriented; Fornire la conoscenza di un linguaggio di programmazione Object-Oriented; Fornire una panoramica sulle possibili applicazioni scientifiche dei sistemi Object-Oriented;

Learning Outcomes Dopo aver seguito il corso e sostenuto l’esame, lo studente sarà in grado di: Progettare un sistema informatico utilizzando la metodologia OO; Implementare un sistema informatico utilizzando la metodologia OO; Analizzare e fornire un’analisi critica delle caretteristiche prestazionali e progettuali di un sistema informatico realizzato con tecniche OO. Applicare le metodologie di progettazione e implementazione OO a problemi scientifici.

Organizzazione del Corso Titolare dell’insegnamento: Prof. Giovanni Acampora Durata del corso: Il corso prevede due lezioni settimanali, una lezione pratica e una lezione teorica; La lezione pratica comincerà le seconda settimana; La lezione del Lunedì sarà svolta in caso di necessità Modalità d’esame: Progetto Prof. Giovanni Acampora Email: giovanni.acampora@unina.it Studio: 2G16 (Dipartimento di Fisica “Ettore Pancini” Laboratorio: QUASAR (Quantum Computing and Smart Systems) – Edificio 8B, Piano -1 Telefono: 081676150 Orario di Ricevimento:

Contenuti del Corso Object Oriented Analysis Object Oriented Design Object Oriented Programming Notazione UML Linguaggio di Programmazione Python Programmazione Scientifica in Python Programmazione ad Oggetti in Python Introduzione al Machine Learning

Cerchiamo di capire di cosa stiamo parlando Introduzione

Programma in C #include <stdio.h> main() { int i, numero = 1; char[] squadra = “Napoli”; printf(“Hello World\n”); printf(“Valore di test: %d\n”, numero); printf(“Valore di squadra: %s”, squadra); if (test == 1) … ; else test = 20; for (i = 0; i < test; i++) … }

Paradigma di Programmazione Imperativo/Procedurale Sequenza di istruzioni/comandi; Istruzioni raggruppate in moduli separati (le funzioni del C); Le istruzioni agiscono per modificare il valore di variabili; Le variabili rappresentano Ciascun modulo viene pensato per risolvere un particolare aspetto del problema;

Paradigma di Programmazione Imperativo/Procedurale Metodologia di Analisi Top-Down Strutture di Controllo Sequenziali Condizionali Iterative

Gli oggetti Il mondo reale non è un’aggregazione di istruzioni e di dati; Oggetti tangibili/intangibili ci circondano e interagiscono tra loro; Gli oggetti che ci circondano sono caratterizzati da un proprio stato e da un proprio comportamento; Il comportamento di un oggetto ne modifica lo stato e gli consente l’interazione con altri oggetti.

Gli oggetti Un sistema nel paradigma orientato agli oggetti SISTEMA

(attributi di un oggetto) Gli oggetti SISTEMA Insieme di entità Interagenti Oggetti Proprietà (attributi di un oggetto) azioni (metodi di un oggetto)

Gli oggetti Cambia la visione del problema e del modo con cui trattarlo… SISTEMA Algoritmo Sequenza Interazione

Gli oggetti

Object Oriented Analysis Gli oggetti Object Oriented Analysis Object Oriented Design Object Oriented Programming Object Oriented Methodology

Object Oriented Analysis Gli oggetti Object Oriented Analysis Nella progettazione orientata agli oggetti di sistemi complessi bisogna: Identificare gli oggetti componenti il sistema Per ciascun oggetto identificare: Metodi Proprietà Identificare il set di relazioni tra i diversi oggeti componenti il sistema What to do Si estraggono i cosiddetti requisiti del sistema

Object Oriented Design Gli oggetti Object Oriented Design Nella progettazione orientata agli oggetti di sistemi complessi bisogna: Convertire i requisiti del sistema in una specifica implementiva Gli oggetti identificati nella prima fase vengono rappresentati in modo da essere implementati attraverso un linguaggio di programmazione (possibilmente OO) How to do

Object Oriented Programming Gli oggetti Object Oriented Programming La specifica implementativa identificata al precedente step viene convertita in un programma scritto in un linguaggio di programmazione. Linguaggi Procedurali Linguaggi Object Oriented

Gli oggetti

Classi di oggetti Una classe è un costrutto di un linguaggio di programmazione usato come modello per creare oggetti. Il modello comprende attributi e metodi che saranno condivisi da tutti gli oggetti creati a partire dalla classe.

Diagramma delle classi I diagrammi delle classi (class diagram) consentono di descrivere tipi di entità, con le loro caratteristiche e le eventuali relazioni fra questi tipi.

Diagramma degli oggetti I diagrammi degli oggetti consentono di descrivere istanze di classi (oggetti) e relazioni: esso è un’istanza del diagramma delle classi.

Visibilità

Ereditarietà Classi nuove sono progettate sulla base di classi pre-esistenti Le nuove classi acquisiscono gli attributi e i comportamenti delle classi precedenti ed aggiungono caratteristiche nuove o raffinano caratteristiche pre-esistenti La classe precedente prende il nome di classe base e la classe che eredita prende il nome di classe derivata

Gerarchia di classi E’ possibile creare una classe che eredita a sua volta da una classe derivata Ripetendo questo procedimento si ottiene una gerarchia di classi

Gerarchia di classi Terminologia

Tipi di gerarchia Ereditarietà singola: la classe derivata eredita solo da una classe base Ereditarietà multipla: la classe derivata eredita da più classi base (anche fra di loro eterogenee)

Esempio

Tipi di gerarchia

Polimorfismo Overriding Polimorfismo Overloading Indica la possibilità per i metodi di assumere forme diverse Overriding Polimorfismo Overloading

Overriding Indica la possibilità per i metodi di assumere forme diverse all’interno della gerarchia delle classi Un metodo nella classe base è ridefinito nella classe derivata Il comportamento definito nel metodo della classe base è mascherato dal comportamento del metodo ridefinito nella classe derivata.

Overloading Un metodo assume forme diverse nella stessa classe

Interazioni tra oggetti

Interazioni tra oggetti

Esempio

Metodologia di programmazione