Teaching materials for Object-Oriented Programming with C# (2022 version)
For those interested in using these materials for teaching, here is a (very brief) guide to the Chap folder, which is the folder containing these materials. NB! Be aware that the materials are not very "polished", and are available as-is. Maintenance of the materials is not guaranteed.
- Each folder is intended to represent a fairly coherent "module" about Object-Oriented Programming with C#.
- Each folder will typically contain a Word document and a .pdf copy, plus (up to) three sub-folders.
- The Word/pdf document contains the "textbook" for the module, including texts for exercises.
- The folder Unsolved contains starting points - in the form of Visual Studio solutions - for the exercises in the module.
- The folder Solved contains solutions - in the form of Visual Studio solutions - for the exercises in the module.
- The folder Presentations contains various PowerPoint presentation related to the module.
- The materials are in general compliant with .NET 7, C# 10 and Visual Studio 2022.
The modules are described in the order in which they are most naturally presented.
General introduction to Visual Studio 2022, tools, extensions, packages. General introduction to code organisation, statements, syntax and interaction with Visual Studio.
Basic programming concepts: data types, variables, arithmetic, logic, functions, screen output and type conversion.
Basic Object-Oriented programming concepts: object and class concepts, class definition elements, class collaboration, abstraction.
Intermediate programming concepts: conditional statements, repetition statements, debugging, data structures, code quality and the DRY concept.
Intermediate Object-Oriented programming concepts: inheritance, exceptions, generics, delegates, events and lambda expressions.
Intermediate programming concepts (continued): data structures, recursion, LINQ.
Advanced Object-Oriented programming concepts: open/closed principle, dependency injection, design patterns.
Advanced programming concepts: the Task class, async/await, concurrent data access.
These modules are not as such essential, and are all fairly self-contained.
Basic unit testing in Visual Studio using MSTest (unit test structure, code coverage). Requires at least OOProg01.
Essentially an exercise set for using ADO.Net, i.e. no "textbook" material as such. Requires OOProg02.
Essentially an exercise set for using Entity Framework Core (version 7), i.e. no "textbook" material as such. Requires OOProg02.
Various materials about Razor Pages (basic pages, plus use of Entity Framework Core). NB: Most of these materials are in Danish! Requires OOProg02.
A set of exercises intended for repetition of selected topics (class definitions, control statements, collection classes, inheritance, generics).
A small set of presentations on various topics (documentation, GitHub essentials and web hosting).