CS2026: Introduction to C#

Spring 2010



The primary goal of this course is to introduce the C# programming language. Some of the C# features are already found in existing languages, while others are unique to C#. We will focus mainly on the new features in C# with respect to C++ and Java. 

In addition, the following materials related to C# will be briefly covered.



This is not going to be the next "Introduction to Programming" course. The material presented will rely heavily on previous knowledge about the Object-Oriented Programming model. This implies that you need to be familiar with another OO language like Java or C++. A good proof of this is a completed CS211 or equivalent.

Assignments & Grading

The homework assignments will be released and submitted through the Course Management System.

As this is a S/U course, to complete it successfully you need a "pass" on all of the homework assignments on C# programming.  This course follows the Cornell University Code of Academic Integrity. Each student in this course is expected to abide by the Cornell University Code of Academic Integrity. You should not discuss solutions to the assignments with your classmates.  This not only implies that you should have written them but also that you should understand them! You are free to consult books and online resources, but you will have to properly cite them. If there is enough interest, a more elaborate "final" project might be an option for completing the class, provided that it covers all features in the homeworks.

Development Environment

We will be using Visual C# 2008 Express, freely downloadable from Microsoft. You can also use the full version of Visual Studio.NET, if you have access to it.


Syllabus and Lecture Slides

  1. Introduction
  2. Visual C# 2008 Express walkthrough; .NET framework, CLR, CTS
  3. C# Types
  4. Basic C# Features
  5. Advanced C# Types
  6. Delegates and Events
  7. Reflection, Conversions, and Exceptions
  8. C# 3.0
  9. LINQ
  10. Threading and Unsafe Code
  11. Garbage Collection and Memory Management
  12. P/Invoke and CIL