Introduzione al linguaggio Java per chi ha esperienza di C++. Non si parla di OOP, solo di linguaggio.
Codice sorgente dell'esercizio finale qui: https://pastebin.com/R4yZGQcy
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica è ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte è adatta ai ragazzi di 1-2° liceo SSA e di 2°-3° ITIS (in particolare ad indirizzo informatico)
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica è ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte è adatta ai ragazzi di 1-2° liceo SSA e di 2°-3° ITIS (in particolare ad indirizzo informatico)
Introduzione al linguaggio Java per chi ha esperienza di C++. Non si parla di OOP, solo di linguaggio.
Codice sorgente dell'esercizio finale qui: https://pastebin.com/R4yZGQcy
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica è ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte è adatta ai ragazzi di 1-2° liceo SSA e di 2°-3° ITIS (in particolare ad indirizzo informatico)
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica è ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte è adatta ai ragazzi di 1-2° liceo SSA e di 2°-3° ITIS (in particolare ad indirizzo informatico)
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Idriss Riouak
Uno studio sull'efficacia del checker Clang Tidy in particolare sull'efficacia del modulo "modernize". Il test è stato applicato sulla Parma Polyhedra Library.
Case Study sul malware "Gromozon", ispirato da un articolo di Marco Giuliani. Presentazione tenuta a Infosecurity 2007 con Luigi Mori, autore della sezione sul Reverse Engineering.
How create a single page apps using html5 and javascript Stefano Marchisio
Create a html5/javascript apps with mvc/ajax using knockout.js/mvvm. Javascript to IQueryable is a framework that allows you to write a simple query in javascript client side and then execute it server side with EntityFramework or a linq provider that implement IQueryable. On the server is used "Dynamic Expressions and Queries in LINQ by Microsoft" to compose dynamically your query. In this way you can create a grid with filter, paging and sort functions. There is also support for: mvc3 unobtrusive jquery validation and jquery mobile/phonegap. - http://Javascriptiqueryable.codeplex.com - http://www.youtube.com/watch?v=qjwyKwsXHKs - http://www.linqitalia.com/articoli/entity-framework/sfruttare-javascript-eseguire-query-linq-server-tramite-dynamic-iqueryable.aspx
Una primissima introduzione al TDD per chi è a digiuno di test in generale e di TDD in particolare. Usa Java/Junit, ma è facimente adattabile ad altri linguaggi. 40-60 minuti.
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Idriss Riouak
Uno studio sull'efficacia del checker Clang Tidy in particolare sull'efficacia del modulo "modernize". Il test è stato applicato sulla Parma Polyhedra Library.
Case Study sul malware "Gromozon", ispirato da un articolo di Marco Giuliani. Presentazione tenuta a Infosecurity 2007 con Luigi Mori, autore della sezione sul Reverse Engineering.
How create a single page apps using html5 and javascript Stefano Marchisio
Create a html5/javascript apps with mvc/ajax using knockout.js/mvvm. Javascript to IQueryable is a framework that allows you to write a simple query in javascript client side and then execute it server side with EntityFramework or a linq provider that implement IQueryable. On the server is used "Dynamic Expressions and Queries in LINQ by Microsoft" to compose dynamically your query. In this way you can create a grid with filter, paging and sort functions. There is also support for: mvc3 unobtrusive jquery validation and jquery mobile/phonegap. - http://Javascriptiqueryable.codeplex.com - http://www.youtube.com/watch?v=qjwyKwsXHKs - http://www.linqitalia.com/articoli/entity-framework/sfruttare-javascript-eseguire-query-linq-server-tramite-dynamic-iqueryable.aspx
Una primissima introduzione al TDD per chi è a digiuno di test in generale e di TDD in particolare. Usa Java/Junit, ma è facimente adattabile ad altri linguaggi. 40-60 minuti.
Queste slide dal titolo provocatorio cercano di dare l'idea che la stupidità e la pigrizia possono avere un effetto positivo nela programmazione per la ricerca di soluzioni semplici. Nello specifico caso parliamo di funzioni in C
Slides presentate all'incontro Didamatica 2016 a Udine. Si parla dei vantaggi didattici di una introduzione precoce dei principi Agili nella didattica informatica quotidiana (un mio pallino).
Slides di una breve conferenza che ho tenuto a scuola. Ritengo che lo stereotipo del programmatore brutto, scontrorso e antisociale sia in declino, ma perché ciò si realizzi davvero occorre affinare nuove abilità, le abilità sociali. Sia Online che Offline
Basato in parte sul lavoro seguente
http://www.slideshare.net/mastorey/msr-2012-keynote-storey-slideshare
Dopo molti anni mi sono ritrovato a insegnare Informatica in una terza. Questo è una breve slide che ho fatto per spiegare il ciclo for
C'è un errore nelle slides 7---9. ho scritto erroneamente una "," al posto del ";".
Introduzione al Controllo di versione (in generale) e al funzionamento di Git (in particolare). Upgrade di un'altra presentazione simile nelle basi ma incentrata su SVN.
Introduzione al sistema binario adatto a ragazzi delle scuole superiori (liceo scientico o ITIS)
Traduzione delle slides omonime presenti qu su slideshare di german margrit
1. www.googleslidesppt.com _ 30+ Ready Made Google Slides & PowerPoint Presentation for Free
Dal C/C++ a Java (in 3*30 minuti)
Se sapete già programmare...non riscopriamo l'acqua calda!
Parte 2
Marcello Missiroli (prof.missiroli@gmail.com)
2. Di
che
si
tratta?
01
02
03
04
Ipotesi
Voi conoscete già un linguaggio di
programmazione (C e/o C++)
Tesi
Non occorre rispiegare tutto daccapo:
applicheremo un insegnamento differenziale
Metodologia
Trasformeremo un programma che ben
conoscete (in C/C++) in un programma Java
Verifica
Poi toccherà a voi convertire un programma!
3. Calcolatrice
Un altro programma classico.
Partiremo da un codice reperibile su Internet,
completo e ben fatto, con licenza GPL.
Partiamo con lo scheletro di un programma
Java funzionante (eliminando quindi già
include e namespace).
Aggiungeremo il codice poco per volta (non ci
sta in una intera schermata!) e lo
convertiremo.
9. Passo 2
...
char operazione;
do { // Inizio Ciclo D-WHILE
system("cls"); // Pulisci La Schermata
System.out.println("
.::::::::::::::::::::::::::::::::::::::.");
System.out.println(" .: Calcolatrice Java by
SkirK & Piffy :."); System.out.println("
.::::::::::::::::::::::::::::::::::::::.");
System.out.println(" :: 1 Calcolatrice");
System.out.println(" :: 2 Potenza");
System.out.println(" :: 3 Radice Quadrata");
System.out.println(" :: 4 Escin");
System.out.println(" :: > "); cin >> scelta;
} while(scelta!=4);
}
}
Applichiamo trasformazioni già note.
While, e strutture di controllo,
sono identiche in C e Java
Non esiste equivalente
semplice per clsCommenti
10. Passo 2
...
char operazione;
do { // Inizio Ciclo D-WHILE
system("cls"); // Pulisci La Schermata
System.out.println("
.::::::::::::::::::::::::::::::::::::::.");
System.out.println(" .: Calcolatrice Java by
SkirK & Piffy :."); System.out.println("
.::::::::::::::::::::::::::::::::::::::.");
System.out.println(" :: 1 Calcolatrice");
System.out.println(" :: 2 Potenza");
System.out.println(" :: 3 Radice Quadrata");
System.out.println(" :: 4 Escin");
System.out.println(" :: > "); cin >> scelta;
} while(scelta!=4);
}
}
Applichiamo trasformazioni già note.
while e do..while
sono identici in C e Java
Non esiste equivalente
semplice per clsCommenti
Questo richiede un discorso
più approfondito
11. Input in Java
Non così semplice. Vediamo un dettaglio.
cin >> scelta;
12. Input in Java
Occorre utilizzare un oggetto di tipo Scanner...
solitamente quando si dichiarano le variabili
Scanner in = new Scanner(System.in);
...
cin >> scelta;
13. Input in Java
...indicare esplicitamente il tipo di dato...
(nextFloat, nextLine, ecc..)
Scanner in = new Scanner(System.in);
...
scelta=in.nextInt();
14. Input in Java
…e importare l'oggetto nel progetto (prima della classe).
import java.util.Scanner;
...
Scanner in = new Scanner(System.in);
...
scelta=in.nextInt();
16. Passo 3
...
scelta=in.nextInt();
if(scelta==1) {
cout << endl << " :: Num1 Operazione Num2"
<< endl; cout << " :: > "; cin >> numero1 >>
operazione >> numero2;
switch(operazione) { // Swicth Per Vedere Quale
Operazione Deve Svolgere
case '+':
risultato = numero1+numero2; break;
case '-':
risultato = numero1-numero2; break;
case '*':
risultato = numero1-numero2; break;
case '/':
risultato = numero1/numero2; break;
}
cout << "n" << " :: Risultato: " << risultato <<
"nn" << " :: Premi un tasto";
system("pause>nul");}
Scelta che effettua le quattro operazioni (modificato).
17. Passo 3
...
scelta=in.nextInt();
if(scelta==1) {
System.out.println(" :: Num1
Operazione Num2"); System.out.print(" :: > ");
cin >> numero1 >> operazione >> numero2;
switch(operazione) { // Swicth Per Vedere Quale
Operazione Deve Svolgere
case '+':
risultato = numero1+numero2; break;
case '-':
risultato = numero1-numero2; break;
case '*':
risultato = numero1-numero2; break;
case '/':
risultato = numero1/numero2; break;
}
System.out.println("n :: Risultato: "+ risultato +
"nn" + " :: Premi un tasto");
in.nextLine();}
Scelta che effettua le quattro operazioni (modificato).
if e switch uguali al C
Lettura di una stringa
Attenzione qui
Il “+” concatena le stringhe
18. Passo 3
...
scelta=in.nextInt();
if(scelta==1) {
System.out.println(" :: Num1
Operazione Num2"); System.out.print(" :: > ");
numero1 = in.nextInt();in.nextLine();
operazione = in.nextLine().charAt(0);
numero2 = in.nextInt();in.nextLine();
switch(operazione) { // Swicth Per Vedere Quale
Operazione Deve Svolgere
case '+':
risultato = numero1+numero2; break;
case '-':
risultato = numero1-numero2; break;
case '*':
risultato = numero1-numero2; break;
case '/':
risultato = numero1/numero2; break;
}
Scelta che effettua le quattro operazioni (modificato).
Ci sono altre soluzioni.
Più complesse ancora.
21. Passo 4
...
if(scelta==2) { // Blocco Esponente
System.out.println(" :: Numero: ");
numero_pot=in.nextInt();
System.out.println(" :: Potenza: ");
esponente=in.nextInt();
for(for_potenza=0;for_potenza<esponente;for_potenza++
) potenza*=pot;
System.out.println(" :: Risultato: "+potenza);
System.out.println(" :: Premi un
tasto");in.nextLine(); }
if(scelta==3) { // Blocco Radice
System.out.println(" :: Numero: ");
radice=in.nextInt();
risultato_radice=sqrt(radice);
System.out.println(" :: Risultato: "+
risultato_radice);
System.out.println(" :: Premi un
tasto");in.nextLine(); }
} while(scelta!=4);
Funzioni matematiche: come inserirle
for uguale al C
(vedrete qualche opzione
in più in futuro)
Le funzioni matematiche
sono metodi statici dell'
oggetto Math
Per le quattro operazioni
potete usare
la notazione veloce
+=, *=, ++ ecc.
22. Passo 4
...
if(scelta==2) { // Blocco Esponente
System.out.println(" :: Numero: ");
numero_pot=in.nextInt();
System.out.println(" :: Potenza: ");
esponente=in.nextInt();
for(for_potenza=0;for_potenza<esponente;for_potenza++
) potenza*=pot;
System.out.println(" :: Risultato: "+potenza);
System.out.println(" :: Premi un
tasto");in.nextLine(); }
if(scelta==3) { // Blocco Radice
System.out.println(" :: Numero: ");
radice=in.nextInt();
risultato_radice=(float) Math.sqrt(radice);
System.out.println(" :: Risultato: "+
risultato_radice);
System.out.println(" :: Premi un
tasto");in.nextLine(); }
} while(scelta!=4);
Funzioni matematiche: come inserirle
Restituisce un double, per cui è necessario
utilizzare il cast analogamente al C
23. Agenda Style
Riassunto
lLe istruzioni di calcolo incluso
quelle logiche
lVale la notazione veloce
lLe strutture di controllo if,
while, case, switch, for sono
pressoché identiche
lIl cast (anche se meno
automatico)
Similitudini
lIl “+” concatena le stringhe
lL'input utilizza metodi diversi a
seconda del tipo di dato da
leggere; meno flessibile.
Richiede inoltre di importare
un oggetto esterno (Scanner)
lLe funzioni matematiche sono
in un oggetto esterno (Math)
già importato.
Differenze
26. Agenda Style
Compito
CONVERTITE O SCRIVETE UN
PROGRAMMA CHE RISOLVE LE
EQUAZIONI DI SECONDO GRADO,
INDICANDO ANCHE I CASI
INSOLITI (senza soluzione,
coincidenti)
SE SIETE PIGRI, POTETE
PARTIRE DA QUESTO SORGENTE
http://www.pierotofy.it/page
s/extras/forum/2/25428-
programma_che_risolve_le_equ
azioni_di_secondo_grad/
C++
?
Java