C# Intermediate Programming : Applications Driven Approach
4.5 (148 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,088 students enrolled
Wishlisted Wishlist

Please confirm that you want to add C# Intermediate Programming : Applications Driven Approach to your Wishlist.

Add to Wishlist

C# Intermediate Programming : Applications Driven Approach

A great way learn to how to solve real problems using Computer Science
4.5 (148 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,088 students enrolled
Created by Charlie Chiarelli
Last updated 8/2017
English
Curiosity Sale
Current price: $10 Original price: $50 Discount: 80% off
30-Day Money-Back Guarantee
Includes:
  • 30.5 hours on-demand video
  • 34 Articles
  • 326 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
What Will I Learn?
  • Program fluently in C# using Microsoft Visual Studio
  • Understand how to create a basic Windows Form Application ... No Console Apps
  • Understand the basic concepts of Selection, Repetition, Methods and Exception Handling
  • Understand the intermediate concepts of Arrays (one,two,three dimensional), Random numbers,Object Oriented Programming, String handling
  • Understand the advanced concepts of Recursion, Sorting and Searching Techniques, Database Programming using SQL, Graphics and Animation Techniques
  • Apply the programming skills learned to create meaningful computer applications from the world of Business, Science, Math, Cryptography, Graphics and Gaming
  • Create Business applications which incorporate sorting, searching, data analysis and connecting to a database
  • Create Science applications which incorporate probabilistic and deterministic simulations
  • Create Social Studies applications (Geography) which incorporate table 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.
View Curriculum
Requirements
  • All course material (demos, notes) will be available for download during each individual lecture. The only software required to start the course is the free version of Microsoft Visual Studio Express (link provided in intro lecture)
Description

Students will learn to create their own computer programs using the C# programming language. Only a very basic knowledge of C# syntax or any other programming language is expected. This is a course for individuals who would consider themselves slightly above beginners. This programming course is meant for ANYONE WHO WANTS TO LEARN TO CODE. We cover C# syntax but more importantly we introduce the PROBLEM SOLVING SKILLS necessary  to convert practical problems to solutions in code.The first section of the course serves as a refresher to get everybody up to speed.

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 4x4 grid
    • creating applications utilizing drag and drop events
  • Gaming
    • animation basics
    • using a back buffer (double buffer) to improve flicker
    • creating simple 2d games using keyboard and mouse movement and incorporating sound effects


My goal is not just to show you how to program, but to help you understand what you are doing, and why you are doing it . But,having said that, I will try to present the material in such a way that we don't get too hung up on rigid standards. Once you get a feel for the material you could certainly get more serious and take a university or college course or take a more advanced online course.

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

You will go away and complete the challenge, and then come back and see the challenge answered and explained in detail in the video, allowing you to check your results!  I am online daily to respond to any problems you may encounter. 

... and finally, this is NOT a static course, updates are made several times a month, with new lectures and challenge problems added on a continual basis.

Who is the target audience?
  • This course is meant for individuals who are somewhat familiar with basic C# syntax or any other programming language but who would only consider themselves slightly above beginners. This programming course is meant for ANYONE WHO WANTS TO LEARN TO CODE . We cover C# syntax but more importantly we introduce the problem solving skills necessary to convert practical problems to solutions in code. The first section of the course serves as a refresher to get everybody up to speed.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
146 Lectures
30:40:59
+
Course Information
3 Lectures 19:19

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.

Preview 01:39

Here's what you need:

Visual Studio Express 2015
7zip

What You Need
09:00

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 !
Preview 08:40
+
The Basics Extended
20 Lectures 05:28:12

In this Lecture we will

  • Become acquainted with the Visual Studio C# Express environment
Introduction ... Using Visual Studio Express
09:50

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
Introduction to C# ... Creating Your First Apps
19:54

In this Lecture we will

  • Use Scroll Bars and the NumericUpDown control
  • Use the menu control
  • Work with multiple forms
More User Interface Controls and Events
19:27

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
Preview 18:04

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 1
16:55

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
Mathematical Operators and Applications ... Part 2
18:41

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 1 ... The IF Statement and Boolean Operators
19:37

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
Selection Part 2 ... Applications
19:51

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

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)
User Defined Dialogs Part 2
16:19

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 ... User and Counter Controlled
19:44

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

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
Combo Boxes and List Boxes
19:36

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
Problem Solving Techniques
04:44

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

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
Error Handling and Debugging
11:06

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

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
Methods Extended
19:24

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
Data Files
19:10

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

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 

The Basics Extended Quiz
12 questions
+
Handling Exceptions
1 Lecture 14:31

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
Introduction to Exceptions
14:31

A recap of error handling techniques in c#

Handling Exceptions Quiz
6 questions
+
Advanced Array Applications
7 Lectures 02:01:03

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 Arrays
20:01

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
One Dimensional Array Applications
15:33

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

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

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 Applications
19:36

In this Lecture we will

  • Introduce the concept of two dimensional array counters
  • Create programs which perform data analysis
Two Dimensional Array Advanced Applications
18:36

In this Lecture we will

  • Introduce the concept of three dimensional arrays
  • Take a look at a practical application of three dimensional arrays
Multi Dimensional Arrays
10:58

A recap of one,two and three dimensional array concepts

Array Quiz
8 questions
+
Mathematical Applications
3 Lectures 41:55

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
Built-In Mathematical Functions ... Some of the more useful ones
08:23

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

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)
Preview 18:58

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

Mathematical Applications Quiz
3 questions
+
Advanced Probabilistic Simulations
5 Lectures 01:32:37

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"
Random Numbers
20:00

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"
Applications
18:58

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"
Random Selection Without Duplication
17:12

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.
The Memory Game Application
20:02

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
Building Discrete Random Distributions
16:25

A recap of random numbers and their applications

Probabilistic Simulations Quiz
3 questions
+
Object Oriented Programming
4 Lectures 01:06:10

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
Introduction to OOP
19:40

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
Intermediate OOP Concepts
19:55

In this Lecture we will

  • Highlight a practical applications that incorporates Object Oriented Programming concepts
    • Payroll Application
Practical Application ... Using Object Orient Programming
12:00

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

Structures
14:35

A recap of OOP concepts and Structures

Object Oriented Programming Quiz
8 questions
+
String Applications
7 Lectures 02:04:11

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
Introduction to Strings
19:41

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

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

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

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

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
Cryptography
17:07

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 !!
More String Problem Challenges
12:33

A recap of C# String commands and applications

Strings Quiz
8 questions
+
Introduction to Recursion
3 Lectures 59:00

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)
Recursion Basics
19:51

In this Lecture we will

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

In this Lecture we will

  • Use the recursive backtracking technique to navigate through mazes
Solving Mazes
20:00

A recap of Recursion basics

Recursion Quiz
3 questions
+
Sorting and Searching
9 Lectures 02:40:53

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 Basics ... The Bubble Sort
19:40

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

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.
Advanced Sorting Techniques
20:01

In this Lecture we will

  • Challenge you with a sorting application problem which determines the median of school marks
Preview 16:20

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
Sorting Multi-Field Records
17:32

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

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 Sequential Search
20:00

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 Techniques ... The Binary Search
13:10

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

A recap of Sorting and Searching Techniques and Applications

Sorting and Searching Quiz
6 questions
5 More Sections
About the Instructor
Charlie Chiarelli
4.6 Average rating
219 Reviews
1,333 Students
2 Courses
Experienced Online Educator

Hi, my name is Charlie Chiarelli. I'll be your teacher for this course. I will spend as much time as necessary to help you do the best you can. But, for you to succeed you must be willing to work .

I am a retired High school Computer Science and Mathematics Teacher from Canada. I taught for 35 years, I have a BMath degree from the University of Waterloo.

I was a frequent speaker at educational conferences (ECOO) and seminars . Most recently my talks focused on E-Learning and the future of education (Flipping the Classroom).

I was the school webmaster and served on a number of school board committee , recently advising my school board (Hamilton Wentworth Catholic District School Board) on its online learning direction. I was also the contest coordinator for the Annual Programming Contest for the past 15 years.

For the last 7 years before I retired I was in the unique position of teaching most of my computer science classes entirely online using the D2L LMS. Because of low enrollment and lack of qualified computer science teachers I became the "board" teacher. So my virtual class was made up of students from various schools in the region.

I am not a brilliant software engineer trying to teach programming. I am a high school computer science teacher that has taught teenagers for over 35 years. So I think my perspective and sensibilities are quite different than the typical Udemy instructor. I feel this gives me a greater appreciation for what beginners need to learn and how it should be presented. 

The next big blue-collar job category is already here—and it’s programming. What if we regarded code not as a high-stakes, sexy affair, but the equivalent of skilled work at a manufacturing plant? I believe we should spend less time urging kids to do expensive four-year computer-­science degrees and instead introduce more code at the vocational level in high school and  community colleges. Mid career people can learn coding online at sites like Udemy. I put forth the belief that  we should focus less on the wunderkinds and more on the average individual.

I hope you agree and find my courses rewarding.