Home   Cover Cover Cover Cover

Software Development with C#

Hanspeter Mössenböck
University of Linz, Austria

Latest update: March 3, 2016

This course describes the programming language C# with its latest features up to C# 6.0. It is designed for students who are already familiar with a programming language like Java or C++.

All material is published under the Microsoft Curriculum Licence.
(c) University of Linz, Institute for System Software, 2016

Course Description   Text Books   Download   Author  

Course Description


Although many universities use Java or C++ as their primary programming language they feel the need to provide their students with some knowledge about C#, which becomes more and more important in industry. A course with this goal is different from introductory programming courses, since it can assume that the students are already proficient in programming and know the basics of object-oriented programming.

C# is a mixture of Java, C++ and Visual Basic. It combines Java's type safety (type checking, garbage collection) with the power and flexibility of C++ (e.g. operator overloading, low-level operations). In addition to that it has some new features for component-based programming (properties and events), a kind of function pointers (delegates), reference parameters, stack objects and many other useful things. It also includes features of functional programming languages (e.g. lambda expressions), SQL-like queries on memory data structures or XML (LINQ), and features for parallel and asynchronous programming.

The course has been delivered several times at the university of Linz. There are about 350 Powerpoint slides to be downloaded.


The course is being delivered as 15 lecturing units of 45 minutes each. We recommend to accompany the course with a programming lab or a term project. Exercises can be found in our text books. Sample solutions are on our web site.

  1. Overview
  2. Symbols
  3. Types
  4. Expressions
  5. Declarations
  6. Statements
  7. Classes and structs
  8. Inheritance
  9. Interfaces
  10. Delegates
  11. Exceptions
  12. Namespaces and assemblies
  13. Attributes
  14. Threads
  15. XML comments
  16. Native calls
  17. Pointers
  18. Class library
  19. C# 2.0
  20. C# 3.0
  21. C# 4.0
  22. C# 5.0
  23. C# 6.0

Text Books

We have written a text book on which this course is based. The most up-to-date version (covering all features up to C# 6.0) is written in German. There is also an English version, which covers the features up to C# 2.0.

cover_Cs_de H. Mössenböck:
Kompaktkurs C# 6.0
dpunkt.verlag 2016, 315 pages
cover_cs_en H. Mössenböck:
C# to the Point
Addison-Wesley 2004, 246 pages
ISBN 0-321-25290-X



HM Prof. Dr. Dr.h.c. Hanspeter Mössenböck
PhD in Computer Science (University of Linz, 1987). From 1988 to 1994 assistant professor at ETH Zurich with Prof. Niklaus Wirth. Since 1994 full professor of Computer Science at the University of Linz, Austria. Head of the Institute for System Software.

Besides teaching courses on compiler construction, (object-oriented) programming, algorithms & data structures, and .NET, he also regularly lectures at the Oxford Brookes University, UK, and appeared as a speaker of various .NET events.
Johannes Kepler University Linz
Institute for System Software
Altenbergerstraße 69, 4040 Linz, Austria
Web: www.ssw.uni-linz.ac.at/General/Staff/HM/
Phone: +43-732-2468-4340