Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Slides:



Advertisements
Presentazioni simili
Informatica Generale Marzia Buscemi
Advertisements

Prof. Rebecca Montanari Anno accademico 2011/2012
Informatica Generale Susanna Pelagatti
Il Software.
Classe III A A.s – 2010 Programma di Informatica
Recupero debito quarto anno Primo incontro
STRUTTURA DEL PERSONAL COMPUTER
I linguaggi di programmazione
Presentazione Computer Forensic 27/03/2017
Prof. Emanuele Marino Concetti teorici di base della tecnologia dellinformazione.
Informatica Generale I
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Informatica Generale Susanna Pelagatti
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
Introduzione allo studio dell’informatica
Fondamenti di Informatica
Informatica (conoscenza) - Introduzione al corso (I. Zangara)
Il computer ragiona? Problemi e algoritmi.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Fondamenti di Informatica
Linguaggi di Programmazione 1 docente: Maurizio Tucci Lezione 0.1 Concetti di Base.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Argomenti della lezione
Programmazione in Java
Elementi di Informatica
Elementi di Informatica
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
STRUTTURA GENERALE DI UN ELABORATORE
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lo sviluppo del software e i linguaggi di programmazione
Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori
Fondamenti di Informatica e Informatica di base Prof.ssa Elisa Tiezzi
Alla fine degli anni quaranta nasceva il mito del cervello elettronico, e tutte le attività connesse allutilizzo del computer venivano indicate tramite.
Linguaggi per COMUNICARE
Programma di Informatica Classi Seconde
Programma di Informatica Classi Prime
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Dal problema all’ algoritmo
la traduzione dei programmi
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Algoritmi.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Elementi di Informatica SciGeo a.a. 2002/2003. Docente Giorgio Delzanno Ufficio 104 – I piano Dipartimento di Informatica e Sc. Inf. Tel
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Parte IIElementi di Informatica1 Introduzione ai sistemi operativi Parte II.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Concetti di base Computer, HW e SW
Problemi, algoritmi e programmazione
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informazione e Informatica - presentazione dei concetti di base -
Parte IIConoscenze Informatiche1 Introduzione ai sistemi operativi e WindowsX Parte II.
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Programmazione dei Calcolatori Elettronici
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria

Presentiamoci Mi chiamo Francesco Ricca Ricercatore presso il Dip. Di Matematica Mi occupo di: Intelligenza Artificiale Programmazione Logica Insegno: Introduzione allInformatica Ingegneria del Software Programmazione ad Oggetti

Programma del Corso Introduzione allInformatica Problemi, Algoritmi e Programmi Fondamenti di Programmazione … con il linguaggio Java Siti dinamici con Java J2ME: Java per i cellulari

Materiale Didattico Lucidi delle Lezioni Guide rapide Libri L. Nigro, Introduzione alla programmazione orientata agli oggetti in Java, Edizioni Luim L.Cabibbo, Fondamenti di Informatica: Oggetti e Java, McGraw-Hill C.S. Horstmann – G. Cornell, Core Java 2, Prentice Hall

Orario ed Esame Esame Finale giorno 9 Maggio: Facoltativo Chi lo supera consegue un attestato per riscattare 1CFU Lattestato di frequenza valido per lesame di stato non è connesso allesame

Introduzione AllInformatica Nozioni di base

Cosa è lInformatica? Scienza degli elaboratori elettronici Computer Science Scienza dellinformazione rappresentazione memorizzazione elaborazione e trasmissione dellinformazione Parente stretta della Matematica 2 anime: teorica, tecnico-pratica

Il Computer Elaboratore elettronico (o calcolatore) E uno strumento per la rappresentazione, la memorizzazione e lelaborazione delle informazioni. E programmabile: può essere predisposto per eseguire un particolare insieme di azioni, allo scopo di risolvere un problema.

Cosa possiamo fare con un calcolatore?

Utilizzo di un elaboratore Come utente: Uso software applicativo esistente per creare documenti e interfacce grafiche, effettuare calcoli, navigare in rete Come sviluppatore: Creo nuovi programmi sullo strato del software esistente Nuovi programmi applicativi Nuovi programmi di sistema (cioè che fanno funzionare il calcolatore)

Cosa possiamo fare con un calcolatore? Word Processing. Memorizzare, elaborare testi. Basi di Dati. Memorizzare grossi archivi di dati, recupero veloce, produrre informazioni globali. Accesso Remoto. Trasmissione e recupero di informazioni. Calcolo. Risolvere problemi matematici. Simulazioni. Rappresentare e elaborare informazioni che simulano lambiente reale.

Parole chiave: Hardware Software

Hardware Contenitore con CPU, RAM Memoria Centrale Fisso Unità per Dischi - CD/DVD Monitor Tastiera Ecc.

Hardware Unità di Elaborazione (Processore o CPU): Svolge le elaborazioni Coordina il trasferimento dei dati Cioè esegue i programmi Memoria Centrale Memorizza dati e programmi per lelaborazione Volatile Accesso rapido Capacità limitata

Hardware Memoria Secondaria (es. Harddisk,floppy) Grande capacità Persistente Accesso piu lento della RAM Unità Periferiche Interfaccia verso lesterno Terminali (tastiera, video) Stampanti

Software Software di base: Dedicato alla gestione dellelaboratore Esempio: Sistema Operativo (Windows, Linux, etc) Software applicativo: Dedicato alla realizzazione di specifiche applicative Esempio: programmi per scrittura, gestione aziendale, navigazione su internet, ecc

Problemi, Algoritmi e Programmi I concetti fondamentali dellInformatica

Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Problema Strategia Obiettivo

Esempi di problemi Trovare il numero di telefono di una persona Individuare il numero più piccolo di una sequenza Stabilire se una parola precede alfabeticamente unaltra Calcolare il costo totale di un certo numero di prodotti Trovare perimetro e area di una figura geometria …

Risolvere un problema Come si costruisce la soluzione a un problema? Qual è il giusto punto di partenza per pensare la soluzione a un problema? Quali metodologie e tecniche usare?

Risolvere un problema Problema Interpretazione Modello Procedimento risolutivo Esecuzione Verifica dei risultati

Algoritmo Un algoritmo è una sequenza finita di operazioni elementari che porta alla risoluzione in un tempo finito una classe di problemi. In generale un algoritmo può essere visto come una funzione da un dominio dingresso ad uno duscita Algoritmo Dati(INPUT) X Risultati(OUTPUT) f(X)

Algoritmi: proprietà fondamentali Eseguibilità: ogni azione deve essere eseguibile da parte dellesecutore dellalgoritmo in un tempo finito Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore Finitezza: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito.

Algoritmi equivalenti forniscono lo stesso risultato ma possono avere diversa efficienza e possono essere profondamente diversi ! Esempio: moltiplicare tra loro due numeri Algoritmo 1: Somme successive: 12x12 = …+12=144 Algoritmo 2 12x 12= 24 12= 144

Esecuzione

Algoritmi e programmi Algoritmo Sequenza finita di passi che risolve in tempo finito un problema. Codifica Fase di scrittura di un algoritmo in un qualche linguaggio di programmazione, che specificano le azioni da compiere. Programma Testo scritto in accordo con la sintassi e la semantica di un linguaggio di programmazione. PROBLEMA ALGORITMO PROGRAMMA

Linguaggi di Programmazione Linguaggi per esprimere in maniera rigorosa un algoritmo Linguaggio macchina (seq. Istruzioni) Linguaggi ad alto livello (vicini al ling. naturale) Pascal, C e C++, Basic, Cobol Java

Esempio: potenza Problema: Calcolare a n Algoritmo: Fino a che N>0 Calcola Ris*a e memorizzalo in Ris Decrementa N Nota che: Al termine Ris=a n

Esempio …in Java int potenza(int a, int n) { int ris = 1; while ( n > 0 ) { ris = ris * a; n = n-1; } return ris; }

Riassumendo… Un algoritmo è il processo risolutivo di un problema Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati dette istruzioni Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione Un programma è la formulazione testuale di un algoritmo in un linguaggio di programmazione

Esistono problemi che un elaboratore non può risolvere? Sì. Ci sono problemi non calcolabili da nessun modello di calcolo reale o astratto Esempio: data una funzione f : N N, stabilire se f(x) è costante per ogni valore di x

Fondamenti di Programmazione …con Java

Linguaggi di Programmazione Linguaggi per esprimere in maniera rigorosa un algoritmo La lingua del Computer Diversi tipi di linguaggi: Imperativi Dichiarativi Ad Oggetti

Linguaggi Imperativi Comandano il computer indicando le azioni da compiere Si specificano le azioni da fare per ottenere il risultato Algoritmo = insieme di operazioni da compiere sui dati Algoritmo = DATI + Controllo

Linguaggi Dichiarativi Chiedono al computer di trovare una soluzione Si specifica quello che si vuole e non come deve essere calcolato Linguaggi Funzionali: Lisp Linguaggi Logici: Prolog Questo è stato espresso da Robert Kowalski con la formula: Algoritmo = Logica + Controllo

Linguaggi ad Oggetti Sono basati sul concetto di oggetto software Un oggetto software rappresenta un oggetto del mondo reale un numero, un archivio, un testo, una matrice, una persona... I dati sono rappresentati come oggetti Le azioni da compiere come operazioni da effettuare sugli oggetti. Di solito sono realizzati come estensione dei linguaggi imperativi. Un programma modella un problema reale come una collezione di oggetti software che interagiscono.

Ma è davvero questa la lingua del computer? Questi sono linguaggi ad alto livello Più simili al nostro modo di esprimerci Il computer conosce solo i bit e le operazioni elementari su questi (linguaggio a basso livello) Cè bisogno di un traduttore!!! Il Compilatore traduce un programma scritto in un linguaggio di programmazione ad alto livello in bit e operazioni elementari Si trovano negli ambienti di sviluppo: e.s. JDK e/o Eclipse

Dal programma allesecuzione… Scrivo il programma In JAVA Il compilatore lo traduce Il Computer lo ESEGUE Se è scritto male, saranno segnalati gli errori (attenti, è molto pignolo!)

Concetti di base della POO POO = Programmazione Orientata agli Oggetti

Il concetto di Classe Una classe è un insieme di oggetti che hanno le stesse caratteristiche e lo stesso comportamento Definire una classe = Elencarne le caratteristiche (~ definire i dati) Specificarne il comportamento (~ definire le operazioni) Una classe definisce il progetto di un oggetto software Quando un oggetto software appartiene ad una classe ha tutte le caratteristiche ed il comportamento specificate per questa.

Esempio: la classe dei libri Ogni libro ha: un titolo un numero di pagine un elenco numerato di pagine … Su ogni libro possiamo operare Leggiamo il titolo Vediamo quante pagine ha Cerchiamo una pagina Stampiamo una pagina o tutto il libro … Comportamento: Operazioni o Metodi Caratteristiche: Dati Unaltra classe!!!

La visibilità Un po di privacy Non tutti possono vedere tutte le caratteristiche di un oggetto: Information Hiding Il mago Silvan non rivela a tutti il trucco con cui ha fatto comparire un coniglio o sparire lassistente Mostrereste dove si trova la cassaforte a casa vostra? Dareste a tutti il PIN del vostro cellulare? Tre parole chiave per proteggere o meno le caratteristiche e i metodi di una classe: public, private, protected

La classe libro in Java class Libro { // Caratteristiche private Titolo nomeLibro; private Numero numeroDiPagine; private Lista pagine; // Metodi public Titolo dammiTitolo(); public Numero dammiNumeroDiPagine(); … } class Libro { // Caratteristiche private Titolo nomeLibro; private Numero numeroDiPagine; private Lista pagine; // Metodi public Titolo dammiTitolo(); public Numero dammiNumeroDiPagine(); … } Indichiamo la classe ed il nome della proprietà Indichiamo il nome del metodo e il tipo di oggetti che calcola Diamo il nome

Il concetto di variabile Come manipoliamo un oggetto software? Gli oggetti software vivono nella memoria del computer Abbiamo bisogno di nomi che riferiscono direttamente gli oggetti per manipolarli Es. somma 3 al numero X X = X + 3 X è una variabile, che consente di manipolare un certo tipo di oggetti (in questo caso dei numeri) Le variabili associano nome e tipo ad un oggetto nella memoria

Manipolazione di oggetti Se vogliamo ottenere il titolo di un libro dobbiamo chiamare il metodo dammiTitolo() Supponiamo che la variabile l riferisca un libro Titolo t = l.dammiLibro(); Si usa la notazione col punto (dot notation) VARIABILE. PROPRIETÀ VARIABILE. METODO( PARAMETRI ) Pagina p = l.dammiPagina( 33 );

Il mio primo programma Stampiamo ciao sullo schermo. class StampaCiao { public static void main(String args []) { System.out.println(Ciao); } Il sistema si aspetta un metodo così fatto: Main = Principale Oggetto sistema Ha la proprietà out che è lo schermo Chiamiamo il metodo Println = stampa linea

Scriviamo davvero i Programmi Lambiente di sviluppo Eclipse Tanti, tanti esempi