Learning Programming with Fundamentals of Computing

A snippet of Python code that prints a welcome message.

About this Website

The purpose of this website is to discuss the programming skills and computer science concepts I learned from taking the Fundamentals of Computing specialization on Coursera over the past year.

The Fundamentals of Computing specialization consists of seven courses offered by Rice University. It uses the Python programming language to teach fundamental programming skills and computer science concepts that first-year CS students learn at Rice University.

Taking this specialization was my first introduction to programming, aside from a very introductory course I took 10 years ago in high school on HTML. I wrote all of these posts after completing the entire specialization primarily to serve as a useful reference for myself in the future, but also to showcase the wide range of interesting projects I built.

I built most of these projects in CodeSkulptor, an online Python environment built by Scott Rixner, a CS professor at Rice University and one of the creators of this specialization. It wasn't until I took the two Algorithmic Thinking courses of the specialization that I started using VS Code as my primary development environment. I used Python 2.7 for all of these projects.

I highly recommend the Fundamentals of Computing specialization to anybody who wants a serious, challenging, and extremely fun introduction to programming. When I decided to teach myself Python, I considered other courses on Coursera that have a much shorter time commitment. However, I'm incredibly glad I listened to my gut and chose Rice University's specialization, which takes on average 6-9 months to complete. Although it took me nearly a year to complete all of the courses while working full-time, I feel like I learned a ton not only about Python, but about programming and computer science in general. In fact, this specialization inspired me to pursue a new career in software development!

The material in this specializaton is broken out into three two-course sections of increasing complexity.

  1. Introduction to Interactive Programming in Python
  2. Principles of Computing
  3. Algorithmic Thinking