Programming in C#: A Primer