Computer Science For Beginners With Harvard's CS50x
Written by Nikos Vaggalis   
Monday, 31 January 2022

CS50x is a highly popular online introductory course to Computer Science that just keeps going. You can now enrol in the self-paced 2022 edition for free on the revamped edX platform.

CS50x: Introduction to Computer Science comes from Harvard University and already had a long history as an on-campus course before its online incarnation as one of the very first courses on the edX platform in 2012. In 2018, when several spin-off courses were launched (see More CS50 Courses on edX) Sue Gee wrote:

If you've not done this Harvard entry-level Computer Science course, aimed at students without prior programming experience, either on campus at Harvard or in its online version CS50x on edX, you can still join these follow-ons but you would be missing a treat - a 12-weeks course in which David J. Malan teaches students how to think algorithmically and solve problems efficiently.

Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, PHP, and JavaScript plus SQL, CSS, and HTML and its problem sets are inspired by real-world domains of biology, cryptography, finance, forensics, and gaming.

And that's exactly what you get as described.

As of January 2022 it is still offered on edX for free, but with the optional upgrade available of paying $149 for a Certificate. Enrolling gives you access to the usual resources - videos, transcripts, lecture notes as well projects. Note that it is offered as self-paced which means that you may take CS50x on your own schedule, but the estimated time of completion is 12 weeks.

If you're not interested in the whole experience, but still want to find out what the fuss is about all the lectures for the 2021 edition are included in this Youtube playlist

Week 0 Scratch
Week 1 C
Week 2 Arrays
Week 3 Algorithms
Week 4 Memory
Week 5 Data Structures
Week 6 Python
Week 7 SQL
Week 8 HTML, CSS, JavaScript
Week 9 Flask
Week 10 Emoji

plus an extra lecture on Cybersecurity.

Last year edX was acquired by 2U, but this hasn't had any detrimental impact. In her report of the merger, Sue Gee wrote:

While merging with 2U seems to mark a discontinuous change, in his Letter to the MIT Community, MIT President, L. Rafael Reif, puts a positive spin on the future prospects both for edX and its non-profit successor, writing:

"The overall agreement actively sustains the mission of edX through a series of provisions that protect learner data, ensure free and low-cost access to courses, preserve choice for partner universities and faculty, and continue the open-source platform Open edX

The proceeds of the transaction – $800 million – will flow into a nonprofit entity with a refreshed educational mission and a new name. Governed by MIT and Harvard, this nonprofit will steward and enhance the Open edX platform and explore promising new ideas for making online learning more effective, engaging and personalized. 

As such the business known as edX and the www.edX.org website are no longer governed by Harvard or MIT, but as far as this course offering is concerned nothing has changed and is still offered for free with all the material intact and students now have access to the 2022 edition of the course.

The full syllabus goes like this :

Week 0 Scratch

  • Welcome
  • What is computer science?
  • Representing numbers
  • Text
  • Images, video, sounds
  • Algorithms
  • Pseudocode
  • Scratch basics
  • Abstraction
  • Conditionals and more
  • Demos

Week 1 C

  • C
  • IDEs, compilers, interfaces
  • Functions, arguments, return values, variables
  • main, header files, commands
  • Types, format codes, operators
  • Variables, syntactic sugar
  • Calculations
  • Conditionals, Boolean expressions
  • Loops, functions
  • Mario
  • Imprecision, overflow

Week 2 Arrays

  • Compiling
  • Debugging
  • Memory
  • Arrays
  • Characters
  • Strings
  • Command-line arguments
  • Applications

 

Week 3 Algorithms

  • Searching
  • Big
  • Linear search, binary search
  • Searching with code
  • Structs
  • Sorting
  • Selection sort demonstration
  • Bubble sort demonstration
  • Selection sort
  • Bubble sort
  • Recursion
  • Merge sort

 

Week 4 Memory

  • Pixels
  • Hexadecimal
  • Addresses, pointers
  • Strings
  • Pointer arithmetic
  • Compare and copy
  • Memory allocation
  • valgrind
  • Garbage values
  • Swap
  • Memory layout
  • scanf
  • Files
  • JPEG

 

Week 5 Data Structures

  • Recap
  • Linked lists
  • Growing arrays
  • Growing linked lists
  • Implementing linked lists
  • Trees
  • More data structures

 

Week 6 Python

  • Python syntax
  • Libraries
  • Input, conditions
  • meow
  • Mario
  • Documentation
  • Lists, strings
  • Command-line arguments, exit codes
  • Algorithms
  • Files
  • More libraries

 

Week 7 SQL

  • Data processing
  • Cleaning
  • Counting
  • Relational databases
  • SQL
  • Tables
  • SQL with Python
  • IMDb
  • Problems

Week 8 HTML, CSS, JavaScript

  • The internet
  • The web
  • HTML
  • CSS
  • JavaScript

Week 9 Flask Web programming

  • Flask
  • Forms
  • Layouts
  • POST
  • MVC
  • Frosh IMs
  • Storing data
  • Emails
  • Sessions
  • store, shows
  • Searching

Week 10 Emoji (advocating for emojis across cultures and groups of people)

  • The End
  • Tools
  • Quiz Show
  • Emoji

Cybersecurity

  • Passwords
  • Email, private mode
  • Encryption

Apart from the lectures there's also a series of seminars :

  • Foldable/Dual-Screen Form Factors
  • Collaboration and Version Control with Git
  • Developing Your Project Locally with VS Code
  • Making Small-Scale 2D Games with LÖVE 2D and Lua
  • Introduction to Machine Learning

What I particularly like is that the primary focus is not on coding. It takes a step back to look at the greater picture of how to go about thinking in a structured way and how to approach the science of computers taking a wider angle. Of course, you get to apply those concepts in programming languages such as low-level C and high-level Python. As it also includes lectures on SQL, HTML, CSS, Javascript and Flask it breaks away from the classic CS mentality of being mostly theoretical and provides students with a wellrounded education in order to kickstart their journey.

As far as that journey goes, there's guidance on that too as in the Course's Harvard site there is a section dedicated on how to prepare for a technical interview.

It really is a timeless, well-executed course that from update to update just keeps getting better. Recommended. 

More Information

Harvard site

CS50x on edX

2021 edition's Youtube playlist

 

Related Articles

 More CS50 Courses on edX

 edX acquired for $800 million

How To Successfully Teach Computing Disciplines To The Uninitiated

Take Stanford's Introduction to Robotics For Free

Take Stanford's Natural Language Processing with Deep Learning For Free  

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Leporello.js - The Next Gen JavaScript IDE
14/11/2023

Leporello.js is an interactive functional programming IDE for JavaScript with debugging superpowers. Let's look at what makes it different from traditional IDEs.



.NET 8 Released
15/11/2023

.NET 8 has been generally released. This is the latest long term support (LTS) version that will be supported for the next three years. Microsoft says the new version delivers improvements to the perf [ ... ]


More News

esp32book

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 01 June 2023 )