Special Topics in Software Engineering:

Software Development with C#

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

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).

Since C# is very similar to Java, we will explain it often by pointing to differences between C# and Java. Thus, you need a good understanding of Java to attend this course.

The course will take place on campus. It will not be streamed and there will be no recordings.

As an extension of this course you might also be interested in the follow-up course Special Topics: Parallel and Ansynchronous Programming with .NET (1KV), which will take place as a block course on April 26/27.

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 from the Moodle page of this course.

Dates

Date Time Room
Fr 12.04.2024 12:00-18:00 HS 18
Sa 13.04.2024 08:30-12:45 HS 18
Fr 19.04.2024 12:00-18:00 HS 18
Th 23.05.2024 17:15-18:15 (exam)
HS 2, HS 16
Tu 11.06.2024 12:00-17:00 (project)
Zoom

Exam and Project

The written exam will be on Thursday, May 23, 2024, 17:45-18:45. Don't forget to register via Kusss until May 21. 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. 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.

Project submission: The project must be submitted via Zoom on Tuesday, June 11 2024, between 12:00 and 17:00. Please register for a time slot on https://bit.ly/CSharp24. You can submit the project to me, Dr. Weninger or DI Kloibhofer. Please enter the Zoom meeting of the respective examiner at the respective time slot and have your computer ready for presentation. You will get to a waiting room from where you will be invited to the meeting at the specified time.

Literature

Online Resources and Software Downloads