25th August 2018← Back
Harvard is, of course, one of the best and most well-respected universities in the world. If you’ve ever wondered what it would be like to be in the privileged position of students lucky enough to attend Harvard then you’ll be glad to know we are living in a world where you can find out. Since 2016 their CS50x course, along with many other courses in a variety of subjects, has been available online for free. These courses are known as MOOCs (Massive Open Online Courses) and are a provide wonderful learning opportunities for anyone with an internet connection. CS50x provides a thorough introduction to computer science with engaging lectures, helpful videos and challenging but rewarding assignments. The course covers the fundamentals of data structures and asymptotic notation including the implementation of hash tables, tries and linked lists.
The CS50x course has been running for many years at Harvard and is currently delivered by former Harvard and CS50 graduate Professor David J. Malan. His enthusiasm for his subject is infectious and I found his lectures to be highly engaging and informative. The course is separated into 13 weeks but in reality it can be completed in a time-frame of the learner’s own choosing. Each week has a lecture and short helper videos, and most have assignments. The assignments, known as “problem sets”, facilitate practical application of the concepts covered by the week’s lecture. Each problem set is estimated to take around 10 to 20 hours to complete and the entire course is estimated to take around 200 hours in total. For some assignments there are advanced ‘more comfortable’ options for more experienced or ambitious students to really challenge their abilities.
I found the assignments to be genuinely challenging; they are designed in such a way that they require real thought and planning to complete. On many occasions I found myself having to get out a pen and paper, revisit the accompanying videos and spend time really thinking through the problems. It was all worth it in the end because the hours of struggling were eventually followed by a real a-ha moment and a genuine feeling of accomplishment. The tasks involve interesting challenges such as cracking passwords, building a spellchecker, working with the Twitter API and developing functioning web applications with SQL databases.
The last assignment of the course is the final project where you’re given the opportunity to come up with your own project which applies the knowledge and skills you have developed over the previous weeks. For my final project I decided to make a web application which used the Twitter API to build a quiz about your friends. It was my first web application and ended up taking me on a journey into learning about NodeJS and AngularJS, discovering a passion for web development and ultimately becoming employed as a Junior Web Developer. If you’re interested, the web application is called TwitFriends and more information about it can be found in my projects archive.
E-learning has notoriously poor completion rates; it’s easy to start but, without the normal social pressures that accompany traditional qualifications, it’s also easy not to finish. With that said, we are living in a golden age of opportunities for education and the benefits for anyone motivated enough to complete the course are well worth the effort. CS50x is one of the finest examples of the potential of e-learning and it’s available for free to anyone with a computer and internet connection. I’m incredibly grateful that that’s the case and I’d recommend it to anyone with an interest in the subject matter. For anyone wishing to sign up for the course, you can do so here.
21st August 2021
If you're still serving images in long-time standard formats such as JPEG and PNG then a Google PageSpeed Insights analysis of your site will identify an opportunity to improve your page loading times by serving images in "next-gen" formats. There are several so-called "next-gen" image formats which offer superior compression to JPEG and PNG but in this post we will… Continue reading »
25th January 2021
What do WebSockets do? Hypertext Transfer Protocol (HTTP) is unidrectional, meaning requests can only be made by the client. This is a limitation which means that a certain class of web application cannot be built using HTTP alone. WebSockets are a separate communication protocol, fully compatible with HTTP, which allow for bidirectional communication between a client and a server. A protocol… Continue reading »