fondamenti di informatica t-a introduzione...fornite dal linguaggio. fondamenti di informatica a-k -...

35
Fondamenti di informatica T-1 (A – K) Esercitazione 1 : Introduzione AA 2018/2019 Tutor Lorenzo Rosa l [email protected]

Upload: others

Post on 26-Apr-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Fondamenti di informatica T-1 (A – K)

Esercitazione 1 : IntroduzioneAA 2018/2019

Tutor

Lorenzo Rosa

[email protected]

Page 2: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Informazioni utili

Orario delle esercitazioni:

▫ Gruppo A-C: Mercoledì, 9-11, LAB3

▫ Gruppo D-K: Giovedì, 9-11, LAB2

Ricevimento:

▫ su appuntamento, da concordare via email

Contatti:

[email protected]

Sito web del corso:

▫ http://www-db.deis.unibo.it/courses/FIT1-AK

Fondamenti di informatica A-K - Lorenzo Rosa

Page 3: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Laboratorio

Obiettivi

▪ Esercitare praticamente i contenuti trattati a lezione.

▪ Consolidare ed acquisire dimestichezza con la scrittura di codice Java e nell’utilizzo degli strumenti utili alla programmazione.

Modalità di raggiungimento

▪ Lezioni frontali in laboratorio alternate ad esercizi individuali o di gruppo.

▪ Uno o più problemi facoltativi da risolvere a casa per i più volenterosi.

▪ Le soluzioni di ogni esercizio sono pubblicate poche ore dopo le esercitazioni.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 4: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Laboratorio

Dove

▪ Le esercitazioni si terranno tutte nel lab2 e lab3.

Come ottenere un’account

▪ È possibile ottenere un’account per utilizzare le postazioni sia dal Web che dai lab: lab0, lab2, lab3, lab4 e lab6.▫ Avviare la postazione scegliendo la voce del menu di avvio "Ti

serve un account? -> sign in"

▫ Il sistema accederà in maniera automatica al sito http://infoy.ing.unibo.it/new_account e permetterà di effettuare le operazioni di creazione.

▪ Per ulteriori dettagli seguire le istruzioni rese disponibili dal centro di calcolo della facoltà di Ingegneriahttp://ccib.ing.unibo.it/content/account

Fondamenti di informatica A-K - Lorenzo Rosa

Page 5: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Laboratorio

Cosa NON SI PUÒ fare durante le esercitazioni:

▪ Consumare cibi e bevande

▪ Parlare quando è il tutor a farlo

▪ Alzarsi in piedi, spostare le sedie, formare gruppi

▪ Andarsene prima della fine della lezione (eccezioni

ovviamente consentite)

Cosa SI PUÒ fare durante le esercitazioni:

▪ Discutere degli esercizi con i propri vicini

▪ Interrompere il tutor per dubbi e domande

Fondamenti di informatica A-K - Lorenzo Rosa

Page 6: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

LaboratorioSuggerimenti

▪ Lo spazio utente per il vostro account sulle macchine del

laboratorio è minimale: Si suggerisce caldamente di

effettuare di volta in volta il backup dei vostri esercizi su

un supporto removibile.

▪ Le lezioni di laboratorio non necessitano di prerequisiti per

cui partiranno da un coefficiente di difficoltà molto basso.

Tuttavia la difficoltà crescerà esponenzialmente.

Si suggerisce, pertanto, di seguire con costanza le lezioni:

PERDERSI SIGNIFICA TRIPLICARE IL LAVORO FREQUENTARE SIGNIFICA DIMEZZARLO

Fondamenti di informatica A-K - Lorenzo Rosa

Page 7: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Programma

Introduzione al calcolatore e Java

Linguaggio Java, basi e controllo del flusso

Eclipse ed esercizi di consolidamento

Stringhe ed array

Metodi, classi, oggetti

Ereditarietà e polimorfismo

Collezioni Java e interfacce

Esercizi d’esame

Fondamenti di informatica A-K - Lorenzo Rosa

Page 8: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Esercitazione 1

Fondamenti di informatica A-K - Lorenzo Rosa

Introduzione al calcolatore e Java

Linguaggio Java, basi e controllo del flusso

Eclipse ed esercizi di consolidamento

Stringhe ed array

Metodi, classi, oggetti

Ereditarietà e polimorfismo

Collezioni Java e interfacce

Esercizi d’esame

Page 9: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Cos'è un PC ?

La macchina di Von Neumann è un modello costituitoalmeno da:

▪ Memoria Principale

▪ CPU

▪ Bus di sistema

▪ Unità di Input/Output

Fondamenti di informatica A-K - Lorenzo Rosa

Page 10: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Livelli di astrazione

Il sistema operativo (S.O., o in inglese O.S. da Operating System) rappresenta lo strato software fondamentale per il corretto funzionamento di un calcolatore.

Un S.O. offre:▪ l'insieme delle funzioni e delle strutture dati necessarie

alla gestione dell’hardware del calcolatore▪ un ambiente di esecuzione alle singole applicazioni▪ un’interfaccia software (grafica o testuale) per

consentire l’accesso e l’utilizzo delle risorse del sistema da parte di un essere umano

Fondamenti di informatica A-K - Lorenzo Rosa

Page 11: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Sistema Operativo

All’interno di un S.O., è possibile identificare:

▪ Kernel: Costituisce il nucleo principale del S.O., e consentel’accesso all'hardware del calcolatore e la gestione/esecuzione dei processi.

Programma e Processo

▫ Un programma posto in esecuzione diviene un processo.

▫ Un programma è un’entità statica, mentre il processo è un’entità dinamica e contiene ulteriori dati, utilizzati dal sistema operativo per gestirne l’esecuzione.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 12: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Sistema Operativo

All’interno di un S.O., è possibile identificare:

▪ File System: Gestisce le richieste di accesso verso le memorie di massa presenti. Realizza l’astrazione logica di directory/file, tiene traccia dei file aperti e garantisce, dove previsto, il rispetto dei permessi di accesso.

▪ Interfaccia utente: Consente la reale interazione tral’essere umano e la macchina. Nei S.O. di ultimagenerazione, l’interfaccia utente è tradizionalmenteun’interfaccia grafica a finestre.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 13: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Disco Rigido

Il File System definisce le modalità di memorizzazione e di accesso alle informazioni presenti su un dispositivo di archiviazione, ad esempio un hard disk.

Un tradizionale hard disk presenta la struttura mostrata in figura, nella quale è possibile distinguere:

▪ Piatto: il disco rigido si

compone di uno o piùdischi paralleli. Ognisuperficie è un "piatto", edè destinata allamemorizzazione dei dati

Fondamenti di informatica A-K - Lorenzo Rosa

Page 14: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Disco Rigido

Il File System definisce le modalità di memorizzazione e di accesso alle informazioni presenti su un dispositivo di archiviazione, ad esempio un hard disk.

Un tradizionale hard disk presenta la struttura mostrata in figura, nella quale è possibile distinguere:

▪ Testina: su ogni piatto è

presente una testina peraccedere in scrittura o inlettura ai dati memorizzati

Fondamenti di informatica A-K - Lorenzo Rosa

Page 15: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

File system

Il file system è uno strumento che il sistema operativo ci mette a disposizione per colloquiare con il disco rigido tramitel’astrazione di directory e files.

Per ulteriori approfondimenti:http://it.wikipedia.org/wiki/Disco_rigidohttp://it.wikipedia.org/wiki/File_system

Fondamenti di informatica A-K - Lorenzo Rosa

Page 16: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

File system

▪ Ogni directory contiene due directory speciali, note come:

. (directory punto): rappresenta la directory corrente

.. (directory punto punto): rappresenta la directory padre

▪ È possible indicare univocamente una risorsaall’interno del file system con una semplice stringa di testo:

▪ Ad esempio, C:\Directory1\File1 o C:\Directory1\File2.

▪ Inoltre, sfruttando le directory speciali, C:\Directory1\.\File1 equivale a C:\Directory1\File1, e C:\Directory1\..\File1individua C:\File1

Fondamenti di informatica A-K - Lorenzo Rosa

Page 17: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

File system

Il path può essere:

▪ Assoluto: Il percorso viene espresso a partire dalla radicedell’albero. Ad esempio, i percorsi C:\Directory1\File1 o C:\File1ricadono in questa categoria.

▪ Relativo:Il percorso viene espresso sfruttando le directory specialie la directory attuale. Ad esempio, se ci troviamo in C:\Directory1:..\File1 è un percorso relativo e individua C:\File1.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 18: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Windows

Tutte le esercitazioni saranno effettuate su Windows.Nello specifico Windows 10 (ma è totalmente indifferente aiNostri fini).

▪ S.O. multiutente: supporta la presenza contemporanea di più utenti, consentendo il login anche simultaneo dei singoli

▪ S.O. multi-task: supporta l’esecuzione contemporanea di più processi, ripartendo opportunamente il tempo di esecuzione complessivo

▪ File system basato tradizionalmente su tecnologia NTFS con controllo degli accessi e sistema grafico a finestre.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 19: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Primo esercizio

▪ Giocate con Explorer, il gestore grafico di file system di Windows. Si apre con tasto «start» + «E».

▪ Raggiungete la vostra directory home (il nome è uguale al vostro username).

▫ C:\Users\s0000xxxxxx

▪ Prendete confidenza con la struttura gerarchica delle directory in Windows:

▫ Cosa c’è in C:\Windows?

▫ Cosa c’è in C:\Program Files?

▫ Cosa c’è in in C:\Users ?

▫ Etc…

Fondamenti di informatica A-K - Lorenzo Rosa

Page 20: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Secondo esercizio

▪ Anche questo è facile! Sapete aprire blocco note? Provateci

senza aiuto.

▪ Aprite il blocco note, scrivete nel testo "Hello world!" e

salvatelo in un file chiamato "Esercitazione1.txt".

▪ Copiate il file "Esercitazione1.txt" appena creato sul

desktop. Poi tagliatelo e rincollatelo nella vostra home.

▪ Modificate l'estensione del file da .txt a .ciao

▫ Attenzione, l'estensione del file potrebbe essere nascosta da

windows! (comportamento modificabile in opzioni>opzioni

cartella)

Fondamenti di informatica A-K - Lorenzo Rosa

Page 21: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Un terzo esercizio

▪ Riuscireste a fare tutto quello che avete appena fatto da

interfaccia grafica tramite riga di comando?

▪ Suggerimenti:

▫ Per aprire il prompt dei comandi utilizzare il comando "cmd" da start, nella barra delle applicazioni

▫ Per creare un nuovo file di testo: notepad [nomefile.txt]

▫ Per avere una lista del contenuto della cartella in cui si invoca il comando: dir

▫ Per copiare un file: copy «sorgente» «destinazione»

▫ Per cambiare directory: cd «percorso assoluto o relativo»

▫ Per rinominare un file: ren «sorgente» «destinazione»

▫ Per eliminare un file: del [nomefile]

Fondamenti di informatica A-K - Lorenzo Rosa

Page 22: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Linguaggio di programmazione

▪ Ma come si sviluppa Windows? Come si sviluppano tutti i

programmi più semplici?

▪ Un linguaggio di programmazione è lo strumento per

interagire con l'hardware della macchina di Von Neumann.

▪ Tramite i linguaggi si possono scrivere istruzioni che la

macchina poi eseguirà, cioè il codice macchina.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 23: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Linguaggio di programmazione

Un linguaggio di programmazione è definito da:

▪ Sintassi: insieme di regole formali utilizzate per creare

frasi del linguaggio.

▪ Semantica: significato associato ad ogni singola frase

sintatticamente corretta del linguaggio.

Rispettando le regole sintattiche, otteniamo un programma

corretto ma non necessariamente semanticamente valido!

Fondamenti di informatica A-K - Lorenzo Rosa

Page 24: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Linguaggio di programmazione

Perché usare un linguaggio di programmazione di alto livello?

▪ Ogni linguaggio definisce un insieme di concetti di alto

livello, che aiutano il programmatore nella stesura dei

programmi.

▪ Non bisogna ragionare in

termini di istruzioni macchina,

ma si sfruttano le astrazioni

fornite dal linguaggio.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 25: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Compilato o interpretato ?

Fondamenti di informatica A-K - Lorenzo Rosa

Page 26: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Linguaggio Java

Nell’ambito del corso, verrà approfondito il linguaggio Java:

▪ È un linguaggio di alto livello.

▪ È interpretato, ciò garantisce portabilità su diverse

piattaforme.

▪ In realtà, presenta una fase di compilazione iniziale utilizzata

per tradurre il codice in un nuovo formato detto bytecode.

Durante questa fase, sono anche eseguite possibili

ottimizzazioni.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 27: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Architettura di funzionamento

Fondamenti di informatica A-K - Lorenzo Rosa

Page 28: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

JVM - Java Virtual MachineIl bytecode non è linguaggio macchina, ovvero non è

direttamente eseguibile.

Per diventarlo, deve subire un’ulteriore trasformazione cheviene operata dall’interprete Java in modalità JIT (Just In Time)

▪ Pro: indipendente dalla piattaforma (portabilità)

▪ Contro: l’ulteriore trasformazione rallenta l’esecuzione

La JVM esegue il codice presente nel file specificatodall'utente che a sua volta deve contenere un metodomain().

▪ La JVM cerca i file di bytecode (.class) nel momento in cui servono (collegamento dinamico).

▪ È possibile specificare il percorso nel quale cercare tramitela variabile classpath (in laboratorio è già impostata)

Fondamenti di informatica A-K - Lorenzo Rosa

Page 29: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

JDKJava Development Kit:

Insieme degli strumenti necessari per la scrittura di

applicazioni in Java (kit per lo sviluppo).

Ambiente di sviluppo gratuito della Oracle (ex Sun).

Comprende diversi strumenti, in particolare:

▪ Un compilatore Java (javac)

▪ Un interprete, detto Java Virtual Machine (java)

▪ Altre Utility (javadoc, jar, etc...)

Tutti gli strumenti sono utilizzabili da linea di comando.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 30: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Installare JDK su Windows

1. Verificare le caratteristiche della propria CPU:

Pannello di controllo > Sistema

32 o 64 bit??

Fondamenti di informatica A-K - Lorenzo Rosa

Page 31: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Installare JDK su Windows

2. Accedere al sito ufficiale Oracle per il download gratuito:

http://www.oracle.com/technetwork/java/javase/downloads/jdk9-

downloads-3848520.html

64-bitAccettare la licenza

Fondamenti di informatica A-K - Lorenzo Rosa

Page 32: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Installare JDK su Windows

3. Effettuare l’installazione del file .exe appena scaricato e completare il wizard.

4. Modificare la variabile PATH di sistema aggiungendo al suo contenuto ;%JAVA_HOME%\bin senza assolutamente cancellare il contenuto già esistente!Ed inserendo al posto di %JAVA_HOME% il nome del percorso assoluto sino alla cartella radice in cui è stato installato Java.Ad Esempio ;C:\"Program Files (x86)"\Java\jdk1.11.0_2\bin

Su Windows 7 La variabile PATH è modificabile attraverso il percorso:pannello di controllo > Sistema > impostazioni avanzate di sistema > variabili d’ambiente.E tra le variabili di sistema troverete la variabile PATH.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 33: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Installare il JDK su Windows

Fondamenti di informatica A-K - Lorenzo Rosa

Page 34: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Installare il JDK su Windows

3. Verificare che java sia stato installato correttamente: aprire il Prompt dei comandi e digitare java –version

In caso affermativo vi sarà restituita la versione di Java.

Fondamenti di informatica A-K - Lorenzo Rosa

Page 35: Fondamenti di informatica T-A Introduzione...fornite dal linguaggio. Fondamenti di informatica A-K - Lorenzo Rosa Compilato o interpretato ? Fondamenti di informatica A-K - Lorenzo

Installare il JDK su altri S.O.

▪ Mac OS X:

Seguire le istruzioni sul sito di Oracle:

https://docs.oracle.com/javase/10/install/installation-jdk-and-jre-macos.htm

▪ GNU/Linux (es. Debian, Ubuntu e derivati):

Seguire le istruzioni sul sito dell’OpenJDKhttp://openjdk.java.net/install/

In caso riscontriate difficoltà non esitate a chiedere!

Ma prima provate e sporcatevi le mani! (che rimane sempre il modo migliore di imparare).

Fondamenti di informatica A-K - Lorenzo Rosa