CS2026: Introduction to C#

Spring 2009



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#. Here is an abbreviated list. 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. The 2005 version is OK for all the homework assignments, but does not contain C# 3.0 features which we will cover in later lectures of this course.

The examples in class will be demonstrated using Mono 2 running on Linux. You can use mono for your assignments and demos as well. If you do use mono, use the gmcs command to compile your code.


Syllabus and Lecture Slides

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