Professional Software Development · 1st Edition
A from-scratch grounding in real software development: from understanding how code runs, through the fundamentals of C#, to building genuinely interactive web applications with Blazor.
The launch of our second flagship programme: not "coding club", but professional software development for complete beginners. Students built a clear mental model of how software works, learned the fundamentals of C# in Visual Studio, and finished by building dynamic web pages with HTML, CSS and Blazor — the real toolset of a working developer.
Defined software and hardware (CPU, RAM, transistors), introduced instruction set architectures as the hardware–software interface, and showed how tedious raw machine code is. Covered abstraction, compilers and interpreters, with a "hello world" C# warm-up and a spreadsheet used as an "interpreter".
Introduced variables and control structures and the idea of an IDE, then built a real C# console program that stores values, adds them and prints results — adding user input with Console.ReadLine and stressing the user's perspective.
Introduced braces and if/else conditionals and the role of indentation, clarified assignment (=) versus equality (==) and the modulus operator, with an exercise testing whether numbers are even/odd or in range, shown in colour.
Introduced the while loop alongside operators like % and i++, with exercises listing numbers in a range and a number's divisors, culminating in a name-and-birth-year "house-sorting" game combining the ideas.
Introduced functions as reusable blocks following the Don't-Repeat-Yourself principle, refactoring earlier programs to remove duplication, building input-reading helpers and validating input with int.TryParse.
Set a Roman-numeral challenge and recapped the fundamentals, then introduced classes as a way to bundle data and behaviour for reuse — illustrated with a Dog class and a Bark method.
Introduced HTML as a tag-based language, the document structure, attributes and inline CSS styling, and how a page combines HTML, CSS and JavaScript — using browser Dev Tools to inspect and modify live pages. (This topic ran across two weeks — sessions 7 and 8.)
Contrasted static HTML with interactive pages and introduced Blazor for generating HTML with C#. Students created a Blazor WebAssembly app in Visual Studio, ran it, and explored the Razor-based Home and Counter pages.
Broke down a Blazor page, explaining how @ switches from HTML to C# and how @onclick wires events to C# functions, through "spot the error" and "what does it do" exercises.
Focused on data binding with @bind-value on inputs and reading mouse events with @onmousemove, combining live mouse-coordinate display with a number input that drives font size.
Focused on embedding C# in Razor — @if/else conditional rendering and switching modes between markup and code — with exercises computing and displaying results inline and combining numeric inputs.