Due to scheduled database maintenance, TISS will likely be unavailable on Tuesday, September 3rd, 2024, between 7:00 AM and 9:00 AM. We apologize for any inconvenience and appreciate your understanding.

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.

2024W, VU, 4.0h, 6.0EC
LectureTube
  • TUWEL course available from: 16.09.2024 00:00.

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, also as stream and video depending on technical requirements) 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
  • 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)

  • 100 h - Working on 9 programming assignments (including the individual development of practical skills)
  • 21 h - Lectures
  • 27 h - Working out the (more theoretical) topics, question times, preparation for exam
  • 2 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:0007.10.2024 - 27.01.2025Informatikhörsaal - ARCH-INF Lecture
Thu15:00 - 16:0010.10.2024 - 16.01.2025 Zoom, access through TUWELonline question time
Programming Paradigms - Single appointments
DayDateTimeLocationDescription
Mon07.10.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu10.10.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon14.10.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu17.10.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon21.10.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu24.10.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon28.10.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu31.10.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon04.11.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu07.11.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon11.11.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu14.11.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon18.11.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu21.11.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon25.11.202415:00 - 17:00Informatikhörsaal - ARCH-INF Test 1
Thu28.11.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon02.12.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu05.12.202415:00 - 16:00 Zoom, access through TUWELonline question time
Mon09.12.202415:00 - 17:00Informatikhörsaal - ARCH-INF Lecture
Thu12.12.202415: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 be rated on a basis of 'points'. For the initial phase (this is, the first three exercises together) tutors propose a 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). 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 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
Mon15:00 - 17:0025.11.2024Informatikhörsaal - ARCH-INF assessed04.11.2024 10:00 - 21.11.2024 10:00TISSTest 1
Mon15:00 - 17:0027.01.2025Informatikhörsaal - ARCH-INF assessed07.01.2025 10:00 - 23.01.2025 10:00TISSTest 2
Wed15:00 - 17:0026.02.2025GM 1 Audi. Max.- ARCH-INF assessed03.02.2025 10:00 - 24.02.2025 10:00TISSTest 3

Course registration

Begin End Deregistration end
16.09.2024 10:00 11.10.2024 10:00 28.10.2024 10:00

Group Registration

GroupRegistration FromTo
ppA 116.09.2024 10:0011.10.2024 10:00
ppA 216.09.2024 10:0011.10.2024 10:00
ppA 316.09.2024 10:0011.10.2024 10:00
ppA 416.09.2024 10:0011.10.2024 10:00
ppA 516.09.2024 10:0011.10.2024 10:00
ppA 616.09.2024 10:0011.10.2024 10:00
ppA 716.09.2024 10:0011.10.2024 10:00
ppA 816.09.2024 10:0011.10.2024 10:00
ppA 916.09.2024 10:0011.10.2024 10:00
ppA 1016.09.2024 10:0011.10.2024 10:00
ppA 1116.09.2024 10:0011.10.2024 10:00
ppA 1216.09.2024 10:0011.10.2024 10:00
ppA 1316.09.2024 10:0011.10.2024 10:00
ppA 1416.09.2024 10:0011.10.2024 10:00
ppA 1516.09.2024 10:0011.10.2024 10:00
ppA 1616.09.2024 10:0011.10.2024 10:00
ppA 1716.09.2024 10:0011.10.2024 10:00
ppA 1816.09.2024 10:0011.10.2024 10:00
ppA 1916.09.2024 10:0011.10.2024 10:00
ppA 2016.09.2024 10:0011.10.2024 10:00
ppA 2116.09.2024 10:0011.10.2024 10:00
ppA 2216.09.2024 10:0011.10.2024 10:00
ppA 2316.09.2024 10:0011.10.2024 10:00
ppA 2416.09.2024 10:0011.10.2024 10:00
ppA 2516.09.2024 10:0011.10.2024 10:00
ppB 116.09.2024 10:0011.10.2024 10:00
ppB 216.09.2024 10:0011.10.2024 10:00
ppB 316.09.2024 10:0011.10.2024 10:00
ppB 416.09.2024 10:0011.10.2024 10:00
ppB 516.09.2024 10:0011.10.2024 10:00
ppB 616.09.2024 10:0011.10.2024 10:00
ppB 716.09.2024 10:0011.10.2024 10:00
ppB 816.09.2024 10:0011.10.2024 10:00
ppB 916.09.2024 10:0011.10.2024 10:00
ppB 1016.09.2024 10:0011.10.2024 10:00
ppB 1116.09.2024 10:0011.10.2024 10:00
ppB 1216.09.2024 10:0011.10.2024 10:00
ppB 1316.09.2024 10:0011.10.2024 10:00
ppB 1416.09.2024 10:0011.10.2024 10:00
ppB 1516.09.2024 10:0011.10.2024 10:00
ppB 1616.09.2024 10:0011.10.2024 10:00
ppB 1716.09.2024 10:0011.10.2024 10:00
ppB 1816.09.2024 10:0011.10.2024 10:00
ppB 1916.09.2024 10:0011.10.2024 10:00
ppB 2016.09.2024 10:0011.10.2024 10:00
ppC 116.09.2024 10:0011.10.2024 10:00
ppC 216.09.2024 10:0011.10.2024 10:00
ppC 316.09.2024 10:0011.10.2024 10:00
ppC 416.09.2024 10:0011.10.2024 10:00
ppC 516.09.2024 10:0011.10.2024 10:00
ppC 616.09.2024 10:0011.10.2024 10:00
ppC 716.09.2024 10:0011.10.2024 10:00
ppC 816.09.2024 10:0011.10.2024 10:00
ppC 916.09.2024 10:0011.10.2024 10:00
ppC 1016.09.2024 10:0011.10.2024 10:00
ppC 1116.09.2024 10:0011.10.2024 10:00
ppC 1216.09.2024 10:0011.10.2024 10:00
ppC 1316.09.2024 10:0011.10.2024 10:00
ppC 1416.09.2024 10:0011.10.2024 10:00
ppC 1516.09.2024 10:0011.10.2024 10:00
ppC 1616.09.2024 10:0011.10.2024 10:00
ppC 1716.09.2024 10:0011.10.2024 10:00
ppC 1816.09.2024 10:0011.10.2024 10:00
ppC 1916.09.2024 10:0011.10.2024 10:00
ppC 2016.09.2024 10:0011.10.2024 10:00
ppD 116.09.2024 10:0011.10.2024 10:00
ppD 216.09.2024 10:0011.10.2024 10:00
ppD 316.09.2024 10:0011.10.2024 10:00
ppD 416.09.2024 10:0011.10.2024 10:00
ppD 516.09.2024 10:0011.10.2024 10:00
ppD 616.09.2024 10:0011.10.2024 10:00
ppD 716.09.2024 10:0011.10.2024 10:00
ppD 816.09.2024 10:0011.10.2024 10:00
ppD 916.09.2024 10:0011.10.2024 10:00
ppD 1016.09.2024 10:0011.10.2024 10:00
ppD 1116.09.2024 10:0011.10.2024 10:00
ppD 1216.09.2024 10:0011.10.2024 10:00
ppD 1316.09.2024 10:0011.10.2024 10:00
ppD 1416.09.2024 10:0011.10.2024 10:00
ppD 1516.09.2024 10:0011.10.2024 10:00
ppE 116.09.2024 10:0011.10.2024 10:00
ppE 216.09.2024 10:0011.10.2024 10:00
ppE 316.09.2024 10:0011.10.2024 10:00
ppE 416.09.2024 10:0011.10.2024 10:00
ppE 516.09.2024 10:0011.10.2024 10:00
ppE 616.09.2024 10:0011.10.2024 10:00
ppE 716.09.2024 10:0011.10.2024 10:00
ppE 816.09.2024 10:0011.10.2024 10:00
ppE 916.09.2024 10:0011.10.2024 10:00
ppE 1016.09.2024 10:0011.10.2024 10:00
ppE 1116.09.2024 10:0011.10.2024 10:00
ppE 1216.09.2024 10:0011.10.2024 10:00
ppE 1316.09.2024 10:0011.10.2024 10:00
ppE 1416.09.2024 10:0011.10.2024 10:00
ppE 1516.09.2024 10:0011.10.2024 10:00
ppE 1616.09.2024 10:0011.10.2024 10:00
ppE 1716.09.2024 10:0011.10.2024 10:00
ppE 1816.09.2024 10:0011.10.2024 10:00
ppE 1916.09.2024 10:0011.10.2024 10:00
ppE 2016.09.2024 10:0011.10.2024 10:00
ppF 116.09.2024 10:0011.10.2024 10:00
ppF 216.09.2024 10:0011.10.2024 10:00
ppF 316.09.2024 10:0011.10.2024 10:00
ppF 416.09.2024 10:0011.10.2024 10:00
ppF 516.09.2024 10:0011.10.2024 10:00
ppF 616.09.2024 10:0011.10.2024 10:00
ppF 716.09.2024 10:0011.10.2024 10:00
ppF 816.09.2024 10:0011.10.2024 10:00
ppF 916.09.2024 10:0011.10.2024 10:00
ppF 1016.09.2024 10:0011.10.2024 10:00
ppF 1116.09.2024 10:0011.10.2024 10:00
ppF 1216.09.2024 10:0011.10.2024 10:00
ppF 1316.09.2024 10:0011.10.2024 10:00
ppF 1416.09.2024 10:0011.10.2024 10:00
ppF 1516.09.2024 10:0011.10.2024 10:00
ppG 116.09.2024 10:0011.10.2024 10:00
ppG 216.09.2024 10:0011.10.2024 10:00
ppG 316.09.2024 10:0011.10.2024 10:00
ppG 416.09.2024 10:0011.10.2024 10:00
ppG 516.09.2024 10:0011.10.2024 10:00
ppG 616.09.2024 10:0011.10.2024 10:00
ppG 716.09.2024 10:0011.10.2024 10:00
ppG 816.09.2024 10:0011.10.2024 10:00
ppG 916.09.2024 10:0011.10.2024 10:00
ppG 1016.09.2024 10:0011.10.2024 10:00
ppG 1116.09.2024 10:0011.10.2024 10:00
ppG 1216.09.2024 10:0011.10.2024 10:00
ppG 1316.09.2024 10:0011.10.2024 10:00
ppG 1416.09.2024 10:0011.10.2024 10:00
ppG 1516.09.2024 10:0011.10.2024 10:00
ppH 116.09.2024 10:0011.10.2024 10:00
ppH 216.09.2024 10:0011.10.2024 10:00
ppH 316.09.2024 10:0011.10.2024 10:00
ppH 416.09.2024 10:0011.10.2024 10:00
ppH 516.09.2024 10:0011.10.2024 10:00
ppH 616.09.2024 10:0011.10.2024 10:00
ppH 716.09.2024 10:0011.10.2024 10:00
ppH 816.09.2024 10:0011.10.2024 10:00
ppH 916.09.2024 10:0011.10.2024 10:00
ppH 1016.09.2024 10:0011.10.2024 10:00
ppH 1116.09.2024 10:0011.10.2024 10:00
ppH 1216.09.2024 10:0011.10.2024 10:00
ppH 1316.09.2024 10:0011.10.2024 10:00
ppH 1416.09.2024 10:0011.10.2024 10:00
ppH 1516.09.2024 10:0011.10.2024 10:00
ppI 116.09.2024 10:0011.10.2024 10:00
ppI 216.09.2024 10:0011.10.2024 10:00
ppI 316.09.2024 10:0011.10.2024 10:00
ppI 416.09.2024 10:0011.10.2024 10:00
ppI 516.09.2024 10:0011.10.2024 10:00
ppI 616.09.2024 10:0011.10.2024 10:00
ppI 716.09.2024 10:0011.10.2024 10:00
ppI 816.09.2024 10:0011.10.2024 10:00
ppI 916.09.2024 10:0011.10.2024 10:00
ppI 1016.09.2024 10:0011.10.2024 10:00
ppI 1116.09.2024 10:0011.10.2024 10:00
ppI 1216.09.2024 10:0011.10.2024 10:00
ppI 1316.09.2024 10:0011.10.2024 10:00
ppI 1416.09.2024 10:0011.10.2024 10:00
ppI 1516.09.2024 10:0011.10.2024 10:00
ppI 1616.09.2024 10:0011.10.2024 10:00
ppI 1716.09.2024 10:0011.10.2024 10:00
ppI 1816.09.2024 10:0011.10.2024 10:00
ppI 1916.09.2024 10:0011.10.2024 10:00
ppI 2016.09.2024 10:0011.10.2024 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 Mandatory3. SemesterSTEOP
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