C# Fundamentals
Learn C# from scratch in 10 weeks. Build real programs with .NET 10 and Visual Studio 2026: variables, loops, collections, OOP, error handling, LINQ, JSON and unit testing. Finish with a capstone app you can show employers.
Welcome to the course
What is a Program?
Meet C# and .NET
How C# Code Runs: Compiler, IL and the Runtime
Installing Visual Studio 2026 and .NET 10
Creating Your First Console Project
Hello, World: Your First C# Program
Anatomy of a C# Program
Using the dotnet CLI
File-Based Apps in .NET 10
Reading Your First Compiler Errors
Lab 1: Hello, World, Your Way
Variables: Labelled Boxes for Values
The Built-in Data Types
Value Types vs Reference Types
var and const
Working with Strings
Console Input and Output
Naming Rules and Conventions
Lab 2: Profile Card
Chapter Recap
Choosing the Right Decision Tool
Lab 2: Cinema Ticket Pricer
Chapter Recap
Introduction
Why Loops?
The for Loop
The while and do-while Loops
The foreach Loop
The break and continue Jump Statements
Nested Loops
Infinite Loops and How to Stop Them
Debugging in Visual Studio 2026: Breakpoints and Stepping
Inspecting Variables While Debugging
Lab 1: Number Guessing Game
Why Methods?
Anatomy of a Method
Calling Methods and Returning Values
Method Overloading
Optional and Named Arguments
ref, out and in Parameters
Variable Scope
Expression-Bodied Methods and XML Doc Comments
Lab 2: Library Manager Menu (Capstone Start)
Chapter Recap
Introduction
What is an Array?
Creating Arrays
Looping Through Arrays
IndexOutOfRangeException: Predict the Output
Index from End and Ranges
Sorting, Searching and 2D Arrays
The String Toolkit
Immutable Strings and StringBuilder
Format Specifiers
Lab 1: Word Stats
Why List?
List in Action
Dictionary
Using Dictionaries Safely with TryGetValue
HashSet
Queue and Stack
Choosing the Right Collection
Lab 2: Library Manager Gets Storage
Chapter Recap
Introduction
Why Objects?
Defining a Class
Properties
Read-Only and Computed Properties
The field Keyword (New in C# 14)
Constructors
Object Initialisers and Primary Constructors
Static vs Instance Members
Methods on Objects
Lab 1: BankAccount
Encapsulation
Access Modifiers
Validation: Never Let a Bad Object Exist
Overriding ToString
Object Equality: Predict the Output
Records
Structs
Class, Record or Struct?
Lab 2: Library Manager Gets Objects
Chapter Recap
Introduction
What is Inheritance?
Inheritance Syntax and Base Constructors
protected Members
virtual and override
Forgetting override: Predict the Output
Calling the Base Version
Abstract Classes
sealed Classes and the object Base Class
Composition vs Inheritance
Lab 1: Shapes
What Is an Interface?
Defining and Implementing Interfaces
Implementing Multiple Interfaces
Polymorphism
Built-in Interfaces: IComparable and IEnumerable
Type Checks with is and as
Abstract Class or Interface?
Lab 2: Library Manager Loans
Chapter Recap