Beginning Object-oriented Programming with C#

Learn OOP fundamentals applied to the C# programming language

In this course, you will learn the basic principles of object-oriented programming, and then learn how to apply those principles to construct an operational and correct code using the C# programming language and .NET. As the course progresses, you will learn such programming concepts as objects, method resolution, polymorphism, object composition, class inheritance, object substitution, etc., but also the basic principles of object-oriented design and even project management, such as abstraction, dependency injection, open-closed principle, tell don’t ask principle, the principles of agile software development and many more.

What you’ll learn

  • Understand why C# is organized the way it is.
  • Learn how to step from procedural to proper object-oriented design.
  • Construct larger classes out of smaller ones.
  • Combine behavior to construct complex features.

Course Content

  • The Dawn of C# –> 6 lectures • 23min.
  • Inventing Objects –> 6 lectures • 24min.
  • Introducing C# Language Syntax –> 9 lectures • 40min.
  • Inventing Object-oriented Programming –> 8 lectures • 40min.
  • Introducing Visual Studio Projects and Solutions –> 6 lectures • 40min.
  • Designing an Object Model –> 10 lectures • 40min.
  • Applying the “Tell, Don’t Ask” Principle to Objects –> 10 lectures • 41min.
  • Improving on Fundamental Principles of Object-oriented Design –> 9 lectures • 40min.
  • Implementing Polymorphic Classes –> 9 lectures • 40min.
  • Reiterating Principles of Object-oriented Design –> 8 lectures • 39min.
  • Introducing Collections and Loops –> 9 lectures • 43min.

Beginning Object-oriented Programming with C#

Requirements

In this course, you will learn the basic principles of object-oriented programming, and then learn how to apply those principles to construct an operational and correct code using the C# programming language and .NET. As the course progresses, you will learn such programming concepts as objects, method resolution, polymorphism, object composition, class inheritance, object substitution, etc., but also the basic principles of object-oriented design and even project management, such as abstraction, dependency injection, open-closed principle, tell don’t ask principle, the principles of agile software development and many more.

After completing this course, you will be qualified to continue learning the principles of object-oriented design, and to start developing applications that will be modeling different business domains.

This course differs from other similar courses in that it first devises the C# programming language from scratch, and the .NET Runtime that makes the object-oriented code run. Only after completing this task shall we step on to using the programming concepts to implement customer’s requirements in C#.

The reason for such an extreme experiment is to teach the programmers that any object-oriented language is only a tool, which relies on a small set of operations that are already implemented for us – such as silently passing the this reference or resolving function addresses from the object reference at run time. I find great danger in writing code without understanding what happens when a piece of object-oriented code is taken for execution.

Get Tutorial