Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Charlie Chiarelli

Students will learn to create their own computer programs and video games using the C# programming language. No prior programming experience is assumed. This is a course for We will introduce all the required programming skills from the ground up. This programming course is meant for We cover C# syntax but more importantly we introduce the You get paid for solving problems everything else is just a technicality.

Read more

Students will learn to create their own computer programs and video games using the C# programming language. No prior programming experience is assumed. This is a course for We will introduce all the required programming skills from the ground up. This programming course is meant for We cover C# syntax but more importantly we introduce the You get paid for solving problems everything else is just a technicality.

Our focus will be working with Visual Studio on WINDOWS machines . All coding examples are fully compatible with the LATEST Visual Studio Edition (As of 2024 Visual Studio Community 2022) for This type of learning process - which is considered the standard approach is great for communicating the fundamentals. It allows you to focus on the most important and basic programming concepts you will need to understand, and is often presented through the output of a static, text-based console window. However, learning a language in this console vacuum can also be bland and boring, and can often lead to students becoming disengaged entirely.

Students are more likely to remain engaged by learning how to build Windows applications from day one in tandem with learning the C# programming language. Therefore, my lectures are designed to keep you engaged with the process of learning C# fundamentals by presenting them through a series of lessons aimed at creating simple, Windows Form based applications. This course, by jumping right into apps with a Graphical User Interface, allows the learner to feel like they are learning concepts that produce a tangible result.

I walk you carefully through every possible feature you can imagine, and I use hundreds of existing projects you can learn from, or expand on to make your own project. It's worth sifting through a dozen mediocre Udemy courses to find a gem like this. It's pretty close to a one stop shop for taking you from knowing nothing about WinForms, to building your own whole applications.

C# is a masterpiece in language design.

  • C# doesn’t have all the associated headaches of C++, nor the drudge work of Java—but contains almost all of their advantages.

  • C# is versatile: you can write web apps, games, desktop software, iOS and Android apps, and so forth. Probably the only area where Python beats C# is AI and Data Analytics , quite possibly due to the Python libraries and the established knowledge-user-base around it.

  • In modern web development, with C# you don’t even have to write client side Javascript. Blazor is a C# framework that enables you to build interactive client side applications with only Should you need to use Javascript, Blazor also supports interoperability with JavaScript libraries.

  • In game development, using C# (Monogame engine) you can get started in your programming journey by directly writing games which is more fun than dry exercises.

This course has more hours of video instruction (18 + hours) , lectures (90+) and exercises and supplemental resources (400+) than virtually any other Introductory C# course offered on Udemy. All for one low price.

Students will be exposed to all the stages in software development and develop problem-solving skills as well as learn the syntax of the C# language.

The challenges and applications are drawn from a variety of situations in the home, school and workplace. They address a wide spectrum of interests including business, science, math, art, music, and especially

My goal is not just to show you how to program, but to help you understand what you are doing, and why you are doing it. I am online daily to respond to any problems you may encounter.

Not only do the videos show you how to become a programmer in great detail, but each time an important concept is taught, I offer you a challenge that is designed to help you really understand what you have just learned.

You will go away and complete the challenge, and then come back and see the challenge answered and explained in detail in the video, allowing you to check your results.

Here's how I will help you to succeed:

o Each lecture starts with a list of objectives and speaking notes

o Every example covered in the lecture is available for download in the resources section including the objectives/speaking notes

o Almost every lecture has a set of Practice problems with full solutions provided

o My style of writing and teaching follows the KISS principle : Keep It Super Simple.

I try to stay away from fancy computer terminology and try to teach like am speaking to a brand new user with little to no previous knowledge on the subject matter, etc. and I am always available for help, replying most times within a day.

This is NOT a static course, updates are made several times a month, with new Lectures and Challenge Problems (114 + as of Dec 2024 fully solved) added on a continual basis.

And finally please do not judge a book by it's cover don't judge the course by the title or this small description section, if you want to know exactly all the topics covered please go to:

Enroll now

What's inside

Learning objectives

  • Program fluently in c# using microsoft visual studio for windows machines
  • Understand how to create a basic windows form application ... no console apps
  • Understand the basic concepts of selection, repetition, and methods
  • Understand the intermediate concepts of object oriented programming, string handling, arrays (one, two dimensional), random numbers, graphics, and animation
  • Apply the programming skills learned to create meaningful computer app from the world of business, science , math and gaming.
  • Create business applications which simulate a computerized cash register for a cafeteria, and a sign in system for a doctors office
  • Create science applications which create charts that convert from fahrenheit to celsius
  • Create applications which track student marks and determine averages, and highest and lowest marks
  • Create applications which determine credit card eligibility for applicants based on a scoring system
  • Create applications which check the validity of a credit card using string manipulation techniques
  • Create a program that plays the card game war
  • Create a math program which displays a bar chart of sales over a period of years
  • Create a graphics program which simulates an "etch-a-sketch" drawing program
  • Create a simple object animation then use it as the basis for a car race game
  • Create a slot machine game
  • Create a falling objects game ... where you move an object around with the keyboard and catch objects falling from the sky for points
  • Create a space shooter game
  • Fully appreciate the wide range of applications that the study of computer science provides.
  • * new * extend the idea of coding and computational thinking by solving a series of advanced problems from a wide variety of disciplines.
  • Show more
  • Show less

Syllabus

At the end of this section students should have a good overview of the course and have all necessary software to follow the material

C# is a programming language developed by Microsoft. C# has power of C++ since it's derived from C and C++. It is simpler than Visual Basic. Besides that, C# is a Java like language for web programming. Microsoft says, that C# is the best language to develop its .NET Framework applications.

Read more

Here's what you need: 

Visual Studio Express 2015 or greater
                                     WinRAR
                                      Course Demos

Here is what you are going to learn... lots of practical applications.. here is a sampling

  • create a computerized cash register for a cafeteria
  • create a computerized sign in system for a doctors office
  • create a chart that converts Fahrenheit to Celsius
  • create a program to accept student marks and determine the overall class average and the highest and lowest marks
  • create a program that sorts numbers/names in order
  • create a program which determines whether a person is eligible for a credit card based on a scoring system
  • create a program that determines whether a credit card is valid or not
  • create a program that plays the card game War
  • create a program which displays a bar chart of sales over a period of years
  • create a "etch a sketch" type blackboard drawing program
  • create a simple object animation then use that as the basis for a car race game
  • create a slot machine game
  • create a falling objects game ... move an object around with the keyboard and catch objects falling from the sky for points.
  • create a space shooter game
  • ...... Now its your turn !
  • Become acquainted with the Visual Studio C# Express environment

In this Lecture we will

Create your first Windows Applications using various user interface controls

  • labels
  • textboxes
  • buttons
  • pictureboxes

In this Lecture we will

  • Become acquainted with naming conventions for the interface controls
  • Use radiobuttons in a simple application

In this Lecture we will

  • Use Scroll Bars and the NumericUpDown control
  • Use the menu control
  • Work with multiple forms

A recap of some of the concepts covered in creating your first app and using a number of the key controls like the text box , command button and picturebox.

In this Lecture we will

  • Become acquainted with the concept of computer storage
  • Use variables and data types (int,double/string)
  • Work with assignment statements
  • Create a simple program which uses assignment statementsl
  • Discuss the scope of variables

In this Lecture we will

  • Work Arithmetic operators
  • Learn about the Math class (so we can calculate square roots and powers.
  • Learn to use the modulus operator % and integer arthimetic (eg 5/2 doesn't equal 2.5)
  • Learn to cast... and know the difference between (double) 5/2 and (double) (5/2)
  • Learn to convert numbers to strings and strings to numbers
  • Create a simple Bank Savings program

In the Lecture we will

  • Learn to reference the Microsoft Visual Basic inputbox
  • Create a program which determines the average of a set of numbers
  • Apply the concepts learnt to solve a number of practical mathematical problems (see Resources)

In this Lecture we will

  • Create a practical applications "Venus Motor Sales"
  • Learn to display numbers in currency format

In this Lecture we will

  • Practice what you have learned by trying the MathAppProblem (located in resources)

This quiz recaps variables, assignment statements and mathematical programming

In this Lecture we will

  • Look at IF statement and write programs which utilize this structure.
    • Guessing numbers game
    • Ticket Sales based on age
    • Quiz Marking program
  • Look at relational operators == != > <
  • Look at Boolean operators && ||

In this Lecture we will

  • Look at a practical application of selective processing by creating a program to calculate a Gas Utility bill which uses tiered pricing.

In this Lecture we will

  • Look at one of the ways a programmer can create a program that is user-friendly.
    • To achieve this aim will will accept input via a dialog box.
  • Work through examples that obtain input using Built In and User Defined (custom) Dialogs.

In this Lecture we will

  • Look at the concept of repetition (another name for loops) and its use in practical applications.
  • Look at the use of the While Loop
  • Look at user controlled repetition
  • Look at counter controlled repetition

In this Lecture we will

  • work through counter controlled repetition problems
  • work through user controlled repetition problems
  • work through for loop problems

In this Lecture we will

  • Look at the difference between counters and accumulators
  • Create several programs which determine averages
    • using user controlled repetition with an inputbox
    • using a user controlled repetition with a custom dialog
  • Combine our knowledge of Selective and Repetitive programming to create a large scale solution to a averaging problem.

In this Lecture we will

  • Look at the Combo box control
  • Look at the List box control

A recap of "if" statements and loops (while,for) and combo boxes

Problem solving has been described as the process of finding certain information that is not known, from a set of information that is known. In other words, problem solving is not an end result but rather a process. The end result is only worthwhile if the process is followed.

Problem solving is also an activity based on logic and, as such, requires some kind of structure to be present to aid us in our quest.

In this Lecture we will

  • look at some fundamentals in the problem solving process, and we will look at a problem solving model to help us as computer programmers - the software life cycle.
  • Thoroughly understand the problem
  • Break the problem down into its component parts
  • Arrange the solution in a clear and systematic way
  • Translate the solution into a computer language

It would be unfair to ask anyone to solve problems without effective tools to help along the way. The nature of programming requires programmers to first solve the problem at hand, then create an ordered set of instructions that will teach the computer how to solve the problem. There are a variety of problem solving models that assist the programmer in the problem solving stage.

In this Lecture we will

  • look at flowcharting a diagram, using symbols and arrows, which describes the solution to a computer problem in a step by step manner.

Why do software companies keep sending you updates, patches and fixes?

Computer programs that fail are common. By fail, we mean that a tiny error can cause a program to misbehave or crash. Most users are familiar with "crashing", from our own experience with computers. We have all heard amazing stories about software glitches that cause banks to lose millions or spacecraft to crash.

It may be impossible to guarantee that programs are error-free, but careful programming can help.

A program may encounter problems as it executes. It may have trouble reading data, there might be illegal characters in the data, or an array index might go out of bounds. C# has built in error and exception handling that enables programs to deal with such problems. Programs can recover from errors and keep on running.

In this Lecture we will

  • Look at Syntax errors
  • Look at Run-Time errors
  • Look at Logic errors

In this Lecture we will

  • Learn why and how to use subroutines or methods.
  • Learn that a method is actually just a small program that can be called from with a program

In this Lecture we will

  • Practice using Methods to solve a number of practical problems

To this point, all the data that we have used when executing our programs has been entered from the keyboard. Similarly, all the output that has been produced from our programs has been to the screen. We must realize that not all input and output occurs this way, in fact, the majority of input for a computer program comes from data files that are stored on a disk or hard drive. When we create a document in a word processor, we see it on the screen; however, if we want to store that information, so that we can use or edit it at a later date, we must output the data to some secure storage medium. In the next few lessons, we will see how data storage and retrieval works.

Data produced from a program as the result of successful processing, can be output to a file for storage, rather than simply to the screen. Once stored, the data can be accessed for further processing, used as input for programs, searched for specific information, sorted, updated ... you get the idea!

Everyone using a computer deals with files. When you turn on your computer, the computer loads files. When you start a piece of software, the computer loads files. When you type solutions to the questions in this unit and save them (hopefully), the computer is saving or writing to a file. We use files to store information that is not being used by the computer at the present time.

Can you think of any useful program that doesn't use files? Files are a very important concept to understand, because any really useful piece of software uses files. Even your video games store your high scores.

In this Lecture we will

  • Learn to read from a data file
  • Look at some simple applications that uses a data file

In this Lecture we will

  • Look at how to create a program using what we have learned during this entire section. This will include submitting all the required documentation and code which encompasses the 5 step model of problem solving.
  • Give you a chance to try the 5 step model by solving the Forensic problem.

A recap of the software life cycle, methods, and data files.

In this Lecture we will

  • Introduce you to some of the basic concepts of object oriented programming
  • Learn to differentiate between a class and an object
  • Learn to create a class
  • Learn about fields,properties,methods and constructors
  • Learn how instances are created
  • Create a simple application that use classes

In this Lecture we will

  • Review the basic concepts of classes,objects,fields,properties,methods and constructors
  • Look at the concept of encapsulation
  • Look at the concept of Static Methods
  • Look at method overloading
  • Look at the concept of inheritance

A recap of beginner OOP concepts

In this Lecture we will

  • Be introduced to String class methods
  • Determine the length of a string of text
  • Extract a subset of characters from a string of text
  • Create a program that performs a letter count

In this Lecture we will

  • Introduce the concept of String accumulators and concatenation and show how they can be used to re-form strings and numbers.
  • Discuss the importance of string manipulations in the real world

In this Lecture we will

  • Introduce you to a practical application of Strings called code validations (in this case business product codes a pre-cursor to Cryptogaphy

In this Lecture we will

  • Challenge you to create a program which will validate a credit card number

A recap of C# String Functions and their applications

In this Lecture we will

  • Introduce the concept one-dimensional arrays, which are multi-part variables "buckets" containing other "buckets".
  • Discuss "Why" they should be used
  • Learn how to declare, store , calculate and display the contents of an array structure.

In this Lecture we will

  • Practice the One Dimensional Arrays concepts we learned in the previous lecture

In this Lecture we will

  • Create a one-dimensional array application involving student marks that will determine the average mark and highest/lowest marks

In this Lecture we will

  • Discuss the concept of sorting and why arrays are necessary to create an efficient program.
  • Introduce a number of sorting techniques including the bubble sort.

In this Lecture we will

  • Introduced to the concept of array counters and why they are used.
  • Code a simple application which uses array counters

In this Lecture we will

  • Introduce the concept of two dimensional arrays. Two dimensional arrays are useful for storing tables of information. They contain rows and columns of data which are the same data type.
  • Discuss where and why they are used.
  • Learn how to declare a two dimensional array, store values inside it, display the contents on screen and perform row and column calculations.

In this Lecture we will

  • Use two dimensional arrays in a practical application We will create a program which performs an analysis of Quiz scores for a number of students and a number of quizzes.

In this Lecture we will

  • Give you a chance to test out your skills with a practical problem to try ... "The Supermarket Problem"

A recap of One Dimensional and Two Dimensional Arrays

As our programming experience becomes more complex and detailed, are you taking the time to help others? Do you visit the discussion area regularly to see if you can support those experiencing difficulty? By working and learning together, we can share the challenges as well as the successes.

In this Lecture we will

  • Introduced to the concept of random numbers
  • Discuss where random numbers are used
  • Write some simple application programs to demonstrate the concept.

In this Lecture we will

  • Use our knowledge of Random Numbers to simulate (model) a number of random event problems

In this Lecture we will

  • Review and extend our knowledge of Random numbers
  • Look at a coin toss problem
  • Look at a dice simulation

In this Lecture we will

  • Create a simple Math Game simulation
  • Create the game Card Wars
  • Create an simple probabilistic simulation of a pinball game (similar to the plinko game on the Price is Right).

In this Lecture we will

  • Practice what we have learned using random numbers and simulate a Shooting Gallery Game.

In this Lecture we will

  • Introduce to the concept of random selection without duplication. This involves games where repetition of winners is not allowed.
  • Create an application (prizes) which utilizes the concept

In this Lecture we will

  • Introduce to the concept of building discrete random distributions
  • Create an application which utilizes the concept

A recap of random numbers and their applications to game simulations

In this Lecture we will

  • Learn about the graphics coordinates of the screen
  • Learn how to access (instantiate) and use the C# graphics class to draw lines,rectangles,ellipses and load images from a file
  • Create a simple dice roll graphical simulation

In this Lecture we will

  • Learn how to draw on a Panel control
  • Learn how to create any color using Color.FromArgb

In this Lecture we will

  • use our knowledge of graphics and arrays to create a bar chart.
  • Learn about the concept of scaling

In this Lecture we will

  • put to use our knowledge of scaling and bar chart creation to display a histogram of an event involving rolling dice.

In this Lecture we will

  • Learn about the Mouse Events MouseDown, MouseUp and MouseMove
  • Write several programs that incorporate mouse movement including a drawing program.

A recap of C# Graphics Basics, specifically using the Graphics Class

In this Lecture we will

  • Learn what timers are and how to use them
  • Learn how to use an array of images
    • using images placed in pictureboxes on the form
    • using images stored in an external files

In this Lecture we will

  • Learn how to extract frames of images from animated gifs that can be used in your animations
  • Learn to create (draw) your own images that will become the individual frames of your animation

In this Lecture we will

  • Look at two applications of in place computer animation
  • Look at the Dice Roll Game
  • Look at the Slot Machine Game

In this Lecture we will

  • Make our objects move across the screen using the .Top and .Left properties
  • Discover how to check for the screen edges (top,bottom,left and right)
  • Discover how to make an object bounce off the wall or reappear around the other side

In this Lecture we will

  • Give you the challenge to create a simple two car race ... with some hints (help) of course !

In this Lecture we will

  • Learn about another way to move objects across the screen using the DrawImage command

In this Lecture we will

  • Learn how to create transparent gifs/png

In this Lecture we will

  • Learn about the 4 requirements for collision
  • Learn how to detect keyboard events using the KeyDown Event
  • Create a simple application to implement both of these concepts

In this Lecture we will

  • Learn how to animate without using pictureboxes
  • Learn that everything is an image object including the background
  • Learn that instead of wiping the screen with the backcolor we now redraw the background graphic over the current state of the animation

In this Lecture we will

  • Learn how to incorporate sound into a C# program
  • Learn how to use two techniques to create sound , the System.Media technique and using the Windows Media Player

In this Lecture we will

  • Learn how to create a simple Falling Objects game
  • Learn how to incorporate image arrays for the falling objects to reduce coding
  • Leave you with the challenge to create your own falling objects game

In the Lecture we will

  • Learn to use some advanced animation techniques including using "double buffering" to reduce screen flicker during game creation
  • Create some simple animations incorporating double buffering

In this Lecture we will

  • Learn to use the mouse with double buffering
  • Learn about double buffering on a panel

In this Lecture we will

  • Learn about the basic game loop
    • While (game is runing)
      • check for input (keyboard/mouse)
      • update all objects in the game (position)
      • draw all the objects in the game
      • refresh the screen (force a repaint)
  • Work through several sample games making incremental improvements as we go along

In this Lecture we will

  • Create a Space Shooter Game
  • Leave you with the challenge to create your own game

Our final recap covers basic animation with timers and arrays right through to double buffering (back buffering).

In this Lecture we will

  • Recap course content

  • Discuss appropriate content for future learning

In this Lecture we will:

  • Introduce the format of the Programming Challenges
    • A problem is posed from a variety of disciplines
    • Each problem involves loading in a data file which will be used in the solution to the problem. The name of the required text file is clearly indicated in each question
    • Some sample data and corresponding output is provided as a guide
    • Two more complicated data sets are also provided to make sure the solution works

In the Lecture we will challenge you with the: "Four In A Row" Problem

Background

Given a positive integer, tell whether it is equal to the sum of four consecutive integers.

In the Lecture we will challenge you with the: "Anything you can do , I can do better" Problem

Background

You have a colleague that is extremely competitive and always tries to “top” one of your stories. If you say your car is fast, your colleague will say his or her car is faster. If you say your car is faster, your colleague will say his or her car is fastest. After a few such conversations, you realize that you can always predict what your colleague will say next.

To demonstrate how annoying this is, you decide to write a program that can accurately predict the responses of your colleague. Your task is to write this program. Specifically, given any adjective, your program will return its comparative form by appending “er” to it. Note that if the adjective already ends in “e”, you should only append “r”. If your program is given an adjective already in its comparative form, your program should return the superlative form of the adjective created by simply replacing the “er” with “est”. Your program should consider any string that ends in “er” to be an adjective in comparative form.

In the Lecture we will challenge you with the: "Crashing Words" Problem

Background

Two words of the same length, which have the same letter in the same position are said to crash. For example, the words CRUSH and BURST have length five and have S in the fourth position. Write a program to read two words at a time from a data file called words.txt. You may assume the words are the same length and are in upper case. If the words do not crash, a message is printed out in the top left hand corner of the screen. If, however, the words crash, the word, which comes first in alphabetical order, will be printed vertically starting on the first row of the screen and the other word will be printed horizontally starting in the first column of the screen so that the words intersect at the first crash location.

In the Lecture we will challenge you with the: "Add Times" Problem

Background

In this problem we are going to represent time in the format days hours minutes. So, using a 24hr clock , 3 15 45 would mean 3 days 15 hours and 45 minutes.
You are to write a program that reads in pairs of times in this format then outputs the sum of the times.

For example: Let's say the first time is 3 15 45 and the second time is 2 12 35. Then the required sum is 6 4 20 ( 6 days 4 hours 20 minutes).

In the Lecture we will challenge you with the: "Waiting Long" Problem

Background

Do you ever get tired of waiting for something to happen? The Gotta-Have-It Gadget Company thinks there is a market for a small device that can tell you how long you have been waiting. In its normal mode, it simply counts the minutes from start to stop. In the advanced mode, you can enter a start time and a stop time and it will tell you how many minutes have elapsed.

The Gotta-Have-It Gadget Company has hired you to program the advanced option. You are to write a program that will accept two times and determine how much time has transpired between them. Times will be entered in a 24-hour format. The first time will always be before the second time (but it may be larger - from 21:01 to 7:11 is 590 minutes). Your input will be the times in hours and minutes (HHMM - 21:01 would be 2101 for input). Your program should stop when the start time is 0. One minute after midnight would be represented as 1 (0 hours).

In the Lecture we will challenge you with the: "It's All Good " Problem

Background

Jimmie Flowers, known as Agent 13 is back!. However, he has a secret that until now nobody has noticed (although we aren't sure how we missed it!). Jimmie can't stand to have objects that are not properly aligned. If any object is slanted, he feels compelled to adjust that object.

Jimmie needs your help, though! He wants you to take bricks (which we will represent by just one of their edges) and determine if they are slanted or not.

The Problem:
Given two unique points on a line, determine if the line is a horizontal or vertical line.

In the Lecture we will challenge you with the: "Primitive Typewriters" Problem

In the Lecture we will challenge you with the "Tipping Point" Problem

Background

You are given a common die sitting on a table in a specific orientation. It sits on the table in front of you with a 1 showing on its top face, a 2 showing on its front face, and a 3 showing on its right face. Because the die is ordinary you should know that the total of the numbers on opposite sides of the die add up to 7. Thus the die has a 4 on its left face, a 5 on its back face, and a 6 hidden on its bottom face resting on the table. The die can tip over to reveal a new number based upon the direction of tipping. You can tip the die AWAY, TOWARD, LEFT or RIGHT.

Given the initial die configuration and a sequence of tip instructions, you must determine the number that remains on the top face of the die after all tips have been completed.

In the Lecture we will challenge you with the "Square The Word" Problem

Background

Read a word and create a square pattern as follows:
a) From the top left corner the word reads left to right
b) From the top left corner the word reads top to bottom
c) From the bottom right corner the word reads from bottom to top
d) From the bottom right corner the word reads right to left

In the Lecture we will challenge you with the Credit Card Problem

Background

The Luhn algorithm, also known as the "modulus 10" or "mod 10" algorithm, is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers. The formula verifies a number using its included check digit, which is usually appended to a partial account number to generate the full account number. This account number must pass the following test:

1. Counting from the rightmost digit (which is the check digit) and moving left, double the value of every even-positioned digit (note: The first position/digit is considered in
position 0 a even position) . For any digits that are doubled and become 10 or more, take the two numbers and add them together. For example, 1111 becomes 2121, while 8763 becomes 7733 (from 2×6=12 → 1+2=3 and 2×8=16 → 1+6=7).

2. Add all these digits together. For example, if 1111 becomes 2121, then 2+1+2+1 is 6; and 8763 becomes 7733, so 7+7+3+3 is 20.

3. If the total ends in 0 (put another way, if the total modulus 10 is congruent to 0), then the number is valid according to the Luhn formula; else it is not valid. So, 1111 is not valid (as shown above, it comes out to 6), while 8763 is valid (as shown above, it comes out to 20).

In this Lecture we will challenge you with the Time Clock Problem

Background

You need to compute the total time a worker has worked on a single calendar day given two time stamps of the form “HH:MM”. The numbers MM can be in the range of “00” to “59” while HH is in the range “01” through “12”. This is an archaic time stamp clock that doesn’t even record AM or PM values. The system has worked well in the past because no-one has ever worked longer than an 8 hour shift.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Focuses on building Windows Forms applications from the start, which allows learners to see tangible results and stay engaged with the learning process
Covers a wide range of topics, from basic syntax to object-oriented programming, string handling, arrays, graphics, and animation, providing a solid foundation for further learning
Presents challenges and applications drawn from various real-world situations, including business, science, math, art, music, and gaming, fostering problem-solving abilities
Includes numerous exercises, supplemental resources, and fully solved challenge problems, allowing students to practice and reinforce their understanding of C# concepts
Uses Visual Studio Community 2022, which is a relatively recent version, ensuring compatibility and access to modern features for learning C#
Includes a series of advanced problems from various disciplines, which extends the idea of coding and computational thinking by reviewing major concepts

Save this course

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

Reviews summary

Fundamentals for beginners with practical projects

According to learners, this course offers a solid starting point for absolute beginners with C#. Students praise the clear explanations and the instructor's responsive support. A key strength is the focus on creating practical Windows Form applications and even simple games from the outset, which keeps learning engaging and tangible. The inclusion of numerous challenges and exercises is frequently highlighted as helpful for reinforcing concepts. While the emphasis on WinForms and Visual Studio for Windows is a specific approach, students find it effective for grasping fundamentals before potentially moving to other areas like web or game development. The course is noted for its comprehensive coverage of C# basics and its commitment to regular updates.
Primarily uses Visual Studio on Windows.
"Note that this course primarily uses Visual Studio on Windows machines."
"The coding examples are fully compatible with the latest Visual Studio for Windows."
"Learning to build Windows applications was the main focus from day one."
"While the fundamentals apply broadly, the tools and GUI examples are Windows-based."
Comprehensive coverage of basic C# topics.
"The course covers essential concepts like variables, loops, conditionals, and methods thoroughly."
"I gained a good grasp of object-oriented programming basics like classes and objects."
"String handling, arrays, random numbers, and graphics are all introduced effectively."
"It provides a strong foundation needed before moving to more advanced topics or frameworks."
Reinforces learning with practice.
"The challenge problems after each concept were invaluable for testing my understanding."
"Solving the practical problems provided helped me apply what I learned immediately."
"The sheer number of exercises and supplemental resources is impressive and very useful."
"Having full solutions provided for the practice problems was extremely beneficial."
Instructor is helpful and answers questions.
"The instructor is very active in the Q&A section and provided quick, helpful responses to my questions."
"It's reassuring knowing the instructor is online daily to assist when I encounter problems."
"Got great support from the instructor whenever I was stuck on a challenge."
"The instructor's feedback on assignments was constructive."
Explanations are easy to understand.
"The instructor explains complex ideas in a simple, easy-to-digest manner following the KISS principle."
"Lectures were engaging, and the pace was just right for learning new concepts."
"I understood the 'why' behind the code, not just the 'how', thanks to the clear teaching."
"Each lesson builds logically on the last, making the progression smooth."
Learning through building real applications.
"Building Windows Forms apps right away made the learning process much more exciting and practical."
"The projects, like the cash register and games, were fun and helped solidify my understanding."
"I appreciated not starting with just console apps; the GUI aspect was very motivating."
"Being able to create tangible programs from the lessons was a major plus."
Ideal for students with no prior coding.
"This course is excellent for someone like me who started with absolutely no programming background."
"I found the explanations easy to follow even as a complete beginner, making C# accessible."
"If you are just starting out in programming, this course breaks down the concepts very well."
"It truly takes you from knowing nothing to building simple applications."

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# Programming for Beginners : The First Steps with these activities:
Review Basic Programming Concepts
Reinforce fundamental programming concepts like variables, data types, loops, and conditional statements to build a solid foundation for C#.
Browse courses on Variables
Show steps
  • Read introductory materials on programming concepts.
  • Complete online quizzes to test your understanding.
  • Write simple programs using these concepts in any language.
Review 'Head First C#'
Reinforce your understanding of C# concepts with a visually engaging and interactive learning experience.
View Head First C# on Amazon
Show steps
  • Read through the chapters covering topics you find challenging.
  • Complete the exercises and quizzes in the book.
  • Compare the book's explanations with the course lectures.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Expand your understanding of C# and .NET Core beyond the course's focus on Windows Forms.
Show steps
  • Read the introductory chapters covering C# basics.
  • Experiment with the code examples provided in the book.
  • Compare the book's approach to the course's teaching style.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a C# Cheat Sheet
Consolidate your knowledge by creating a cheat sheet of C# syntax, common methods, and best practices.
Show steps
  • Review your notes and course materials.
  • Identify the most important C# syntax and methods.
  • Organize the information in a clear and concise format.
  • Share your cheat sheet with classmates.
Develop a Simple Calculator Application
Apply your C# knowledge to build a simple calculator application with a graphical user interface using Windows Forms.
Show steps
  • Design the user interface with buttons and a display.
  • Implement the arithmetic operations.
  • Handle user input and display the results.
  • Test the application thoroughly.
Solve C# Coding Challenges on HackerRank
Sharpen your C# programming skills by solving coding challenges on platforms like HackerRank, focusing on topics covered in the course.
Show steps
  • Create an account on HackerRank.
  • Search for C# coding challenges.
  • Solve at least three challenges per week.
  • Review solutions and learn from others.
Create a C# Tutorial Video
Solidify your understanding of a specific C# concept by creating a tutorial video explaining it to others.
Show steps
  • Choose a C# concept from the course.
  • Prepare a script and examples.
  • Record and edit the tutorial video.
  • Share the video with classmates for feedback.

Career center

Learners who complete C# Programming for Beginners : The First Steps will develop knowledge and skills that may be useful to these careers:
Windows Application Developer
A Windows application developer specializes in creating applications that run on the Windows operating system. This course is tailored for this career path as it focuses on C# programming within the Windows environment using Visual Studio. The course's emphasis on Windows Forms applications helps build practical skills. The course's extensive examples and projects provide a rich learning experience. The lessons on creating simple Windows Form based applications is especially useful in this career. Anyone interested in becoming a Windows application developer should take this course.
Desktop Application Developer
A desktop application developer creates software that runs on desktop computers. The course's focus on C# and Windows Forms applications directly addresses this area. The course teaches students how to build Windows applications from day one, providing a tangible understanding of the development process. The course’s lessons on creating various applications with graphical user interfaces are highly relevant. This course provides aspiring desktop application developers with the necessary skills and knowledge.
C# Developer
A C# developer is responsible for writing code using the C# programming language to create software applications. This C# course is specifically designed for beginners, so it will help build a foundation in C# programming. The course covers C# syntax, problem-solving, and the creation of Windows Forms applications. The comprehensive video instruction, exercises, and supplemental resources offer a thorough learning experience. The course's practical challenges and applications in business, science, and gaming provide valuable real-world context.
Software Developer
A software developer designs, develops, and tests software applications. A course emphasizing C# programming for beginners helps build a foundation for this career. The course's focus on Visual Studio and Windows Forms applications offers practical experience that is directly applicable to building desktop applications, a common task for software developers. The extensive video instruction and exercises in the course provide a comprehensive learning experience. This C# course in particular may be useful as it focuses on Windows applications, rather than web applications.
Application Developer
Application developers design, code, and test applications for computers and other devices. This course helps build a solid base in C# programming, which is widely used for building Windows applications. The course focuses on creating Windows Forms applications from day one, which means one develops tangible results quickly. The course's challenges and applications drawn from business, science, and math may be helpful when building different software applications. Aspiring application developers should take this course to gain a practical introduction to C# and Windows application development.
GUI Developer
A graphical user interface developer specializes in creating visually appealing and user-friendly interfaces for software applications. Since this C# course focuses on Windows Forms applications, studying the course may be highly relevant for this role. This is because Windows Forms is all about building graphical user interfaces for desktop applications. The course’s emphasis on practical application and challenges drawn from the home, school and workplace will help to improve familiarity with the practice.
Game Developer
A game developer creates video games for various platforms. If one wishes to become a game developer, this course is an excellent starting point. Using C#, one can learn the fundamentals of game development. This course also includes lessons that teach students to build different games and introduces the Monogame engine. The creation of games such as a slot machine game, a falling objects game, and a space shooter game in the course, provides hands-on experience in game development concepts. The course may be particularly useful for beginners interested in game development.
Junior Programmer
A junior programmer is an entry-level position that involves writing and maintaining code under the supervision of senior developers. This course provides a helpful introduction to C# programming, which is a valuable skill for junior programmers. The course's focus on the fundamentals of C# syntax and problem-solving helps build a strong foundation. The practical applications and exercises in the course provide hands-on experience. The course's emphasis on creating Windows Forms applications is especially relevant.
Software Development Engineer
A software development engineer designs, develops, and tests software systems. This course provides a valuable introduction to C# programming, a skill often required of software development engineers. The course's emphasis on Windows Forms applications and the development of various applications helps to build a practical understanding of software development. The problem-solving skills developed through the course are essential for success in this role. The course's hands-on approach makes it helpful for aspiring engineers.
Software Engineer
A software engineer applies engineering principles to software creation where they analyze user needs and design, construct, test, and maintain computer applications and systems. This course, which introduces C# from the ground up, is beneficial for aspiring software engineers. The course’s detailed exploration of C# syntax and problem-solving skills helps build a strong programming foundation. Especially relevant are the sections on object-oriented programming, string handling, arrays, graphics, and animation. The course's focus on practical applications and challenges prepares students for real-world software engineering tasks.
Software Programmer
A software programmer writes code to implement software designs and specifications. This course may be useful for building a strong programming foundation in C#. The course introduces C# syntax and problem-solving skills from the ground up and shows how to use Visual Studio on Windows machines. The course's practical examples and exercises help to solidify programming concepts. The sections on object-oriented programming and data structures are particularly valuable.
Tools Developer
A tools developer creates software applications and utilities that help other developers improve their productivity. This course provides the programming skills necessary to build such tools. The course's focus on C# and Windows Forms applications enables students to create desktop applications, which are often used as development tools. The lessons on string handling, arrays, and graphics may also be useful. Developers can use these tools to write better code.
Automation Engineer
An automation engineer develops and implements automated testing and deployment solutions. This course may be useful for automation engineers who need to develop custom tools or scripts in C# and because the course uses Visual Studio, you will be working in an environment where code will be testable. The course covers C# syntax, problem-solving, and Windows Forms applications. The course’s material on string handling and file I/O might be relevant for creating automation scripts.
Embedded Systems Programmer
An embedded systems programmer writes code for devices like appliances or automobiles. They often need knowledge of C and C++, but C# is sometimes useful. This C# for Beginners course may be useful for someone in this role. The course in particular focuses on fundamentals of C-style syntax that can be applied to writing embedded systems, especially within any Microsoft environments. You will be able to write C# code fluently.
Database Developer
A database developer designs and implements databases and develops procedures for data access. This course may be useful for some database developers. A database developer may be required to write application code in C#. A C# course such as this one will provide that background. You will learn the fundamentals of C# code and syntax. The course’s lessons will also show you how to use Visual Studio effectively.

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# Programming for Beginners : The First Steps.
Uses a visually rich format to explain C# concepts in an engaging way. It is particularly helpful for visual learners who benefit from diagrams and illustrations. It provides a different perspective on the same material covered in the course, which can aid in comprehension. This book is commonly used as a textbook at academic institutions.
Provides a comprehensive introduction to C# and .NET Core. It covers the fundamentals of the language and the .NET ecosystem, making it a valuable resource for beginners. It is particularly useful for understanding the cross-platform capabilities of C# and .NET Core, which can broaden the student's perspective beyond Windows Forms applications. This book is more valuable as additional reading to expand on the course materials.

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