Introduction to Object-oriented Programming | Exercise 1.1 | How did you program the Hangman game? |
| Exercise 1.2 | Aggregated Concepts |
| Exercise 1.3 | Concepts and Phenomena |
| Exercise 1.4 | University Concepts |
Introduction to C# | Exercise 2.1 | Exploring the type Char |
| Exercise 2.2 | Hexadecimal numbers |
| Exercise 2.3 | ECTS Grades |
| Exercise 2.4 | Use of Enumeration types |
| Exercise 2.5 | Use of array types |
| Exercise 2.6 | Use of string types |
Classes and Objects | Exercise 3.1 | Yahtzee |
| Exercise 3.2 | Time Classes |
| Exercise 3.3 | Public data representation |
| Exercise 3.4 | How private are private instance variables? |
| Exercise 3.5 | The method LogTransaction in class BankAccount |
| Exercise 3.6 | Course and Project classes |
| Exercise 3.7 | Sharing the Random Generator |
Reference types, Value types, and Patterns | Exercise 4.1 | Equality of value types and reference types |
| Exercise 4.2 | Are playing cards and dice immutable? |
| Exercise 4.3 | Privacy Leaks |
| Exercise 4.4 | Mutable and immutable Point objects with Move methods |
| Exercise 4.5 | Pyramid BankAccounts |
Data Access, Properties, and Methods | Exercise 5.1 | A funny BankAccount |
| Exercise 5.2 | Point setters |
| Exercise 5.3 | Passing references as ref parameters |
| Exercise 5.4 | Passing struct values as ref parameters |
| Exercise 5.5 | Extending struct Double |
Operators, Delegates, and Events | Exercise 6.1 | Interval indexer |
| Exercise 6.2 | An interval overlap operation |
| Exercise 6.3 | Finding and sorting elements in an array |
| Exercise 6.4 | How local are local variables and formal parameters? |
| Exercise 6.5 | Additional Die events |
Specialization, Extension, and Inheritance | Exercise 7.1 | Polygons, Quadrangles and Squares |
| Exercise 7.2 | Point3D: A client or a subclass of Point2D? |
| Exercise 7.3 | Private Visibility and inheritance |
| Exercise 7.4 | Internal Visibility |
| Exercise 7.5 | A subclass of LotteryAccount |
| Exercise 7.6 | Casting of BankAccounts |
| Exercise 7.7 | Static and dynamic types |
| Exercise 7.8 | Non-virtual variables - Virtual Methods |
Abstract classes, Interfaces, and Patterns | Exercise 8.1 | Parameter variance |
| Exercise 8.2 | A specialization of Stack |
| Exercise 8.3 | Course and Project classes |
| Exercise 8.4 | The interface ITaxable |
| Exercise 8.5 | An abstract GameObject class |
| Exercise 8.6 | Comparable Dice |
Exception Handling | Exercise 9.1 | Exceptions in Convert.ToDouble |
| Exercise 9.2 | Exceptions in class Stack |
| Exercise 9.3 | More exceptions in class Stack |
| Exercise 9.4 | Revealing the propagation of exceptions |
Input and Output Classes | Exercise 10.1 | A variant of the file copy program |
| Exercise 10.2 | Finding the encoding of a given text file |
| Exercise 10.3 | Die tossing - writing to text file |
| Exercise 10.4 | Die tossing - writing to a binary file |
| Exercise 10.5 | Serializing one of your own classes |
| Exercise 10.6 | Serializing with an XML formatter |
Generic Types and Methods | Exercise 11.1 | Intersection, union, and difference: Operations on sets |
| Exercise 11.2 | An element access operation on sets |
| Exercise 11.3 | A generic Pair class |
| Exercise 11.4 | Comparable Pairs |
Collection Classes | Exercise 12.1 | Shuffle List |
| Exercise 12.2 | Course and Project classes |
| Exercise 12.3 | Switching from Dictionary to SortedDictionary |
| Exercise 12.4 | Explicit use of iterator - instead of using foreach |
| Exercise 12.5 | Using multiple interators |
| Exercise 12.6 | The iterator behind a yield |
| Exercise 12.7 | Infinite Collections of Integers |
Test of Object-oriented Programs | Exercise 14.1 | Cyclomatic complexity of GCD |
| Exercise 14.2 | Install Nunit |
| Exercise 14.3 | Give Nunit a Try |
| Exercise 14.4 | Test of class Set |
| Exercise 14.5 | Unit test of struct Interval |
Documentation of Object-oriented Programs | Exercise 15.1 | Install Doxygen |
| Exercise 15.2 | Give Doxygen a Try |
| Exercise 15.3 | Documentation of class Set |
An Introduction to LINQ | Exercise 16.1 | List og Linq? |