185.A01 Object-oriented Programming Techniques
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2019W, VU, 2.0h, 3.0EC, to be held in blocked form

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise

Learning outcomes

After successful completion of the course, students are able to

  • describe programming language concepts for modularization, substitutability, code reuse, paramtrization, concurrency as well as the static and dynamic usage of types,
  • cooperate in small teams to efficiently apply these programming language concepts,
  • cooperate in small teams to translate incompletely specified programming tasks into executable programs showing typical attributes of an object-oriented programming style,
  • critically assess programs developed by the own small team based on given criteria,
  • describe selected software design patterns using technical terminology.

Subject of course

  • overview of the object-oriented programming paradigm and typical concepts of object-oriented programmine languages
  • programming language concepts for modularity, substitutability, reuse, parameterization (including genericity), overloading, concurrency, and the static and dynamic use of types
  • techniques for the productive use of these concepts in an object-oriented style
  • some software design patterns

Teaching methods

  • participate in lectures to get an overview of the topics
  • autonomously work the topics out using the script and other sources
  • solve incompletely specified programming tasks in small teams to practice applications of specific language concepts and techniques in cooperation and to develop an own object-oriented programming style
  • 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 to reflect on the work-sharing within the team (important for assessment)
  • take an oral exam

Mode of examination

Immanent

Additional information

Didactic Concept

Weekly lectures give an overview of foundations of the subject matter as well as background information. 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

(3 ECTS is 75 hours)

  • 49.7 h - Working on 9 programming assignments
  • 00.3 h - Discussion of programming assignments (interview)
  • 00.7 h - Introduction to the lecture
  • 09.8 h - Lecture time
  • 14.2 h - Preparation for exam
  • 00.3 h - Oral exam

Registration

You have to register for the course as well as for one of the many groups named oopXn, where X is a letter in the name of the mentoring tutor and n a consecutive number. All other groups shown here will be used in January to arrange interview dates. Exact dates for interviews and exams will be subject to change until January.

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
Wed13:00 - 14:0002.10.2019 - 15.01.2020Informatikhörsaal Lecture
Object-oriented Programming Techniques - Single appointments
DayDateTimeLocationDescription
Wed02.10.201913:00 - 14:00Informatikhörsaal Lecture
Wed09.10.201913:00 - 14:00Informatikhörsaal Lecture
Wed16.10.201913:00 - 14:00Informatikhörsaal Lecture
Wed23.10.201913:00 - 14:00Informatikhörsaal Lecture
Wed30.10.201913:00 - 14:00Informatikhörsaal Lecture
Wed06.11.201913:00 - 14:00Informatikhörsaal Lecture
Wed13.11.201913:00 - 14:00Informatikhörsaal Lecture
Wed20.11.201913:00 - 14:00Informatikhörsaal Lecture
Wed27.11.201913:00 - 14:00Informatikhörsaal Lecture
Wed04.12.201913:00 - 14:00Informatikhörsaal Lecture
Wed11.12.201913:00 - 14:00Informatikhörsaal Lecture
Wed18.12.201913:00 - 14:00Informatikhörsaal Lecture
Wed08.01.202013:00 - 14:00Informatikhörsaal Lecture
Wed15.01.202013:00 - 14:00Informatikhörsaal Lecture
Course is held blocked

Examination modalities

The grade depends (one half each) on the achievements when solving programming tasks in a team (this is the exercise part) and the result of an oral exam (this is the lecture part). To get a positive grade for this course it is necessary to get positive grades for both, the exercise part and the lecture part. It is recommended to take the oral exam soon after finishing the exercise part. Oral exams must be positively taken until June, otherwise a negative certificate will be issued. A negative certificate will also be issued if the lecture part or two trials to take the oral exam result in a negative grade.

A negative oral exam can be retried at most once within the given time frame (until June) before a certificate is issued.

Grade of the exercise part

Teams get e-mails with feedback on the quality of their solutions of programming tasks about one or two weeks after the deadlines. However, such feedback is not a final assessment of a programming task. The grade of the exercise part is determined at an interview meeting in January. Beside the quality of work delivered by the team the grade also considers efforts and achievements as an individual team member. To find out the performance as a team member it is necessary to understand own solutions and justify own decisions during the interview.

A point system is used to assess solutions of programming tasks. To assess the entrance phase (constisting of the first three programming tasks) tutors suggest between 0 and 100 points depending on timeliness, completeness and correctness (also for  reactions on requests to eliminate specific problems in the program code). For each of the remaining six tasks the supervisors award up to 100 points depending on the quality (based on quality criteria specified in the tasks). However, if students need additional time to solve a task and supervisors agree to extend the deadline by one week (Fristerstreckung), the points are reduced to 2/3 of the points that would have been awarded otherwise. Up to 700 points can be achieved over all. They correspond to the following grades:

  • 000 - 350 points -> 5 (negative)
  • 351 - 437 points -> 4
  • 438 - 525 points -> 3
  • 526 - 612 points -> 2
  • 613 - 700 points -> 1

As described above, these points and grades are only preliminary until the interview meeting and can be changed during the interview meeting.

Please see the changed conditions for exams (online exams) in German.

Course registration

Begin End Deregistration end
02.10.2019 00:00 08.10.2019 23:59 23.10.2019 23:59

Registration modalities:

Please register also for a group as described above.

Group Registration

GroupRegistration FromTo
Krall 16.1. 10:0007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 10:1507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 10:3007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 10:4507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 11:0007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 11:1507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 11:3007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 11:4507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 14:0007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 14:1507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 14:3007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 14:4507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 15:0007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 15:1507.01.2020 00:0014.01.2020 00:00
Krall 16.1. 15:3007.01.2020 00:0014.01.2020 00:00
Krall 16.1. 15:4507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 10:0007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 10:1507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 10:3007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 10:4507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 11:0007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 11:1507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 11:3007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 11:4507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 14:0007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 14:1507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 14:3007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 14:4507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 15:0007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 15:1507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 15:3007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 15:4507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 16:0007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 16:1507.01.2020 00:0014.01.2020 00:00
Krall 17.1. 16:3007.01.2020 00:0014.01.2020 00:00
Krall 17.1. 16:4507.01.2020 00:0014.01.2020 00:00
Krall 20.1. 10:0007.01.2020 00:0014.01.2020 00:00
Krall 20.1. 10:1507.01.2020 00:0014.01.2020 00:00
Krall 20.1. 10:3007.01.2020 00:0014.01.2020 00:00
Krall 20.1. 10:4507.01.2020 00:0014.01.2020 00:00
Krall 20.1. 11:0007.01.2020 00:0014.01.2020 00:00
Krall 20.1. 11:1507.01.2020 00:0014.01.2020 00:00
Krall 20.1. 11:3007.01.2020 00:0014.01.2020 00:00
Krall 20.1. 11:4507.01.2020 00:0014.01.2020 00:00
Krall 21.1. 10:0007.01.2020 00:0014.01.2020 00:00
Krall 21.1. 10:1507.01.2020 00:0014.01.2020 00:00
Krall 21.1. 10:3007.01.2020 00:0014.01.2020 00:00
Krall 21.1. 10:4507.01.2020 00:0014.01.2020 00:00
Krall 21.1. 11:0007.01.2020 00:0014.01.2020 00:00
Krall 21.1. 11:1507.01.2020 00:0014.01.2020 00:00
Krall 21.1. 11:3007.01.2020 00:0014.01.2020 00:00
Krall 21.1. 11:4507.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 15:0007.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 15:1507.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 15:3007.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 15:4507.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 16:0007.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 16:1507.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 16:3007.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 16:4507.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 17:0007.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 17:1507.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 17:3007.01.2020 00:0014.01.2020 00:00
Puntigam 15.1. 17:4507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 9:0007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 9:1507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 9:3007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 9:4507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 11:0007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 11:1507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 11:3007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 11:4507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 14:0007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 14:1507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 14:3007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 14:4507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 15:0007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 15:1507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 15:3007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 15:4507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 16:0007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 16:1507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 16:3007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 16:4507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 17:0007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 17:1507.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 17:3007.01.2020 00:0014.01.2020 00:00
Puntigam 16.1. 17:4507.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 14:0007.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 14:1507.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 14:3007.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 14:4507.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 15:0007.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 15:1507.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 15:3007.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 15:4507.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 16:0007.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 16:1507.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 16:3007.01.2020 00:0014.01.2020 00:00
Puntigam 17.1. 16:4507.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 10:0007.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 10:1507.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 10:3007.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 10:4507.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 11:0007.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 11:1507.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 11:3007.01.2020 00:0014.01.2020 00:00
Puntigam 20.1. 11:4507.01.2020 00:0014.01.2020 00:00
oopC102.10.2019 15:0008.10.2019 23:59
oopC202.10.2019 15:0008.10.2019 23:59
oopC302.10.2019 15:0008.10.2019 23:59
oopC402.10.2019 15:0008.10.2019 23:59
oopC502.10.2019 15:0008.10.2019 23:59
oopC602.10.2019 15:0008.10.2019 23:59
oopC702.10.2019 15:0008.10.2019 23:59
oopC802.10.2019 15:0008.10.2019 23:59
oopC902.10.2019 15:0008.10.2019 23:59
oopC1002.10.2019 15:0008.10.2019 23:59
oopC1102.10.2019 15:0008.10.2019 23:59
oopC1202.10.2019 15:0008.10.2019 23:59
oopC1302.10.2019 15:0008.10.2019 23:59
oopC1402.10.2019 15:0008.10.2019 23:59
oopC1502.10.2019 15:0008.10.2019 23:59
oopC1602.10.2019 15:0008.10.2019 23:59
oopE102.10.2019 15:0008.10.2019 23:59
oopE202.10.2019 15:0008.10.2019 23:59
oopE302.10.2019 15:0008.10.2019 23:59
oopE402.10.2019 15:0008.10.2019 23:59
oopE502.10.2019 15:0008.10.2019 23:59
oopE602.10.2019 15:0008.10.2019 23:59
oopE702.10.2019 15:0008.10.2019 23:59
oopE802.10.2019 15:0008.10.2019 23:59
oopE902.10.2019 15:0008.10.2019 23:59
oopE1002.10.2019 15:0008.10.2019 23:59
oopE1102.10.2019 15:0008.10.2019 23:59
oopE1202.10.2019 15:0008.10.2019 23:59
oopE1302.10.2019 15:0008.10.2019 23:59
oopE1402.10.2019 15:0008.10.2019 23:59
oopE1502.10.2019 15:0009.10.2019 00:00
oopE1602.10.2019 15:0009.10.2019 00:00
oopE1702.10.2019 15:0009.10.2019 00:00
oopE1802.10.2019 15:0009.10.2019 00:00
oopE1902.10.2019 15:0009.10.2019 00:00
oopE2002.10.2019 15:0009.10.2019 00:00
oopE2102.10.2019 15:0009.10.2019 00:00
oopE2202.10.2019 15:0009.10.2019 00:00
oopE2302.10.2019 15:0009.10.2019 00:00
oopE2402.10.2019 15:0009.10.2019 00:00
oopF102.10.2019 15:0008.10.2019 23:59
oopF202.10.2019 15:0008.10.2019 23:59
oopF302.10.2019 15:0008.10.2019 23:59
oopF402.10.2019 15:0008.10.2019 23:59
oopF502.10.2019 15:0008.10.2019 23:59
oopF602.10.2019 15:0008.10.2019 23:59
oopF702.10.2019 15:0008.10.2019 23:59
oopF802.10.2019 15:0008.10.2019 23:59
oopF902.10.2019 15:0008.10.2019 23:59
oopF1002.10.2019 15:0008.10.2019 23:59
oopF1102.10.2019 15:0008.10.2019 23:59
oopF1202.10.2019 15:0008.10.2019 23:59
oopF1302.10.2019 15:0008.10.2019 23:59
oopF1402.10.2019 15:0008.10.2019 23:59
oopF1502.10.2019 15:0008.10.2019 23:59
oopF1602.10.2019 15:0008.10.2019 23:59
oopF1702.10.2019 15:0008.10.2019 23:59
oopF1802.10.2019 15:0008.10.2019 23:59
oopF1902.10.2019 15:0008.10.2019 23:59
oopF2002.10.2019 15:0008.10.2019 23:59
oopF2102.10.2019 15:0008.10.2019 23:59
oopF2202.10.2019 15:0008.10.2019 23:59
oopF2302.10.2019 15:0008.10.2019 23:59
oopF2402.10.2019 15:0008.10.2019 23:59
oopH102.10.2019 15:0008.10.2019 23:59
oopH202.10.2019 15:0008.10.2019 23:59
oopH302.10.2019 15:0008.10.2019 23:59
oopH402.10.2019 15:0008.10.2019 23:59
oopH502.10.2019 15:0008.10.2019 23:59
oopH602.10.2019 15:0008.10.2019 23:59
oopH702.10.2019 15:0008.10.2019 23:59
oopH802.10.2019 15:0008.10.2019 23:59
oopH902.10.2019 15:0008.10.2019 23:59
oopH1002.10.2019 15:0008.10.2019 23:59
oopH1102.10.2019 15:0008.10.2019 23:59
oopH1202.10.2019 15:0008.10.2019 23:59
oopH1302.10.2019 15:0008.10.2019 23:59
oopH1402.10.2019 15:0008.10.2019 23:59
oopH1502.10.2019 15:0008.10.2019 23:59
oopH1602.10.2019 15:0008.10.2019 23:59
oopH1702.10.2019 15:0008.10.2019 23:59
oopH1802.10.2019 15:0008.10.2019 23:59
oopH1902.10.2019 15:0008.10.2019 23:59
oopH2002.10.2019 15:0008.10.2019 23:59
oopH2102.10.2019 15:0009.10.2019 00:00
oopH2202.10.2019 15:0009.10.2019 00:00
oopH2302.10.2019 15:0008.10.2019 23:59
oopH2402.10.2019 15:0009.10.2019 00:00
oopJ102.10.2019 15:0009.10.2019 00:00
oopJ202.10.2019 15:0009.10.2019 00:00
oopJ302.10.2019 15:0009.10.2019 00:00
oopJ402.10.2019 15:0009.10.2019 00:00
oopJ502.10.2019 15:0009.10.2019 00:00
oopJ602.10.2019 15:0009.10.2019 00:00
oopJ702.10.2019 15:0009.10.2019 00:00
oopJ802.10.2019 15:0009.10.2019 00:00
oopJ902.10.2019 15:0009.10.2019 00:00
oopJ1002.10.2019 15:0009.10.2019 00:00
oopJ1102.10.2019 15:0009.10.2019 00:00
oopJ1202.10.2019 15:0009.10.2019 00:00
oopJ1302.10.2019 15:0009.10.2019 00:00
oopJ1402.10.2019 15:0009.10.2019 00:00
oopJ1502.10.2019 15:0009.10.2019 00:00
oopJ1602.10.2019 15:0009.10.2019 00:00
oopJ1702.10.2019 15:0009.10.2019 00:00
oopJ1802.10.2019 15:0009.10.2019 00:00
oopJ1902.10.2019 15:0009.10.2019 00:00
oopJ2002.10.2019 15:0009.10.2019 00:00
oopJ2102.10.2019 15:0009.10.2019 00:00
oopJ2202.10.2019 15:0008.10.2019 23:59
oopJ2302.10.2019 15:0008.10.2019 23:59
oopJ2402.10.2019 15:0008.10.2019 23:59
oopR102.10.2019 15:0009.10.2019 00:00
oopR202.10.2019 15:0009.10.2019 00:00
oopR302.10.2019 15:0009.10.2019 00:00
oopR402.10.2019 15:0009.10.2019 00:00
oopR502.10.2019 15:0009.10.2019 00:00
oopR602.10.2019 15:0009.10.2019 00:00
oopR702.10.2019 15:0009.10.2019 00:00
oopR802.10.2019 15:0009.10.2019 00:00
oopR902.10.2019 15:0009.10.2019 00:00
oopR1002.10.2019 15:0009.10.2019 00:00
oopR1102.10.2019 15:0009.10.2019 00:00
oopR1202.10.2019 15:0009.10.2019 00:00
oopR1302.10.2019 15:0009.10.2019 00:00
oopR1402.10.2019 15:0009.10.2019 00:00
oopR1502.10.2019 15:0009.10.2019 00:00
oopR1602.10.2019 15:0009.10.2019 00:00
oopR1702.10.2019 15:0009.10.2019 00:00
oopR1802.10.2019 15:0009.10.2019 00:00
oopR1902.10.2019 15:0009.10.2019 00:00
oopR2002.10.2019 15:0009.10.2019 00:00
oopR2102.10.2019 15:0009.10.2019 00:00
oopR2202.10.2019 15:0009.10.2019 00:00
oopR2302.10.2019 15:0009.10.2019 00:00
oopR2402.10.2019 15:0008.10.2019 23:59

Curricula

Study CodeSemesterPrecon.Info
033 526 Business Informatics STEOP
Course requires the completion of the introductory and orientation phase
033 532 Media Informatics and Visual Computing 3. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 534 Software & Information Engineering 3. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 535 Computer Engineering STEOP
Course requires the completion of the introductory and orientation phase

Literature

The script is available in the Documents section. The two available versions differ in the format, not in their contents.

Programming assignments and lecture slides will also be put into the Documents section at the specified dates for assignments, and after the lectures, respectively.

Previous knowledge

Technical and Methodological Knowledge:

Before taking part in the course students are expected to be able to

  • describe systematic approaches in programming and important concepts of an up-to-date and adequate programming language (preferably Java),
  • implement programming tasks given in natural language as executable programs,
  • systematically apply practices and tools in programming,
  • implement specified data abstractions, algorithms, and data structures in program code,
  • apply techniques of object-oriented modeling,
  • work independently of other people when solving programming tasks and cooperate with other people in pairs.

Preceding courses

Language

German