Ho appena completato il corso di CS50 intitolato “CS50x – CS50’s Introduction to Computer Science” di Harvard tenuto sulla piattaforma edX.
CS50xedX
edX è una piattaforma online creata da Harvard e dal MIT. Gestisce diversi corsi a livello universitario per amplio range di discipline, seguendo un preciso approccio di insegnamento:
- Esperienza, la nuova conoscenza va imparata secondo vie diverse
- Pratica, è necessario dimostrare la conoscenza e le skills
- Applicazione, la nuova conoscenza va contestualizzata e applicata nel mondo reale
I corsi sono divisi in sei categorie principali:
- Informatica
- Lingua
- Data science
- Business & management
- Ingegneria
- Umanistiche
Il corso
CS50 è un corso introduttivo per l’informatica e l’arte della programmazione. Ho deciso di seguirlo per capire meglio alcuni concetti e migliorare alcune skills tecniche che avevo nel programmare in python.
Il corso è gratis e affronta completamente l’informatica nell’ottica della programmazione. Insegna come pensare in modo algoritmico e risolvere problemi in modo efficiente. Inoltre affronta diversi concetti come astrazione, algoritmi, strutture di dati, risorse, sicurezza, software e sviluppo web.
Il corso richiede anche di complete diversi esercizi pratici in vari linguaggi quali C, Python, SQL e JavaScript con anche CSS e HTML. David J. Malan è un professore straordinario che spiega realmente questi concetti e coinvolge lo spettatore attraverso la sua passione per la materia.
Il corso deriva dal corso tenuto all’università di Harvard, sotto nome Computer Science, e il numero 50 è rappresentativo della difficoltà dove generalmente inferiore a 100 rappresenta corsi tenuti principalmente per studenti laureati e non.
Harvard
Il corso parte da quanto fatto ad Harvard ed è ben organizzato. Viene diviso in dieci sezioni e per ciascuna sono obbligatori dei progetti e delle attività di laboratorio. Tutti questi task sono obbligatori per il certificato e devo essere inviati al correttore automatico che fornisce in tempo reale un correzione del codice.

Progetto finale
Inoltre, è necessario consegnare anche un progetto finale. Io ho implementato un’applicazione web con flask
e python
. L’applicazione permette a nuovi utenti di registrarsi, effettuare l’accesso e ricorda le loro sessioni. Ogni utente può accedere a dei dati di sensori di temperatura (all’interno di un’abitazione) salvati in un database SQL
e può estrarre dei grafici interattivi fatti con Highcharts.js.
Questo è soltanto il punto di inizio per sviluppare ulteriormente il mio precedente progetto dei sensori di temperatura per la domotica e il server web remoto, andando a riscrivere il codice lato server per implementare una vera e propria analisi dei dati sfruttando Python.