Ho appena completato il corso di CS50 intitolato “CS50x – CS50’s Introduction to Computer Science” di Harvard tenuto sulla piattaforma edX.

CS50x


edX

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.

cs50 harvard university

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.