4.46 out of 5
348 reviews on Udemy

C# Intermediate Programming : Applications Driven Approach

A great way learn to how to solve real problems using Winforms in C#. More videos and exercises than any Intro course
Charlie Chiarelli
2,931 students enrolled
English [Auto-generated]
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 lookups (searching) to determine the distance between two cities or the telephone code for a country
Create Math applications that illustrate the hidden pitfalls of computer arithmetic in the real world, and applications that solve mazes and puzzles using recursion
Create applications from the world of Cryptography which validate SIN (Social Insurance Code), VIN, ISBN numbers and also create applications which code and decode messages.
Create Graphics applications which incorporate drag and drop events
Create several 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 (PROGRAMMING CHALLENGES) from a wide variety of disciplines.

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 homeschool 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 4×4 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.

Course Information


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.

What You Need

Here's what you need:

Visual Studio Express 2015 or greater
Course Demos

What You are Going to Learn

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 !

The Basics Extended

Introduction ... Using Visual Studio Express

In this Lecture we will

  • Become acquainted with the Visual Studio C# Express environment
Introduction to C# ... Creating Your First Apps

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
More User Interface Controls and Events

In this Lecture we will

  • Use Scroll Bars and the NumericUpDown control
  • Use the menu control
  • Work with multiple forms
Entering and Outputting Data ... The Concept of Storage

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
Mathematical Operators and Applications ... Part 1

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)
Mathematical Operators and Applications ... Part 2

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
Selection Part 1 ... The IF Statement and Boolean Operators

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 && ||
Selection Part 2 ... Applications

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
User Defined Dialogs Part 1

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.
User Defined Dialogs Part 2

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)
Repetition ... User and Counter Controlled

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
Repetition ... Applications (Counters and Accumulators)

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.
Combo Boxes and List Boxes

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 Techniques

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

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

In this Lecture we will

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

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

In this Lecture we will

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

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

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

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

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

In this Lecture we will

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

In this Lecture we will

  • Learn why and how to use subroutines or methods.
  • Learn that a method is actually just a small program that can be called from within a program
  • Create some sample applications
Methods Extended

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
  • Create several applications that incorporate this new concept
Data Files

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
Extension ... Discovering New Controls

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
The Basics Extended Quiz

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 

Handling Exceptions

Introduction to Exceptions

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
Handling Exceptions Quiz

A recap of error handling techniques in c#

Advanced Array Applications

One Dimensional Arrays

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.
One Dimensional Array Applications

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
Advanced One Dimensional Array Applications

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
Two Dimensional Arrays

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.
Two Dimensional Array Applications

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.
Two Dimensional Array Advanced Applications

In this Lecture we will

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

In this Lecture we will

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

A recap of one,two and three dimensional array concepts

Mathematical Applications

Built-In Mathematical Functions ... Some of the more useful ones

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
The Hidden Pitfalls of Computer Arithmetic ...The Concept of Tolerance

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
The GCD and the Euclidean Algorithm

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)
Mathematical Applications Quiz

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

Advanced Probabilistic Simulations

Random Numbers

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

  • 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"
Random Selection Without Duplication

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"
The Memory Game Application

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.
Building Discrete Random Distributions

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
Probabilistic Simulations Quiz

A recap of random numbers and their applications

Object Oriented Programming

Introduction to OOP

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
Intermediate OOP Concepts

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
Practical Application ... Using Object Orient Programming

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";

Object Oriented Programming Quiz

A recap of OOP concepts and Structures

String Applications

Introduction to Strings

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
Concatenation and String Accumulators

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
Number Problems ... Yes Number Problems with Strings

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
Code Validations ... Social Insurance Numbers ... Credit Cards

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
Other String Applications... ISBN (Books Identification)

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
More String Problem Challenges

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 !!
Strings Quiz

A recap of C# String commands and applications

Introduction to Recursion

Recursion Basics

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)
Interesting Applications of Recursion

In this Lecture we will

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

In this Lecture we will

  • Use the recursive backtracking technique to navigate through mazes
Recursion Quiz

A recap of Recursion basics

Sorting and Searching

Sorting Basics ... The Bubble Sort

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.
Sorting ... The Next Step

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
Advanced Sorting Techniques

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.
Sorting Application ... The Median Problem

In this Lecture we will

  • Challenge you with a sorting application problem which determines the median of school marks
Sorting Multi-Field Records

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
Using Classes and Structures to Sort Multi-Field Records

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
Searching Techniques ... The Sequential Search

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
Searching Techniques ... The Binary Search

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
Searching Applications ... Table Lookups

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
Sorting and Searching Quiz

A recap of Sorting and Searching Techniques and Applications

File Handling Applications

Updating Sequential Files

In this Lecture we will

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

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
Simple Sequential File Applications

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
Adding an SQL Database to a C# Project

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
Creating a Relational Database Application using SQL and C# Part 1

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)
Creating a Relational Database Application using SQL and C# Part 2

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   
File Handling Quiz

A recap of File Handling and SQL

Introduction To Data Structures

ArrayLists and Lists

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
Hash Tables and Dictionary

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
Data Structures Quiz

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


The Graphics Class ... Using the Form Paint Method

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
Using The Panel Control

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
The Checkerboard Problem

In this Lecture we will

  • Challenge you to create a program that generates an 8x8 red and black checkerboard
Mouse Events ... Part 1 Introduction

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
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5 out of 5
348 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


31 hours on-demand video
55 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion