Il coding tradotto letteralmente vuol dire programmazione, ma più in generale con questo termine si intende una disciplina che ha come base il pensiero computazionale. Dunque, con il termine di coding, racchiudiamo tutti quei processi mentali che mirano alla risoluzione di problemi.
Il coding è alla portata di tutti e può essere proposto a scuola come un’attività interdisciplinare consigliata per tutte le fasce d’età.
Dalla scuola primaria a quella superiore, tanti sono infatti gli strumenti per fare coding in maniera divertente e creativa!
Strumenti per fare coding per bambini e ragazzi
Iniziamo con il dare qualche suggerimento per i più piccoli, proponendo attività anche senza l’utilizzo degli strumenti informatici, un esempio può essere la Pixel Art.
Per i bambini dagli 8 anni in su si può passare ad un apprendimento divertente del coding grazie al programma Scratch https://scratch.mit.edu/. Questo programma è utile per creare programmi e giochi, semplicemente spostando blocchi di codice colorati ed intuitivi.
Ecco un’immagine rappresentativa del programma Scratch:
Un altro programma di facile intuizione è mBlock, https://mblock.makeblock.com/en-us/. Anche qui si tratta di spostare semplicemente dei blocchi di codice ed è adatto anche ai più grandicelli.
Un sito web ricco di risorse per il coding è Programma il Futuro, https://programmailfuturo.it/. Qui si seguono dei veri e propri percorsi ricchi di giochi di logica e programmi interattivi.
Anche AppInventor presenta un’interfaccia grafica semplice ed intuitiva e numerose sono le applicazioni che si possono realizzare. Una sezione introduttiva del blog, dimostra come utilizzare il programma, al seguente link: https://www.codingcreativo.it/app-inventor/.
Uno strumento utile per creare diagrammi di flusso è Algobuild. Anche in questo caso il blog traccia in dettaglio come utilizzare questo programma per acquisire alcuni concetti base degli algoritmi: https://www.codingcreativo.it/i-diagrammi-a-blocchi/.
I benefici nel fare coding e quindi nel favorire lo sviluppo del pensiero computazionale si trasmettono in un maggior successo scolastico, in tutte le discipline.
Tante sono infatti le discipline che si possono coinvolgere nel fare coding. Inoltre ci sono tantissimi altri strumenti per imparare a programmare. Navigando nel web troverete tantissime risorse a disposizione.
Quindi analizzeremo innanzitutto la funzione rand() in C++ che serve a generare dei numeri casuali.
La funzione rand() genera un numero che è compreso nell’intervallo tra 0 e RAND_MAX, dove RAND_MAX è un valore che cambia a seconda del compilatore usato, ad esempio nel caso di Dev C++ è 32767.
Per provarlo basta semplicemente scrivere questo piccolo programma in cui oltre all’header iostream includeremo anche l’header cstdlib.
#include <iostream>
#include <cstdlib>
using namespace std;
#define N 10
int main(){
cout<<"RAND_MAX:"<<RAND_MAX;
}
Ma la funzione rand() dà l’impressione che il numero sia casuale.
Infatti aggiungete questa linea di codice al programma precedente:
cout<<rand()<<endl;
Noterete che il numero generato, se mandate più volte in esecuzione il programma, è sempre lo stesso.
Questo succede perché il nostro numero casuale è prodotto a partire dallo stesso seme. Allora occorre intervenire proprio su questo per generare numeri casuali diversi.
Esempi c++ random
Per generare numeri casuali in C++ potremmo inizializzare i semi utilizzando la funzione srand(). Questa funzione inizializza il generatore di numeri con un valore passato come argomento.
Ad esempio srand(112233);
Facciamo dunque un esempio inserendo in un array dei numeri pseudo-casuali.
Creiamo due semi partendo da due valori diversi. Dopo con la funzione srand() passiamo i semi come argomento e poi con la funzione rand() generiamo dei numeri pseudo-casuali che inseriremo nei nostri array a e b.
#include <iostream>
#include <cstdlib>
using namespace std;
const int seme1 = 111222333;
const int seme2 = 112233444;
#define N 10
int main(){
int a[N],b[N];
int i;
srand(seme1);
for (i=0; i<N; i++){
a[i]=rand();
}
srand(seme2);
for (i=0; i<N; i++){
b[i]=rand();
}
cout<<"stampa primo array"<<endl;
for (i=0; i<N; i++){
cout<<a[i]<<endl;
}
cout<<"stampa secondo array"<<endl;
for (i=0; i<N; i++){
cout<<b[i]<<endl;
}
return 0;
}
Ma ogni volta che manderemo in esecuzione il programma avremo sempre gli stessi numeri.
Uso della funzione time()
La funzione time() restituisce il numero di secondi trascorsi dal 01 Gennaio 1970 rispetto alla data e all’ora corrispondenti all’invocazione di tale funzione.
Per utilizzare questa funzione devo includere l’header ctime.
Ecco quindi il listato completo d’esempio:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#define N 10
int main(){
int a[N];
int i;
srand(time(NULL));
for (i=0; i<N; i++){
a[i]=rand();
}
cout<<"stampa array"<<endl;
for (i=0; i<N; i++){
cout<<a[i]<<endl;
}
return 0;
}
In questo modo ogni volta che manderemo in esecuzione il programma, in istanti differenti, otterremo valori diversi.
Ottenere valori random in un determinato intervallo
Adesso vedremo come generare numeri in C++ random ma in un intervallo definito.
Se utilizziamo rand()%N visualizziamo i numeri compresi tra 0 ed N-1.
Quindi ad esempio rand()%10 restituisce i numeri da 0 a 9.
Se aggiungiamo un offset l’intervallo si può modificare, ad esempio rand()%10+1 restituisce tutti i numeri da 1 a 10 anziché da 0 a 9. In pratica aggiungiamo 1 ad entrambi i numeri del range.
Quindi se ad esempio volessimo generare i numeri da 10 a 20, considerando che rand()%11 genera valori da 0 a 10, allora dovremmo aggiungere l’offset 10.
Ecco il listato completo che mostra due array inizializzati uno con i numeri random da 1 a 10 e il secondo con i numeri random da 10 a 20.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#define N 10
int main(){
int a[N],b[N];
int i;
srand(time(NULL));
for (i=0; i<N; i++){
a[i]=rand()%10+1;
}
srand(time(NULL));
for (i=0; i<N; i++){
b[i]=rand()%11+10;
}
cout<<"stampa primo array"<<endl;
for (i=0; i<N; i++){
cout<<a[i]<<endl;
}
cout<<"stampa secondo array"<<endl;
for (i=0; i<N; i++){
cout<<b[i]<<endl;
}
return 0;
}
Questi sono solo alcuni possibili esempi sui numeri C++ random, più avanti vi mostrerò altre possibili applicazioni.
Integriamo un Python Compiler Online per provare direttamente il funzionamento del codice.
In basso troverete la versione base, scorrendo nella pagina troverete il compiler con l’integrazione di alcune librerie fondamentali per il calcolo automatico.
Versione Base del Python Compiler Online:
Scrivi codice Python utilizzando uno dei più conosciuti compilatori integrati.
Python Compiler Online with Libreries
Possiamo anche usare librerie come Numpy, Pandas, Matplotlib. Ecco una versione avanzata del Python Compiler con un esempio sulla scala logaritmica:
About Python
Python è un linguaggio di programmazione molto popolare creato da Guido van Rossum. È stato rilasciato nel 1991 e da allora è stato sempre più adottato in tantissimi campi.
Python infatti è molto popolare sia per lo sviluppo Web in quanto consente di creare app mobili utilizzando framework all’avanguardia come Flask e Diango, sia per il campo del Data Science e Machine Learning, accanto a librerie come NumPy, Pandas, Matplot, Seaborn, ecc… Quindi possiamo dire che sit adatta sia nell’ambito dello sviluppo web, sia nell’analsiti dei dati e dell’a’prendimento automatico.
Semplici esempi – Python Compiler Online:
Provate alcuni semplici esempi nel Python Compiler, in modo da testare i programmi.
Primo esempio:
Scrivere un programma in Python con l’utilizzo di Pandas per creare e visualizzare un oggetto simile ad un array unidimensionale contenente un array di dati.
Il compilatore C online può essere utilizzato per compilare un programma o per effettuarne il debug.
I compilatori che si trovano in rete sono molto semplici da utilizzare, basta copiare ed incollare il codice e poi eseguirlo.
Ogni compilatore C online ha però delle funzionalità diverse rispetto all’altro. In alcuni ad esempio non si può modificare la riga di comando. Scegliete quindi in base alle vostre esigenze.
Il vantaggio è che si possono utilizzare comodamente in qualsiasi momento e da qualsiasi dispositivo, dove non si può installare il compilatore offline che abbiamo spiegato nella precedente lezione.
Ovviamente questi compilatori non vanno utilizzati per creare dei programmi complessi, che richiedono il collegamento con librerie di terze parti.
Compilatore C online
Elenchiamo adesso alcuni dei compilatori da poter utilizzare liberamente online.
Consente di poter scegliere tra vari linguaggi come il C, C++, Java, Python 3, Php, e tanti altri, come potete notare nella figura sotto:
Il debug di questo compilatore C online osserva una procedura molto dettagliata.
Codepad
È raggiungibile al seguente link: http://codepad.org/ e dopo aver incollato ed eseguito il codice fornisce un semplice URL da poter utilizzare liberamente e condividere.
Permette di scegliere tra vari linguaggi di programmazione come mostrato in figura sotto:
Ideone
Ideone è un compilatore C online che permette di scegliere anch’esso tra tanti linguaggi di programmazione. Si può raggiungere al seguente link: https://ideone.com/
Non consente di modificare la riga di comando del compilatore.
jdoodle
Questo compilatore si raggiunge al seguente link https://www.jdoodle.com/ e consente di scegliere tra i linguaggi di programmazione elencati nella figura sotto.
Conclusioni
Scegliete pure il compilatore C online che vi sembra più funzionale. Ne esistono anche degli altri, lascio a voi la ricerca e la valutazione.