I have just completed the CS50 course named “CS50x – CS50’s Introduction to Computer Science” from Harvard held on the edX online platform.

CS50x


edX

edX is an online course provider created by Harvard and MIT. It hosts several courses at a level like a university for a wide range of disciplines. They follow a precise approach for teaching:

  • Experience, you need to learn new knowledge and skills in different ways
  • Practice, you need to demonstrate your knowledge
  • Apply, you need to use your knowledge in real-word application

The general topics are divided in six main categories:

  • Computer science
  • Language
  • Data science
  • Business & Management
  • Engineering
  • Humanities

The course

CS50 is an introductory course to the intellectual enterprises of computer science and the art of programming. I have decided to enroll in the course to better understand some computer science concepts. I also want to improve some technical skills that I have using python or web programming.

The course is essentially free and deals with a robust understanding of computer science. Start by teaching how to think algorithmically and solve problems efficiently. It talks also about concepts like abstraction, algorithms, data structure, encapsulation, resources, security, software, and web development.

The course requires completing a lot of practical exercises with several languages like C, Python, SQL, and JavaScript with also CSS and HTML. David J. Malan is an extraordinary teacher that really explains concepts and involves you with his passion for the subject.

The name derives from the standard course held at Harvard University, named Computer Science, and the number 50 is related to the difficulty where generally less than 100 is related to courses held primarily for graduate and undergraduate students.

Harvard

The course starts at Harvard and it is very well organized. It is divided into ten sections and for each section, you have to complete a laboratory test and project. Every task is mandatory and should be submitted to the check50, the automatic checker.

cs50 harvard university

The final project

You need also to submit the final project. I have implemented a web application with flask and python. The application allows new users to register, login and it remembers each session. Each user can read data from the temperature sensor (inside the house) stored in an SQL database and it is possible to see extraordinary plots made through Highcharts.js.

This is the starting point to really improve my previous project with temperature and remote web server by rewriting all the main core server side to improve data analysis with Python.