We may earn an affiliate commission when you visit our partners.
Course image
T O

My name is Tom Owsiak. 

I'm the author of "Beginning C# Hands-On-The Core Language" from Packt Publishing. Let's take a look at every this course has to offer. 

I have an updated version of a  similar course with Visual Studio 2017.

Read more

My name is Tom Owsiak. 

I'm the author of "Beginning C# Hands-On-The Core Language" from Packt Publishing. Let's take a look at every this course has to offer. 

I have an updated version of a  similar course with Visual Studio 2017.

Please search "Learn C# with Visual Studio 2017 and Console Programs"

Update 8/24/2020: Added several new lessons on the bottom on concepts related to try/catch/finally and using blocks with C# 8.0.

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 This one has lots of exercises.

Enroll now

What's inside

Learning objectives

  • 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#
  • Show more
  • Show less

Syllabus

Learning The Fundamentals

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

Read more

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

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

Assignments:

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.

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

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

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

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#

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

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

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

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

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

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

Controlling Program Flow

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

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

Assignments:

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.

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

Lesson Objectives:

1. Understand how to use ++

2. Understand how to use +=

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

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

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.

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

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

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

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

Operators

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

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

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

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


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

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

Arrays and Methods

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

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

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

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

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

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

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

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

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

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

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

Fundamentals of Objected Oriented Programming

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


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


Big Idea: Properties give us controlled access to fields

1. Create a class

2. Create a method

3. Create and use a property

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


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

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

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


Virtual Methods

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


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

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


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


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

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

Challenge:

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?

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

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

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

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


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. 


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

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


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


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

Error Handling

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

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

Assignments:

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

Transition from console programs to graphical windows

Big Idea: Create a class and add a method

Big Idea: Apply string functions to parse input.

Learning Results: 

1) Build a user interface

2) Run the code to ensure it work

Assignments:

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

Miscellaneous Topics

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

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


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

Assignments:

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

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

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

Assignments:

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

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

Assignments:

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

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

Assignments:

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.

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

Assignments:

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.

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

Assignments:

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.

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

Modern Language Features

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

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

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

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

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

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

Database and LINQ Basics

Big Idea: Microsoft SQL Server is a powerful database management system. This is an essential tool for any developer to know.

Learning Resources

1) Understand where to get SQL Server Express

2) Understand how to decided whether your system is 32 or 64 bit

3) Understand how to connect SQL Server to Visual Studio

4) Understand how to create a very simple database with a simple table

5) Be sure to say yes to integrated security during the installation process

6) Learn about the master data file (mdf), also called primary data file

Big Idea: Virtually all modern applications are database connected.

Learning Results

1) Write code for connecting to databases

2) Write code with the "using" block to ensure the resources involved in connecting to a database are cleaned up properly

3) Write code with the try/catch construct in place to ensure that any exceptions are caught

4) Take a look at the services available in Windows

5) Learn how to stop and start SQL Server from the services window

6) Learn how to get the connection string so it's perfect every time

7) Learn how to simulate a possible connection failure

8) Attached is a video with more detail on creating, altering and dropping stored procedures

Big Idea: Linq and generic lists allow you to collect a variety of data, and then search through it directly in your code.

Learning Results

1) Understand how to collect doubles from the user using a generic list

2) Understand how to write a simple LINQ query to get values out of a list

3) Understand how to display the results using a foreach

4) Learn that behind the scenes, the result of a Linq search is still an indexed quantity

Big Idea: Embedding lambda expressions in Linq produces expressive and powerful code.

Learning Results

1) Understand how to write lambda expressions

2) Understand how to embed lambda expressions in Linq queries

3) Understand how to use IEnumerable to create a list using Linq and Lambdas


Big Idea: XML is a powerful language that allows us to create data descriptions. We can access these documents, and query them with Linq.

Learning Results

1) Understand how to create a simple XML file

2) Understand how to connect to the XML file using C#

3) Understand how to retrieve data from the XML file

4) See again the role of IEnumerable in creating a list of objects through which we can step

Big Idea: Learn how Linq can make searching large quantities of text easy.

Learning Results

1) Understand how to read and convert input

2) Understand how to use a Linq query to count the number of times a string occurs

3) Learn how to use the keydown event on text boxes

Note: Amos observed that "word" is fine also in place of word.ToString()

WPF Basics

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops solid C# foundation for beginners
Suitable for both novice and intermediate programmers
Taught by Tom Owsiak, an established authority in software
Teaches essential C# concepts, preparing learners for industry requirements
Suitable for hobbyists seeking to build personal software projects
Covers a range of C# topics, providing a comprehensive learning experience

Save this course

Save A 16 Hour C# Course With Microsoft Visual Studio 2013 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in A 16 Hour C# Course With Microsoft Visual Studio 2013 with these activities:
Review Basic Programming Concepts
Brush up on basic programming concepts before starting the course.
Browse courses on Variables
Show steps
  • Review your notes or online resources on basic programming concepts.
  • Complete practice exercises or quizzes.
  • Ensure you have a solid understanding of the fundamentals.
Join a Study Group
Engage with peers to discuss course concepts and work on problems together.
Browse courses on Collaboration
Show steps
  • Find a study group or form one with classmates.
  • Meet regularly to discuss course material.
  • Work on assignments and projects together.
  • Help each other understand difficult concepts.
Follow C# Tutorials
Supplement your understanding of C# concepts with guided tutorials.
Browse courses on Loops
Show steps
  • Find a website or online resource with C# tutorials.
  • Choose tutorials that align with the topics you're covering in class.
  • Follow the tutorials step-by-step.
  • Complete the exercises or challenges provided in the tutorials.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read Head First C#
Review the concepts covered in class by reading a supplemental textbook.
Show steps
  • Purchase or borrow a copy of Head First C#.
  • Read the chapters that correspond to the topics you're covering in class.
  • Take notes and highlight important concepts.
  • Complete the exercises at the end of each chapter.
Practice Coding Exercises
Practice coding exercises to reinforce your understanding of C# syntax and concepts.
Browse courses on Loops
Show steps
  • Find a website or online resource with coding exercises.
  • Choose exercises that align with the topics you're covering in class.
  • Solve the exercises on your own.
  • Check your solutions against the provided answer key.
Build a Simple C# Application
Apply your C# skills by building a simple application.
Browse courses on User Interface Design
Show steps
  • Design the user interface of your application.
  • Write the code to handle events.
  • Bind data to the user interface.
  • Test your application.
Connect with a C# Mentor
Seek guidance and support from an experienced C# developer.
Browse courses on Mentorship
Show steps
  • Attend industry events or online forums to connect with potential mentors.
  • Reach out to C# professionals through LinkedIn or other social media platforms.
  • Ask for advice, feedback, and support on your C# journey.
  • Meet with your mentor regularly to discuss your progress and challenges.

Career center

Learners who complete A 16 Hour C# Course With Microsoft Visual Studio 2013 will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer is responsible for designing, developing, and testing software applications. They work on a variety of projects, from small mobile apps to large enterprise systems. Software Engineers must have a strong understanding of programming languages and software development tools. This course would be helpful for Software Engineers because it provides a solid foundation in C#. The course covers the basics of the language, as well as more advanced topics such as object-oriented programming, data structures, and algorithms.
Computer Programmer
A Computer Programmer is responsible for writing, testing, and maintaining computer programs. They work on a variety of projects, from small personal programs to large enterprise systems. Computer Programmers must have a strong understanding of programming languages and software development tools. This course would be helpful for Computer Programmers because it provides a solid foundation in C#. C# is a popular language for software development, and it can be used to develop a wide variety of applications.
Mobile Developer
A Mobile Developer is responsible for designing, developing, and maintaining mobile applications. They work on a variety of projects, from small personal apps to large enterprise apps. Mobile Developers must have a strong understanding of mobile development tools and technologies, as well as a variety of programming languages. This course would be helpful for Mobile Developers because it provides a solid foundation in C#. C# is a popular language for mobile development, and it can be used to develop apps for both iOS and Android devices.
Software Architect
A Software Architect is responsible for designing, building, and maintaining software systems. Architects work on projects of all sizes, ranging from small websites to large enterprise systems. They must have a strong understanding of software engineering principles and technologies, and they must be able to communicate effectively with both technical and non-technical stakeholders. This course would be helpful for Software Architects because it teaches the fundamentals of C#, one of the most popular programming languages used in software development. The course also covers object-oriented programming, data structures, and algorithms, which are all essential concepts for Software Architects to understand.
Database Administrator
A Database Administrator is responsible for designing, implementing, and maintaining databases. They work on a variety of projects, from small personal databases to large enterprise databases. Database Administrators must have a strong understanding of database management systems and technologies. This course would be helpful for Database Administrators because it provides a solid foundation in C#. C# is a popular language for database development, and it can be used to develop a variety of database applications, from simple data entry applications to complex data analysis applications.
Computer Systems Analyst
A Computer Systems Analyst is responsible for analyzing and designing computer systems. They work on a variety of projects, from small business systems to large enterprise systems. Computer Systems Analysts must have a strong understanding of systems analysis and design techniques, as well as a variety of programming languages. This course would be helpful for Computer Systems Analysts because it provides a solid foundation in C#. C# is a popular language for developing systems analysis and design tools, and it can be used to develop a wide variety of applications, from simple data entry applications to complex data analysis applications.
Database Developer
A Database Developer is responsible for designing, developing, and maintaining databases. They work on a variety of projects, from small personal databases to large enterprise databases. Database Developers must have a strong understanding of database management systems and technologies, as well as a variety of programming languages. This course would be helpful for Database Developers because it provides a solid foundation in C#. C# is a popular language for database development, and it can be used to develop a variety of database applications, from simple data entry applications to complex data analysis applications.
Software Quality Assurance Analyst
A Software Quality Assurance Analyst is responsible for testing and evaluating software applications. They work on a variety of projects, from small personal applications to large enterprise systems. Software Quality Assurance Analysts must have a strong understanding of software testing and evaluation techniques. This course would be helpful for Software Quality Assurance Analysts because it provides a solid foundation in C#. C# is a popular language for developing software testing tools, and it can be used to develop a variety of applications, from simple test automation applications to complex performance testing applications.
Web Developer
A Web Developer is responsible for designing, developing, and maintaining websites. They work on a variety of projects, from small personal websites to large e-commerce sites. Web Developers must have a strong understanding of HTML, CSS, and JavaScript, as well as a variety of web development tools. This course would be helpful for Web Developers because it teaches the fundamentals of C#. C# is a powerful language that can be used to develop a wide variety of web applications, from simple websites to complex e-commerce systems.
Network Administrator
A Network Administrator is responsible for designing, implementing, and maintaining computer networks. They work on a variety of projects, from small personal networks to large enterprise networks. Network Administrators must have a strong understanding of network technologies and protocols. This course would be helpful for Network Administrators because it provides a solid foundation in C#. C# is a popular language for developing network management tools, and it can be used to develop a variety of applications, from simple network monitoring applications to complex network security applications.
Systems Analyst
A Systems Analyst is responsible for analyzing and designing computer systems. They work on a variety of projects, from small business systems to large enterprise systems. Systems Analysts must have a strong understanding of systems analysis and design techniques. This course would be helpful for Systems Analysts because it provides a solid foundation in C#. C# is a powerful language that can be used to develop a variety of systems analysis and design tools.
Information Technology Specialist
An Information Technology Specialist is responsible for providing technical support to users of computer systems. They work on a variety of projects, from small help desk support to large-scale network administration projects. Information Technology Specialists must have a strong understanding of computer hardware and software, as well as a variety of technical support tools. This course would be helpful for Information Technology Specialists because it provides a solid foundation in C#. C# is a popular language for developing technical support tools, and it can be used to develop a variety of applications, from simple help desk applications to complex network management applications.
Data Scientist
A Data Scientist is responsible for collecting, analyzing, and interpreting data. They work on a variety of projects, from small research projects to large-scale data analytics projects. Data Scientists must have a strong understanding of statistics, machine learning, and data mining techniques. This course would be helpful for Data Scientists because it provides a solid foundation in C#. C# is a powerful language that can be used to develop a variety of data science tools and applications.
Web Designer
A Web Designer is responsible for designing and developing websites. They work on a variety of projects, from small personal websites to large e-commerce sites. Web Designers must have a strong understanding of HTML, CSS, and JavaScript, as well as a variety of web design tools. This course may be helpful for Web Designers because it provides a solid foundation in C#. C# is a powerful language that can be used to develop a variety of web applications, from simple websites to complex e-commerce systems.
Graphic designer
A Graphic Designer is responsible for creating visual concepts, using computer software or by hand, to communicate ideas that inspire, inform, and captivate consumers. They work on a variety of projects, from small personal projects to large commercial projects. Graphic Designers must have a strong understanding of design principles and techniques, as well as a variety of graphic design tools. This course may be helpful for Graphic Designers because it provides a solid foundation in C#. C# is a powerful language that can be used to develop a variety of graphic design tools, from simple image editing applications to complex 3D modeling applications.

Reading list

We've selected 16 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in A 16 Hour C# Course With Microsoft Visual Studio 2013.
Provides principles, patterns, and practices for writing clean code in a way that makes it easier to read and reuse.
Provides a comprehensive guide to software development, covering topics such as planning, estimation, and testing.
Introduces a methodology for designing software that is closely aligned with the domain it is intended to serve.
Provides detailed explanations of concurrency patterns, and thorough coverage of Java concurrency.
Provides a comprehensive and detailed look at the C# language, covering topics such as generics, delegates, and LINQ.
Covers Java concepts and syntax for Python programmers and even non-programmers. Moves beyond a syntax focus to cover programming concepts as well.
Provides step-by-step instructions for refactoring code, improving its design and making it more maintainable.
Provides an introduction to agile principles and practices, and shows how to apply them in C# development.
Provides a deep dive into the CLR, the runtime environment that executes C# code.
Provides a comprehensive overview of C# 7 and the .NET Framework, and shows how to use them to build applications.
Shows you how to leverage the language features of Java to write sophisticated, high-performance, high-quality code.
Provides insights into the challenges of software development, and offers practical advice on how to overcome them.
Looks at Java through the lens of object-oriented programming and emphasizes problem-solving, with a focus on Java 11 and containing 350 exercises.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to A 16 Hour C# Course With Microsoft Visual Studio 2013.
Design Patterns in C# and .NET
Most relevant
The Unreal Arsenal: Learn C++ and Unreal Engine
Most relevant
Minimal API Development with ASP.NET Core
Most relevant
Learn C# Programming (In Ten Easy Steps)
Most relevant
C# for .NET Developers
Most relevant
Object-Oriented Programming in Kotlin
Most relevant
Unsafe Code in .NET: Memory Management and Optimization
Most relevant
Learn Basic Microsoft ASP.Net Development with Visual...
Most relevant
Object Oriented Development using C#
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser