C# Intermediate Programming : Applications Driven Approach (Udemy.com)

A great way learn to how to solve real problems using Winforms in C#. More videos and exercises than any Intro course

Created by: Charlie Chiarelli

Produced in 2020

What you will learn

  • Program fluently in C# using Microsoft Visual Studio
  • Understand how to create a basic Windows Form Application ... No Console Apps
  • Understand the basic concepts of Selection, Repetition, Methods and Exception Handling
  • Understand the intermediate concepts of Arrays (one,two,three dimensional), Random numbers,Object Oriented Programming, String handling
  • Understand the advanced concepts of Recursion, Sorting and Searching Techniques, Database Programming using SQL, Graphics and Animation Techniques
  • Apply the programming skills learned to create meaningful computer applications from the world of Business, Science, Math, Cryptography, Graphics and Gaming
  • Create Business applications which incorporate sorting, searching, data analysis and connecting to a database
  • Create Science applications which incorporate probabilistic and deterministic simulations
  • Create Social Studies applications (Geography) which incorporate table

Quality Score

Content Quality
Video Quality
Qualified Instructor
Course Pace
Course Depth & Coverage

Overall Score : 86 / 100

Course Description

Students will learn to create their own computer programs using the C# programming language. This programming course is meant for ANYONE WHO WANTS TO LEARN TO CODE. Of course we cover C# syntax but more importantly we introduce the PROBLEM SOLVING SKILLS necessary to convert practical problems to solutions in code... You get paid for solving problems everything else is just a technicality.
Our focus will be working with Visual Studio on Windows machines .
A language like C# is typically learned "in a vacuum," and stripped of potentially distracting visual elements or front-end graphical interfaces. 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.
The first section of the course serves as a primer/refresher to get everybody up to speed.This course assumes absolutely nothing about what you already know, and skips no steps in getting you to know Windows Forms. It walks you carefully through every possible feature you can imagine, and has in its source code 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 applications.

This course has more hours of video instruction (30 + hours) , lectures (146+) and exercises and supplemental resources (326+) 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/applications are drawn from a variety of situations in the home, school and workplace. They address a wide spectrum of interests including:
  • Business
    • sorting
    • searching
    • data analysis
    • connecting to a sequential and relational database (SQL)
  • Science
    • probabilistic simulations (using random numbers)
    • deterministic simulations (using concepts from physics and math... Plinko Game )
  • Social Studies (Geography)
    • Distance between two cities Table Lookups
    • Country Telephone codes
  • Math
    • hidden pitfalls of computer arithmetic in real world applications
    • famous mathematical algorithms and their applications (Euclidean Algorithm)
    • solving mazes and puzzles using the concept of recursion
  • Cryptography
    • validating codes like SIN (social insurance numbers) , VIN, ISBN
    • coding and decoding messages using classical encryption techniques
    • a peek into more advanced techniques (Steganography)
  • Graphics
    • creating a program that plays a classical memory game on a 4x4 grid
    • creating applications utilizing drag and drop events
  • Gaming
    • animation basics
    • using a back buffer (double buffer) to improve flicker
    • creating simple 2d games using keyboard and mouse movement and incorporating sound effects

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 . But,having said that, I will try to present the material in such a way that we don't get too hung up on rigid standards. Once you get a feel for the material you could certainly get more serious and take a university or college course or take a more advanced online course.

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! I am online daily to respond to any problems you may encounter.
Here's how I will help you to succeed:
o Each lecture starts with a list of objectives/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.... and I am always available for help replying most times within a day.
... and finally, this is NOT a static course, updates are made several times a month, with new lectures and challenge problems added on a continual basis.Who this course is for:
  • This course is meant for individuals who are somewhat familiar with basic C# syntax or any other programming language but who would only consider themselves slightly above beginners. This programming course is meant for ANYONE WHO WANTS TO LEARN TO CODE . We cover C# syntax but more importantly we introduce the problem solving skills necessary to convert practical problems to solutions in code. The first section of the course serves as a refresher to get everybody up to speed.
  • Not sure you have enough background to take the course ? Then I would recommend taking my first course "C# Programming for Beginners:Practical Applications Approach" before attempting this course

*Some courses are excluded from this sale. Coupon not working? If the link above doesn't drop prices, clear the cookies in your browser and then click this link here.
Also, you may need to apply the coupon code directly on the cart page to get the discount.

Coupon Code

Instructor Details

Charlie Chiarelli

Hi, my name is Charlie Chiarelli. I'll be your teacher for this course. I will spend as much time as necessary to help you do the best you can. But, for you to succeed you must be willing to work .
I am a retired High school Computer Science and Mathematics Teacher from Canada. I taught for 35 years, I have a BMath degree from the University of Waterloo.

I was a frequent speaker at educational conferences (ECOO) and seminars . Most recently my talks focused on E-Learning and the future of education (Flipping the Classroom).
I was the school webmaster and served on a number of school board committee , recently advising my school board (Hamilton Wentworth Catholic District School Board) on its online learning direction. I was also the contest coordinator for the Annual Programming Contest for the past 15 years.
For the last 7 years before I retired I was in the unique position of teaching most of my computer science classes entirely online using the D2L LMS. Because of low enrollment and lack of qualified computer science teachers I became the "board" teacher. So my virtual class was made up of students from various schools in the region.
I am not a brilliant software engineer trying to teach programming. I am a high school computer science teacher that has taught teenagers for over 35 years. So I think my perspective and sensibilities are quite different than the typical Udemy instructor. I feel this gives me a great



99 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Clevercortex on 2 weeks ago

So far course focus how to use udemy and 7zip. This things are obvious. It is a waste of time. Im looking forward what is going to be on next lessons.

By Fitz McKinzie on 2 months ago

Great overview of programming techniques and concepts for application development.

By David Groda on 2 months ago

I was looking for a course to help me with C# using windows forms. This is it! The instructor (teacher) moves at a "Goldilocks" pace. The course is older but, it has not been abandoned. The instructor has updated the material within the last 30 days. This was money invested.

By Jeremy Stone on 3 months ago

Great course! Learning not only c#, but also a lot of cool stuff in visual studio

By William Lowry on 5 months ago

Array subscript zero is always used in professional programming. I think he is doing a disservice to his students by not getting them use to that. The language, such as the foreach command is geared to use subscript zero. The math is a little different, but not much. Students need to get use to that. In this last lesson he referred to subscripts as pointers. C# does support pointers and they're not subscripts. Pointers are addresses, and in C# are considered unsafe. I think the students will become confused when they run into pointers in real C# code or documentation and they are different than what is being taught.

By Roman Marquez on 9 months ago

The instructor is very passionate about teaching the subject which made it fun. Programs are simple but gets the point across.

By Andrew Sinclair on 5 months ago

This course clearly steps you through things so that if you do the homework, you can't help but learn the subject matter.

By Tiago Costa on 4 months ago

So far, it's very clean. A good introduction, with some examples of what we will learn.

By Peder Thornstrom on 10 months ago

I have not yet finished this course but like it a lot and the knowledge shared is solid.Keep up the good work!

By Matthew H McKenzie on 3 months ago

Good, starting to date as I am using Visual Studio 2019.

By Terry Martin on 9 months ago

No. I am an mcp from many years ago. I want a refresher, not to learn the basics

By John Fragos on 11 months ago

There are 2 things i really didn't like about the course:1). I learn by doing not by watching somebody explain what they did in a pre-constructed program. I would have preferred the instructor show me what to code and then type that code in myself. This way I would get to make my own mistakes and understand better what I was coding. Simply listening to the instructor is of no value to me. He does offer pdf files with programs we are supposed to do on our own but that is problem number 2.2). Included in many of the lectures are pdf files with problems we are supposed to code on our own. However, he offers no solutions to the problems. It would be better if he did so that we can see if we used the best coding methodology and best practices. As a student just because we were able to get a solution to work does not mean we were doing it the best possible way. I understand that there are many ways to code a program but when learning I think we should be shown the best and most efficient way to solve the problem.