Following my previous post, I want to talk more about the course I am going to teach: C# 2.0 to C# 3.0

Course Description:
C# 3.0 introduces several language extensions that build on C# 2.0 to support the creation and use of higher order, functional style class libraries. The extensions enable construction of compositional APIs that have equal expressive power of query languages in domains such as relational databases and XML.
I will go through the 'new'(old...) futures in C# 2.0 (generics, anonymous methods,iterators,...) and while implementing (some of) the fundamentals of LINQ using C# 2.0 futures, you will begin to understand the enormous language change - C# 3.0. Then we will go over the C# 3.0 features and see how easier it is compare to what we did in C# 2.0.
I am preparing a lot of code samples, One is showing C# 3.0 being used to query a process memory for values (wanne hack Solitaire and increase your points?).
The complete syllabus is as follow:
Module 1: C# 2.0 Language Enhancements
- Generics
- Nullable Types
- Anonymous methods
- Iterators
- BCL Enhancements
Module 2: C# 3.0 Language Enhancements
- Implicitly typed local variables
- Extension methods
- Lambda expressions
- Object and collection initializers
- Anonymous types
- Implicitly typed arrays
- Query expressions
- Expression trees
Module 3: .NET Language Integrated Query (LINQ)
- Getting Started with Standard Query Operators
- Language features supporting the LINQ Project
- More Standard Query Operators
- Query syntax
- SQL Integration
- XML Integration
Module 4: LINQ to SQL, XML and Object
- Queries In Depth
- The Entity Life Cycle
- Programming XML with XLinq
- Mixing XML and other data models