I think it was TWiG last week where the recommendation came up to try the free introduction to Computer Science course from Harvard by way of edX.org.
Having extra free time these days, I decided to check it out. (I already have a BCS but I am interested in how such courses are taught.) In the last three days I have done the first 4 weeks of the course, so I am about half way through. (If you want proof, you can see my assignments on the GitHub account I created for this course, but they will be spoilers if you are going to try the course yourself.)
So my quick summary is this: this course is very well taught, and covers the necessary material very quickly while still making it approachable. Each week’s YouTube video is about 2 hours long. Following that, there is a problem set that is quite challenging. This course is not a trivial course, it is real work, and will significantly challenge the uninitiated. If you are up to it, you will definitely learn a good introduction to computers, computer science and programming.
Here’s the week summary:
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 Information
Tracks
Android
Games
iOS
Web
Final Project
If you have the interest, the cost is right, and if you have the time, maybe you should give it a go!
Okay, I probably shouldn’t post this here, but as I just wasted 24 hours puzzling over this (letting it percolate in the back of my mind… the old subliminal problem solver) I thought I would put a spoiler here in case other, less experienced learners, need a hint on the image manipulation helper.c in problem set 4.
Spoiler:
While you are able to do the grayscale and mirror “in place”, you will not be able to do that for the [proper implementation of] the blur and edge detect.
I will note the puzzles really don’t seem to involve anything specifically CS’y as it were… at least not my review of the questions and answers for 2019:
In any case… if you like really challenging puzzles that require outside the box thinking and a little luck, you may be interested in giving it a go.
So I have learned something interesting about this course that I thought I would share.
The course is taught by David J. Malan who tells you in the beginning that he took the course himself back in 1996. Later, he shows some notes he took in the first week, and we learn that he took the course in 1996 from a pioneer in computer science: Brian Kernighan. Brian Kernighan is the Kernighan in “Kernighan and Ritchie” who are famous for a fundamental book on C programming The C Programming Language.