Browse by module
Every post on this blog belongs to one series, and each series follows a module of the BSc Computer Science from Goldsmiths, University of London on Coursera. Pick your module below to see its posts, or open the series page to read them in order.
These posts are my own supplementary material, not official course content. Posts that help with several modules are listed under the module they were written for: for example, Setting up Visual Studio Code and Mastering JavaScript Debugging with Chrome DevTools are useful in every module.
Introduction to Programming (CM1005 & CM1010)
JavaScript from the ground up: how values, objects and scope work, modern syntax, and debugging. See the series page
- Pass by value vs Pass by reference
- Shallow vs Deep Copy
- JavaScript this keyword
- Why use let and const rather than var
- JavaScript arrow functions
- JavaScript Rest and Spread Operators
- JavaScript Objects
- Mastering JavaScript Debugging with Chrome DevTools
- Understanding JavaScript Scope: A Beginner's Guide to Variable Visibility
Web Development (CM1040)
Setting up your tools, how the web works, HTML, CSS and git. See the series page
- Web Development - CM1040 (module guide)
- Setting up Visual Studio Code
- Introduction to Web Development
- A Quick Introduction to git
- The Power of Semantic HTML
- Cascading Style Sheets - specificity
- Tailwind CSS
Graphics Programming (CM2030)
Coordinates and transformations in p5.js. See the series page
Databases and Advanced Data Techniques (CM3010)
Relational design and normalisation, SQL with MySQL, and XML. See the series page
- Databases and Advanced Data Techniques (module guide)
- The importance of data sources
- Mastering Database Normalisation
- Install MySQL on OSX Using Homebrew
- Exploring the Cosmos: Building and Querying a Planetary Database with MySQL
- XML: Documents with semantics
- Transforming XML: XML Pipelines
Advanced Web Development (CM3035)
Django from set-up to REST APIs, debugging and Docker. See the series page
- Getting started with Django 5.2 LTS using uv (start here)
- Database Normalisation
- Debugging Django Applications
- Django Debug Toolbar
- Django, Docker, and PostgreSQL
- RESTful APIs with Django, part 1: Manual endpoint construction
- RESTful APIs with Django, part 2: Building RESTful endpoints from Django models
- RESTful APIs with Django, part 3: Using model serializers
- Getting started with Django 3.2 (2021, pipenv) (older version, matches the course videos)
Module guides
An overview of each module, with the posts that help most. See the series page
- Introduction to Programming I - CM1005
- Introduction to Programming II - CM1010
- Graphics Programming - CM2030
- Advanced Web Development - CM3035
The CM1040 and CM3010 guides are listed under their own modules above.
Book Recommendations
Books I recommend for these modules. See the series page
New here? The Start here page tells you who I am and how this blog is organised.

