194.023 Programming Paradigms
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2023W, VU, 4.0h, 6.0EC
TUWELLectureTube

Properties

  • Semester hours: 4.0
  • Credits: 6.0
  • Type: VU Lecture and Exercise
  • LectureTube course
  • Format: Hybrid

Learning outcomes

After successful completion of the course, students are able to

  • describe the most important goals and some typical application areas and technologies in object-oriented, functional, concurrent and parallel programming (these are paradigms) as well as modularization, parametrization, substitutability and typing (concepts) by using technical terminology,
  • clearly differentiate between these paradigms and concepts and some of their characteristics given by their essential properties,
  • apply selected practices, technologies as well as concepts in a way typical for these paradigms in small teams using a programming language suitable for everyday use (Java),
  • implement programming tasks (partially) described in natural language as executable programs showing typical characteristics of specified programming styles,
  • critically evaluate own programs based on specified criteria.

Subject of course

  • overview of paradigms in programming, their goals and use cases
  • typical concepts, technologies and mindsets in object-oriented, functional, concurrent and parallel programming
  • kinds of program factorization concerning dependences of data and procedures (opaque objects, transparent parameters and functions, independent data blocks)
  • kinds of modularization units (modules, components, classes, objects), parameterization (genericity, annotations, aspects), substitutability (structural, abstract, based on design-by-contract), typing (static vs. strong vs. dynamic, explicit vs. implicit)
  • handling of covariant problems, overloading, multi-methods, exceptions
  • referential transparency, functional forms, applicative programming
  • different forms of iteration over data sets
  • threads, race conditions, methods of synchronization, liveness properties, map-reduce/collect
  • cooperation of several processes through common files and pipelines, simple forms of process synchronization
  • differentiation between concurrent, parallel and distributed programming
  • examples in a general purpose programming language (Java) showing strengths and limits of programming paradigms
  • selected software design patterns

 

Teaching methods

  • lectures (in presence, as stream or as video) to get an overview of the topics
  • autonomously work the topics out using the script and other sources
  • topic-oriented online question times
  • solve (incompletely specified) programming tasks in small teams to practice applications of specific language concepts and techniques in cooperation and to develop own programming styles matching given paradigms.
  • solve a task aiming at a critical assessment of own program code based on given criteria
  • solve the first three tasks together with a tutor if needed to get tailored support
  • receive feedback to the solutions of tasks
  • take part in an interview meeting (in presence) to reflect on the work-sharing within the team (important for assessment)
  • take two or three exams in presence (assessment depends on better two exam results)

Mode of examination

Immanent

Additional information

Didactic Concept

Weekly lectures and corresponding online question times set the pace of working out the subject matter. Almost weekly programming tasks have to be solved in small teams (3 team members). To achieve the goals it is important that students find their own individual approaches; the way to the solution is more important than the solution itself.

ECTS Breakdown

(6 ECTS is 150 hours)

  • 99.7 h - Working on 9 programming assignments (including the individual development of practical skills)
  • 00.3 h - Discussion of programming assignments (interview meeting)
  • 21.0 h - Lectures
  • 27.0 h - Working out the (more theoretical) topics, question times, preparation for exam
  • 02.0 h - Participation in two tests and proportionately in the third test

Registration

You have to register for the course and one of the many groups named ppXn, where X determines the mentoring tutor and n is a consecutive number.

German

The course is given in German. The German version of this page contains more detailed infomation than the English one. Please press the "Deutsch" button.

 

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Mon15:00 - 17:0002.10.2023 - 22.01.2024Informatikhörsaal - ARCH-INF Lecture
Thu15:00 - 16:0005.10.2023 - 11.01.2024 Zoom, access through TUWEL (LIVE)online question time
Programming Paradigms - Single appointments
DayDateTimeLocationDescription
Mon02.10.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu05.10.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon09.10.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu12.10.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon16.10.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu19.10.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon23.10.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Mon30.10.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Mon06.11.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu09.11.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon13.11.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu16.11.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon20.11.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu23.11.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon27.11.202315:00 - 17:00Informatikhörsaal - ARCH-INF Test 1
Thu30.11.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon04.12.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu07.12.202315:00 - 16:00 Zoom, access through TUWELonline question time
Mon11.12.202315:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu14.12.202315:00 - 16:00 Zoom, access through TUWELonline question time

Examination modalities

Overall Assessment

Successful completion of the course requires the achievement of at least 50% of the acquirable points for the exercises as well as 50% of the acquirable points for the written tests.

If the rating of the course is positive, the mark results from the average of the percentages of achievements for exercises and written tests:

  1. :  87.5% to 100% (sehr gut)
  2. :  75% to below 87.5% (gut)
  3. :  62.5% to below 75% (befriedigend)
  4. :  50% to below 62.5% (genügend)

 Assessment of Exercises

Solutions of the programming tasks will not be finally rated shortly after delivery, but only after taking part in an interview meeting toward the end of the semester. The final rating depends on the quality of the solutions and also the quality of the collaboration within the exercise group. To assess the quality of collaboration, group members must show that they understand their own solutions and decisions. There will be feedback (by e-mail) on the quality of solutions about one or two weeks after delivery of the solutions. The interview meeting will be based on this feedback.

The rating is expressed in achieved 'points' depending on the quality of solutions and collaboration. For the initial phase (this is, the first three exercises together) tutors propose a preliminary rating with up to 100 points, depending on timeliness, completeness and correctness of the solutions (especially in respect of requests to eliminate specific shortcomings in solutions delivered earlier). Solutions of further six exercises are rated by lecturers with up to 100 points each, depending on the quality (based on quality criteria specified in the task). However, in case of extending the delivery deadline for an exercise group by one week, the rating of the solution of this group will be reduced by 1/3 of the points that would have been achieved otherwise. The rating of all exercises together is the sum of the points for each exercise (initial phase and further exercises). As described above, this rating is preliminary and can be modified in the interview meeting depending on the quality of collaboration within the exercise group. Up to 700 points can be achieved for the exercises, this is 100%. For successful exercises it is necessary to achieve at least 50%, this is 350 points.

Assessment of Tests

Participation in three written tests with a working time of 45 minutes each will be offered. The first test (about in the middle of the semester) concentrates on the topics discussed in the lectures so far. The second test (toward the end of the semester) concentrates of the remaining topics. The third test (after the semester break) embraces all topics of the course. Each test is rated with up to 100 points depending on the correctness of the answers. When participating in all three tests, the result of the test with the smallest number of points does not count. Therefore, it is easily possible to forgo one of the tests (not participating in a test has the same effect as getting 0 points for the test). Overall, 200 points are achievable for tests, this is 100%. For successful tests it is necessary to achieve at least 50%, this is 100 points.

Exams

DayTimeDateRoomMode of examinationApplication timeApplication modeExam
Fri13:00 - 15:0008.03.2024GM 1 Audi. Max.- ARCH-INF written12.02.2024 10:00 - 06.03.2024 10:00TISSTest 3

Course registration

Begin End Deregistration end
18.09.2023 10:00 06.10.2023 10:00 30.10.2023 10:00

Group Registration

GroupRegistration FromTo
ppA 118.09.2023 10:0006.10.2023 10:00
ppA 218.09.2023 10:0006.10.2023 10:00
ppA 318.09.2023 10:0006.10.2023 10:00
ppA 418.09.2023 10:0006.10.2023 10:00
ppA 518.09.2023 10:0006.10.2023 10:00
ppA 618.09.2023 10:0006.10.2023 10:00
ppA 718.09.2023 10:0006.10.2023 10:00
ppA 818.09.2023 10:0006.10.2023 10:00
ppA 918.09.2023 10:0006.10.2023 10:00
ppA 1018.09.2023 10:0006.10.2023 10:00
ppA 1118.09.2023 10:0006.10.2023 10:00
ppA 1218.09.2023 10:0006.10.2023 10:00
ppA 1318.09.2023 10:0006.10.2023 10:00
ppA 1418.09.2023 10:0006.10.2023 10:00
ppA 1518.09.2023 10:0006.10.2023 10:00
ppA 1618.09.2023 10:0006.10.2023 10:00
ppA 1718.09.2023 10:0006.10.2023 10:00
ppA 1818.09.2023 10:0006.10.2023 10:00
ppA 1918.09.2023 10:0006.10.2023 10:00
ppA 2018.09.2023 10:0006.10.2023 10:00
ppA 2118.09.2023 10:0006.10.2023 10:00
ppA 2218.09.2023 10:0006.10.2023 10:00
ppA 2318.09.2023 10:0006.10.2023 10:00
ppA 2418.09.2023 10:0006.10.2023 10:00
ppA 2518.09.2023 10:0006.10.2023 10:00
ppA 2618.09.2023 10:0006.10.2023 10:00
ppA 2718.09.2023 10:0006.10.2023 10:00
ppA 2818.09.2023 10:0006.10.2023 10:00
ppA 2918.09.2023 10:0006.10.2023 10:00
ppA 3018.09.2023 10:0006.10.2023 10:00
ppA 3118.09.2023 10:0006.10.2023 10:00
ppA 3218.09.2023 10:0006.10.2023 10:00
ppA 3318.09.2023 10:0006.10.2023 10:00
ppA 3418.09.2023 10:0006.10.2023 10:00
ppA 3518.09.2023 10:0006.10.2023 10:00
ppA 3618.09.2023 10:0006.10.2023 10:00
ppA 3718.09.2023 10:0006.10.2023 10:00
ppA 3818.09.2023 10:0006.10.2023 10:00
ppA 3918.09.2023 10:0006.10.2023 10:00
ppA 4018.09.2023 10:0006.10.2023 10:00
ppB 118.09.2023 10:0006.10.2023 10:00
ppB 218.09.2023 10:0006.10.2023 10:00
ppB 318.09.2023 10:0006.10.2023 10:00
ppB 418.09.2023 10:0006.10.2023 10:00
ppB 518.09.2023 10:0006.10.2023 10:00
ppB 618.09.2023 10:0006.10.2023 10:00
ppB 718.09.2023 10:0006.10.2023 10:00
ppB 818.09.2023 10:0006.10.2023 10:00
ppB 918.09.2023 10:0006.10.2023 10:00
ppB 1018.09.2023 10:0006.10.2023 10:00
ppB 1118.09.2023 10:0006.10.2023 10:00
ppB 1218.09.2023 10:0006.10.2023 10:00
ppB 1318.09.2023 10:0006.10.2023 10:00
ppB 1418.09.2023 10:0006.10.2023 10:00
ppB 1518.09.2023 10:0006.10.2023 10:00
ppB 1618.09.2023 10:0006.10.2023 10:00
ppB 1718.09.2023 10:0006.10.2023 10:00
ppB 1818.09.2023 10:0006.10.2023 10:00
ppB 1918.09.2023 10:0006.10.2023 10:00
ppB 2018.09.2023 10:0006.10.2023 10:00
ppC 118.09.2023 10:0006.10.2023 10:00
ppC 218.09.2023 10:0006.10.2023 10:00
ppC 318.09.2023 10:0006.10.2023 10:00
ppC 418.09.2023 10:0006.10.2023 10:00
ppC 518.09.2023 10:0006.10.2023 10:00
ppC 618.09.2023 10:0006.10.2023 10:00
ppC 718.09.2023 10:0006.10.2023 10:00
ppC 818.09.2023 10:0006.10.2023 10:00
ppC 918.09.2023 10:0006.10.2023 10:00
ppC 1018.09.2023 10:0006.10.2023 10:00
ppD 118.09.2023 10:0006.10.2023 10:00
ppD 218.09.2023 10:0006.10.2023 10:00
ppD 318.09.2023 10:0006.10.2023 10:00
ppD 418.09.2023 10:0006.10.2023 10:00
ppD 518.09.2023 10:0006.10.2023 10:00
ppD 618.09.2023 10:0006.10.2023 10:00
ppD 718.09.2023 10:0006.10.2023 10:00
ppD 818.09.2023 10:0006.10.2023 10:00
ppD 918.09.2023 10:0006.10.2023 10:00
ppD 1018.09.2023 10:0006.10.2023 10:00
ppD 1118.09.2023 10:0006.10.2023 10:00
ppD 1218.09.2023 10:0006.10.2023 10:00
ppD 1318.09.2023 10:0006.10.2023 10:00
ppD 1418.09.2023 10:0006.10.2023 10:00
ppD 1518.09.2023 10:0006.10.2023 10:00
ppE 118.09.2023 10:0006.10.2023 10:00
ppE 218.09.2023 10:0006.10.2023 10:00
ppE 318.09.2023 10:0006.10.2023 10:00
ppE 418.09.2023 10:0006.10.2023 10:00
ppE 518.09.2023 10:0006.10.2023 10:00
ppE 618.09.2023 10:0006.10.2023 10:00
ppE 718.09.2023 10:0006.10.2023 10:00
ppE 818.09.2023 10:0006.10.2023 10:00
ppE 918.09.2023 10:0006.10.2023 10:00
ppE 1018.09.2023 10:0006.10.2023 10:00
ppE 1118.09.2023 10:0006.10.2023 10:00
ppE 1218.09.2023 10:0006.10.2023 10:00
ppE 1318.09.2023 10:0006.10.2023 10:00
ppE 1418.09.2023 10:0006.10.2023 10:00
ppE 1518.09.2023 10:0006.10.2023 10:00
ppE 1618.09.2023 10:0006.10.2023 10:00
ppE 1718.09.2023 10:0006.10.2023 10:00
ppE 1818.09.2023 10:0006.10.2023 10:00
ppE 1918.09.2023 10:0006.10.2023 10:00
ppE 2018.09.2023 10:0006.10.2023 10:00
ppF 118.09.2023 10:0006.10.2023 10:00
ppF 218.09.2023 10:0006.10.2023 10:00
ppF 318.09.2023 10:0006.10.2023 10:00
ppF 418.09.2023 10:0006.10.2023 10:00
ppF 518.09.2023 10:0006.10.2023 10:00
ppF 618.09.2023 10:0006.10.2023 10:00
ppF 718.09.2023 10:0006.10.2023 10:00
ppF 818.09.2023 10:0006.10.2023 10:00
ppF 918.09.2023 10:0006.10.2023 10:00
ppF 1018.09.2023 10:0006.10.2023 10:00
ppF 1118.09.2023 10:0006.10.2023 10:00
ppF 1218.09.2023 10:0006.10.2023 10:00
ppF 1318.09.2023 10:0006.10.2023 10:00
ppF 1418.09.2023 10:0006.10.2023 10:00
ppF 1518.09.2023 10:0006.10.2023 10:00
ppG 118.09.2023 10:0006.10.2023 10:00
ppG 218.09.2023 10:0006.10.2023 10:00
ppG 318.09.2023 10:0006.10.2023 10:00
ppG 418.09.2023 10:0006.10.2023 10:00
ppG 518.09.2023 10:0006.10.2023 10:00
ppG 618.09.2023 10:0006.10.2023 10:00
ppG 718.09.2023 10:0006.10.2023 10:00
ppG 818.09.2023 10:0006.10.2023 10:00
ppG 918.09.2023 10:0006.10.2023 10:00
ppG 1018.09.2023 10:0006.10.2023 10:00
ppG 1118.09.2023 10:0006.10.2023 10:00
ppG 1218.09.2023 10:0006.10.2023 10:00
ppG 1318.09.2023 10:0006.10.2023 10:00
ppG 1418.09.2023 10:0006.10.2023 10:00
ppG 1518.09.2023 10:0006.10.2023 10:00
ppH 118.09.2023 10:0006.10.2023 10:00
ppH 218.09.2023 10:0006.10.2023 10:00
ppH 318.09.2023 10:0006.10.2023 10:00
ppH 418.09.2023 10:0006.10.2023 10:00
ppH 518.09.2023 10:0006.10.2023 10:00
ppH 618.09.2023 10:0006.10.2023 10:00
ppH 718.09.2023 10:0006.10.2023 10:00
ppH 818.09.2023 10:0006.10.2023 10:00
ppH 918.09.2023 10:0006.10.2023 10:00
ppH 1018.09.2023 10:0006.10.2023 10:00
ppH 1118.09.2023 10:0006.10.2023 10:00
ppH 1218.09.2023 10:0006.10.2023 10:00
ppH 1318.09.2023 10:0006.10.2023 10:00
ppH 1418.09.2023 10:0006.10.2023 10:00
ppH 1518.09.2023 10:0006.10.2023 10:00

Curricula

Study CodeObligationSemesterPrecon.Info
033 521 Informatics Mandatory3. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 526 Business Informatics Mandatory electiveSTEOP
Course requires the completion of the introductory and orientation phase
033 532 Media Informatics and Visual Computing Mandatory3. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 533 Medical Informatics MandatorySTEOP
Course requires the completion of the introductory and orientation phase
033 534 Software & Information Engineering Mandatory3. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 535 Computer Engineering Mandatory electiveSTEOP
Course requires the completion of the introductory and orientation phase

Literature

Das Skriptum zur Lehrveranstaltung wird über TUWEL zugänglich sein.

Previous knowledge

Before participating in the course, students are expected to be able to

  • describe systematic practices in programming and important concepts of a general purpose programming language (preferably Java),
  • transfer programming tasks written in natural language into executable programs,
  • systematically apply programming practices and programming tools,
  • implement given abstractions, algorithms and data structures,
  • solve programming tasks independently as well as in cooperation in two-person teams.

 

Preceding courses

Language

German