Cos'è
Polarity è un'azienda italiana con sede a Reggio Emilia che offre servizi di sviluppo software avanzato per startup e aziende tecnologiche. Il suo obiettivo principale è accelerare il successo dei clienti fornendo team di ingegneri software di alto livello, guidati da ingegneri principali con conoscenze specifiche nel settore di riferimento.
Polarity si distungue per le seguenti aree di competenza:
- Infrastrutture AWS
- Sviluppo web e mobile
- Intelligenza Artificiale e Machine Learning
- Sistemi distribuiti
Gli incontri
Nei primi tre incontri è stata ripresa brevemente la struttura della comunicazione client–server già affrontata l’anno precedente, approfondendo però un nuovo aspetto: l’utilizzo dei parametri URL e delle query string. Dopo un’introduzione teorica sul loro funzionamento, sulla codifica dei parametri e sui principali linguaggi utilizzati per gestirli, abbiamo applicato subito i concetti attraverso una serie di esercizi pratici in JavaScript.
In questi esercizi, partendo da parametri passati tramite URL o query, dovevamo elaborarli secondo richieste specifiche e restituire il risultato finale in formato JSON, simulando il comportamento di una vera API.
Durante il terzo incontro ci è stato presentato l’elaborato da sviluppare, una sorta di caccia al tesoro da svolgere tramite codice. Il compito consisteva nello sviluppare un programma in grado di comunicare con il server messo a disposizione, scegliendo autonomamente l’algoritmo più appropriato.
Ad ogni “click” virtuale inviato al server, questo restituiva una risposta che indicava se un tesoro era stato trovato oppure, in caso contrario, la distanza dal tesoro più vicino. L’obiettivo era individuare più tesori possibili, massimizzando il punteggio.
Il mio gruppo non è riuscito a completare l’algoritmo in modo ottimale, ma abbiamo comunque sviluppato una soluzione funzionante a livello logico: il nostro algoritmo scorreva la mappa a matrice, visitando sistematicamente tutte le celle. Era solo possibile scegliere la cella di partenza e la direzione di scansione.
L’ultima lezione è stata dedicata all’esposizione del codice, alla spiegazione delle scelte algoritmiche e all’esecuzione simultanea dei programmi di tutti i gruppi, confrontando i risultati ottenuti in termini di punteggio.
Commento
Competenze attivate
Trasversali
- Competenza personale, sociale, e capacità di imparare ad imparare
- Competenza imprenditoriale
- Competenza matematica e in scienze, tecnologia e ingegneria
- Competenza digitale
Specifiche
- Gestione di parametri URL e query string in applicazioni web
- Sviluppo applicazioni e script in JavaScript
- Elaborazione e gestione di dati in formato JSON
- Progettazione di soluzioni algoritmiche per la risoluzione di problemi
- Lavoro in team nello sviluppo di un progetto informatico
- Presentazione e discussione del lavoro svolto e delle scelte progettuali
Ho trovato questa attività interessante e utile, poiché mi ha aiutato a comprendere meglio alcuni argomenti che abbiamo affrontato poco dopo a scuola. Da questo punto di vista, il percorso è stato sicuramente formativo.
D’altra parte, non l’ho trovata particolarmente stimolante: una parte consistente del tempo è stata dedicata alla teoria e allo svolgimento di numerosi esercizi, probabilmente più del necessario. Sarebbe stato sufficiente affrontarne un numero minore per comprendere il funzionamento dei concetti, dedicando invece più tempo allo sviluppo del lavoro finale.
A causa del tempo limitato a disposizione per l’elaborato conclusivo, molti gruppi, compreso il mio, sono arrivati all’ultimo incontro con un algoritmo piuttosto semplice e poco efficace.