We may earn an affiliate commission when you visit our partners.
Course image
Charlie Chiarelli

Students will learn to create their own computer programs using the C# programming language. This programming course is meant for  Of course 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 WINDOWS . Unfortunately they are not MAC compatible.

Read more

Students will learn to create their own computer programs using the C# programming language. This programming course is meant for  Of course 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 WINDOWS . Unfortunately they are not MAC compatible.

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 or 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 (200+) 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/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) 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 or speaking notes

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

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

      o    My 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.

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

      Consider this a first step in the process of learning C#, with the Challenge problems reviewing and extending the concepts covered in the course.  Below is a sampling of the topics touched upon.

      InterfacesA Deeper exposure to Collections and Generics(Lists/Queues/Dictionaries/Stacks)TuplesAdvanced OOP conceptsRegexLINQWorking with DateTime

      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 the microsoft visual studio ide for windows machines
  • 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 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 a geography app which incorporate table lookups (searching) to determine the distance between two cities or the telephone code for a country
  • Create math app that illustrate the hidden pitfalls of computer arithmetic in the real world, and applications that solve mazes and puzzles using recursion
  • Create apps from the world of cryptography which validate social insurance #'s, vin, isbn numbers and also create applications which code and decode messages.
  • Create graphics applications which incorporate drag and drop events
  • Create 2d game applications which incorporate flicker free animation and allow the user to use the keyboard and mouse to control movement.
  • Fully appreciate the wide range of applications that the study of computer science provides.
  • * new * create simple applications using the ui paradigm windows presentation foundation (wpf)
  • * new * extend the idea of coding and computational thinking by solving a series of advanced problems (challenges) 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
7zip
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 pizzeria
  • create a program which determines whether a person is eligible for a credit card based on a scoring system
  • create a program which adds two fractions ... simple problem ... not so simple solution
  • create a program which analyses survey results
  • create a program that plays a classical memory game on a 4x4 grid
  • create a program which displays car details stored in a database
  • create a program which validates ISBN (Book ID numbers)
  • create a program which encodes and decodes information using a classical cryptographic techiques.
  • create a program that uses the concept of recursion to find its way out of a maze (feels like Artificial Intelligence)
  • create a program that can sort multi-field records by the desired field (column)
  • create a program that performs a lookup of information (country telephone codes)
  • create a program that connects to a Sequential or Relational SQL Database
  • create a program that uses drag and drop to perform a practical application.
  • create a space shooter game
  • ...... Now its your turn !

In this Lecture we will

  • 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
    • text boxes
    • buttons
    • picture boxes
    • radio buttons
    • group boxes
  • Become acquainted with naming conventions for the interface controls

In this Lecture we will

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

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

  • Look at a simple quotient - remainder application ... inches into feet and inches
  • Create a practical applications "Venus Motor Sales"
  • Learn to display numbers in currency format
  • Learn to display numbers in any custom format

In this Lecture we will review the basics of Selective Processing

  • Look at IF statement and write programs which utilize this structure.
    • Guessing numbers game
    • Ticket Sales based on age
    • Quiz Marking program
    • Determining whether a number is even or odd
  • 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.
  • Look at an invoicing program and use it to illustrate the difference between the variable types double and decimal
  • Illustrate how to code applications which use checkboxes

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

  • Learn how to monitor keystrokes using the Keypress event
    • Discuss the difference between the char and string variable types
  • Extend our knowledge of User Defined Dialogs by looking at more advanced applications
    • illustrate how to create two way communication between the main form and the user dialog using the get and set commands (accessors and mutators)

In this Lecture we will

  • Look at the concept of repetition (another name for loops)
  • Look at the use of the While Loop
  • Look at user controlled repetition
  • Look at counter controlled repetition
  • Look at the use of the For Loop

In this Lecture we will

  • Look at some practical uses user controlled repetition
  • 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 and a practical application of its use
  • Look at the List box control and a practical application of its use

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.

  • 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?

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 within a program
  • Create some sample applications

In this Lecture we will

  • Demonstrate how to have an event execute a method
    • It is possible to have one event handler respond to the same event on many different
      controls
  • Create several applications that incorporate this new concept

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 (StreamReader) and write (StreamWriter) to a data file
  • Look at some simple applications that uses a data file

The beauty of using a program such as Visual Studio C# is the wide area of unique controls you can apply to your windows applications. Examples include linklabels, tabcontrols, datetime pickers and the treeview.

In this Lecture we will

  • Look at several controls we have not previously covered and how they can be implemented
  • Look at the Speech control which references the Microsoft Speech Library
  • Allow you to discover and implement a new control

A recap of some of the concepts covered in this first section of the course from creating your first app, to mathematical concepts, to selection and repetition, methods, and new controls

Exceptions occur when an application experiences some unexpected problem at run time.

In this lesson we will

  • Discuss how to use the try catch finally block to anticipate potential problems and attempt to shield the end user from those problems as much as possible.
  • Discuss best practices when checking for exceptions and discuss the mindset of the conscientious software developer who seeks to provide the best possible experience for his users.
  • Illustrate the Error Provider Control

A recap of error handling techniques in c#

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 ,retrieve, display and utilize the contents of an array structure.

In this Lecture we will

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

  • Introduce the concept of passing by value and passing by reference

    • By default arrays are passed by Reference

      That is, there original values can be changed in a method

      Regular variables are passed by Value

      That is, when they return from a method they return to their original value

      To have regular variables keep its modified value you must explicitly pass it by --- ref

    • perimeter = MinimumPerimeter(numPics,ref length, ref wid);

In this Lecture we will

  • Introduce the concept of array counters and why they are used.
  • Code a simple application which uses array counters
  • Introduce the concept of de-limited text files and the use of the SPLIT command

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, retrieve the contents , 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

  • Introduce the concept of two dimensional array counters
  • Create programs which perform data analysis

In this Lecture we will

  • Introduce the concept of three dimensional arrays
  • Take a look at a practical application of three dimensional arrays

A recap of one,two and three dimensional array concepts

In this Lecture we will

  • Introduce several useful built-in math functions
    • Trigonometric functions
    • Absolute Value
  • Create a simple application which utilizes some of these functions

In this Lecture we will

  • Discuss the issue of floating point arithmetic and the errors that it can lead to
  • Illustrate the concept of Tolerance which is one technique to overcome these pitfalls

In this Lecture we will

  • Be introduced to the Euclidean Algorithm which can be used to find the Greatest Common Divisor (GCD)
  • Use the Euclidean Algorithm in several programs to help use find the GCD
    • adding fractions (simple problem ... not so simple solution when you must code it)

A recap of the hidden pitfalls of computer arithmetic and the Euclidean Algorithm.

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.

  • Introduce/review the concept of random numbers
  • Discuss where random numbers are used
  • Write some simple application programs to demonstrate the concept.
    • coin toss
    • dice roll
    • guess number
    • math game
  • Give you the challenge of programming the "Gambler Problem"

In this Lecture we will

  • Go through the solution to the Gambler Problem from the previous lecture
  • Simulate the PLINKO game
  • Create a probabilistic simulation of the success and failure rates of students taking driving school.
  • Give you the challenge of programming the "Shooting Gallery Problem"

In this Lecture we will

  • Go through the solution to the "Shooting Gallery Game"
  • Introduce to the concept of random selection without duplication. This involves games where repetition of winners is not allowed.
  • Create an application (prizes ... "The NFL Helmets Problem") which utilizes the concept then try the "Casino Problem"

In this Lecture we will

  • Develop a Memory Game application which incorporates many of the concepts we have covered so far in this section on probabilistic simulations.

In this Lecture we will

  • Introduce to the concept of building discrete random distributions
  • Create an application which utilizes the concept
  • Create a random number generator using a static class

A recap of random numbers and their applications

Now that you have a good sampling of basic C# syntax under your belt, it's time to tackle some more challenging topics. Classes are integral to the .NET Framework, particularly the .NET Framework Class Library. This lecture demonstrates how classes are defined and new instances are created, how to define Properties and how to both set values and get values for a given instance of the class as well as creating Methods in our classes. We talk about how the classes you create are really custom dat types that can be used as such in helper method declarations and more.

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
    • creating a "global" variable
  • Look at method overloading
  • Look at the concept of inheritance

In this Lecture we will

  • Highlight a practical applications that incorporates Object Oriented Programming concepts
    • Payroll Application

In this Lecture we will

  • Introduce the concept of a structure
  • Discuss the difference between an array and a structure
    • The elements of a structure can be of different types
  • Discuss the similarities with classes
    • They represent data structures
    • The structure definition looks alot like the field definitions for a class

struct CListOfCars
{
public String Make;
public String Model;
public int CarYear;
public int Doors;
public String CarPicture;
}

CListOfCars[ ] Car = new CListOfCars[11];

Note: The structure definition looks alot like the field definitions for a class. Right after the structure def we create an array of CListOfCars called Car

Notice below how we are using an array to refer to each part of the car structure and how the array is a mixture of text (strings) and numbers. You can't do that with a regular array.

string p = Application.StartupPath;
Car[1].Make = "Honda";
Car[1].Model = "Civic";
Car[1].CarYear = 1998;
Car[1].Doors = 4;
Car[1].CarPicture = p + @"\Civic1.bmp";

A recap of OOP concepts and Structures

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

  • Look at how strings are used to solve number theory problems
  • Discuss how this topic is a pre-cursor to Cryptography ... the sciece of codes

In this Lecture we will

  • Introduce you to a practical application of Strings called code validations
  • Introduce you to the concept of a check digit
  • Create a program to validate a Social Insurance Number
  • Create a program to validate a credit card

In this Lecture we will

  • Illustrate how ISBN (International Standard Book Numbers) are created and validated
  • Create a program to valid and create the check digit for ISBN
  • Create a program which performs searching and substring extracting
    • Enter a phone number of the form 416-1234567 and the program extracts the area code and telephone number

In this Lecture we will

  • Introduce the concept of Cryptography
  • Illustrate how the Caesar Code works
  • Create a program to encrypt and decrypt the Caesar Code
  • Demonstrate some advanced Crypto techniques

In this Lecture we will

  • Challenge you a variety of problems that require the use of String Functions
    • validating a credit card
    • validating a VIN (vehicle information number)
    • .... and more !!

A recap of C# String commands and applications

In this Lecture we will

  • Define Recursion
  • Discuss the 3 criteria necessary to perform recursion
  • Create a program which determines Factorials using recursion
  • Create the recursion version of the Euclidean Algorithm (GCD)

In this Lecture we will

  • Take a look at some sample applications of Recursion
    • Path Length
    • Word Puzzle
    • Flood Fill
    • ..... and more !!!

In this Lecture we will

  • Use the recursive backtracking technique to navigate through mazes

A recap of Recursion basics

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 Replacment and Bubble Sort.

In this Lecture we will

  • Learn how to sort strings using the CompareTo() command
  • Modify the Bubble Sort to incorporate a swap method
  • Modify the Bubble Sort to only compare as far as the last swap
  • Learn how to sort using the Exchange Sort

In this Lecture we will

  • Learn how to use the Selection Sort (a combination of the Exchange Sort and the Replacement Sort)
  • Learn how to use the Shell Sort
  • Learn how to use the Quicksort
  • Learn how to use the sort method of the class called Array
    • Array.Sort(some array)
    • Array.Sort() chooses one of three sorting algorithm, depending on the size of the input: If the size is fewer than 16 elements, it uses an insertion sort algorithm. If the size exceeds 2 * log^N , where N is the range of the input array, it uses a Heap Sort algorithm. Otherwise, it uses a Quicksort algorithm.

In this Lecture we will

  • Challenge you with a sorting application problem which determines the median of school marks

In this Lecture we will

  • Learn how to sort multi-field records
  • Learn how sorting multi-field records can be very inefficient
  • Learn how the pointer sort method can make multi-field sorting very efficient
  • Create several applications that incorporate pointer sorts
    • one dimensional array application
    • two dimensional array application

In this Lecture we will

  • Learn how to use Structures and Classes (an array of objects) to sort multi-field records
  • Challenge you with a sorting problem which tracks snowfall records for various ski resorts

In this Lecture we will

  • Introduce the sequential search technique.
  • Use a simple practical application called the Album Lending Program to demonstrate how it can be implemented.
    • incorporate a Search class using static methods
    • incorporate a comma delimited text file
    • Read and Write data to the text file
    • Use a User Defined Dialog with keystroke monitoring, and the get and set properties

In this Lecture we will

  • Introduce the binary search technique.
    • compare the speed of the sequential vs the binary search
  • Use a simple practical application called the Album Lending Program to demonstrate how it can be implemented.
    • incorporate a Search class using static methods

In this Lecture we will

  • Introduced to the concept of table lookups, an application of searching.
  • Look at an inventory application and how it implements searching
  • Assigned you a distance table lookup problem to program

A recap of Sorting and Searching Techniques and Applications

In this Lecture we will

  • Extend our knowledge of Data Files by creating a program which updates a Sequential files
    • changes
    • deletions
    • additions

In this Lecture we will

  • Learn how to use several Common Dialogs
    • File Open
    • File Save
    • Font
    • Color
  • Demo several applications which incorporate Common Dialogs
  • Incorporate Common Dialogs in the Album Lending program

In this Lecture we will

  • Update the Album Lending program to include
    • a user defined toolbar with a new file button and status bar
    • error handling (try/catch)
    • a listview control to display the data
      • note: view property set to DETAILS + Gridlines set to true
  • Highlight some student created file applications

In this Lecture we will

  • Introduce you to Using SQL (Structured Query Language) Server Express
    • create a single table database (Contacts)
      • Visual Studio can generate code to connect a form to a database but you need to have the database in place BEFORE generating that code
    • connecting your form to your database objects with a datasource
    • adding database driven controls to your form

In this Lecture we will

  • Discuss the differences between Sequential (Flat File) and Relational Databases
  • Create a Multi-Table database (Car Tracker)
    • add multiple tables with primary keys
    • create a dataset - in data source window add new data source
    • then create relationships between tables
    • In data source window select Listing node and choose Details view
    • Data bind with other tables
      • select table from dataset and drag onto form surface over combo box
      • combo box is now populated with all the values from the table not simply one row
    • Add queries using Dataset Designer then query builder
      • binding new queries to controls on form or whole form (click smart tag in adapter)

In this Lecture we will

  • Complete the Car Tracker App from the previous Lecture
  • Provide you with a bonus application which demonstrates how to import data from Excel Spreadsheet file  into a C# Form DataGridView   

A recap of File Handling and SQL

In this Lecture we will

  • Learn that C#.NET has a lot of different data structures, for example, one of the most common ones is an Array. However C# comes with many more basic data structures. Choosing the correct data structure to use is part of writing a well structured and efficient program.
  • Learn why the ArrayList is one of the most flexible data structure.
  • Learn that an ArrayList contains a simple list of values and that an ArrayList implements the interface using an array so we can very easily we can add , insert , delete , view etc.
  • Learn it is very flexible because we can add without any size information , that is, it will grow dynamically and also shrink .
  • Introduce the List structure (an optimized ArrayList)
  • List<T> is a generic class. It supports storing values of a specific type without casting to or from object

In the Lecture we will

  • Discuss the difference between Hashtable and Dictionary
    • Hashtable and Dictionary are collection of data structures to hold data as key-value pairs.
    • Dictionary is generic type, hash table is not a generic type.
    • The Hashtable is a weakly typed data structure, so you can add keys and values of any Object Type to the Hashtable.
    • The Dictionary class is strongly typed < T Key, T Value > and you must specify the data types for both the key and value.

In this Lecture we will

  • See that the Stack is a powerful and simple last-in-first-out data structure.

  • Learn that this structure can help you develop parsers quickly and also replace complex recursive algorithms.

  • Learn about the Push command . Usually the first action you need to do on Stack is Push elements into it. The word Push is a computer science term that means "add to the top."

  • Learn about the Pop command. This command receives an element from the stack

  • Look at two simple applications ... a Text Parser and a Decimal to Binary Converter

In this Lecture we will

  • Learn that the Queue works like FIFO system , a first-in, first-out collection of Objects.
  • Learn that objects stored in a Queue are inserted at one end and removed from the other.
  • Learn that the Queue provide additional insertion, extraction, and inspection operations. We can Enqueue (add) items in Queue and we can Dequeue (remove from Queue ) or we can Peek (that is we will get the reference of first item ) item from Queue.
  • Create a simple queuing program for a dance

A recap of a the data structures: ArrayList , List, Hash Tables, Dictionaries, Stacks and Queues.

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 on the form
  • Create a simple dice roll graphical simulation

In this Lecture we will

  • First review the concepts of the previous lecture by using an example which implements a user created Class that draws Faces on the screen
  • Learn how to draw on a Panel control
  • Learn about using the Color.FromArgb(alpha,r,g,b) command
  • Learn how to scroll the contents of a panel

In this Lecture we will

  • Challenge you to create a program that generates an 8x8 red and black checkerboard

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.
    • MouseProblem ... multiple forms
    • UpdatedBlackboard

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 provides immediate tangible results and keeps learners engaged with the C# fundamentals, unlike traditional console-based learning
Presents challenges and applications drawn from business, science, math, and cryptography, which allows learners to apply their programming skills to real-world scenarios and develop problem-solving abilities
Offers a comprehensive set of resources, including video instruction, lectures, exercises, and supplemental materials, alongside daily support from the instructor, which ensures learners have the tools and assistance they need to succeed
Explores sorting and searching techniques, including replacement sort, bubble sort, and binary search, which are essential for efficient data manipulation and retrieval in various applications
Covers graphics and animation techniques, including drag-and-drop events and flicker-free animation, which enables learners to create visually appealing and interactive applications
Explores database programming using SQL, including connecting to sequential and relational databases, which equips learners with the skills to create applications that manage and interact with data effectively

Save this course

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

Reviews summary

Comprehensive c# windows forms foundation

According to students, this course offers a comprehensive and practical introduction to C# programming focused on creating Windows Forms applications. Learners praise the instructor's clear teaching style, often described as patient and easy to follow, making complex topics accessible even for complete beginners. The emphasis on hands-on coding exercises and real-world examples drawn from various fields like business, math, and gaming is frequently highlighted as a major strength, providing a tangible understanding of concepts. Many appreciate the extensive resources and regular course updates, though some mention that certain sections or older examples occasionally feel slightly outdated or require minor adjustments for the latest Visual Studio versions. Overall, students find it a solid foundation for building desktop applications in C#, preparing them well for further study or practical projects.
Covers a wide range of C# and related topics.
"The sheer amount of content is impressive. It goes beyond just basics and covers OOP, data structures, and even databases."
"I was surprised by how many topics were covered, from arrays and strings to recursion and SQL."
"It provides a very broad overview of C# capabilities and how to apply them in desktop development."
"This course is packed with information, giving you a taste of many different programming areas."
Accessible for those with little to no experience.
"As someone with absolutely no prior coding experience, I found this course easy to follow. It truly starts from the basics."
"It's a great first step into programming using C#. Doesn't assume you know anything."
"Perfect for a beginner looking for a solid foundation in C# and Windows Forms."
"The course lived up to its promise of taking me from knowing nothing to building simple apps."
Learn C# by building practical GUI apps.
"Learning C# through Windows Forms applications from day one kept me engaged and motivated. It felt more real than just console apps."
"The focus on GUI apps was a game-changer for me. I could see tangible results from my code immediately."
"I specifically wanted to learn how to build desktop apps, and this course delivered exactly that using WinForms."
"It's a great way to learn C# basics while also getting practical experience with building interfaces."
Lots of hands-on coding and projects.
"The hands-on coding exercises and projects are the strongest part of the course for me. They solidify the concepts."
"I loved that the examples were drawn from diverse fields like business, math, and gaming. It made learning fun and relevant."
"The challenge problems are great for testing my understanding and pushing me to apply what I've learned."
"This course is very practical. It shows you how to actually *do* things with C#."
Teaching is clear, patient, and effective.
"The instructor is extremely patient and explains things clearly, which is perfect for someone like me starting from scratch."
"I really appreciate the instructor's easy-to-follow approach. He breaks down complex ideas into manageable steps."
"His teaching is clear and concise. It made learning C# less intimidating than I expected."
"The way the instructor explains the concepts is fantastic. It feels like he's talking directly to you."
Some older examples might need tweaking.
"While the course is updated, some older examples required minor adjustments to work perfectly with the latest Visual Studio version."
"Occasionally, I encountered slight discrepancies between the videos and the current version of Visual Studio or libraries."
"A few sections seemed slightly dated compared to modern C# practices, although the core concepts were still valuable."
Requires Windows and Visual Studio.
"Note that this course is entirely based on Visual Studio for Windows, so Mac users are out of luck unless they use a VM."
"As the description clearly states, you need a Windows machine and Visual Studio. This is a limitation for cross-platform learners."
"Requires a Windows environment to follow along with the demos and examples."

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# Intermediate Programming : The First Steps with these activities:
Review Basic C# Syntax
Solidify your understanding of fundamental C# syntax, including variable declarations, data types, operators, and control flow statements, to ensure a smooth transition into intermediate concepts.
Show steps
  • Review C# documentation and tutorials on basic syntax.
  • Write small code snippets to practice each syntax element.
  • Complete online quizzes or exercises to test your knowledge.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Deepen your understanding of C# and .NET Core by reading this book, which covers both fundamental and advanced topics relevant to the course.
Show steps
  • Read the chapters related to the course topics.
  • Work through the examples and exercises in the book.
  • Take notes on key concepts and techniques.
Implement Windows Forms with Event Handlers
Reinforce your understanding of Windows Forms and event handling by creating several simple applications with different UI elements and event-driven logic.
Show steps
  • Create a new Windows Forms application in Visual Studio.
  • Add UI elements such as buttons, text boxes, and labels.
  • Implement event handlers for button clicks and text changes.
  • Test the application to ensure the event handlers work correctly.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a C# Cheat Sheet
Compile a cheat sheet of commonly used C# syntax, methods, and best practices to serve as a quick reference guide during the course and beyond.
Show steps
  • Identify key C# syntax and methods covered in the course.
  • Organize the information into a concise and easy-to-read format.
  • Include examples and explanations for each syntax element.
  • Share the cheat sheet with other students for feedback.
Develop a Simple Calculator Application
Apply your C# skills to build a functional calculator application with a graphical user interface, reinforcing your understanding of event handling, arithmetic operations, and UI design.
Show steps
  • Design the UI with buttons for numbers and operations.
  • Implement event handlers for each button click.
  • Perform arithmetic operations based on user input.
  • Display the result in a text box.
  • Add error handling for invalid input.
Review 'CLR via C#' by Jeffrey Richter
Gain a deeper understanding of the .NET runtime environment by reading this book, which provides insights into memory management, threading, and other advanced topics.
Show steps
  • Read the chapters related to the .NET runtime.
  • Take notes on key concepts and mechanisms.
  • Relate the concepts to the C# code you write.
Assist other students in discussion forums
Reinforce your understanding of C# concepts by helping other students with their questions and problems in the course discussion forums.
Show steps
  • Regularly check the course discussion forums for questions.
  • Provide clear and helpful answers to student queries.
  • Share your knowledge and insights with others.

Career center

Learners who complete C# Intermediate Programming : The First Steps will develop knowledge and skills that may be useful to these careers:
C# Developer
A C# Developer focuses specifically on using the C# language to build software applications. Taking this course could be beneficial for aspiring C# Developers, as it provides a practical approach to learning C# by building Windows applications. The course covers C# syntax while engaging you with creating simple Windows Form based applications. You'll also explore advanced concepts such as recursion, sorting, searching techniques, and database programming using Structured Query Language, all essential for a successful C# Developer.
Full-Stack Developer
A Full Stack Developer works on both the front end and back end of applications. This course may be valuable for those interested in becoming Full Stack Developers, as it teaches you how to build Windows applications from day one and connects to databases using Structured Query Language. You will learn about data analysis, sorting, and searching, which are essential skills for managing and processing data. The course introduces Visual Studio, user interface controls, and multiple forms needed by a Full Stack Developer.
Software Developer
A Software Developer designs, codes, and tests software applications. This course may be useful for anyone looking to become a software developer, as it focuses on creating computer programs using the C# programming language and the Microsoft Visual Studio Integrated Development Environment for Windows machines. You'll learn about computer storage, variables, data types, arithmetic operators, and creating Windows applications with user interface controls. The practical skills gained, such as building Windows Form based applications, connecting to databases, and implementing mathematical algorithms, are valuable for a software developer.
Applications Developer
An Applications Developer specializes in creating and maintaining software applications for computers and other devices. If you are interested in becoming an Applications Developer, this course may assist you in learning how to use C# to create Windows based applications from day one. You will discover how to write code using assignments, sequences, repetitions, and selection structures. The course also introduces problem solving models and applies programming skills to create applications from business, science, math, cryptography, graphics and games. This will help you as an Applications Developer.
Software Engineer
A Software Engineer is involved in the entire lifecycle of software development, from design to deployment. This course may be useful for those aiming to become Software Engineers. The course focuses on C# programming including Microsoft Visual Studio, selection, methods, exception handling, object oriented programming and string handling. This course emphasizes the creation of Windows Forms applications. The course additionally addresses the stages in software development and cultivate problem-solving skills deemed valuable for any Software Engineer.
Game Developer
A Game Developer designs and creates video games for various platforms. You will appreciate that this course specifically touches on Graphics and Gaming. This may be useful if you want to become a Game Developer, as it includes content on creating 2D game applications with flicker-free animation and user control via keyboard and mouse. You'll learn how to incorporate drag and drop events and other graphical elements, providing a foundation for game development with C#.
Database Developer
A Database Developer designs, implements, and maintains databases. This course may be useful for those seeking to become Database Developers. The course emphasizes learning the skills associated with data including sorting, searching, and data analysis. Students also learn how to connect to databases using Structured Query Language. If you are interested in databases, then this course that emphasizes practical application could be useful for a future Database Developer.
Back-End Developer
A Back End Developer works on the server-side logic and databases that power applications. This course could be helpful for those aspiring to become Back End Developers, as it covers connecting to both sequential and relational databases using Structured Query Language. You'll also learn about data analysis, sorting, and searching, which are essential skills for managing and processing data on the back end. This course provides a valuable introduction to these concepts for any aspiring Back End Developer.
Front-End Developer
A Front End Developer focuses on the user interface and user experience of websites and applications. This course may be beneficial for those interested in becoming Front End Developers, as it teaches you how to build Windows applications from day one. You'll learn to use Visual Studio, create user interface controls, and work with multiple forms. As a Front End Developer, understanding how to create visually appealing and interactive interfaces is crucial, and this course provides a solid foundation for that.
Data Analyst
A Data Analyst collects, processes, and analyzes data to identify trends and insights. This course may be useful if you are looking to become a Data Analyst, as the course emphasizes the skills associated with data including data analysis, sorting, and searching. Students also learn about database connections using Structured Query Language. If you are interested in processing data, then this course that emphasizes practical application will be useful as a Data Analyst.
Software Architect
A Software Architect makes high-level design choices and dictates technical standards. A strong understanding of programming fundamentals is essential. This course may be useful as a primer to understanding coding in C#, Microsoft Visual Studio, selection, methods, exception handling, object oriented programming and string handling. Moreover, the software architect must also have familiarity with Databases using Structured Query Language, and this course will assist in these topics as well. While this Architect role typically requires years of experience and often an advanced degree, this course may be a good starting point.
Mobile App Developer
A Mobile App Developer creates applications for mobile devices, often working with platforms like Android or iOS. While this course focuses on Windows Forms applications, the foundational C# programming skills you gain can be transferable to mobile development. Understanding C# syntax, object-oriented programming, and problem-solving techniques may be useful as you transition to mobile app development using frameworks like Xamarin, which allows you to use C# to build cross-platform mobile apps.
Quality Assurance Engineer
A Quality Assurance Engineer is responsible for testing software to ensure it meets quality standards and functions correctly. This course may be useful if you are looking to be a Quality Assurance Engineer. The course focuses on understanding C# programming including Microsoft Visual Studio, selection, methods, exception handling, object oriented programming and string handling. This course also emphasizes the creation of Windows Forms applications. The course will instill problem-solving skills that are valuable for any Quality Assurance Engineer.
Robotics Engineer
A Robotics Engineer designs, builds, and programs robots and automated systems. While seemingly unrelated, this course may be useful if you are looking to become a Robotics Engineer. The course focuses on understanding C# programming. The course also emphasizes problem solving skills, as well as deterministic and probabilistic simulations. The concepts of control systems, feedback loops, and automation are closely related to programming concepts. If you are interested in robotics engineering, this course will be a good starting point.
IT Support Specialist
An IT Support Specialist provides technical assistance and support to computer users. Taking this course may be useful for IT Support Specialists as they will be better able to help users with C# and Windows based applications. Though the course does not focus on IT support explicitly, the understanding of computer programs and software gained through this course can assist in providing more informed and effective technical support, particularly for users who may be experiencing problems using custom built C# applications.

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# Intermediate Programming : The First Steps.
Delves into the inner workings of the Common Language Runtime (CLR), providing a deep understanding of how C# code is executed. It is highly recommended for students who want to gain a more profound knowledge of the .NET framework. While not strictly necessary for the course, it provides invaluable insights into memory management, threading, and other advanced topics. This book is commonly used by industry professionals and advanced students.
Provides a comprehensive guide to C# 8.0 and .NET Core 3.0, covering the fundamentals and advanced features of the language and platform. It is particularly useful for understanding cross-platform development with C#. The book offers practical examples and exercises that complement the course material, allowing students to deepen their understanding of C# and .NET Core. It serves as a valuable reference for building modern applications.

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