Classe 3R
Il cellulare potrebbe fare male quindi... (il principio di precauzione)
Entro sabato 24 ottobre fare gli esercizi a casa su google drive.
Argomenti per verifica scritta di recupero primo periodo:
Usare i layer e un font "contour" per inserire i nomi sulla foto di classe
(manca la voce layer nella wikipedia italiana)
punti e c.


Ecco quella di Sara





19-09

Introduzione a google drive: condivisione, accesso ovunque, modifica simultanea da parte di più utenti...
Domini e URL.
Ergonomia, posture sbagliate e problemi.
Testo e ipertesto, il Browser, Internet prima dell'ipertesto.
Linkedin è un servizio di social networking come facebook, solo che è relativo alla vita professionale, vi potete iscrivere anche ora.
La memoria di internet
Programmi scritti male, esempio delle ricariche telefoniche.
Flow chart con (molti) connettori, Notare l'esecuzione dell'algoritmo a destra




21-09
Laboratorio, introduzione a google drive, prime prove di condivisione.
Per i flow chart si può utilizzare anche DIA (open source)


Mascherina per flow chart. (standard ISO 5807)

Faremo il primo documento di prova con google docs/drive.



Infor-matica (Informazione Automatica)
Automatismi
come fare snapshot dello schermo, modificarli e spedirli.
materiale: simboli  e alfabeti


Tutto digitale: breve storia dell'evoluzione del digitale.


Unità di misura anglosassoni
unità di misura informatiche



Monitor 21:9 (quelli vecchi erano 4:3, quelli nuovi 16:9 o simile)
Misure dei monitor: da VGA a SVGA a XGA ecc ecc


Breve storia della comunicazione mobile, da Etacs a 4G
ecco "Hello world!" scritto in oltre 400 linguaggi di programmazione diversi.


Schede perforate e tabulati poi anche il "paper tape"
 

Blocchi di I/O (Input/Output)
wikipedia   e   wikizionario     etimo.it    Merriam Webster (Dizionario parlante inglese)
     

il sistema binario e le potenze di due dalla wikipedia
 
utilizzo dell'editor esadecimale/binario HXD per modificare files qualsiasi
hex editor
tipi di dati e dichiarazioni in C++ con "range"

Here is the complete list of fundamental types in C++:

Group Type names* Notes on size / precision
Character types char Exactly one byte in size. At least 8 bits.
char16_t Not smaller than char. At least 16 bits.
char32_t Not smaller than char16_t. At least 32 bits.
wchar_t Can represent the largest supported character set.
Integer types (signed) signed char Same size as char. At least 8 bits.
signed short int Not smaller than char. At least 16 bits.
signed int Not smaller than short. At least 16 bits.
signed long int Not smaller than int. At least 32 bits.
signed long long int Not smaller than long. At least 64 bits.
Integer types (unsigned) unsigned char (same size as their signed counterparts)
unsigned short int
unsigned int
unsigned long int
unsigned long long int
Floating-point types float
double Precision not less than float
long double Precision not less than double
Boolean type bool
Void type void no storage
Null pointer decltype(nullptr)


* The values of the columns Size and Range depend on the system the program is compiled for. The values shown above are those found on most 32-bit systems. But for other systems, the general specification is that int has the natural size suggested by the system architecture (one "word") and the four integer types char, short, int and long must each one be at least as large as the one preceding it, with char being always one byte in size. The same applies to the floating point types float, double and long double, where each one must provide at least as much precision as the preceding one.

Doppio monitor con un 1600*900 da 17" e un 40" 4K

4K: grande spazio di lavoro

proiezione DLP


Algoritmo troubleshooting motocicletta

troubleshooting PC (PDF)
Wikileaks: il file lo ha anche il prof.


Svantaggi del digitale.


OBD!!

3-10

Arriva Netflix!
Prime differenze fra una "lingua naturale" (e.g. Italiano, Inglese) e un linguaggio di programmazione (e.g. Pascal C++ ecc)
"scalabilità" delle applicazioni.
Immagini in formato JPG e GIF perdita di informazione. A cosa serve  una foto da 20-40 megapixel.
Cosa fare con un "PC" col DOS (e CP/M) da 64KB e 8.77 Mhz (Intel 8088)
Potenze di due 4 8 10 16 20 24 30 32
Intel 8088 (primo PC) e MS/DOS  Federico Faggin.
Alcune certificazioni.
ECDL (European Computer Driving Licence) MSCE (Microsoft Certified Solutions Expert)  CCDA (Cisco-Certified Design Associate) CCIE (Cisco Certified Internetwork Expert)  ecc.


05-10
Fare overflow underflow e "out of range"
Utilizzo di google drive per i sorgenti.
Compilatori ed interpreti.
Alberi sintattici.
Errori e livello di severità  (compilazione, link e esecuzione)
Windows e Linux sono BIODIVERSI.


06-10






Interprete e compilatore
Tipizzazione (typing)
Dichiarazioni c++
esempio di "Hello world!"

10-10
fare define: stands4 e ricerca avanzata.
Come siamo arrivati al C++?
Primo esercizio di google drive
Caricare su Gdrive dal tuo PC e convertire tre files di MS office o Libreoffice
esercizio sul tuo smartphone
Scadenza sabato 24 ottobre
Mi è arrivato questo...

albero genealogico dei primi microprocessori fino al 386 (primo uP a 32 bit)


Perchè si deve fare attenzione all'occupazione di memoria delle variabili.
Un microcontroller arduino ha solo alcuni KB di memoria "preziosa"

Curiosità: il DVD-D

Una batteria di smartphone, notare il wattaggio e i mAh  (W=V*A)

Un listino prezzi di un espositore di una fiera dell'elettronica.



12-10
Laboratorio




17-10

concetti di overflow e underflow,  dichiarazioni, shift logico ed aritmetico

la calcolatrice di windows modalità programmatore: basi 2 8 10 e 16.

potenze di due (ancora!)


programma voti/media in quitebasic

differenze quitebasic e c++

istruzioni

commenti

dichiarazioni

nomi variabili

ciclo FOR/NEXT

19-10





Costrutti dei linguaggi di programmazione
IF-THEN-ELSE vari

Do-while  in c++

e DO-until

costrutto case/switch

Notale che il ciclo do-until viene eseguito almeno una volta
La funzione sizeof() dichiarazioni di interi corti, "normali" e lunghi.
Specifiche dell'ambiente di sviluppo (IDE) DEV c++

Features

  • TDM-GCC 4.9.2 32/64bit
  • Syntax highlighting
  • Code completion
  • Code insight
  • Editable shortcuts
  • GPROF profiling
  • GDB debugging
  • AStyle code formatting
  • Devpak IDE extensions
  • External tools
Il blog di dev c++
documentazione
Singola e doppia precisione dei numeri float

nesting dei cicli, con indentazione.

long long int

esercizio a casa.


genealogia c++



20-10

Radioamatori

come scoprire quanto valgono ora cinque milioni del 1982 (da ISTAT, fonte istituzionale quindi affidabile)
potenze di due a memoria fino almeno a 8192
210 circa uguale a 10
3
significato informatico del termine "default"
Da sapere a memoria!!
CPU, ALU, RAM, registri, parole di memoria, calcolatrice di windows, binaria, ottale, decimale, esadecimale. Rappresenta come byte, word, doubleword, quadword (64 bit) La legge di Moore
La potenza delle CPU è grossolanamente  funzione di "cilindrata" (numero di bytes di ampiezza dei registri.... 2 ..4  ... 8) e della velocità di clock.
Overclocking, raffreddamento ad azoto liquido!
calcolatrice di windows e mappa caratteri 
caratteri con codifica su di un byte e su più bytes (Ascii e Unicode) Unicode può servire per software internazionalizzati, e.g. sistema operativo.
diversa rappresentazione del numero 3  "0000000000000011" su di una word di 16 bits (ecco -3 rappresentato in modulo e segno 
"1000000000000011") e del carattere 3 "00110011" 3316 in alfabeto ascii e 003316 in alfabeto UNICODE
asus Eee Note EA800 ottimo tablet special-purpose, (fa poche cose, ma molto bene) anomalo che non ha avuto fortuna.

esempi di attrezzi general purpose e special purpose



Il peso degli oggetti informatici (click per il PDF)


Bit, nibble, Byte, Word, numeri negativi, operazioni in base 2

nell'immagine preedente manca il "nibble"
Attenti ai Pixels!!!

24-10

Comandi IPconfig, ping e tracert su prompt di comandi



Nel browser del PC in classe è installato ABP (Ad Block Pro) plugin... black list e white list
Alcune ricerche avanzate su internet, ricerca per frase "bruno cipolla", attenzione che anche "cipolla bruno" va fatta
maiuscole e minuscole vengono ignorate
gli spazi anche: "bruno cipolla" e "bruno    cipolla   "
parole chiave per ricerca es: ironman usb poi abbiamo aggiunto hand e lot
dall'url si può riconoscere la lingua usata es: https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_(DTP)
Nell'url precedente vene usato il sottodominio jp.wikipedia.org e i caratteri speciali sono rappresentati in esadecimale (es: %E3%83) in unicode
Potete iscrivervi su wikipedia e, dopo esservi addestrati nella "sandbox" iniziare a tradurre voci informatiche presenti nella wikipedia inglese e NON in quella Italiana. esempio di voci:

Alcune specializzazioni informatiche:
Ecco un  esempio di "procedura di comandi" che utilizza i comandi dello shell windows
echo off
rem questo è un commento
:: questo è un altro commento
rem procedura di comandi che pinga tutti gli IP di una sottorete
echo procedura di comandi che pinga tutti gli IP di una sottorete
echo la tua versione di windows:
ver
rem cambiamo il prompt
prompt  cip$G
rem inviamo il risultato del comando ipconfig ">" nel file ip.txt
ipconfig > ip.txt
rem cerchiamo all'interno del file ip.txt la parola "Indirizzo" è i record che la contengono vengono messi in ind.txt
find "Indirizzo" ip.txt > ind.txt
echo il tuo indirizzo IP:
type ind.txt
findstr /O /A:AA ". :" ind.txt
echo.Date   : %date%
echo.ip : %date:~6,4%
color 0a
echo -------------------------------------------
echo introdurre indirizzo di rete escluso ultimo byte es: 192.168.1
set /p rete=Indirizzo IP rete?
echo %rete%
for /L %%X in (8,1,24) do (
echo %rete%.%%X
ping -n 2 %rete%.%%X
ECHO. errorlevel ping %ERRORLEVEL%)
rem find "Persi = 2" pin.txt
rem ECHO. errorlevel find %ERRORLEVEL%)
rem
tree
rem echo il primo parametro IP (ultimo byte)
rem for %%X in (100 101 102 103) do ping -n 1 %rete%.%%X

L'Olivetti P101, nonno del PC

26-10
Laboratorio
Un paio di vecchie piastre madre...

27-10
Lab e classe

Il peso degli oggetti informatici (click per il video)


31-10
Un po' di vecchio hardware, comunicazioni radio a corto raggio (CB, PMR, LPD)
procedure di comandi (files di tipo .bat)
Alcuni comandi: dir, rem, edit, type, cd, md, tree ecc ecc.

Piccolo esempio di pagina HTML.
<HTML>
<HEAD>
<TITLE>Inserisci il titolo qui</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<CENTER><IMG SRC="nuvole.jpg" ALIGN="BOTTOM"> </CENTER>
<HR>
<a href="http://www.brunocipolla.net">Clicca qui</a>
Ecco un collegamento ad un altro sito (ipertesto)
<H1>Header (H1) </H1>
<H2>Header medio (H2) </H2>
.
<P> Questo è un paragrafo!
<P> <B>Caratteri in grassetto (bold) </B>
<BR> <B><I>Corsivo Bold</I></B>
<HR>
</BODY>
</HTML>

Programma Basic che calcola la media dei voti. (da migliorare)

100 rem programma che calcola la media voti

200 rem V è il voto

300 rem M è la media

400 rem M1 è il minimo

500 rem M2 è il massimo

510 rem A2 conta i voti

520 REM S è la somma dei voti

550 let M=0

560 let a2=0

570 print " ****ATTENZIONE!!!**** se voto negativo allora fine programma"

600 input "dammi il voto";V

640 if V < 0 then gosub 3000

650 let A2=A2+1

700 print " il voto è: ";V

720 rem print "minimo: ";M1

730 rem print "Massimo: ";M2

750 let S=S+V

760 print "La somma è: ";S

780 GOTO 600

800 print "fine"

2000 end


3000 REM subroutine

3100 let M=S/A2

3200 print "la media è ";M

3250 end

3300 return

Vecchia versione:


Di nuovo esecuzione passo passo e debug.


03-11
ADSL: Asynchronous Digital Subscriber Line
A-sin-crono come a-fono a-polide a-fasico a-sim-metrico

07-11
Esempi C++
Esempi di procedure di comandi Windows
geolocalizzazione
Overflow, underflow ecc.

Sapresti scrivere un programma che pilota i LED della ventolina.......?


09-11
Lab.
Ecco un paio di usi del prompt di comandi (di windows)
1) rinominare 600 files in un colpo solo.
2) cercare in un "filone" e sortare i risultati
(comandi find e sort)

Esempio di accesso FTP su Internet.
clicca qui per un esempio "live" di accesso FTP (è il servizio del GARR, contiene una caterva (erano 10552.34 GByte) di software free da scaricare)
riutilizzo del codice: utili librerie c c++
una battaglia navale scritta in javascript (non è un granchè!)
i caratteri in esadecimale ascii: spazio = %20
es: file:///C:/Users/bruno/Downloads/Cipolla%20Bruno%20(1).pdf
Se ci sono problemi con un browser usane un'altro!
ho registrato il domino gratuito 3r2015.tk e l'ho mappato su questa pagina

11-11


14-11
 I domini .tk e il "furto di domini"



le mitiche istruzioni NOP di X86 e ARM
X86 (CISC, istruzioni a lunghezza variabile)
ARM (RISC, istruzioni a lunghezza fissa di 32 bit.)
NOP , No OPeration, 0x90 equivalente a XCHG EAX, EAX è lunga 1 byte.
NOP, No OPeration 0x00000000 sta per andeq r0,r0,r0 che significa se EQ vero allora R0=R0 AND R0


Files di testo (.txt) creati con il blocco note.
salvati in formato ANSI (codifica ASCII) e in codifica UNICODE
visualizzazione esadecimale con hexed o servizi web, i caratteri <Cr> e <LF> modifica in esadecimale dei files.



Qualificatori del comando di compilazione gcc
C++ Language Options
See Options Controlling C++ Dialect.
          -fabi-version=n  -fno-access-control  -fcheck-new 
-fconstexpr-depth=n -ffriend-injection
-fno-elide-constructors
-fno-enforce-eh-specs
-ffor-scope -fno-for-scope -fno-gnu-keywords
-fno-implicit-templates
-fno-implicit-inline-templates
-fno-implement-inlines -fms-extensions
-fno-nonansi-builtins -fnothrow-opt -fno-operator-names
-fno-optional-diags -fpermissive
-fno-pretty-templates
-frepo -fno-rtti -fsized-deallocation
-fstats -ftemplate-backtrace-limit=n
-ftemplate-depth=n
-fno-threadsafe-statics -fuse-cxa-atexit
-fno-weak -nostdinc++
-fvisibility-inlines-hidden
-fvtable-verify=[std|preinit|none]
-fvtv-counts -fvtv-debug
-fvisibility-ms-compat
-fext-numeric-literals
-Wabi=n -Wabi-tag -Wconversion-null -Wctor-dtor-privacy
-Wdelete-non-virtual-dtor -Wliteral-suffix -Wmultiple-inheritance
-Wnamespaces -Wnarrowing
-Wnoexcept -Wnon-virtual-dtor -Wreorder
-Weffc++ -Wstrict-null-sentinel -Wtemplates
-Wno-non-template-friend -Wold-style-cast
-Woverloaded-virtual -Wno-pmf-conversions
-Wsign-promo -Wvirtual-inheritance


16-11
Arduino, i sensori, raspberry PI

21-11
Laboratorio, Cartella condivisa per essercizi Basic. Cartella condivisa dai prof. I numeri pseudocasuali, generazione in QB, programma che simula il lancio di un dado.
Dadi e Roulette, Probabilità di un evento, evento composto e sua probabilità.
Prossime verifiche e interrogazioni.
Utilizzo di browser diversi, es: l'interprete javascript di IE funziona in maniera diversa da quello di chrome e può creare problemi a google drive e a quitebasic.com
Con il mitico <ctrl/Z> ripetuto quanto basta, puoi spesso ovviare alla perdita del sorgente.

23-11
Lab.
La cronologia delle modifiche in Drive, cartella condivisa dai prof

24-11
Verifica scritta su digitale.
Attenzione, la combinazione di tasti <ctrl/C> ha significati diversi a seconda del contesto, normalmente significa "copia" a volte significa "interrompi"

28-11
Laboratorio:
La calcolatrice di Google
Numeri pseudocasuali, lancio dado, array, verifica attendibilità risultati, Roulette...
Riguardo l'efficienza in esecuzione, l'utilizzo del quitebasic è particolarmente significativo (lentissimo rispetto al C++ compilato) poichè quitebasic è  interpretato da un programma scritto in Javascript che a sua volta viene interpretato dal browser, quindi c'è una doppia perdita di efficienza e questo giustifica il fattore 400.
Versione Basic 42,7 secondi di esecuzione per 30K lanci. (senza print dei singoli risultati)
versione c++ 7 secondi di compilazione e 12 CENTESIMI di secondo in esecuzione. (c'è un bug, premio speciale a chi scopre qual'è).
Sempre Basic però con le istruzioni commentate tolte dal loop: 26 secondi.
300 array D
320 for i=1 to 6
330    let D[i]=0
340 next i
400 for i=1 to 30000
420    LET K=int(rand(6))+1
450 rem print "K= ";K
500    LET D[K]=D[K]+1
550 rem print "D[K]= ";D[K]
600 next i
700 for i=1 to 6
800    print "Dado "; I; " "; D[I]
900 next i

2000 end
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
#include<iostream>
using namespace std;
int main ()
{
  int dado, i=1;
  int cont [6]; //l'array i contiene sei elementi
  srand (time(NULL));  //questo in basic non serve. Puoi provare ad inizializzare il seme
  //anzichè con l'orologia della macchina con un numero fisso e verificare perchè la sequenza si chiama PSEUDOcasuale
  /* genera lancio dado fra 1 e 6 compresi */
  i=1;
do {
      cont[i]=0;
    i++;
      }
      while (i<7);
      i=1;
  do {
      dado = rand() % 6 + 1;
   // cout<<"Dado: "<<dado<<endl;
    cont[dado]++;
    i++;
  } while (i<30000);
  /* stampo il numero di occorrenze di ogni evento*/
i=1;
  do {
      cout<<"Cont["<<i<<"]="<<cont[i]<<endl;
    i++;
      }
      while (i<7);
      cout<<"Ho finito"<<endl;
  return 0;
  system("pause");
}
300 array D
320 for i=1 to 6
330    let D[i]=0
340 next i
400 for i=1 to 30000
420    LET K=int(rand(6))+1

500    LET D[K]=D[K]+1

600 next i
700 for i=1 to 6
800    print "Dado "; I; " "; D[I]
900 next i

2000 end

450 rem print "K= ";K
550 rem print "D[K]= ";D[K]


30-11
esempio di procedura di comandi
echo off
rem questo è un commento
:: questo è un altro commento
rem procedura di comandi che pinga tutti gli IP di una sottorete
echo procedura di comandi che pinga tutti gli IP di una sottorete
echo la tua versione di windows:
ver
rem cambiamo il prompt
prompt  cip$G
rem inviamo il risultato del comando ipconfig ">" nel file ip.txt
ipconfig > ip.txt
rem cerchiamo all'interno del file ip.txt la parola "Indirizzo" è i record che la contengono vengono messi in ind.txt
find "Indirizzo" ip.txt > ind.txt
echo il tuo indirizzo IP:
type ind.txt
findstr /O /A:AA ". :" ind.txt
echo.Date   : %date%
echo.ip : %date:~6,4%
color 0a
echo -------------------------------------------
echo introdurre indirizzo di rete escluso ultimo byte es: 192.168.1
set /p rete=Indirizzo IP rete?
echo %rete%
for /L %%X in (8,1,24) do (
echo %rete%.%%X
ping -n 2 %rete%.%%X
ECHO. errorlevel ping %ERRORLEVEL%)
rem find "Persi = 2" pin.txt
rem ECHO. errorlevel find %ERRORLEVEL%)
rem
tree
rem echo il primo parametro IP (ultimo byte)
rem for %%X in (100 101 102 103) do ping -n 1 %rete%.%%X
I miei due siti preferiti per info su tecnologia informatica:
Punto Informatico e Theregister
Sono stato alla fiera dell'elettronica di Parma, c'erano varie cose interessanti.
La regola aurea delle 12 P
"Prima Pensa Poi Programma Perchè Programmi Poco Pensati Possono Produrre Puttanate Pazzesche"
La calcolatrice di google.
Geolocalizzazione


Numeri casuali, RAND(om)  dado, roulette, tombola-lotto probabilità, eventi equiprobabili
probabilità nel caso del lancio di DUE dadi (gaussiana)

parole chiave del c++  (è un'immagine in formato PNG)

operatori del c++




12-12

interrolezione
Combinazioni e probabilità nel lancio di TRE dadi
esaedro e tetraedro
Number plates, simboli scartati per possibile ambiguità, vanity plate e possibili combinazioni di targhe
Variabili "sporche" per vari motivi (esempi)
indirizzi IP (V4) su 4 byte, comando ping con parametri vari.

14-12
Laboratorio e interrogazione
Variabili di tipo char. indici.
Libreria string.h e suoi contenuti
Ad esempio, una libreria di cazzuole ne contiene di molte forme diverse.

la mappa dei caratteri  di windows



correzione digitale
stringhe & c. in basic:
19-12
laboratorio
programmazione: modifica del generatore di targhe per targhe tedesche od altro, uso dei caratteri della mappa windows per altre lingue e di caratteri grafici per disegno di cornicette.
programma "neve" che disegna pixel usando l'istruzione plot, i numeri casuali e sottoprogrammi.

10-01
Modifica del programma tredadi in duedadi e quattrodadi, valutazione del numero di iterazioni necessario per una significatività dei risultati e delle prestazioni in esecuzione.
Debug con esecuzione passo passo a partire da una data istruzione.
La sporta di cimeli informatici, vecchio disco ottico (pre-CD) memorie sequenziali su bobina (nastro) o cartuccia, lo Iomega ZIP ecc
un Disco "WORM" viene scritto ua volta e letto molte volte "Write Once Read Many" es: il CD vergine/masterizzabile


11-01
Le matrici (arrays)

L'idle loop.
Https e il "keylogger"
L'importanza della VALIDAZIONE dei dati
Ultra rudimenti di HTML


Ciclo del software


sorting  in quitebasic (esercizi con e senza arrays)
come scrivere "diverso da" in vari linguaggi di programmazione
fortran
basic
c++
apl
COBOL
pascal
Python
.ne.
<>
!=
A≠B is not =
<>
!= oppure <>


25-01
Oggi è mancata la "luce"
Ecco due gruppi di continuità, il secondo eroga 2200 KW
  

30-01
fine cifratura ed esercizi

Anche la compressione si presta a facili esercizi di programmazione

Compressione di elementi multimediali
Compressione senza perdita
Probabilità e numeri (pseudo) casuali in C++

Il librone della RAND corporation (1955) numeri casuali con distribuzione uniforme.


questo fa veramente sorridere

programma c++ che fa beep. (platform specific )
Windows
Windows
Linux
Linux
#include <iostream> 
#include <windows.h> // WinApi header

using namespace std;

int main()
{
Beep(523,500); // 523 hertz (C5) for 500 milliseconds
cin
.get(); // wait
return 0;
}
cout << '\a';
int ms = 5000;
int freq = 440;
ioctl
(fd, KDMKTONE, (ms<<16 | 1193180/freq));
#include <ncurses.h>

beep
();

Un altro motivo per stare composti in classe

Il sosia di Elvis a Honolulu nel 1988

Trovate!!
Sono istruzioni COBOL

Ecco "Hello world!" in COBOL
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500 DISPLAY "Hello world!" LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.

Antiquariato (come il prof.)
Il computer C.A.N.E. su cui scrissi i primi programmi in binario perforando zeri ed uni sulle schede.

16-02
Il programmatore (centralina) della lavatrice vecchia ora si fa con mezzo arduino.

Ricerca google PER immagini simili
Questi filmati sono eccezionali (waterProduzione robotizzata di auto  (è un esempio di CAM) 
Produzione robotizzata di auto  (è un esempio di CAM) 
 



Produzione robotizzata di auto  (è un esempio di CAM) markati) Che nostalgia!
Alberi in informatica e non. Alberi binari, bilanciati ecc. radice, foglie, padre, figlio, arco cammino, profondità
Alberi sintattici alberi di un file system





vecchi filmati di Centri Elaborazione Dati (CED)

funzioni disponibili per le stringhe in Basic e in C++
Tag <bgimage> e <bgcolor> di html
Prima animazioncina javascript su pagina html, libreria di favicons
Google news e gli "alert" giornalieri settimanali ecc.


20-02
RAID
Il "floating floor di un datacenter/server farm
immagini
tastiera
scorciatoie di tastiera
shortcuts per dev c++?
Debug ed esecuzione passo passo (ancora)
dichiarazioni  e funzioni per manipolazione di stringhe in quitebasic e C++
Quitebasic
C++
dichiarazioni: nulla
dichiarazioni

LEFT(string, n) -- return

s the 'n' first characters for 'string'. For example, try this program:
100 LET A = "ABC123"
200 PRINT LEFT(A, 3)

RIGHT(string, n) -- returns the 'n' last characters for 'string'. For example:
100 LET A = "ABC123"
200 PRINT RIGHT(A, 3)

MID(string, start, n) -- returns 'n' characters starting at character 'start' (the first character is index zero). For example, try this program:
100 LET A = "ABC123"
200 PRINT MID(A, 2, 3)

LEN(string) -- Returns the length of a string.

UPPERCASE(string) -- returns 'string' converted uppercase.

LOWERCASE(string) -- returns 'string' converted lowercase.


per concatenare stringhe si usa l'operatore "+" es: 

100 LET A = "ABC"
110 LET B = "123"
120 LET c=A+B

130 print C

200 end

stampa: ABC123


documento creato con drive per aggiornamenti
27-02

fsm_vend.png



Ancora sulla VALIDAZIONE dei dati, regola MIMO. Attenzione, anche i RISULTATI devono essere validati!
Game of life, programmazione in Basic, cicli nidificati (nested Loops) coordinate caselle confinanti.
Beginner's All-purpose Symbolic Instruction Code
Alcuni numeri:
Software, shareware, freeware ecc.

Barzellette informatiche


Software su windows

streaming, buffering, netflix, qualità immagini e video non necessariamente legata alla risoluzione
errori di compilazione, peso dei commenti in linguaggi interpretati.
Efficienza di un algoritmo, programma, creatività
L'app "Kodi"
backslash e sequenze di escape in  c++
programma "game of life" siamo arrivati a tre livelli di sottoprogrammi, ovvero sotto-sotto-sottoprogrammi.
La voce originale sulla wikipedia inglese è MOLTO più ricca della voce italiana.

verifica 1 su compressione e cifratura
verifica 2 su matrici e probabilità

There are 10 types of people in this world: 
those who understand binary and those who don't.

kodibuntu è basato su lubuntu. Chiaro, no?


08-03
verifica su cifratura
Fabbricazione automatizzata di semiconduttori.
Prodotti giapponesi taiwanesi e cinesi (anche coreani) e loro qualità nel tempo
Utilizzo delle wildcards nei comandi windows.
La wildcard (matta, prende il posto di qualunque carta) in informatica:
es Batt* comprende Battaglini e Battezzati
Batt*i  idem
Batt*ti solo Battezzati.
???
Le API di un S.O.

12-03
verifica su matrici.
Game of life: debug, riutilizzo variabili, sottoprogrammi passi eseguiti ecc.
Configurazioni mobili (alianti) stabili e bistabili.

14-03 visita ARI

15-03
verifica di recupero.
sistemi di numerazione antichi......


Virus di Albania. (era  il 2002)
In questo momento voi ha ricevuto "virus albanese"

Siccome noi di Albania non ha esperienza di software e programazione, questa virus di Albania funziona su princippio di fiducia e coperazione.

Allora noi prega voi adesso cancella tutti file di vostro ard disc e spedisce questo virus a tutti amici di vostra rubrica.

Grazie per fiducia e coperazione.
La pellicola (film)

Per Martina e Sara

Il quitebasic è diverso dal Qbasic (Quickbasic) alcune differenze molto importanti si vedono subito
Ecco il Qbasic.


Vari esempi di programmazione Quickbasic

Nel quickbasic dichiarazione implicita delle variabili secondo l’ultimo carattere del nome oppure esplicita


Ancora i costrutti.

02-04
Brainstorming e il "card method"
vecchia lezione su brainstorming

brainstorming
sostantivo
  1. Metodo decisionale, usato spec. in pubblicità, in cui la ricerca della soluzione di un dato problema è effettuata mediante sedute intensive di dibattito e confronto delle idee e delle proposte espresse liberamente dai partecipanti.
Sinteticamente consiste, dato un problema, organizzare una riunione in cui ogni partecipante propone liberamente soluzioni di ogni tipo (anche strampalate, paradossali o con poco senso apparente) al problema, senza che nessuna di esse venga minimamente censurata. La critica ed eventuale selezione interverrà solo in un secondo tempo, terminata la seduta di brainstorming.


04-04
Programmazione, le funzioni e i parametri.

passaggio parametri/argomenti

parametri: esempio macchina caffè automatica.

Variabili globali e locali

Codice rientrante

Passaggio parametri:

Passaggio per

Uso dello stack per passaggio argomenti



Google sketchup casa


05-04
Lab poi brainstorming su "aula intelligente"





12-04
Esercizi di laboratorio
Uso wildcards  "*" nelle stringhe del linguaggio di comandi e in google
del a*.jp*

parametri della macchina del caffè automatica (usa caffè in grani)
esempio di pseudocodice per fare il caffè
quantocaffè=5
quantacqua=3
comemacinato=6
call faicaffè(quantocaffè,quantacqua,comemacinato) //sono i parametri

function faicaffè (p1,p2,p3)


gaggia-syncrony-logic-espresso.jpg


Passaggio parametri per valore, per indirizzo, usando i registri (salvataggio da parte del chiamante/chiamato) lo stack

Albero dei sottoprogrammi di "game of life"

Esempio di Alfa test di un'aggiunta a windows che lo fa diventare un po' Linux

Windows 10, (insider Preview Build 14316) Bash per Insider


  1. #!/bin/bash
  2. # A sample Bash script, by Ryan

  3. echo Hello World!
  1. #!/bin/bash
  2. # A simple copy script

  3. cp $1 $2

  4. # Let's verify the copy worked

  5. echo Details for $2
  6. ls -lh $2
  1. #!/bin/bash
  2. # A simple variable example

  3. myvariable=Hello

  4. anothervar=Fred

  5. echo $myvariable $anothervar
  6. echo

  7. sampledir=/etc

  8. ls $sampledir


Ciò che funziona bene non si tocca!
Un buon programma (scritto e pensato bene)
Problemi, sottoproblemi e eventuale parallelismo in esecuzione
Se suddivido un problema (programma) che richiede 10 giorni di lavoro per essere scritto, in 10 sottoproblemi (sottoprogrammi) posso fare lavorare in parallelo 10 programmatori e completare il lavoro in un solo giorno. (Più il tempo per l'integrazione e collaudo)

Game of life: come rilevare la fine del programma. Come renderlo più efficiente.

L’aliante…….

glider_animato.gif




Efficienza dei programmi, numero di passi, (complessità/peso dei vari passi)
Utilizzo di risorse del computer da parte dei programmi (Memoria RAm, Spazio disco, operazioni di I/O, uso CPU...)

bounds checking

Pascal e Modula effettuano il  bounds checking ad ogni accesso

https://it.wikipedia.org/wiki/Controllo_dei_limiti

buffer overflow



Ancora uso di editing esadecimale (video)



Colli di bottiglia (Bottleneck)
Modifica in esadecimale di un programma.

30-04
I flag X86: il bit 11 è quello dell'overflow

gestione dello stack, push, pop, errori.
On stack overflow....
Ricorsione passaggio parametri e salvataggio del contesto (registri ecc) rientranza e stack
Convenzioni per le chiamate a subroutine.
Nell'architettura X86 le istruzioni PUSH, PUSHA (push All) POP e POPA gestiscono lo stack
Nell'architettura ARM ci sono le istruzioni PUSH e POP
Esempio del calcolo del fattoriale di un numero in maniera ricorsiva.
#include <iostream.h>

int factorial(int);

void main(void) {
int number;

cout << "Please enter a positive integer: ";
cin >> number;
if (number < 0)
cout << "That is not a positive integer.\n";
else
cout << number << " factorial is: " << factorial(number) << endl;
}

int factorial(int number) {
int temp;

if(number <= 1) return 1;

temp = number * factorial(number - 1);
return temp;
}
500 rem programma ricorsivo che calcola il fattoriale di un numero
600 cls
65 let F=1
700 input "dammi il numero ";N
800 print "il fattoriale di ";N;" è ";
900 gosub 2000
1000 end

2000 rem calcolo fattoriale F
2100 let f=F*N
2200 let n=n-1
2300 if n<>0 then gosub 2000
2400 print f
2500 return
Uso dello stack

Gli standard


Code pile, liste
Ancora uso di editing esadecimale (video)

Mi è arrivato il nuovo tablet Win10 e android
Aggiunte

10-05
E' arrivato anche lo smartphone ordinato a fine marzo.
il SOC è un MTK 6580, le caratteristiche tecniche sono molto buone relativamente al prezzo (50€)

12-05
efficienza di un programma
esercizio:


16-05
laboratorio e interrogazioni

linguaggi javascript e PHP
esempi javascript da w3schools

Uso funzione onmouseover di javascrript (esempio)
apparizione di infobox con javascript onmouseover
Esempio PHP (PHP, al contrario di Javascript che viene interpretato dal browser sul client, viene interpretato dal server)
essempi di files di log: log di Apache (vedi questi)  access log error log
Calcolatore valore lire del passato
Giusto per ricordarvi che internet ha memoria, eccome! ecco cosa si ricordano i newsgroups di me.
Ci sono post del 1992, quando molti di voi non erano ancora nati...
ecco un mio post del 1992, vent'anni fa...quando lavoravo nel mondo reale  ottenuto con google groups.
se avessi scritto boiate, ora cercando un po' emergerebbe il mio profilo di stupido.

Gli standard, parte I
 con audio 

poi compila il modulo di feedback please!
e parte II
 con audio 


Importanza della qualità dei dati (esempio dei voti ecc) controlli incrociati, riduzione dei passaggi (umani) 
il migliore algoritmo/programma/sistema informatico, "nutrito" con informazioni di bassa qualità produrrà solo pasticci. (ricorda MIMO!)

Programma svolto