Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add An 16 Hour C# Course With Microsoft Visual Studio 2013 to your Wishlist.

Add to Wishlist

An 16 Hour C# Course With Microsoft Visual Studio 2013

Quadruple Your Skills: Learn C# , Microsoft Visual Studio 2013, Debugging and SQL Server Basics!
4.3 (533 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.
9,890 students enrolled
Created by Tom Owsiak
Last updated 11/2016
$10 $30 67% off
17 hours left at this price!
30-Day Money-Back Guarantee
  • 16 hours on-demand video
  • 3 Articles
  • 41 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
Find, download and install Visual Studio
Create and run a simple console application
Declare and initialize variables
Learn how to use the locals and call stack windows in Visual Studio
Learn how to step through a program line by line for maximum comprehension
Learn how to perform arithmetic
Learn to use various variable types
Learn how to code for loops
Learn how to code switch statements
Learn how to construct simple classes
Learn how to create objects, call functions, both object and static
Learn how to use and code arrays for various data types
Learn how to use the length property of arrays, and how to convert between data types
Learn how to create a simple inheritance structure
Learn how to call functions from client code
Learn simple file writing and reading
Learn how to create a simple application and install it on your computer
Learn how to write generic classes and interfaces
Learn how to work with Lambda expressions
Learn how to work with SQL Server
Learn how to use LINQ with Arrays and XML
Learn how to use LINQ with SQL Server
Learn how to update, delete, insert data with web pages and SQL Server
Learn how to create and publish simple WPF apps
Learn how to make simple Graphical User Interfaces and Display Files and Folders
Learn how to work with threads
Learn how to serialize and deserialize objects
Learn how to create databases from code using the Entity Framework
Learn how to create windows services
Develop an Understanding of Windows Forms
Understand How To Use Async and Await To Increase Program Responsiveness
Learn How To Check for Existing Files and Append Text
Learn How To Launch Another Program With C# Code
Create Full Scale Applications That Synthesize Many Different Concepts
Learn How To Work With Progress Bars
Learn How To Save and Restore Control Values
Learn How To Work With List Boxes
Learn How To Build Events With Publishers and Subscribers
Learn How To Build An Image Browser
How to To Use Iron Python In C#
View Curriculum

This comprehensive C# course is designed for beginner programmers, as you won't be rushing through code. It focuses on the C# language rather than the graphical aspects of Windows programming. The focus at first is on simple Console applications. This course works with Visual Studio 2013, or Visual Studio 2015.

You'll learn in a detailed and deliberate way so you can set a foundation and move from basic to more advanced concepts easily.

In addition to learning C#, you'll also cover the Microsoft Visual Studio programming environment, which will serve as the perfect complement to your newfound C# skills.

Learn C#, Visual Studio, and Object Oriented Programming

Start Using the C# Programming Language to Work with Code and Data Through Simple Console Applications

Understand the Microsoft Visual Studio Environment as It Relates to C#

Apply the Fundamentals of Object Oriented Programming to Data

Enhance Your Programming Skills with a Foundation in C#

Throughout this course, you'll learn the core concepts of C#, which can then be applied directly to other popular programming languages, including C++, C, Java, and JavaScript.

Contents and Overview

You'll start this course by learning the fundamentals of C# and Visual Studio, including configuring the layout, defining variables, interacting with users, and understanding data types, data conversions, and constants.

To work with code in a more advanced way, you'll tackle how to check simple conditions using if/else blocks, as well as how to use loops to do things like repeat blocks of code to work more efficiently.

After covering various operators to evaluate and assign control structures, you'll learn how to use arrays to store collections of data.

Moving on to Object Oriented Programming, you'll create objects that contain both data and functions to make your job even easier.

By the end of this course, you'll have a solid understanding of the most important aspects of C#, Visual Studio, and Object Oriented Programming.

You'll be able to use these new skills to advance your career as a programmer, as well as become a C# developer.

Note: Promo template licensed from PRESENTERMEDIA

Who is the target audience?
  • Programming Novices
  • People Who Understand That Rushing In General Results in Shallow Understanding
  • People Who Like To Check Their Understanding
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 116 Lectures Collapse All 116 Lectures 16:00:47
1 Lecture 03:37

Big Idea: C# is powerful, and very popular in the marketplace. Learn it, and put in on your resume.To learn it properly, and truly, you must invest time and energy, but at the end, lies a great and valuable skill that can take you very far in life.

Lesson Objectives:
1. C# is a powerful programming language
2. There are many jobs in this language
3. It's great for tinkerers
4. The lessons in this course use Visual Studio 2013 For Desktop
5. Setting the environment font
Lesson Resources:
1. Link to download page
2. Link to pages that help with download issues

Preview 03:37
Learning The Fundamentals
12 Lectures 01:09:31

Big Idea: It's your work space, so you can be as productive as want, and make Visual Studio your own.

Lesson Objectives:
1. Control the layout of the panels in Visual Studio
2. Change the font of each of these windows:
a. Text Editor
b. Statement Completion
c. Editor Tooltip
d. Locals Window
Lesson Resources:
1. Link to additional detail on changing fonts

Preview 02:58

Big Idea: Printing a single line of text

Learning Results:

1) Create and run a simple console application

2) Learn how to comment code

3) Become familiar with the concept of a namespace, class and method

4) There is also a useful image attached showing how to move blocks of code right and left


1) Close Visual Studio, and repeat the procedure you see in the video. Be sure you get all the way to the point of having the console window running.

2) Create a program that prints two sentences.

Create and Run A Simple Program

Big Idea: Use comments to annotate code so it's more meaningful, especially after a period of time

Learning Results:

1) Understand purpose of multiline comments

2) Learn how to define a block of code

3) Learn how to nest blocks of code

Blocks, Nested Blocks, and Multiline Comments

Big Idea: People expect applications to produce professional results

Learning Results:

1) Learn how to format a string

2) Review concept of place holder that is filled at run time with a variable value

3) Learn how to apply the currency format

4) Learn how to apply the percent format

Using Format Specifiers To Create More Professional Output

Big Idea: Things change, so variables are needed to represent those changing quantities.

Learning Results:

1) Understand that a variable is an identifier that represents changing or unknown quantities

2) Learn about the double data type as good for representing measured values

3) Learn how to view summary information on a variable in the locals window

Creating One Variable And Watching It Change

Big Idea: There are many different data types that can be used describe objects

Lesson Objectives:

1. Describing an object with different data types

2. Understanding that C# is strongly typed

3. Data types shown are boolean, decimal and string

Lesson Resources:

1. Code to copy and paste

2. Data types in C#

Describing An Object With Different Data Types

Big Idea: Variables can be combined through basic arithmetic

Lesson Objectives:
1. Learn how to add, subtract and divide variables
2. Learn how to use the var keyword
Lesson Resources:
1. Commented code to copy and paste

Combining Variables Using Addition, Division And Subtraction

Big Idea: A single mathematical symbol can result in two different values

Lesson Objectives:

1. Understanding the result of dividing two doubles

2. Understanding the result of dividing two integers

Lesson Resources:

1. Commented code to copy and paste

Understanding Division of Doubles And Integers

Big Idea: The slash symbol and percent symbol produce two conceptually different results

Lesson Objectives:

1. Understand the difference between % and / when dividing two integers

Lesson Resources:

1. Commented code to copy and paste

Understanding How To Use The Remainder Operator

Big Idea: Programs are machines. They accept input, operate on the input, and produce output.

Lesson Objectives:

1. Reading string input

2. Converting to numerical form

3. Doing a useful calculation and producing output

Lesson Resources:

1. Commented code to copy and paste

Interacting With Users Through The Command Prompt

Big Idea: Data loss can occur when converting between types, so design to ensure this does not happen.

Lesson Objectives:

1. Understand data casting

2. Understand the character data type

Lesson Resources:

1. Commented code to copy and paste

Reading Input From Users By Using Data Casting

Big Idea: If something needs a meaningful name, but does not change, use a constant to represent this quantity. For example, the number of months in a year.

Learning Results:

1) Understand the purpose of the keyword const

2. Important Note: trying to change a constant after its set gives an error

Creating And Using Constants To Represent Unchanging Quantities
Controlling Program Flow
10 Lectures 53:17

Big Idea: If blocks run on logical conditions, which can take many different forms

Lesson Objectives:
1. Use if to check a condition
2. Use the == operator
3. Use the Contains method
Lesson Resources:
1. Commented code to copy and paste

Reacting To A Simple Condition With If Blocks

Big Idea: Making decisions results from having options. Programs should be flexible, and respond smartly based on user choice.

Lesson Objectives:
1. Creating and using if/else blocks
2. Understanding how such blocks execute
Lesson Resources:
1. Commented code to copy and paste


1) Create an application that accepts two inputs, compares them, and returns them sorted from lower to higher. For example, if a user inputs 4,3, the application should return 3,4.

Checking Simple Conditions With If/Else Blocks

Big Idea: There a few ways of adding growing a variable value

Lesson Objectives:

1. Understand how to use ++

2. Understand how to use +=

Making A Variable Grow By Adding One

Big Idea: Computers excel especially at performing routine tasks much faster than humans. Loops fit into this scheme.

Lesson Objectives:
1. Create a counter variable
2. Create and run a while loop
3. Run loop step by step to be sureit's 100% clear
Lesson Resources:
1. Commented code to copy and paste
2. More complex example on the page where the code is stored

Repeating Blocks Of Code With While Loops

Big Idea: In real life, there are multiple conditions. In code, these can be handled with multiple if/else blocks.

Lesson Objectives:

1. Understand how to create if/else blocks

2. Understand why such blocks are needed

3. Understand how such blocks execute

If/Else Blocks with Multiple Options

Big Idea: Switch blocks allow us to replace if/else if/else blocks so multiple variable values can be checked

Learning Results:

2) Learn how to code a switch block to examine multiple options

3) Learn how to leave a switch block with the break keyword

4) Use the locals window to observe the values of the variables, and step through the code line by line to understand how the switch statement behaves as the code runs.

Examining Multiple Options With Switch Blocks

Big Idea: For loops allows us to repeat an operation fast

Learning Results:

1) Create a for loop to repeat blocks of code

2) Execute the for loop with the debugger to see how it operates

Repeating Blocks Of Code With For Loops

Big Idea: Foreach loops simplify iteration through collections of items.

Learning Results:

1) Code a foreach loop

2) Understand how a foreach loop runs

3) Stepping through the execution of the foreach loop using the locals window

Examining The Items In A Collection By Using ForEach Loops

Big Idea: Do while loops run at least once because the condition that controls them is checked at the bottom of the loop

Lesson Objectives:

1) Code a simple do-while loop

3) Understand that this loop runs at least once

3) Observe the behavior of the loop as the program executes

Additional Resources:

1. More advanced example

Collecting Input At Least Once With Do/While Loops

Big Idea: A while loop can be used to collect input until a user wants to quit

Learning Results:

1) Learn how to collect input forever

2) Learn how to continue a loop

Performing An Action Until A User Wants To Quit
6 Lectures 36:51

Big Idea: This operator allows us to refine control over logical decision making.

Learning Results:

1) Understand how to use the && operator to check logical conditions

2) Understand that for this operator, both conditions must be true for the code following the "if" to execute

3) Understand that this operator is considered a "short-circuiting" operator because if one condition fails, the other is not checked

Ensuring Two Conditions Are True With The Logical And Operator

Big Idea: This operator allows us to refine our logical decision making.

Learning Results

1) Learn how to code an "or" statement in a simple financial application

2) Understand that the "or" statement in C# is inclusive, so it evaluates to true when one, or the other, or both conditions are true

Ensuring At Least One Of Two Conditions Is True With The Or Operator

Big Idea: These operators allow us to rewrite expressions in a very compact way

Learning Results:

1) Learn how to increment and decrement a variable using += and -=

2) Learn how to user various compound operators to divide and multiply

3) Learn how to use the post fix and prefix operator

Compound Operators That Evaluate and Assign

Big Idea: Truth values of expressions are controllable.

Learning Results:

1) Understand how to reverse the truth value of boolean variables

2) Understand how to run if blocks using boolean variables

Reversing Truth Values With The Logical Negation Operator

Big Idea: Replace if/else blocks with this operator

Learning Results:

1. Learn how to replace if/else blocks with the ternary operator

Additional Resources:

1. Advanced example

Replacing If/Else Blocks With The Ternary Operator

Big Idea: It's possible to combine logical operators in a variety of ways to produce more refined logic

Learning Results:

1. Understand how to combine the logical "and" and or operators

2. Understand how to build a simple program that can filter a list of characters

Combining Logical Operators To Write More Powerful Code
Arrays and Methods
11 Lectures 01:08:46

Big Idea: Functions allow us to break up software into discrete pieces that perform specific tasks well.

Learning Results

1) Understand how to create function

2) Learn the meaning of static, void and how to create a function name

3) Understand how to call a function

4) Attached are two PDF's with flow diagrams that describe in much more detail how methods work

Breaking Programs Into Smaller Pieces With Methods

Big Idea: Methods can accept and return values

Learning Results:

1. Learn how to create a method that can accept and return values

2. Understand the concept of a return data type and a parameter data type

Creating A Method That Accepts And Returns A Value

Big Idea: Arrays allow us to store information in sequences, and gives us a compact syntax for manipulation this data.

Learning Results

1) Understand the concept of an array

2) Learn how to declare, and initialize arrays

3) Understand how to read arrays

4) Understand how to assign values to arrays

5) Learn how to work with arrays in a practical context

6) Attached is a PDF showing how to read lists into arrays

Creating And Using Arrays To Store Data

Big Idea: For loops work well with arrays because they give us an index we can use to manipulate arrays

Learning Results:

1) Create an array

2) Fill array with for loop

3) Display array values with foreach loop

Operating On Arrays With For And ForEach Loops

Big Idea: Reference and simple types like behave differently when copied

Learning Results:

1. Understand how to copy by reference

2. Understand how to copy by value

Understanding Reference Type And Value Type Variables

Big Idea: The ref keyword allows us to modify value type variables in multiple places

Learning Results:

1) Learn how to force C# to pass basic types like integer by reference

2) Learn how to use the "ref" keyword in both function calls and function headers

3) Learn how to swap values

Preview 05:13

Big Idea: This keyword allows us to return multiple values from functions.

Learning Results:

1) Learn how to use the out keyword in function calls

2) Understand how to modify parameters with out keyword

3) Understand that this keyword allows returning multiple values from a function

4) Learn that this keyword does not require us to initialize variables with values

Using Out Parameters To Allow Methods To Set Multiple Values

Big Idea: Two-dimensional arrays allow us to hold information, which is often times related. For example, a row can hold purchases for a person. Another row can hold purchases for another person and so on.

Learning Results:

1) Understand that a two-dimensional array is a table

2) Understand how to address each cell using (i,j), where i is the row index, and j is the column index

3) Understand the difference between the index and the actual value stored at the given index

4) There is also a PDF showing an approach to thinking like a programmer

Holding Tabular Information With Multidimensional Arrays

Big Idea: Arrays are passed by reference. This means that the names are passed, but the data is not.

Learning Results:

1) Learn how to pass an array as an argument into a function

2) Learn how to go over the entries inside an array using a foreach loop

3) Understand that arrays are reference types, so no data is copied, but references are passed

4) Understand how to use an out parameter to return a value from a function

Storing Information In Jagged Arrays

Big Idea: This keyword allows us to make methods flexible

Learning Results:

1) Learn how to use the params keyword

2) Learn how to make use of the params keyword in a method header

Writing More Flexible Methods With The Params Keyword

Big Idea: TryParse is a powerful method that allows creating more stable programs

Using the TryParse Method To Write More Powerful Code
Fundamentals of Objected Oriented Programming
22 Lectures 03:30:25

Big Idea: Classes allow us to group functionality into a single unit. We use them because the world around us can be divided into different types of objects. For example, the Console class we've used many times.

Learning Results:

1) Create a new class using the correct syntax

2) Write a constructor for the class

3) Declare an instance of the class, and initialize the instance

4) Understand that the default value for objects is null

5) Understand the concept of a reference as a name that refers to memory location

Create A Simple Class With A Constructor

Big Idea: Methods make classes more powerful by adding various behaviors.

Learning Results:

1) Create a class with a constructor

2) Create a method that expresses the action of speaking

3) Create an instance of the person class and call the Speak method on the instance

Create A Class With A Constructor And A Method

Big Idea: Properties give us controlled access to fields

1. Create a class

2. Create a method

3. Create and use a property

Create A Class With A Method And A Property

Big Idea: Fields that contains information about entire classes are static and are reachable through static properties

Create A Class With A Static Field And Static Property

Big Idea: Concepts like Math don't' have instance variables, but they do have lots of concrete actions expressible as methods

Create A Static Class To Represent A Concept With Operations

Big Idea: Use classes to build logical relationships, and save code. Place common data and behaviors in the parent class so they don't have to be recreated.

Learning Results:

1) Create a namespace

2) Create three classes within the namespace

3) Create a base class with a constructor

4) Create a child class, and derive from the base class

5) Understand the child class uses the constructor of the base class

6) Run the code, and observe the behavior in the locals window, and on the call stack

7) Attached is an image with more detail on inheritance

Creating A Simple Inheritance Hierarchy To Write Less Code

Big Idea: If a function can provide some default behavior that makes sense in some cases, but might not fit perfectly in every case, make it virtual so the implementation can be refined in child classes.

Learning Results:

1) Understand how to create a virtual function

2) Understand the reason for having virtual functions

3) Learn how to override virtual functions

4) There is an attached PDF with another example if you have trouble with the video

Creating and Using Virtual Methods To Write Less Code

Virtual Methods
2 questions

Big Idea: The dynamic keyword allows operations to be resolved at run time, so a single piece of code can work with multiple data types.

Learning Results:

1) Learn how to create dynamic functions

2) Understand how to pass values into dynamic functions

3) Understand how a single function working with the dynamic type can accept several different types of data

Dynamic Data Typing

Big Idea: The dynamic keyword adds flexibility to code. The var keyword is just a way for programmers to have to remember less.

Learning Results

1) Understand how var and dynamic types work

2) Understand how a dynamic variable can change values and types as a program runs

3) Understand how var is resolved to a specific type even in the editor window

Difference Between Dynamic and Var.

Big Idea: Abstract classes represent abstract concepts. Abstract functions don't provide default code of any kind because it would not make sense to do so.

Learning Results:

1) Create an abstract class

2) Understand the purpose of abstract classes

3) Understand that methods declared as abstract must be overridden in child classes

4) Run the code and observe the behavior of the code in memory

Abstract Classes, and Methods

Big Idea: Generic lists(and generics in general) are powerful because they allow us to operate on a great variety of data types easily.

Learning Results:

1) Create a student class

2) Create a function that operates on array instance variables

3) Use a list of integers to collect information

5) Run the code and see it behave live in memory

Improving On Arrays With Lists

Big Idea: Polymorphism allows us to use objects in a flexible way.

Learning Results:

1) Understand the concept of polymorphism

2) Understand the meaning of the word polymorphism

3) Learn how to implement polymorphism in code

Using Polymorphism To Write Less Code

Big Idea: Learn how to use your own types as parameter types in functions

Learning Results:

1) Create a custom type

2) Create a class that uses the custom type, but does not inherit from it

3) Create a function that uses the custom type as an array parameter

4) Review the concept of an array initializer


1) The current method will show a count of 7, for example, if called twice, with two arrays of 3 and 4, for example. But it overrides the first array. Can you find a way to fix it?

Using Custom Types as Parameter Data Types

Big Idea: Operator overloading allows us to assign new meanings to operators. For example, these can be used to create custom defitions of the equality operator.

Learning Results:

1) Learn the meaning of operator overloading

2) Learn when operator overloading is appropriate

3) Learn how to confirm that operator overloading is actually working as expected

4) Overloading the + operator to form the sum of vectors

5) Easy example available also

Overloading Operators To Make Operating On Custom Types Easier

Big Idea: Delegates functions as function wrappers. They are used heavily in event driven programming in graphical user interface code.

Learning Results:

1) Learn how to declare a delegate

2) Learn what the purpose is of a delegate

3) Learn how a delegate can represent many different functions to write less code

Calling Multiple Methods With Delegates

Big Idea: Actions are simple delegates. You can chain them to call multiple functions easily.

Learning Results

1) Understand how to create an action

2) Understand the class hierarchy that leads to actions

3) Understand that actions encapsulate functions with one parameter

4) Learn how to use the list version of ForEach(Action..) construct

Chaining Functions Together With Actions

Big Idea: Events occur, and we write code, called "event handling code" to respond to these events.For example, button clicks.

Learning Results:

1) Learn how to declare an event

2) Learn how to chain functions up to an event through delegates

3) Understand the purpose of an event

Responding To Events With Delegates

Big Idea: Interfaces are contracts. Think of "can be used as" when thinking of interfaces. That's why many of them have names like "IEnumerable".

Learning Results:

1) Interfaces allow us to group objects by behaviors

2) Understand the fundamental difference between an interface, and a class

3) Understand that classes have a "IS A" type of relationship to their child classes

4) Understand that a class that implements an interface can DO, or CAN BE USED AS that interface type

5) It's very important to watch the second, attached example. 

Expressing the "Can Be Used As" A Relationship With Interfaces

Big Idea: Generic Interfaces allow a single interfaces to operate equally well with many different data types.

Learning Results

1) Understand how to view the code that defines a generic interface

2) Learn how to implement the method defined in the interface

3) Learn how to call the the method defined in the function

4) There is a supplementary video attached that illustrates generic interfaces more convincingly

5) In this example, we could have done without generic interfaces also

Creating Reusable Code With Generic Interfaces

Big Idea: Access modifiers allow us to control code within a file, and across multiple files.

Learning Results:

1) Learn how to use the public keyword

2) Learn how to use the private keyword

3) Learn how to use the protected keyword

4) Learn how to spread a program across multiple files

Controlling Access To Code With Access Modifiers

Bid Idea: There are many functions for working with strings. These are among some of the most useful for cleaning up text.

Learning Results:

1) Learn how to apply six different string functions

2) Learn how to make a messy string look much neater

3) Attached is an image showing how to combine if/else blocks with strings

Cleaning Strings

Note: Be sure to watch the video on adding references first.

Big Idea: Graphical user interfaces rely heavily on controls like buttons, and events like the Click event of button controls. We can construct graphical applications directly from console windows in a very careful, step by step fashion for maximum comprehension.

Learning Results

1) Understand how to create a couple class files

2) Understand how to split a single class over multiple files

3) Understand how to use such a class

4) Understand how to launch and use Windows Forms directly from console applications

5) Understand how to design a simple user interface in code without a visual designer

Events With Simple Forms and Partial Classes
Error Handling
2 Lectures 22:56

Big Idea: Try/Catch Blocks allow us to have complete control over handling exceptional, but predictable errors in our applications.

Learning Results:

1) Understand the purpose of error checking

2) Understand the purpose of a try block

3) Understand the purpose of a catch block

4) Understand the purpose of a finally block

5) Use the locals window, and the call stack to observe the behavior of the code in memory

6) Construct a user interface, and run a foreach loop on the controls collection

Try-Catch-Finally Blocks In Graphical Apps

Big Idea: Multiple catch blocks allow us to handle multiple predictable, but undesirable conditions in code. The messages also carry human friendly text.

Learning Outcomes:

1) Learn how to generate multiple kinds of exceptions

2) Learn how to catch multiple kinds of exceptions

3) Learn why exception objects are superior to code that does not use them


1) Extend the application to include the other operations of subtraction and addition, and place the calculator code in a separate class.

Multiple Catch Blocks
Transition from console programs to graphical windows
2 Lectures 35:10

Big Idea: Create a class and add a method

Adding a Class To Represent Points

Big Idea: Apply string functions to parse input.

Learning Results: 

1) Build a user interface

2) Run the code to ensure it work


1) Extend the application to include an override of ToString

2) Add a new label and display the message "(4,5)=(4,5)" if two points are equal.

3) Be sure to position the label so it's visible

Designing The User Interface, And Applying String Functions
Miscellaneous Topics
10 Lectures 01:27:53

Big Idea: Indexers allow us to turn objects into arrays so we can step through them.

Learning Results:

1) Define an indexer in code

2) Understand the purpose of an indexer

3) Code a for loop, and use array notation to access values in the object

4) Code get and set blocks to read and assign values through an indexer

Turning Objects Into Arrays With Indexers

Big Idea: Writing and reading files are at the core of many software packages.

Learning Result:
1) Create a file on the hard drive

2) Save text typed into the console window to the file

3) Close stream to ensure no memory leaks

4) Open a stream to access the file

5) Retrieve text from file

6) Display text to the console window

7) Confirm file has been actually created and saved by searching for it in the file system

Writing And Reading Files, Very Simple Example

Big Idea: Using statements are very important because they ensure that resources are disposed of properly.

Learning Results

1) Understand how to code using blocks

2) Understand the purpose of using blocks

3) Perform basic file writing and reading

4) Understand that using blocks function as replacements for try/catch blocks


1) Wrap a using inside a try/catch, and try writing to a directory that does not exist. What's the message that results?

Controlling Low Level Access With Using Statements

Big Idea: See how a fairly extensive application is made.

Learning Results

1) Make a Windows Forms user interface

2) Examine the auto generated code

3) Explore properties, and events

4) Write code to writing files

5) Writ code for reading files

6) Learn how the using statement is used to ensure that resources are cleaned up properly

Reading and Writing Files, Graphical Example

Big Idea: You can customize the execution of your code, and code editor window with fine control.

Learning Results:

1) Understand the concept of a conditional function

2) Understand the concept of release and debug mode for software

3) Understand how to turn on debug and release modes in Visual Studio

4) Learn how to define a region that can be collapsed and expanded


1) Figure out how to pass arguments into the body of Main

Conditional Functions

Big Idea: Nullable types allow us to treat basic types, including arrays, as though they can take the value "null". This is useful in database applications, where information might not be known, and the value "null" is common.

Learning Results:

1) Learn how to do declare nullable types

2) Learn how to use nullable types

3) Learn what the purpose is of nullable types

4) Learn how to path a path parameter

5) Learn how to use named, nullable parameters


1) Extend the code to add a function called RecoverAuthorFromDisk(string path)

2) Be sure to use a "using" block to create, use and destroy resources properly

Nullable Data Types, and Named Parameters

Big Idea: Dynamic link libraries allow us to store and use external features. Most software packages rely on DLL's very heavily. You can see this when you install software.

Learning Results:

1) Create a class library

2) Create a new console app

3) Add a reference to the DLL

4) Reference the namespace

5) Use functions from the DLL


1) Create a dll that contains a function for summing, and for finding averages. Make it one function that accepts an array of doubles, and returns the average, and the sum.Use the out keyword.

Create a Dynamic Link Library and Reference It

Big Idea: There are many functions for learning more about the directory structure of a computer.

Learning Results

1) Learn how to get all the files in a directory

2) Learn how to all the folders in a directory

3) Learn how to list them all using a foreach loop


1) Create a program like the one in the video, but allow the user to retrieve only those files that match a specific condition.

2) Also, be sure that the user can enter the path to a specific folder.

2) Extend the application from steps 1) and 2) above to include a try/catch in case a folder can't be found.

Display All the Files and Folders in A Directory

Big Idea: It's possible to nest namespaces. This is very common in the .NET framework.

Learning Results:

1) Understand how to create a dll with multiple namespaces

2) Understand how to call these namespaces in client code

3) Understand how to code a fully qualified name

4) Understand how to use the "using" block to avoid having to type long names

5) Understand how to use the features of Visual Studio to help resolve function calls correctly


1) Does removing the access modifier "public" from the classes in the lessons have an impact on the code?

2) Rewrite the code in the lesson so it uses non static methods.

Fully Qualified Names

Big Idea: You can build a working web browser in a few minutes.

Learning Results:

1) Understand how to use the split control

2) Learn how to use the web browser control

3) Learn how to write some basic code to navigate through pages

Build a Simple Web Browser
Modern Language Features
6 Lectures 48:42

Big Idea: Generic classes allow us to write a single piece of code, and have that code operate equally well on a great variety of data types. This is the power of generics.

Learning Results

1) Understand how to code a generic class

2) Understand how the purpose of a generic class

3) Understand how to use a generic class

4) Understand how T is replaced with a specific type at run time

Create and Use A Generic Class

Big Idea: Generic lists are powerful, and come with a rich set of functionality to help us save time.

Learning Results

1) Understand the concept of a generic list

2) Understand that generic lists are parametrized, which means that they can store different data types

3) Understand that there is a great variety of built in functions that can be used with generic lists

4) Learn how to use ForEach on each list item

List<T> With Predefined Types and ForEach

Big Idea: Combine custom types, flexible generic lists, and file saving to produce an application.

Learning Results

1) Understand the concept of a generic to hold custom data types

2) Understand that generic lists are parametrized, which means that they can store different data types

3) Learn how to check for existing files

4) Learn how to append to existing files

Build A Custom Type Database With Generics

Big Idea: Dictionaries allow us to store key/value pairs. These are used in saving and passing information.

Learning Results

1) Understand that the Dictionary class as shown here is generic

2) Understand the concept of a key-value pair

3) Understand how to view the key value pairs as a program runs

4) Understand how to save a dictionary to disk

5) Learn how to launch another program from within C# code

Using Generic Dictionaries, and A Project

Big Idea: Lambdas are used heavily in modern C#. They go so far as to allow us to pass entire blocks of code as function arguments.

Learning Results

1) Learn the general concept of a Lambda expression

2) Learn how lambdas can be used to make delegates

3) Learn how lambda expressions are written

4) Learn how lambda statements are written

Lambda Expressions,and Lambda Statements

Big Idea: Funcs are delegates. They allow us to write functions compactly.

Learning Results

1) Understand how to use the Func keyword

2) Understand how to use a lambda expression with Func

3) Understand that Func creates a function wrapper

Func<> Notation For Lambda Expressions, and Dynamic Variables
11 More Sections
About the Instructor
4.3 Average rating
1,090 Reviews
15,477 Students
14 Courses
Web, Math, Stats., and Physics Expert
  • I have nine years experience as a teacher of mathematics, physics, statistics, and programming. I worked for five years as a database programmer using various technologies such as .NET, Clipper, SQL, SQL Server, SAS, Excel, and others. I'm the publisher of one of the most successful programming courses on udemy, called "Learn C# With Visual Studio 2013". Currently, I work as a mathematics and computer science teacher at a college in NY.
  • Related Education:
  • Master of Science in Applied Statistical Computing, Kennesaw State University
  • Bachelor of Arts, Pure Mathematics, Queens College
  • Associates of Science in Computer Programming
  • Creator of more than 1620 math, physics, statistics and programming videos
  • Programmer of more than 500 educational simulations

Report Abuse