Coding

Coding

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:

coding con scratch

Il blog coding creativo dedica un’ampia sezione a Scratch, ai seguenti link: https://www.codingcreativo.it/tutorial-scratch-3-0/ e https://www.codingcreativo.it/fare-coding-con-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.

Alcuni link utili

Indice tutorial Scratch 3

Scratch 2

Numeri primi in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con Algobuild

Esempio di successione di Fibonacci con Algobuild

La successione di Fibonacci in C++

Sviluppo con Algobuild della successione di Fibonacci

C++ random

C++ random

C++ random – La libreria del linguaggio C++ include alcune funzioni per il calcolo dei numeri pseudo casuali, ovvero dei numeri random.

Avevamo già studiato in C, come generare i numeri random in questa lezione: array con numeri random in C.

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.

Alcuni link utili

Indice argomenti linguaggio C++

Array in C++

Passaggio di parametri per valore o per riferimento

Equazioni di secondo grado in C++

Le variabili globali e locali in C++

Uso delle funzioni in C++

Funzioni in C++

Definizione di funzioni in C++

Libreria cmath

Come usare il for in C++

Massimo tra n numeri in C++

Iterazioni in C++

Ciclo while in C++

Ciclo do while

Operatori logici in C++

Esercizi con switch case in C++

If else in C++

Casting in C++

Successione di Fibonacci in C++

Python Compiler Online

Python Compiler Online

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.

Soluzione:


import pandas as pd 
ds = pd.Series([1, 3, 5, 7, 9]) 
print(ds)

Secondo esempio:

Generare una sequenza di numeri da x a y escluso y, con incrementi di 1.


x = 1
y = 15
for a in range(x,y):
    print(a)

Terzo esempio da provare nel Python compiler online:

Realizzare un programma in Python che restituisca il totale dei numeri pari e dispari di serie di numeri.


numbers = [11, 6, 9, 40, 5, 14]
count_odd = 0
count_even = 0
for x in numbers:
    if x % 2:
      count_odd += 1
    else:
      count_even += 1
print("Count even numbers :", count_even)
print("Count odd numbers :", count_odd)

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Compilatore C online

Compilatore C online

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.

Onlinegdb

Questo compilatore e debugger, molto semplice da utilizzare, è raggiungibile al seguente link https://www.onlinegdb.com/online_c_compiler.

Consente di poter scegliere tra vari linguaggi come il C, C++, Java, Python 3, Php, e tanti altri, come potete notare nella figura sotto:

Onlinegdb compilatore C online

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:

codepad

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/

ideone

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.

jdoodle

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.

Alcuni link utili

Indice argomenti sul linguaggio C

Compilatore C

Realizzare un menù di scelta in C

Esercizio sulle struct in C

Somma elementi diagonale principale di una matrice

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Come effettuare il prodotto tra matrici