Programming Paradigms and Techniques
Degree programme | Computer Science - Digital Innovation |
Subject area | Engineering & Technology |
Type of degree | Bachelor Part-time Summer Semester 2024 |
Course unit title | Programming Paradigms and Techniques |
Course unit code | 083121120101 |
Language of instruction | German |
Type of course unit (compulsory, optional) | Compulsory |
Teaching hours per week | 5 |
Year of study | 2024 |
Level of the course / module according to the curriculum | |
Number of ECTS credits allocated | 9 |
Name of lecturer(s) | Martin DOBLER, Verena FASTENBAUER |
None
- Structured/Procedural Programming Concepts: Variables, data types and operators, expressions, assignments, control structures, arrays and lists, functions, modularization and namespaces, integration of program libraries
- Fundamental development methods (procedural abstraction, dynamic and static program understanding, checking for correctness, debugging) and programming tools, including an integrated development environment.
- Using frameworks e.g. Windows .NET Core
- Basic elements and concepts of user interface creation and programming
- Input and output with input validation
- String functions and regular expressions
- Mathematical, time and date functions
- Implementation and essential properties of recursive data structures (lists, trees) and recursion
- Abstraction via data structures with comparable access functions
- Error and exception handling
- Simple test methods and code review
- Object-oriented programming: classes, objects, class members, secret principle, genericity, constructors and destructors, encapsulation incl. access protection, inheritance, polymorphism and interfaces
- Delegates and event handling
- Multithreading (Threads, Tasks, async-await Pattern)
- Preprocessor directives
- Program flow charts and UML class diagrams
- Algorithms and data structures: definition, presentation forms, types, efficiency, backtrack principle and data structures based on selected algorithms (sorting and search methods, geometric algorithms, tree structures and graphs)
Forecasts are constantly pointing to the current and future shortage of IT specialists, as increasing digitalisation means that in the medium and long term most jobs require programming skills. Algorithmic thought patterns and the knowledge of a programming language will be just as self-evident as a solid knowledge of foreign languages. The aim of this course is to provide a basis for further training in programming. The focus is on a systematic approach to programming, whereby the students acquire theoretical knowledge as well as practical programming skills. At the same time, abstract ways of thinking are encouraged.
Technical and methodological competence (F/M)
- Students are able to use an IDE (Integrated Development Environment) for programming and debugging. In addition, they know and can use the systematic approach (from modeling to coding to documentation) and tools for programming.
- Students know the most important concepts of structured programming and object-oriented programming paradigms. Starting with a problem, they learn how to implement object-oriented models (UML class diagrams), as well as algorithmic thought patterns and how to divide the task into sub-steps (program flowcharts) in order to achieve a solution. In addition, students can apply these basics in a programming language (C#) and implement simple practical tasks.
- Students can solve small problems of the real world with structured, modular programs. They are able to identify common sources of error and integrate quality assurance techniques.
- Students have an overview of important algorithms and data structures in computer science. In addition, they are able to quantify the efforts of the algorithms and to measure their complexity. They can grasp a given problem in an algorithm and convert it into an efficiently running program.
Social and communicative competences (S/K) and personal competences (S)
- Students can solve tasks independently and on time (reliability) as well as work together in teams of two (team ability/cooperation) and communicate and justify the created solutions including the program characteristics (expressiveness and appearance).
- Students understand the solutions of others and can make constructive suggestions for improvement and deal with feedback (critical ability) as well as reflect on their own abilities and limits (self-reflection).
- Ability and willingness to acquire new knowledge independently and to learn from successes and failures (learning competence and motivation).
Integrated course: 2 THW together and 3 THW in two groups.
Lectures and accompanying programming exercises that have to be handed in and are implemented live or presented in the next lession by randomly selected students/small groups and discussed in the group.
- Evaluation of the programming exercises (35 %)
- Midterm-Exam (20 %)
- Final examination (45 %), in which the theoretical foundations are reproduced, arranged and applied in practical tasks
For a positive grade, a minimum of 50% of the possible points must be achieved in each part of the examination.
None
- Doberenz, Walter u.a. (2018): Visual C# 2017 – Grundlagen, Profiwissen und Rezepte. München: Carl Hanser Verlag GmbH & Co. KG.
- Geirhos, Matthias (2015a): Entwurfsmuster: Das umfassende Handbuch. 1. Aufl. Bonn: Rheinwerk Computing.
- Geirhos, Matthias (2015b): Professionell entwickeln mit C# 6 und Visual Studio 2015: Das Praxisbuch. Alle Phasen in der Praxis: vom Entwurf bis zum Deployment. 3. Aufl. Bonn: Rheinwerk Computing.
- Ottmann, Thomas; Widmayer, Peter (2017): Algorithmen und Datenstrukturen. 6., durchges. Aufl. Wiesbaden: Springer Vieweg.
- Price, Mark J. (2017): C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development - Third Edition: Create powerful applications with .NET Standard 2.0, ASP.NET Core 2.0, ... 2017 or Visual Studio Code. 3rd Revised edition. Packt Publishing.
- Reynders, Fanie (2018): Modern API Design with ASP.NET Core 2: Building Cross-Platform Back-End Systems. 1st ed. New York, NY: Apress.
- Rimscha, Markus von (2018): Algorithmen kompakt und verständlich: Lösungsstrategien am Computer. 4., durchgesehene Aufl. 2017. Wiesbaden: Springer Vieweg.
- Schwichtenberg, Holger (2018): Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin. München: Carl Hanser Verlag GmbH & Co. KG.
- Theis, Thomas (2017): Einstieg in C# mit Visual Studio 2017: Ideal für Programmieranfänger. 5. Aufl. Bonn: Rheinwerk Computing.
In-class lecture: possibility of online participation and compulsory attendance in the practical session.
In addition, the video will be made available as a download after the cours.