venerdì 29 novembre 2013

Algo Build


AlgoBuild è un software didattico per progettare programmi.
 
Presenta un ambiente visuale in cui disegnare dei flow-chart rispettando le regole della programmazione strutturata. 
Il programma prodotto viene visualizzato anche in forma di pseudo-codice.

Se le istruzioni vengono inserite rispettando una opportuna sintassi è possibile eseguire il programma passo-passo.
 
Lo stadio di sviluppo del software è, per ora, solo a livello di prototipo ed ha quindi possibilità ancora piuttosto limitate. 

Il metodo di utilizzo è particolarmente semplice:

Tra le ellissi Start e End si trova una freccia verso il basso.
Spostandovi il mouse sopra la freccia viene sostituita da un quadrato rosso.



 

Premendo il pulsante sinistro del mouse compare un menu da cui è possibile scegliere l'istruzione da inserire.

 

Nota: ogni freccia verso il basso è un punto in cui è possibile inserire una istruzione.

Per modificare le istruzioni è necessario spostare il puntatore del mouse sopra l'istruzione da modificare, premere il pulsante sinistro del mouse e scegliere Modifica dal menu.

Per copiare o tagliare un'istruzione, invece, premere il pulsante sinistro del mouse e scegliere Copia o Taglia dal menu.

Effetti:

  • Copia invia negli appunti una copia in formato testuale dell'istruzione scelta (è possibile inserirla in qualsiasi editor di testo...).
  • Taglia invia negli appunti una copia in formato testuale dell'istruzione scelta ed elimina l'istruzione stessa dal punto in cui si trovava.
Per incollare un'istruzione dagli appunti, spostare il puntatore del mouse sopra a un punto di inserimento (freccia verso il basso) premere il pulsante sinistro del mouse e scegliere Incolla dal menu.

E' inoltre possibile decidere se eseguire un programma passo-passo oppure in modalità temporizzata.

Per eseguire un programma in modalità passo passo, cioè una istruzione alla volta, è necessario che la casella "Passo passo" sia selezionata.
Premere il pulsante con la freccia verde sulla barra degli strumenti.
Ad ogni pressione l'esecuzione del programma avanza di una istrusione.
Alcune istruzioni (test e cicli) necessitano anche di più pressioni in quanto deve essere anche valutata la condizione o incrementate le variabili (for).
La casella di spunta "Traccia" riporta in output ogni messaggio e lo stato delle variabili a ogni istruzione.
Togliendo la spunta vengono visualizzati solo input e output.
Per interrompere l'esecuzione del programma prima di arrivare a END premere il pulsante con il quadrato rosso.
Se non si interrompe l'esecuzione non è possibile modificare il programma.
 
Note: se durante l'esecuzione vengono trovati degli errori (es. espressioni errate) il programma termina riportando un messaggio di errore.

Per eseguire un programma in modalità temporizzata, cioè un'istruzione dietro l'altra a intervalli di tempo regolari, invece, è necessario che la casella "Passo passo" sia deselezionata.

Premere il pulsante con la freccia verde sulla barra degli strumenti.
Il programma si avvia e avanza di una istrusione alla volta a intervalli regolari.
Alcune istruzioni (test e cicli) necessitano anche di più tempo in quanto deve essere anche valutata la condizione o incrementate le variabili (for).
Se durante l'esecuzione si preme il pulsante "Pausa Esecuzione" il programma viene fermato momentaneamente. Premendo "Esegui Istruzioni" riprende da dove era stato interrotto.
La modifica del tempo è recepita solo se il programma è in pausa o interrotto.
La casella di spunta "Traccia" riporta in output ogni messaggio e lo stato delle variabili a ogni istruzione.
Togliendo la spunta vengono visualizzati solo input e output.
Per interrompere l'esecuzione del programma prima di arrivare a END premere il pulsante con il quadrato rosso.
Se non si interrompe l'esecuzione non è possibile modificare il programma.

Note: se durante l'esecuzione vengono trovati degli errori (es. espressioni errate) il programma termina riportando un messaggio di errore.
Esempio di diagramma di flusso:




PROG pari o dispari
     OUT "Digitare un numero naturale:"
     IN numero
     ASSIGN resto = numero % 2
     IF resto == 0
          OUT "Il numero è pari!"
     ELSE //if resto == 0
          OUT "Il numero è dispari"
     END IF //resto == 0
END PROG //pari o dispari

 

venerdì 8 novembre 2013

Codice ASCII

Il codice ASCII (American Standard Code for Information Interchange) utilizza gruppi di 7 bit per codificare un gruppo di 128 tra caratteri numerici, alfanumerici, punteggiatura, simboli grafici e 32 codici per controllo periferiche e apparecchi di comunicazione.

A Maiuscola: 65

A Minuscola: 97

Numero 0: NUL

Caratteri non stampabili: 32

Numeri binari e trasformazioni

Il sistema binario è un sistema numerico posizionale in base 2, cioè che usa solamente due numeri (1 e 0) e la loro posizione cambia in funzione del loro valore. 
Noi generalmente usiamo il sistema numerico posizionale in base 10 o sistema numerico decimale (cioè usiamo 10 numeri).

Per trasformare numeri binari in numeri decimali e viceversa, bisogna applicare le seguenti regole schematizzate

Numeri Binari ---> Numeri Decimali         Numeri Decimali ---> Numeri Binari

1. Divisione                                            1.Potenza
2. Resto                                                  2.Prodotto
3. Inversione Resti                                  3.Somma

Qui di seguito vengono riportati degli esempi sotto forma di esercizio

  • Esercizio 1 : Trasformare da decimale in binario i seguenti valori mostrandone il procedimento ed il risultato finale
  1. 28
  2. 35
  3. 41

28 : 2 = 14   r.0
     14 : 2 = 7     r.0     
       7 : 2 = 3       r.1       
 3 : 2 = 1       r. 1
 1 : 2 = 0       r. 1

11100

35 : 2 = 17   r. 1
17 : 2 = 8     r. 1
8  : 2 = 4      r. 0
4  : 2 = 2      r. 0
2  : 2 = 1      r. 0
1  : 2 = 0      r. 1

100011
41 : 2 = 20  r.1
20 : 2 = 10  r.0
10 : 2 = 5    r.0
5 : 2 = 2      r.1
2 : 2 = 1      r.0
1 : 2 = 0      r.1

101001

  • Esercizio 2 : Trasformare i risultati ottenuti dalla risoluzione dei tre precedenti esercizi riportandoli ai corrispondenti valori decimali di partenza

11100=1 x 2^4 + 1 x 2^3 + 1 x 2^2 + 0 x 2^1 + 0 x 2^0=16 + 8 + 4 + 0 + 0=28
100011=1 x 2^5 + 0 x 2^4 + 0 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0=32+0+0+0+2+1=35
101001=1 x 2^5 + 0 x 2^4 + 1 x 2^3 + 0 x 2^2 + 0 x 2^1 + 1 x 0^0=32+0+8+0+0+1=41

martedì 15 ottobre 2013

L'architettura di Von Neumann

Con il termine “architettura di Von Neumann” si intende uno schema progettuale di calcolatori elettronici inventato dal matematico John Von Neumann nel 1951.

La struttura da lui inventata era costituita da tre componenti fondamentali, a cui andavano ad aggiungersi altre periferiche collegate tramite un modulo di input/output.


I tre componenti fondamentali sono:
  • La CPU che si occupa di eseguire le istruzioni che vengono scritte in linguaggio macchina e risiedono nella memoria RAM. Si divide in due parti fondamentali: l’unità di controllo e la ALU, cioè l’unità di calcolo.
  •  La Memoria in cui risiedono i dati e le istruzioni scritti in linguaggio macchina.
  •  Il BUS, cioè un collegamento fisico (costituito da un  cavo elettrico) tra la memoria, la CPU e gli altri componenti del calcolatore; permette lo scambio di informazioni grazie all’invio di impulsi elettrici.

Tuttavia il modello di Von Neumann prevede anche la presenza di periferiche che permettono l’utilizzo del calcolatore: ad esempio il mouse, la tastiera, il monitor. 
Queste dialogano con il processore tramite i moduli di Input (i dati vengono inseriti nel calcolatore per essere elaborati) e Output (i dati che vengono restituiti all’operatore) che vengono collegati al bus.


The term "Von Neumann architecture" means a design scheme of electronic computers invented by mathematician John von Neumann in 1951. The structure invented by him was made up of three basic components, which were additional to other devices connected via a form of input / output. The three basic components are: The CPU is responsible for executing instructions that are written in machine language and reside in RAM memory. It is divided in two basic parts: the control unit and the ALU, namely the calculation unit.  The memory in which the data resides, and instructions written in machine language.  The BUS, ie a physical link (constituted by an electrical cable) between the memory, the CPU and other components of the computer, allows the exchange of information by sending electrical pulses. However, the Von Neumann model also includes the presence of devices that allow the use of the computer: for example, a mouse, a keyboard, monitor. These communicate with the processor through the forms of input (the data are entered into the computer to be processed) and output (the data that is returned to the operator) that are connected to the bus.

Che cos'è il computer?

Partendo da una definizione semplice e concisa, il computer é tutto ciò che non si vede e in generale si compone delle seguenti parti fondamentali:
  1. UNITA' D'INGRESSO O DI IMPUT (I);
  2. UNITA' CENTRALE DI ELABORAZIONE (C.P.U.);
  3. MEMORIA PRINCIPALE;
  4. MEMORIA SECONDARIA O DI MASSA (esterna al computer);
  5. UNITA' DI USCITA O DI OUTPUT (O).





  • CPU (Central Processing Unit) interagisce con il sistema operativo e i vari software installati sull'hard-disk e ne esegue tutti i comandi.

  • Memoria Centrale RAM (Random Access Memory) o memoria ad accesso casuale permette l'arrivo diretto a qualsiasi dato nella memoria secondaria (HD) in tempi BREVI. Si tratta di una memoria sulla quale si può leggere, scrivere e cancellare in maniera volatile, ciò significa che al momento del riavvio o dello spegnimento del computer tale memoria perde tutti i dati in essa contenuti.

  • Memoria centrale ROM (Read Only Memory) o memoria di sola lettura e una memoria in cui i dati vengono memorizzati in fase di elaborazione e in cui successivamente non è permessa la modifica di quest'ultimi. 
    La ROM comprende anche il BIOS che fornisce una serie di istruzioni al sistema operativo e ai programmi per consentirne l'accesso all'hardware e ha il compito di controllo sulle funzionalità di tutti i componenti fondamentali del sistema.


  • INPUT/OUTPUT (I/0) si intende tutti i dispositivi che permettono la comunicazione del sistema con l'utente (scheda video, scheda audio, scheda di rete ecc).

  • BUS 
     è una serie di canali di comunicazione che permette a periferiche e dispositivi I/0 di interagire tra loro scambiandosi dati attraverso la trasmissione di segnali elettrici
    Il bus è a sua volta suddiviso in:
    • BUS DATA 
    • BUS ADDRESS
    • BUS CONTROL

venerdì 20 settembre 2013

Cloud Computing e Web 2.0


  • Web 2.0



Il Web 2.0 è un termine utilizzato per indicare uno stato di evoluzione del World Wide Web, rispetto a una condizione precedente. Si indica come Web 2.0 l'insieme di tutte quelle applicazioni online che permettono un elevato livello di interazione tra il sito web e l'utente come i blog, i forum, le chat, le piattaforme di condivisione di media come Flickr, YouTube, Vimeo, i social network com eFacebook, Myspace, Twitter, Google+, LinkedIn, Foursquare, ecc. Ottenute tipicamente attraverso opportune tecniche di programmazione Web e relative applicazioni web afferenti al paradigma del Web dinamico in contrapposizione al cosiddetto Web statico 1.0.



  • Cloud Computing

In informatica con il termine inglese cloud computing (in italiano nuvola informatica) si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio offerto da un provider al cliente, di memorizzare/archiviare e/o elaborare dati (tramite CPU o software) grazie all'utilizzo di risorse hardware/software distribuite e visualizzate in rete in un'architettura tipica client-server.
È noto come, utilizzando varie tipologie di unità di elaborazione (CPU), memorie di massa fisse o mobili come ram, dischi rigidi interni o esterni, CD/DVD, chiavi USB, un  sia in grado di elaborarearchiviarerecuperare programmi e dati.
Nel caso di computer collegati in rete locale (LAN) o geografica (WAN) la possibilità di elaborazione/archiviazione/recupero può essere estesa ad altri computer e dispositivi remoti dislocati sulla rete stessa.
Sfruttando la tecnologia del cloud computing gli utenti collegati ad un cloud provider possono svolgere tutte queste mansioni, anche tramite un semplice internet browser.
Possono, ad esempio, utilizzare software remoti non direttamente installati sul proprio computer e salvare dati su memorie di massa on-line predisposte dal provider stesso (sfruttando sia reti via cavo che senza fili).