
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore the basics of C# by building a Windows Forms application in Visual Studio, learning to select language templates and name projects.
Learn how variables are the foundational data type: a store location with a symbolic name that holds a value, can be assigned and change at runtime.
Explore data types and value types in C# basics, including bool, int, char, float, double, and string, and distinguish assignment from equality in variables.
Explore how variables store and update information and learn arithmetic, logic, and relational operators, including modulo and string concatenation, to produce boolean results in C#.
Learn how if statements drive conditional logic and selection structures in C#, using true/false booleans, if-else and else if, with simple examples like calculators.
Explore loops in programming by using while and do-while constructs to repeat statements, control flow with conditions like i < 5, and avoid endless loops.
Learn how arrays store a fixed-size collection of same-type elements, access them with 0-based indices, and declare, initialize, assign, and print their values in C.
Learn how two-dimensional and three-dimensional arrays organize data with indices and sizes to store students across classes and schools.
Explore multidimensional arrays in C#, using two-dimensional arrays with rows and columns, zero-based indices, and a rating matrix to compute the average rating per reviewer.
Explore functions as reusable code blocks with inputs and outputs, learn signatures, return types, parameters, and calling examples like max and hello world in C#.
Master file input and output by reading from and writing to files, using read-only, write-only, read-write, and append modes. See practical examples in C, C++, Java, and Python.
Object-oriented programming centers on objects with data attributes and behavior via methods. Objects interact through these methods to form modular, reusable designs expressed as classes and inheritance.
Explore the fundamentals of objects and classes in object oriented programming, including definitions, data members, member functions, and the state that distinguishes each object.
Explore methods and their five terms: class variables, instance variables, member variables, class methods, and instance methods, showing how they belong to the class or an object.
Explore encapsulation and data hiding in object-oriented programming, including access modifiers like private, public, and protected, and how these concepts bind data and behavior while guarding internal data.
Explore message passing in c# where a method call is dispatched by the receiving object through dynamic dispatch, enabling unidirectional communication and interactions between objects via class methods.
Explore inheritance in object-oriented programming, showing how base classes provide data and methods to derived subclasses, and learn five types of inheritance: single, multiple, multilevel, hierarchical, and hybrid inheritance.
Explore polymorphism, enabling code to treat parent and descendant objects uniformly. See circle and square implement draw and area differently under a shared interface, while cat and dog express sound.
Explore generalization and specification in object-oriented design, transforming common subclass traits into a superclass and creating specialized subclasses, with emphasis on is-a relationships and team coding considerations.
Defines association as the relationship between objects of one or more classes, links as instances, and shows one-to-one, one-to-many, and many-to-many cardinalities with examples.
Create your first C# windows form project in Visual Studio, configure a button with text and font, run it, and wire a click event toward a hello world example.
Finish a first C# Windows Forms project by adding a button that shows a Hello world message box on click, fix compile errors, and customize the button color to blue.
Develop a quiz game in C# by generating random arithmetic problems, timing responses with a timer, and controlling flow with false statements while practicing the Random class.
Design a Windows Forms math quiz game in Visual Studio by building a form, configuring properties, and adding labels, numeric updown controls, and a start button for addition and subtraction.
Add and configure a start button in a C# app, apply camelCase naming conventions for controls, set text and font, enable auto-resize, and arrange tab order for gameplay.
Start coding by creating a randomiser object to generate two random numbers. Store them in left and right labels and convert integers to strings for display, enabling a quiz timer.
Create a countdown timer in a Windows Forms app by using a timer control, updating the time left label every second, and signaling time up with a message box.
Create a private boolean method to verify the answer by comparing the value to the control, returning true if equal; use it with timer to show a message when correct.
Write subtraction problem in a C# quiz, naming variables clearly, generating random values with randomiser.next, preventing negative results, and validating with a logical and operator; previews multiplication and division next.
Code multiplication and division problems in a C# quiz app by generating random values, wiring labels, and using the asterisk for multiply and the division sign.
Learn C# programming through foundational lessons and a math quiz game project.
The course combines explanations of core programming ideas with a project that introduces a game interface, countdown timer and answer-checking logic. Later sections introduce threading concepts and SQL. Recorded tools and APIs may differ from current .NET versions.
What you will learn
Study types, variables, conditions, loops, arrays, functions, file input/output and object-oriented concepts. Follow the quiz project through design and arithmetic questions, then explore the additional programming and database lessons.
Put the ideas into practice
The new quiz-design lab focuses on reliable scoring and repeatable checks. Define what happens when a user starts, answers, runs out of time or restarts. Use a simple state table to find inconsistent behavior before extending the game.
Work through the lessons at your own pace. Pause demonstrations to reproduce the examples, then change one input and predict the result before running the code or checking your answer. Keep a short learning journal containing the question, your attempted solution, the result and the reason for any correction. This helps you identify concepts to revisit instead of simply repeating a lesson.
The course is intended as a structured learning resource. Check the curriculum and prerequisites to decide whether its scope fits your goals. Recorded software interfaces, installation steps and third-party services may have changed since filming. Consult current provider documentation when setting up tools, and use a small local practice environment for experiments.
By the end of your study, aim to explain the central ideas in your own words, complete the practice activities and identify where you need further learning. Progress depends on the time you spend applying and reviewing the material. No particular job outcome, examination result or speed of mastery is guaranteed.