Home / Courses / Software Development — Advanced

Professional Software Development · 2nd Edition

Software Development — Advanced

For students ready to go deeper — design patterns, how the internet really works, DNS and version control — bridging the gap between "can write code" and "builds software well".

Edition
2nd · Advanced
Dates
24 Sep – 17 Dec 2025
Format
Weekly · 10 sessions
Partner
Townley Grammar School

Overview

Our first Advanced cohort, for students who already had the fundamentals and wanted to write software that lasts. A running card-game project carried the engineering ideas — design patterns, classes and clean structure — while later sessions opened up how the internet, DNS and version control actually work.

Session by session

  1. 1

    Course intro & skills assessment

    Laid out the curriculum — networking, HTML/CSS, Blazor and deployment, and object-oriented programming for managing complexity — and ran an assessment across a console app, a styled web page and a Blazor app, previewing the Blazor concepts to come.

  2. 2

    The card-game project begins

    Introduced the running card-game project: a Blazor app showing multiple styled cards, extended so clicking a card selects/de-selects it and reveals more — with the war-game rule that the Joker beats everything.

  3. 3

    Two-player card selection

    Extended the project to two players, each able to select a card independently without affecting the other — reinforcing Blazor binding, events and conditionals.

  4. 4

    Engineering & the Observer pattern

    Contrasted software development with software engineering (a shed vs a skyscraper) and the role of patterns and anti-patterns. Taught the Observer pattern — a one-to-many dependency implemented with C# delegates and events — and re-modelled the cards as a design study (a GameCard type, subject and observer views).

  5. 5

    Observer pattern revision & design

    Revised the Observer pattern and events in Blazor, walking back through the card exercises as a design exercise, with a deployed version shared on a live Azure static web URL.

  6. 6

    Classes, working memory & playing cards

    Used code-tracing puzzles and connected programming to human cognition (working memory holds only a few "chunks"). Introduced classes as a way to keep data and behaviour together, and added a "Play" round where both cards are compared and the winner takes the points.

  7. 8

    How the internet & networks work

    Explained networking through streaming a video — bits, servers, data centres and cables — defined protocols, and covered addressing: IPv4 vs IPv6, NAT, DNS and ICANN, ending with buying a domain and serving a page. (There was no session 7 — a deck was repeated.)

  8. 9

    Networks recap & DNS in practice

    Recapped networking with code-tracing exercises, then configured DNS for real — walking through an actual zone file (NS, A, CNAME, MX and TXT records) including GitHub Pages hosting and email configuration.

  9. 10

    Version control & Git/GitHub

    Taught version control: commits as snapshots, the collaboration problem, and the evolution from file-locking to merging to decentralised Git. Positioned Git and hosted services (GitHub, Azure DevOps), and walked the clone/commit/push/pull workflow.

  10. 11

    Festive challenge: Secret Santa app

    Recapped Git, then set a festive build: a "North Pole Secret Santa Coordinator" web app with name entry and random pairing — framed as a friendly competition between two teams.

Skills developed

← Back to all courses