English
Object-oriented programming in C# I
Object-oriented programming is the main approach to developing modern software. This course develops an object-oriented way of thinking through C# and the .NET platform: from your first program to structured, understandable, tested code. These skills provide a foundation for learning other programming languages and technologies.
This course explores the object-oriented programming language C#, a powerful, popular, and versatile tool for developing software: desktop and mobile applications, website backends, computer games, and the Internet of Things (IoT). The knowledge gained in this course will help you learn similar programming languages and technologies (Java, JavaScript, Kotlin, C++, and others).
Course syllabus
C# fundamentals
- The .NET platform, development environment, and C# program structure
- Data types, variables, operators, and expressions
- Control flow: branching and loops
- Arrays and strings
- Methods: parameters, overloading, and recursion
- Debugging and exception handling
Object-oriented programming
- Classes and objects: fields, properties, and constructors
- Encapsulation, access modifiers, and static class members
- Inheritance and polymorphism
- Abstract classes and interfaces
- Structures, records, enumerations, and tuples
- Operator overloading, indexers, and extension methods
Advanced C# and .NET features
- Generics and .NET collections
- Delegates, lambda expressions, and events
- Language-Integrated Query (LINQ)
- Working with files, streams, and JSON data serialization
- SOLID principles and design patterns
- Unit testing and code refactoring
Required software
| Software | Purpose | Topic |
|---|---|---|
| Visual Studio 2026 Community with the .NET desktop development workload (installs the .NET 10 SDK) | Development environment and the .NET platform | 1 |
| Alternative: the .NET 10 SDK with Visual Studio Code and the C# Dev Kit extension, or JetBrains Rider | Another development environment | 1 |
NuGet libraries (for example, MSTest in topic 18) are added to projects as you go and need no separate install.
How a course is organized
A course is divided into topics. Each topic corresponds to one lecture and one lab assignment and has four parts:
- Lecture. The theory is split into chapters in reading order, with code examples, diagrams and program output.
- Practice. Worked examples with complete code that show how to do the lab assignment.
- Tasks. 30 variants of the lab assignment, each at three levels of difficulty: 1 – initial, 2 – basic, 3 – advanced. Every task is self-contained, so you can start right away at the level you choose.
- Summary. The topic’s conclusions, self-check questions and useful links.
To prepare for assessment, every course also has Review questions, Review tasks, Useful links and Recommended reading.
How to study
- Open your course and install the development environment named on the course page. The first topic of each course explains how, except “Object-oriented programming in C# II”, which uses the environment from the “Object-oriented programming in C# I” course.
- Read the lecture chapters in order. Type in and run the examples yourself rather than just reading them.
- On the Practice page, first try to solve the problem yourself, then compare your solution with the worked one.
- On the Tasks page, find your variant (your teacher gives you its number) and choose a level of difficulty.
- Check yourself with the questions on the Summary page, and only then move on to the next topic.
- Before the exam, go over the Review questions and solve a few Review tasks.
Navigation
The topics and their chapters are listed in the menu on the left (on a phone, open it with the “Menu” button). The “Next page” button at the bottom of every page follows the course program, and the “On this page” list on the right takes you to a section.
Course materials
- Review questions — 100 questions covering the course topics for self-assessment and exam preparation
- Review tasks — practical tasks organized by topic
- Useful links — documentation and online resources
- Recommended reading — textbooks and guides