Skip to content

C# Programming (Intermediate)


Course
Access code required
Enroll

Modules

Here is the course outline:

1. Introduction ... What You Need

In this module we are introduced to the instructor of the course and we discuss what software is required and how to use it.

2. Introduction to C# ... Creating Your First Apps

In this module we will create our first Windows Form Application using various user interface controls including labels, textboxes, buttons , pictureboxes,radiobuttons, group boxes. Become acquainted with naming conventions for the interface controls

3. More User Interface Controls and Events

In this module we will use Scroll Bars and the NumericUpDown control. We will also learn how to use the menu control and work with multiple forms

4. Entering and Outputting Data ... The Concept of Storage

In this Module 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 statements Discuss the concept of scope of variables

5. Mathematical Operators and Applications ... Part 1

In this module 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)

6. Mathematical Operators and Applications ... Part 2

In this module 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

7. Selection Part 1 ... The IF Statement and Boolean Operators

In this module we will: 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 && ||

8. Selection Part 2 ... Applications

In this module 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

9. User Defined Dialogs Part 1

In this module 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.

10. User Defined Dialogs Part 2

In this module 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).

11. Repetition ... User and Counter Controlled

In this module 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

12. Repetition ... Applications (Counters and Accumulators)

In this Module we will: Look at some practical uses of 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.

13. Combo Boxes and List Boxes

In this Module 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

14. Problem Solving Techniques

In this module we will learn that: 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. 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

15. Flowcharts

In this module we will learn that : 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 module 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.

16. Error Handling and Debugging

In this module we will learnt that 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 module we will Look at Syntax errors Look at Run-Time errors Look at Logic errors

17. Methods

In this module 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

18. Methods Extended

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

19. 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 module 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

20. 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 module 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

21. Introduction to Exceptions

In this Module we will: Learn that Exceptions occur when an application experiences some unexpected problem at run time. 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

22. One Dimensional Arrays

In this module we will: Introduce the concept of 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.

23. One Dimensional Array Applications

In this Module 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.

24. Advanced One Dimensional Array Applications

In this Module 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

25. Two Dimensional Arrays

In this Module 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.

26. Two Dimensional Array Applications

In this Module 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.

27. Two Dimensional Array Advanced Applications

In this Module we will: Introduce the concept of two dimensional array counters Create programs which perform data analysis

28. Multi Dimensional Arrays

In this Module we will: Introduce the concept of three dimensional arrays Take a look at a practical application of three dimensional arrays

29. Built-In Mathematical Functions

In this Module we will: Introduce several useful built-in math functions Trigonometric functions Absolute Value Create a simple application which utilizes some of these functions

30. The Hidden Pitfalls of Computer Arithmetic ...The Concept of Tolerance

In this Module 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

31. The GCD and the Euclidean Algorithm

In this Module 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 us find the GCD adding fractions (simple problem ... not so simple solution when you must code it)

32. 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 Module 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"

33. Applications

In this Module 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"

34. Random Selection Without Duplication

In this Module 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"

35. The Memory Game Application

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

36. Building Discrete Random Distributions

In this Module 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

37. 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 data types that can be used as such in helper method declarations and more. In this module 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

38. Intermediate OOP Concepts

In this module 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

39. Practical Application ... Using Object Orient Programming

In this Module we will Highlight a practical applications that incorporates Object Oriented Programming concepts Payroll Application

40. Structures

In this Module we will 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";

41. Introduction to Strings

In this Module 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

42. Concatenation and String Accumulators

In this Module 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

43. Number Problems ... Yes Number Problems with Strings

In this Module we will Look at how strings are used to solve number theory problems Discuss how this topic is a pre-cursor to Cryptography ... the science of codes

44. Code Validations ... Credit Cards and More

In this Module 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

45. Other String Applications... ISBN (Books Identification)

In this Module 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

46. Cryptography

In this Module 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

47. More String Problem Challenges

In this Module 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 !!

48. Recursion Basics

In this Module we will 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)

49. Interesting Applications of Recursion

In this Module we will Take a look at some sample applications of Recursion Path Length Word Puzzle Flood Fill ..... and more !!!

50. Solving Mazes

In this Module we will Use the recursive backtracking technique to navigate through mazes

51. Sorting Basics ... The Bubble Sort

In this Module 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.

52. Sorting ... The Next Step

In this Module 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

53. Advanced Sorting Techniques

In this Module 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.

54. Sorting Application ... The Median Problem

In this Module we will Challenge you with a sorting application problem which determines the median of school marks.

55. Sorting Multi-Field Records

In this Module 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

56. Using Classes and Structures to Sort Multi-Field Records

In this Module 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

57. Searching Techniques ... The Sequential Search

In this Module 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

58. Searching Techniques ... The Binary Search

In this Module 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

59. Searching Applications ... Table Lookups

In this Module 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

60. Updating Sequential Files

In this Module we will Extend our knowledge of Data Files by creating a program which updates a Sequential files changes deletions additions

61. Using Common Dialogs

In the Module 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

62. Simple Sequential File Applications

In this Module 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

63. Adding an SQL Database to a C# Project

In this Module 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

64. Creating a Relational Database Application using SQL and C# Part 1

In this Module 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)

65. Creating a Relational Database Application using SQL and C# Part 2

In this module 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   

66. ArrayLists and Lists

In this module 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 structures. 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 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 is a generic class. It supports storing values of a specific type without casting to or from object

67. Hash Tables and Dictionary

In this module 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.

68. Stacks

In this module 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

69. Queues

In this module 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

Back to top