If I had to recommend a single computer science course for a total beginner, I’d undoubtedly choose How to Think Like a Computer Scientist: Interactive Edition. In the following paragraphs I will discuss this course content’s and what makes it special.
I’d argue that what makes this course special is that it’s not aimed at teaching “how to code”. As its name suggests, it aims towards developing a particular way of thinking, one suitable for computer science. As such, the focus will be less on code syntax and more in learning how to use the computer to solve problems.
Some fundamental CS concepts covered:
- Data types (strings, integers, floats).
- Control flow statements (conditionals and iterators).
- Data structures (lists, dictionaries).
- Data input/output.
- Object oriented programming (classes, objects, inheritance).
Despite covering so many topics, and even getting started with more advanced topics such as object oriented programming (OOP), the course is suitable for people with no prior experience, offering a gentle learning curve (except for some exercises that offer extra challenge).
Programming language: Python
The course uses Python for explaining the different CS concepts and to cover all of its material. One of the main reasons to do so, is to keep code syntax as simple as possible. The user will be able to experience this early on, starting to write some programs after a very short introduction. This is also achieved with the integrated python interpreter that allows to run the code online.Besides all of the advantages that Python offers while learning (simplicity of syntax and readability), it’s also hugely popular and very powerful.
This course is free and open source. You can freely access it and even adapt it to your needs. The course is developed by Runestone Interactive, that have set as their mission to offer free and open source content in order to democratize textbooks. This applies to the other courses they offer, too. Be sure to donate to support them if you appreciate their content.
Ease of access and interactivity
Even though you can access the course directly from the link, it’s suggested that you register an account first (it’s free). Once you’re logged in, the site will automatically record your progress. This offers a nice interactive touch to the course, but it’s not limited to that. As you progress in the course, you will have multiple choice questions and coding exercises. Most of the time, the site will even check your code and run some tests to verify your answers.
Integrated interpreter and “debugger”
As it was mentioned before, the course comes with an integrated Python interpreter that allows you to run your code online. This is great for beginners, saving them the work of setting up an IDE. As an extra tool for learning and understanding how the the code is executed, the site also comes with a great visualization tool, codelens, that shows the results of each line of code and even graphically displays some data structures and functions. Pretty much as Python tutor, if you’re familiar with this tool.
No prior experience needed
This courses does a great job introducing the fundamentals. It can be a bit slow at first for people that already know the basics, but it’s ideal for people who would like to be taught from zero.
Showing results early on
The turtle graphics module is introduced very early on the course. This is a simple drawing tool for Python that can generate amazing designs. Seeing your code produce very complex and beautiful shapes offers a great sense of accomplishment and is very fun!
The How to Think Like a Computer Scientist course is a great resource to start learning computer science. It’s more aimed towards learning “how to think” instead of focusing on learning the syntax of any specific language. It’s beginner friendly, starting with fundamental concepts and showing more specific applications towards the end of the course. A great introduction, suitable as well for people with no prior experience in programming.