Special Topics in Software Engineering:

Software Development with C#

339.341 1KV Mössenböck Block Begin: 25.03.2022

Due to quarantine conditions this course will be delivered on March 25 and 26 via Zoom (https://jku.zoom.us/j/99611107736?pwd=RTBxajNCRGxEUm1YZ2QxbTVwTytldz09). On April 1, the presentation will be in HS19, as planned.

Overview

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, pattern matching, tuples) as well as SQL-like queries on memory data structures or XML (LINQ).

Contents

  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: Genericity, Iterators, Anonymous Methods, Partial Types
  20. C# 3.0: LINQ (Lambda Expressions, Automatic Properties, Extension Methods)
  21. C# 4.0: Dynamic Typing, Optional and Named Parameters
  22. C# 5.0: Asynchronuous Calls
  23. C# 6.0: Nullable Types, Null-conditional Operator, String Interpolation
  24. C# 7.0: Tuples, Pattern Matching, Local Methods
  25. C# 8.0: more Pattern Matching, Indexes, Ranges
  26. C# 9.0: Record Types, Top-level Statements

Handouts

Students attending this course can download the slides as PDF documents from the Kusss web page of this course.

Dates

Date Time Room Recording
Fr 25.03.2022 12:00-17:00 Zoom Download
Sa 26.03.2022 08:30-11:45 Zoom Download
Fr 01.04.2022 12:00-17:00 HS 19 Download
Fr 03.06.2022 12:00-13:00(exam)
HS 7, HS 10
13:15-17:00(project)

Exam and Project

The written exam will be on Friday, June 3, 2022, 12:00-13:00 in HS7 and HS10. Don't forget to register via Kusss until June 1. Please look at ssw.jku.at the day before the exam to see to which room you were assigned. Please bring your own empty paper. Books, handouts and other material are not allowed.

In order to pass the course you also have to implement a small C# project. The topic of this project can be freely chosen by you. The only requirement is that the project has at least 250 lines of code, but try to be more ambitious. The project must be submitted via Zoom on June 3 right after the exam. Please register for a presentation slot here.
In the exam, you can achieve up to 60 points and in the project up to 12 points. The total mark will be computed from the points in the exam and the project.

Literature

Online Resources and Software Downloads