C# Programming a Practical Applications Approach

Introducing Teens to Programming
4.3 (24 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
188 students enrolled
$19
$30
37% off
Take This Course
  • Lectures 77
  • Length 18 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 2/2016 English

Course Description

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 REAL BEGINNERS. We will introduce all the required programming skills from the ground up.

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, science, math,art,music, and especially ANIMATION and GAMES ...(1/4 of the lectures).

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.

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!



What are the requirements?

  • All course material (demos, notes) will be available for download during each individual lecture. The only software required to start the course is the free version of Microsoft Visual Studio Express (link provided in intro lecture)

What am I going to get from this course?

  • 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, 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 applications from the world of business, science , math and gaming. These solutions will incorporate the software design life cycle of problem definition,analysis, design, implementation, testing and maintenance
  • 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 games ... 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.

What is the target audience?

  • This C# programming course is meant for newbies who are not familiar with C# syntax and/or students looking for a quick refresher. No prior programming knowledge is needed.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Course Information
01:55

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.

06:14

Here's what you need: Visual Studio Express 2015
WinRAR
Course Demos

11:06

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 !
Section 2: The Basics
08:47


In this Lecture we will

  • Become acquainted with the Visual Studio C# Express environment
17:28

In this Lecture we will

Create your first Windows Applications using various user interface controls

  • labels
  • textboxes
  • buttons
  • pictureboxes
16:11

In this Lecture we will

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

In this Lecture we will

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

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.

18:04

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
17:27

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

16:11

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)
18:28

In this Lecture we will

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

In this Lecture we will

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

This quiz recaps variables, assignment statements and mathematical programming

16:48

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 && ||


15:26

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.
19:14

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.
19:12

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
18:21

In this Lecture we will

  • work through counter controlled repetition problems
  • work through user controlled repetition problems
  • work through for loop problems
16:34

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.

15:22

In this Lecture we will

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

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

Section 3: Problem Solving
04:44

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
09:59

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.
11:06

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
12:19

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
19:17

In this Lecture we will

  • Practice using Methods to solve a number of practical problems
18:30

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
12:35

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.
7 questions

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

Section 4: Object Oriented Programming
18:28

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
18:00

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
7 questions

A recap of beginner OOP concepts

Section 5: Strings
19:41

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
18:36

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
17:20

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
08:21

In this Lecture we will

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

A recap of C# String Functions and their applications

Section 6: Arrays
17:37

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.
17:10

In this Lecture we will

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

In this Lecture we will

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

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.
18:27

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
16:20

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.
19:02

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.
19:52

In this Lecture we will

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

A recap of One Dimensional and Two Dimensional Arrays

Section 7: Probabilistic Simulations
10:26

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.
16:27

In this Lecture we will

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

In this Lecture we will

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

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).
07:53

In this Lecture we will

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

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
17:06

In this Lecture we will

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

A recap of random numbers and their applications to game simulations

Section 8: Graphics
18:42

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
19:46

In this Lecture we will

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

In this Lecture we will

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

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.
19:18

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.
7 questions

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

16:49

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
17:39

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
13:31

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
18:02

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

13:55

In this Lecture we will

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

In this Lecture we will

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

14:22

In this Lecture we will

  • Learn how to create transparent gifs/png
19:35

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
10:38

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
15:01

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
19:54

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
16:54

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
13:56

In this Lecture we will

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

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
14:12

In this Lecture we will

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

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

01:34

In this Lecture we will

  • Recap course content
  • Discuss appropriate content for future learning
Section 9: Programming Challenges
07:30

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
Article

In the Lecture we will challenge you with the:

"Four In A Row" Problem

Article

In the Lecture we will challenge you with the:

"Anything you can do , I can do better"  Problem

Article

In the Lecture we will challenge you with the:

"Crashing Words" Problem

Article

In the Lecture we will challenge you with the:

"Add Times" Problem

Article

In the Lecture we will challenge you with the:

"Waiting Long" Problem

Article

In the Lecture we will challenge you with the:

"It's All Good " Problem

Article

In the Lecture we will challenge you with the:

"Primitive Typewriters" Problem

Article

In the Lecture we will challenge you with the

"Tipping Point" Problem

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Charlie Chiarelli, Experienced Online Educator

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 greater appreciation for what beginners need to learn and how it should be presented. I hope you agree and find my courses rewarding. 


Ready to start learning?
Take This Course