C# Lecture Notes