We may earn an affiliate commission when you visit our partners.
Course image
Pavol Almasi

C# is an excellent programming language. It’s part of the .Net family of languages, and as such, it allows you to program some truly amazing solutions. So, congratulations on choosing to learn this amazing language. :-)

As it is common among beginner programmers, the enthusiasm to learn often is not enough to make the leap from beginner to intermediate. The bad news is: code fear is real, and it hinders, or even stops your progress.The good news is: you can learn to eliminate it. And all it takes is a little practice and determination. And that’s where this course will help you greatly.

Read more

C# is an excellent programming language. It’s part of the .Net family of languages, and as such, it allows you to program some truly amazing solutions. So, congratulations on choosing to learn this amazing language. :-)

As it is common among beginner programmers, the enthusiasm to learn often is not enough to make the leap from beginner to intermediate. The bad news is: code fear is real, and it hinders, or even stops your progress.The good news is: you can learn to eliminate it. And all it takes is a little practice and determination. And that’s where this course will help you greatly.

The course goes over several C# programming exercises. I show you how to put the theory you learned into practice by showing you how to solve each exercise and walking you through all the Why’s and How’s.

In the process, you will learn how to translate the project requirements into a working code. You will learn to use many different programming concepts, such as Conditional Statements, Loops, Arrays, Multi-dimensional arrays, OOP… and pick the right one for your solution. But above all, you will learn to think like a programmer.

This course is all about practice. Therefore, to benefit from this course, you need to be an active student. It doesn't matter if you are self-taught or attend a programming course. What matters is the time and effort you are willing to put into learning and practicing your skills.

There are no lectures in this course. However, I do my best to explain what I am trying to accomplish with each line of code, and touch on common pitfalls, too.

This is a course for beginner to intermediate C# programmers who need to put the concepts and theory they learned into practice and for people who prefer to learn by doing. This is NOT a course for absolute beginner.

If that's you, then let's start coding.

Enroll now

What's inside

Learning objectives

  • Practice and understand loops, arrays, recursion, oop and more
  • Code beginner and intermediate projects using c#
  • Become an intermediate programmer by understanding the how and why of each line in your program
  • Think like a programmer

Syllabus

Introduction

Detailed description of the course and each exercise in it.

Comparing solutions to calculate factorial using loops and solutions using recursion
Read more

Calculating factorial using loops only

Recursive solution to the factorial calculation

Classic job interview exercise - loop solution

Recursive solution to the classic interview exrcise FizzBuzz

Displaying Fibonacci sequence with 2 different loops.

Calculating Fibonacci sequence of prime numbers using recursive approach

Classic recursive puzzle Tower of Hanoi

Getting prime numbers using Sieve of Eratosthenes algorithm

Finishing our prime numbers Sieve of Eratosthenes algorithm

Analysis of the Lo Shu Magic Square problem and choosing our approach to solve the problem

Finishing and testing our algorithm for Lo Shu Magic Square

Working with random numbers to simulate dice - analysing the problem

Solution to have the Random class work correctly

Description and Analysis of Game of Craps

Coding our classes for Game Of Craps

Finishing classes for the game

Collecting statistics for the game

Finishing the game and testing the output and statistics

Analysis of the Turtle Graphics problem and starting our classes

Creating Instructions and Messages classes

We continue creating our classes - Directions class and the Pen class

We continue creating our classes - Turtle class

Creating Game class and main game loop

Finishing the coding and testing the program

Analysis of the problem and starting to code our classes

Creating abstract Runner class

Creating Tortoise class and making working with inheritance

Creating Hare class and making working with inheritance

Running the race and expanding the classes by adding another runner

Finishing and testing the program

Analysis of the problem and choosing our strategy

Creating Board class

Creating Knight class and coding the brute force algorithm

Wiring the classes together and testing the program

Creating Run class, coding logic to randomly position queen on a row and column

Coding logic to validate position of the queens on an upper board diagonal

Coding logic to validate position of the queens on an lower board diagonal

Finishing logic to validate diagonal positions of the queens

Finishing and testing our solution

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides hands-on practice with loops, arrays, recursion, and OOP, reinforcing fundamental programming concepts
Focuses on translating project requirements into working code, a crucial skill for software development
Emphasizes learning by doing through coding exercises, which is effective for solidifying understanding
Requires active participation and effort, which may not suit all learning styles
Assumes some prior knowledge of C#, so absolute beginners may find it challenging
Explores classic problems like Tower of Hanoi and Sieve of Eratosthenes, which are useful for understanding algorithms

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

C# practice through puzzles & projects

According to learners, this course offers a hands-on approach to learning C# by tackling a variety of logical puzzles, games, and algorithms. Many students found the practical projects to be invaluable for moving beyond theoretical knowledge and developing problem-solving skills, stating that learning by doing these exercises solidified their understanding. The step-by-step guidance through coding solutions was often praised. However, a consistent theme across reviews is that the course is definitely not for absolute beginners and assumes some prior C# knowledge. Some learners felt the explanations could sometimes lack depth on the 'why' behind certain solutions, making it challenging if foundational understanding is weak. Overall, it's seen as a largely positive resource for those looking to practice and apply their existing C# skills.
Good mix of challenges.
"I enjoyed the variety of puzzles, games, and algorithms covered."
"The diverse projects kept the course interesting and engaging."
"Good mix of different problem types to practice C# on."
"From FizzBuzz to N-Queens, the project range was impressive."
Clear walkthroughs of code solutions.
"The instructor explains the code line by line, which was very helpful."
"I liked the step-by-step approach to building each project."
"Solutions are explained clearly as they are written."
"Easy to follow along with the instructor's coding process."
Excellent for applying theory to practice.
"The projects in this course are fantastic for hands-on practice."
"I learned so much by actually coding these puzzles and games."
"This course really helped me bridge the gap between C# theory and practical application."
"Doing the projects step-by-step was the best way for me to learn and solidify concepts."
Some explanations could be deeper.
"Sometimes I wished for more explanation on the *why* behind certain coding choices."
"While the code is explained line-by-line, the reasoning isn't always clear."
"Could use more theoretical background on the algorithms presented."
"Found it difficult to grasp the logic behind some complex solutions."
Requires existing C# fundamentals.
"This course is NOT for absolute beginners in C#, you need some prior knowledge."
"Definitely requires a basic understanding of C# syntax and concepts."
"If you are a complete novice, you will likely struggle with the pace and content."
"Assumes you already know the basics and want to practice applying them."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in C# Logical Puzzles Games & Algorithm Projects (step by step) with these activities:
Review C# Fundamentals
Solidify your understanding of C# fundamentals before diving into the course's exercises. This will make it easier to grasp the more complex concepts and problem-solving techniques.
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple programs using loops and conditional statements.
  • Familiarize yourself with object-oriented programming concepts in C#.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Supplement your learning with a comprehensive guide to C# and .NET Core. This book will provide a deeper understanding of the language and its capabilities.
Show steps
  • Read the chapters covering C# fundamentals and object-oriented programming.
  • Explore the sections on .NET Core and cross-platform development.
  • Refer to the book as a reference while working through the course exercises.
Solve C# Coding Challenges on HackerRank
Sharpen your C# coding skills by tackling coding challenges on HackerRank. This will help you apply the concepts learned in the course to solve real-world problems.
Show steps
  • Create an account on HackerRank.
  • Search for C# coding challenges.
  • Solve at least three coding challenges per week.
  • Analyze your solutions and learn from your mistakes.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Write a Blog Post on a C# Algorithm
Deepen your understanding of a specific C# algorithm by writing a blog post explaining its implementation and use cases. This will help you articulate your knowledge and share it with others.
Show steps
  • Choose a C# algorithm from the course or elsewhere.
  • Research the algorithm and its applications.
  • Write a clear and concise blog post explaining the algorithm.
  • Include code examples and diagrams to illustrate the algorithm.
  • Publish your blog post online.
Develop a Simple C# Game
Apply your C# skills by developing a simple game, such as a number guessing game or a text-based adventure. This will solidify your understanding of game development concepts and C# programming.
Show steps
  • Choose a simple game to develop.
  • Plan the game's features and functionality.
  • Write the C# code for the game.
  • Test and debug the game.
  • Share your game with others.
Help Other Students on C# Forums
Reinforce your understanding of C# by helping other students on online forums. Explaining concepts to others will solidify your own knowledge and identify any gaps in your understanding.
Show steps
  • Find a C# forum or online community.
  • Browse the forum for questions related to the course topics.
  • Provide helpful and accurate answers to the questions.
  • Engage in discussions and share your knowledge.
Review 'CLR via C#' by Jeffrey Richter'
Gain a deeper understanding of the .NET runtime environment. This book will provide insights into how C# code is executed and managed.
Show steps
  • Read the chapters covering memory management and garbage collection.
  • Explore the sections on threading and synchronization.
  • Refer to the book to understand the underlying mechanisms of C# code.

Career center

Learners who complete C# Logical Puzzles Games & Algorithm Projects (step by step) will develop knowledge and skills that may be useful to these careers:
Junior Programmer
A junior programmer writes and maintains code under the guidance of senior developers. This C# course is valuable by providing hands-on practice with C# programming exercises. The course emphasizes translating project requirements into working code and teaches you to use programming concepts like conditional statements, loops, and arrays, all of which are essential for a junior programmer. The course's focus on understanding the how and why of each line of code is also key. By working through the exercises and actively practicing, you build confidence and competence in coding.
Software Developer
A software developer designs, develops, and tests software applications. This C# course helps you translate project requirements into working code, a crucial skill for any software developer. The course's emphasis on practical exercises, such as simulating dice rolls and turtle movements using C#, is particularly relevant. By working through these exercises, you refine your problem-solving abilities and learn to think like a programmer, making the transition into software development smoother. The course's coverage of conditional statements, loops, arrays, and object oriented programming helps build a foundation of development skills.
Software Engineer
A software engineer applies engineering principles to the design, development, maintenance, testing, and evaluation of computer software. This C# course can help develop the hands-on coding expertise they need. The course's emphasis on translating project requirements into working code through exercises is valuable. Also, the focus on various programming concepts, such as conditional statements, loops, and object oriented programming, provides a concrete foundation for software engineering tasks. By learning to think like a programmer through practice, you become equipped to handle real-world software development challenges.
Application Developer
An application developer designs, builds, and maintains software applications for computers and mobile devices. This C# course helps you gain experience translating project requirements into working code. The course emphasizes working with different programming concepts such as conditional statements, loops, and arrays, which are all critical tools for application developers. The focus on practice is valuable for application developers who need to solve problems and create efficient and reliable applications, whether for desktop or mobile environments. The use of object oriented programming in the course is also a boon.
Game Developer
A game developer is responsible for creating video games for various platforms. This C# course is directly aligned with game development, since it covers game simulations and algorithm projects. The course focuses on hands-on practice, which is essential for game developers who need to quickly prototype and iterate on game mechanics. By working through simulations of games like Craps and Turtle Graphics, you gain practical experience in implementing game logic and user interfaces. Further, the practice solving logical puzzles helps foster problem solving skills, which are key to success as a game developer.
Algorithm Engineer
An algorithm engineer designs and implements algorithms to solve complex problems. This C# course may be particularly useful, since it covers algorithms for problems like the Tower of Hanoi, Lo Shu Magic Square, and finding prime numbers. The course emphasizes the how and why of each line of code, encouraging you to think critically about algorithm efficiency and correctness. The course's focus on both iterative and recursive solutions would be beneficial. By actively practicing and understanding these algorithms, you build skills that are directly applicable to real-world engineering challenges.
Full-Stack Developer
A full stack developer works on both the front-end and back-end components of web applications. This C# course helps you improve skills in translating project requirements into working code. By practicing with conditional statements, loops, and arrays, you are better equipped to tackle both client side and server side development challenges. The course's coverage of game simulations may also be helpful for full stack developers looking to develop more engaging web applications. Overall, this course is a strong foundation for a developer.
Test Automation Engineer
A test automation engineer designs, develops, and executes automated tests to ensure software quality. This C# course may be helpful, because the practice of writing code to solve problems and implement algorithms helps to test the developed code. The course's focus on various programming concepts, such as conditional statements, loops, and arrays, are also useful given the need to build automated test suites. This course’s emphasis on understanding the how and why of each line of code can help improve the reliability and accuracy of test scripts.
Backend Developer
A backend developer focuses on the server-side logic and databases that power applications. You may find this course useful in solidifying your understanding of fundamental programming concepts. The course has a focus on translating project requirements into working code using C#. The course's focus on practice also provides a strong foundation for backend development. You may find the exercise involving writing a simulation of a casino game of Craps helpful, since it involves keeping track of statistics.
Software Architect
Software architects are responsible for making high-level design choices and setting technical standards, including software coding standards, tools, and platforms. Although software architects typically require a master's degree, this C# course may be useful for better understanding programming concepts. The course's focus on translating project requirements into working code may lead to more informed architectural decisions. The course's coverage of algorithms such as the algorithm for Lo Shu Magic Square may be useful for managing other programmers.
Technology Consultant
Technology consultants provide expert advice to organizations on how to best use technology to achieve their goals. Technology consultants may find that this C# course helps them to understand the fundamentals of software programming. The course emphasizes translating project requirements into working code, which improves analytical skills. Consultants may be able to suggest solutions to companies that are more feasible after taking this course. This course can give a consultant a well rounded background.
IT Support Specialist
An IT support specialist provides technical assistance to computer users. This C# course may be helpful in understanding the underlying logic of software applications. The course provides opportunities to think like a programmer. It could also help when communicating with software developers and understanding technical documentation. An IT support specialist might be able to better troubleshoot software issues after gaining a better appreciation of the programming development process. You might be able to automate some solutions.
Data Analyst
A data analyst examines data to draw conclusions and make recommendations for business decisions. This C# course may be helpful as it covers algorithms like the Sieve of Eratosthenes algorithm, and teaches the student how to use loops, arrays, and multidimensional arrays. You may find the simulation of casino game of Craps helpful since it involves collecting statistics. Additionally, it may be necessary to work with software engineers to debug code.
Technical Project Manager
A technical project manager oversees software development projects, ensuring they are completed on time and within budget. Even though project managers typically do not code themselves, this C# course may be helpful for understanding the technical aspects of software development. The course emphasizes translating project requirements into working code. By understanding the programming concepts, such as conditional statements, loops, and arrays, the project manager is positioned to better manage software developers.
Database Administrator
A database administrator is someone that maintains and secures databases. This C# course may be helpful in understanding how databases interact with applications. You may find yourself better equipped to understand the needs of software developers. Furthermore, you may better understand software application logs. You may be better able to predict the ways in which applications will interact with a database.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in C# Logical Puzzles Games & Algorithm Projects (step by step).
Provides a comprehensive guide to C# and .NET Core. It covers the fundamentals of the language as well as more advanced topics such as cross-platform development. It useful reference for understanding the underlying concepts used in the course's projects and exercises. This book is commonly used as a textbook at academic institutions.
Provides an in-depth look at the Common Language Runtime (CLR), the foundation of the .NET Framework. Understanding the CLR can help you write more efficient and robust C# code. While not strictly necessary for this course, it provides valuable background knowledge for advanced C# developers. This book is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser