185.A92 Introduction to Programming 2
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2021S, VU, 3.0h, 4.0EC
Lecture TubeTUWEL


  • Semester hours: 3.0
  • Credits: 4.0
  • Type: VU Lecture and Exercise
  • LectureTube course
  • Format: Distance Learning

Learning outcomes

After successful completion of the course, students are able to

  • translate program descriptions given in natural language (i.e., programming tasks) into executable Java programs,
  • describe systematic approaches to programming (for creating and using abstract data types including abstaction hierarchies as well as traversing and modifying recursive data structures),
  • describe selected algorithms (like insertion, deletion, searching, comparing, sorting, iterating), data structures (variants of lists, trees and hash tables) and abstract data types (like data sets, queues, stacks, collections, lists, maps as well as hierarchies of them),
  • implement and use specified data abstractions, algorithms and data structures,
  • apply language concepts and techniques for data abstraction, traversal and modification of recursive data structures, input and output through files as well as quality assurance,
  • describe important sources of errors as well as quality assurance techniques (verifying input data, exception handling, testing, documentation, code-review),
  • act autonomously and as team players (teams of 2 persons) when solving programming tasks and thereby communicate properties of programs.

Subject of course

  • concept of data abstraction and language features for data abstraction
  • implementation and essential properties of recursive data structures (as lists and trees)
  • implementation and essential properties of algorithms (for insertion, deletion, search, sorting, comparison, conversion, iterating) on several data structures
  • abstraction over data structures with comparable access functions
  • exception handling
  • input and output over files, validation of input
  • simple testing methods and code review
  • approaches to program optimization and corresponding sources of errors
  • programming styles and program documentation

Teaching methods

  • Lectures (talks in German) give an overview of the course topics. It is recommended to keep time with lectures when learning new topics. You can attend lectures each Tuesday at 1 p.m. c.t. as a live stream (accessible through TUWEL). Recordings will be provided in TUWEL, too. The first part of the first lecture (March 2) gives information on the organisation of this course.
  • A script (in German) is available for download in TISS and TUWEL. The script serves as an accompanying textbook and gives some information students shall know before taking this course. Hence, ideal students familiarize with the script before the course starts.
  • Programming tasks on 8 exercise sheets have to be solved within about 1 week each (except for Exercise Sheet 6) as a home work. Solutions in the form of IntelliJ IDEA projects have to be uploaded in a Git repository (one for each participant in the course) before the deadlines. Tutors give short feedback on the uploaded solutions. These solutions shall be corrected according to the feedback.
  • The team task (Exercise Sheet 6) is a slightly larger programming task to be solved by a team of two students (or three students in special cases) within about one month. The solution has to be uploaded as IntelliJ IDEA project in a Git repository created for this purpose. Feedback to a preliminary solution has to be requested from a tutor in good time before the deadline (several times if necessary), and given suggestions shall be considered in the final solution.
  • Guided exercises take place in groups of up to approximately 25 students who meet eight times for 45 minutes online via Zoom, one meeting for each exercise sheet. Guided exercises include the following learning activities:
    • Discussion: In six of the eight meetings, some randomly selected students (who uploaded an imperfect solution of a corresponding programming task) get a chance to present their solutions as well as their corrections of errors mentioned in the feedback. Additionally, several approaches to solve a task will be discussed and compared to each other.
    • Exercise test: Programming tasks depending on the current exercise sheet have to be solved under pressure of time, this is, own program code created as home work must be extended or modified during the meeting. Six of the eight exercise tests must be taken online in teams of two students (three students in exceptional cases) having a time limit of about 15 minutes. Two exercise tests have to be solved by each student individually having a time limit of 45 minutes.
  • The programming cafe is a regular informal Zoom meeting where students can discuss their experiences and solve programming tasks together (using breakout sessions). An instructor will attend the meeting to provide assistance.
  • There are two regular tests (one in May, one late in June or early in July), each with a working time of 60 minutes, have to be taken on own computers under video control where you have to answer multiple-choice questions and solve programming tasks. Each test has to be taken at a primary target date, an alternative date is provided only for situations where the test at the target date has to be interrupted. The tasks have to be solved individually without using auxiliary means (except the IDE) and without the help of other persons. After the test (immediately after it or later) you may be asked at random to answer questions about the test and subject matter to additionally ensure that the tasks were solved solely by yourself. See details under "Examination modalities".
  • For each regular test there will be a corresponding supplementary test. Results of these tests replace results of corresponding regular tests. There are no alternative dates for supplementary tests. Participation in a supplementary test is only possible if at least 50% of the accomplishable achievements in the guided exercises were accomplished and the corresponding regular test was missed (or was rated as missed) or yielded a negative result. The supplementary test substituting the first regular test will happen late in June or early in July (together with the second regular test), that substituting the second regular test late in September or early in October.

Mode of examination


Additional information

Who shall participate in the course

  • Shortly after successfully completing "Einführung in die Programmierung 1" students shall participate in "Einführung in die Programmierung 2".
  • Students, who got a negative mark in "Einführung in die Programmierung 1" shall not participate in "Einführung in die Programmierung 2" before repeating and successfully completing the first course.
  • Students in the first semester shall participate only if they already have much programming experience in Java.


To participate, students have to register for the course between February 15 and March 5. Furthermore, it is necessary to register for a guided exercise group between March 2 and March 5 - see "Group registration".


For questions concerning this course please use the following mail address: ep2@complang.tuwien.ac.at

Please use your TU mail address for sending mails.


4 ECTS correspond to 100 hours of work:

  • 21 h for participation in lectures
  • 06 h for participation in 8 guided exercise meetings, 45 minutes each
  • 04 h for participation in 2 regular tests,  60 minutes each (and proportionately in supplementary tests)
  • 28 h for solving 7 exercise sheets (4 h for each sheet)
  • 16 h for solving the team task
  • 25 h for private study, programming cafe, test preparation

Distance Learning

This course uses distance learning. If it becomes possible to take tests using computers in labs, we will make use of this possibility. We seek for ways to have especially the second supplementary test in labs.

TISS shows reservations of Audi. Max. and Praktikum HS for lectures. Because of Corona regulations it is currently not possible to visit lectures in these rooms. Lectures are accessable only as live streams through TUWEL. The rooms are reserved just for the (unlikely) case that restrictions are relaxed in the future so that it becomes possible to visit lectures.

Face-to-face communication is an important factor in many promising learning activities. Distance learning cannot be an equal substitute. Nonetheless, distance learning is the best we can do in the current situation. You will be able to compensate missing face-to-face communication by more intense exposure to the topics of the course. Especially, you should try to understand programming examples unassisted (even without the help of Google) and solve programming tasks by yourself.



Course dates

Tue13:00 - 15:0002.03.2021 - 22.06.2021 Zoom accessible through TUWEL (LIVE)Lecture
Thu15:30 - 16:3004.03.2021 - 24.06.2021 Zoom (through TUWEL) (LIVE)Programmier-Café
Mon13:30 - 14:3015.03.2021 - 14.06.2021 Zoom (through TUWEL)Programmier-Café
Introduction to Programming 2 - Single appointments
Tue02.03.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu04.03.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Tue09.03.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu11.03.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Mon15.03.202113:30 - 14:30 Zoom (through TUWEL)Programmier-Café
Tue16.03.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu18.03.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Tue23.03.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu25.03.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Mon12.04.202113:30 - 14:30 Zoom (through TUWEL)Programmier-Café
Tue13.04.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu15.04.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Mon19.04.202113:30 - 14:30 Zoom (through TUWEL)Programmier-Café
Tue20.04.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu22.04.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Mon26.04.202113:30 - 14:30 Zoom (through TUWEL)Programmier-Café
Tue27.04.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu29.04.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café
Tue04.05.202113:00 - 15:00 Zoom accessible through TUWELLecture
Thu06.05.202115:30 - 16:30 Zoom (through TUWEL)Programmier-Café

Examination modalities

  • A positive rating of this course requires that at least 50% of the accomplishable achievements were accomplished for each of the following three parts:
    • guided exercises
    • first test (first regular test or alternatively the corresponding supplementary test)
    • second test (second regular test or alternatively the corresponding supplemantary test)
  • If the rating of the course is positive, the mark results from the average of the percentages of achievements of the three parts:
    1. :  87.5% to 100% (sehr gut)
    2. :  75% to 87,5% (gut)
    3. :  62.5% to 75% (befriedigend)
    4. :  50% to 62.5% (genügend)
  • The percentage of achievements for the guided exercises is the sum of "points" in the following three areas (at most 100 points in sum):
    • Up to 35 points: Sum of the ratings of 7 short-term exercise sheets (all except Exercise Sheet 6, up to 5 points per exercise sheet, whole numbers only) determined as follows:
      • The first rating results from the feedback of tutors and corresponds to the portion of tasks on the exercise sheet solved correctly.
      • Exercise instructors overwrite ratings of tutors whenever they get new insights on the quality or origin of solutions.
      • Exercise instructors rate students who present their program code and corrections of errors (in the corresponding guided exercise meeting) as if the corrected program code had been uploaded prior to the deadline. The quality of error corrections will be projected to the whole exercise sheet even if students present only parts of them.
      • If exercise instructors get the impression (from discussions and exercise test results) that a student does not understand his or her supposedly own program code and cannot have developed the code by himself or herself, the corresponding exercise sheet will be rated with 0 points.
      • If a student repeatedly does not participate in a guided exercise meeting (physical absence in the discussions), the corresponding exercise sheet will be rated with 0 points because it is impossible to find out whether he or her understands his or her own program code. If a student repeatedly misses the discussions only partly, points will be reduced proportionately. One or two absences from exercise meetings have no consequences because a justifiable reason is assumed (e.g., technical difficulties or sickness, no confirmation necessary).
    • Up to 44 points: Sum of the ratings of exercise tests (up to 4 points for each of the six short exercise tests of 15 minutes, up to 10 points for each of the two long exercise tests of 45 minutes) by the exercise instructor supported by tutors.
    • Up to 21 points: Rating of the team task (Exercise Sheet 6) by the exercise instructor supported by tutors, where the team task is rated with at most 11 points if no feedback was collected from a tutor before uploading the final solution. If an exercise instructor gets the impression that a team member does not understand program code supposedly developed by himself or herself, the team task will be rated with 0 points for this team member.
  • Instructors rate tests based on the proportion of correctly solved tasks considering the latest version the student uploaded through Git within working time, provided that this version was believably accomplished by the student herself or himself (without the help of other persons or auxiliary means). Breaches of rule will be prevented or handled by the following means:
    • Examination supervisors can repeatedly require students to show their working environments by panning the video cam and zooming on objects (before, during and after working time). During the whole test no other person must be in the same room. Except of usual home furnishings (including objects like lamps, wall clocks and pictures without screens and without inscriptions related to the contents of this course), technical equipment used for taking the course (you need one computer with one screen, keyboard, mouse, video cam, microphone and an internet connection, but no standby computer; if a laptop is used, there can be an additional screen, keyboard and docking station; if your camera is mounted stationary, it is recommended to use a simple mirror or a second cam (smart phone) to show the working environment, but the second cam has to be deposited out of reach after showing the environment) there must not be any electronic equipment (no scanner, printer, cell phone, smart watch, etc.), any book, script, non-blank paper, etc. within the range of arms or in sighting distance (that would allow reading directly from the working place). On the table there can be identification cards, some sheets of (at the begin of working time blank) paper, pens, and drinking glasses. Open applications on the screen are restricted to InelliJ IDEA as IDE and the meeting software (presumably Zoom) used for video control. Only one project must be open in the IDE, and this project must contain (at working time) the test tasks and (later) their solutions. The meeting software must be used so that the video cam (showing at least the face of the student, not using a virtual background) and the microphone always remain switched on and all screen contents are shared (screen sharing).
    • Before the test starts you have to show your identification card (the same that you uploaded before as picture in TUWEL) and your working environment. You can participate in the test only if your identity can be determined beyond doubt, your working envirement fulfills all requirements stated above, and your internet connection is stable enough to check all conditions. Otherwise, if problems show up at a primary target date of a regular test and seem to be solvable within few days, you get the offer to participate at the alternative date.
    • After the end of the working time the meeting software must remain operating until examination supervisors tell you that you can stop it. On request you have to show your working environment again and answer questions on the test and subject matter (see below).
    • Programs to identify plagiarism or similarities in texts can be applied.
    • Course instructors can require you to answer questions on the test and subject matter any time after the test (immediately after the test at random without any cause, at a later time on suspicion of an irregularity or gap in the supervision) in the form of an oral online examination. Answers to these questions do not affect the rating of the test except if instructors attain conviction that the test results do not show the students own accomplishments or there have been significant gaps in the supervision.
    • Test supervision without gaps requires an internet connection in good order. If the internet connection gets lost, the student has to reestablish the connection as soon as possible and to upload the current state of the test through Git. After reesteblishing  the connection it is necessary to show the working environment again before continuing the work on the test. Course instructors decide in retrospect if a gapless supervision seems to be given despite the temporary connection loss (based on the duration, consistency of the versions uploaded before and after connection loss, other occurrences, possibly interviewing the student). Otherwise:
      • If no gapless supervision was given at a primary target date of a regular test, the student can decide to take the corresponding test at the alternative date instead (as substitute, this is, the test at the primary target date will not be rated).
      • If the student does not want to take the corresponding test at the alternative date or no gapless supervision was given for a supplementary test or at an alternative date, then the last version of the test uploaded via Git before the loss of connection will be rated.
    • If test supervisors find out during working time that you are using forbidden auxiliary means or get help from other persons, then they will ask you to immediately stop to do so and to upload the current state of your test using Git. All parts of your test uploaded at this time will not be considered in the rating (this is, your test uploaded at the end of the working time will be rated as if it did not include the program parts uploaded at the incident). If you do not immediately upload your test when asked to do so (or seem to edit your test before uploading), then instructors estimate the state of your program at the time of the incident. If the internet connection gets lost after such an incident (so that no gapless supervision seems to be given, see above), then you can decide to take the corresponding test at the alternative date instead (provided that the incident occurred at a primary target date of a regular test, see above), but working time is reduced by the time that elapsed before the (last such) incident.
    • If instructors will be convinced (at any time after the test) that you used forbidden auxiliary means or got help from other persons, or that your test results do not reflect your personal merit in any way, then the test will be rated as if you dit not participate in the test.
    • If Corona regulations change so that it becomes indeed possible to organize tests in computer labs, then tests have to be taken in presence instead of online. In this case instuctors provide you with appropriate working places for tests. Video supervision is replaced with direct supervision in presence so that there cannot be gaps in the supervision. There is no need for alternative dates. Tests in presence will be scheduled staggered and/or in a row depending on the availability of working places in the labs. Apart from that, above rules are correspondingly valid also for tests in presence.


DayTimeDateRoomMode of examinationApplication timeApplication modeExam
Thu13:00 - 15:3030.09.2021 Zoom meetingwrittenno application-Nachtragstest zu Test 2

Group dates

do13Thu13:00 - 14:0025.03.2021 - 24.06.2021 Zoom185.A92 Introduction to Programming 2 do13
do14Thu14:00 - 15:0025.03.2021 - 24.06.2021 Zoom185.A92 Introduction to Programming 2 do14
do15Thu15:00 - 16:0025.03.2021 - 24.06.2021 Zoom185.A92 Introduction to Programming 2 do15
do16Thu16:00 - 17:0025.03.2021 - 24.06.2021 Zoom185.A92 Introduction to Programming 2 do16
do17Thu17:00 - 18:0025.03.2021 - 24.06.2021 Zoom185.A92 Introduction to Programming 2 do17
do18Thu18:00 - 19:0025.03.2021 - 24.06.2021 Zoom185.A92 Introduction to Programming 2 do18
fr12Fri12:00 - 13:0026.03.2021 - 25.06.2021 Zoom185.A92 Introduction to Programming 2 fr12
fr13Fri13:00 - 14:0026.03.2021 - 25.06.2021 Zoom185.A92 Introduction to Programming 2 fr13
fr14Fri14:00 - 15:0026.03.2021 - 25.06.2021 Zoom185.A92 Introduction to Programming 2 fr14
fr15Fri15:00 - 16:0026.03.2021 - 25.06.2021 Zoom185.A92 Introduction to Programming 2 fr15
fr16Fri16:00 - 17:0026.03.2021 - 25.06.2021 Zoom185.A92 Introduction to Programming 2 fr16
fr17Fri17:00 - 18:0026.03.2021 - 25.06.2021 Zoom185.A92 Introduction to Programming 2 fr17
mi12Wed12:00 - 13:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi12
mi13Wed13:00 - 14:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi13
mi14Wed14:00 - 15:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi14
mi15Wed15:00 - 16:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi15
mi16Wed16:00 - 17:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi16
mi17Wed17:00 - 18:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi17
mi18Wed18:00 - 19:0024.03.2021 - 23.06.2021 Zoom185.A92 Introduction to Programming 2 mi18
mo13Mon13:00 - 14:0022.03.2021 - 21.06.2021 Zoom185.A92 Introduction to Programming 2 mo13
mo14Mon14:00 - 15:0022.03.2021 - 21.06.2021 Zoom185.A92 Introduction to Programming 2 mo14
mo15Mon15:00 - 16:0022.03.2021 - 21.06.2021 Zoom185.A92 Introduction to Programming 2 mo15
mo16Mon16:00 - 17:0022.03.2021 - 21.06.2021 Zoom185.A92 Introduction to Programming 2 mo16
mo17Mon17:00 - 18:0022.03.2021 - 21.06.2021 Zoom185.A92 Introduction to Programming 2 mo17
mo18Mon18:00 - 19:0022.03.2021 - 21.06.2021 Zoom185.A92 Introduction to Programming 2 mo18

Course registration

Begin End Deregistration end
15.02.2021 10:00 05.03.2021 12:00 05.03.2021 12:00

Registration modalities

With your course registration you get access to TUWEL, including communication channels like discussion forum and lecture streams, independently of (and before) your registration to an exercise group. To fully participate in the course it is necessary to (additionally) register in TISS to an exercise group of this course - see "Group Registration".

Group Registration

GroupRegistration FromTo
do1302.03.2021 15:0005.03.2021 12:00
do1402.03.2021 15:0005.03.2021 12:00
do1502.03.2021 15:0005.03.2021 12:00
do1602.03.2021 15:0005.03.2021 12:00
do1702.03.2021 15:0005.03.2021 12:00
do1802.03.2021 15:0005.03.2021 12:00
fr1202.03.2021 15:0005.03.2021 12:00
fr1302.03.2021 15:0005.03.2021 12:00
fr1402.03.2021 15:0005.03.2021 12:00
fr1502.03.2021 15:0005.03.2021 12:00
fr1602.03.2021 15:0005.03.2021 12:00
fr1702.03.2021 15:0005.03.2021 12:00
mi1202.03.2021 15:0005.03.2021 12:00
mi1302.03.2021 15:0005.03.2021 12:00
mi1402.03.2021 15:0005.03.2021 12:00
mi1502.03.2021 15:0005.03.2021 12:00
mi1602.03.2021 15:0005.03.2021 12:00
mi1702.03.2021 15:0005.03.2021 12:00
mi1802.03.2021 15:0005.03.2021 12:00
mo1302.03.2021 15:0005.03.2021 12:00
mo1402.03.2021 15:0005.03.2021 12:00
mo1502.03.2021 15:0005.03.2021 12:00
mo1602.03.2021 15:0005.03.2021 12:00
mo1702.03.2021 15:0005.03.2021 12:00
mo1802.03.2021 15:0005.03.2021 12:00



A script is available for download (in German only).

Previous knowledge

Before participating in the course students must be able to

  • develop, modify, debug and document simple programs in Java as well as trace their executions,
  • describe basic precedural concepts of Java,
  • describe basic algorithms for searching in and sorting of arrays,
  • describe sources of errors in simple procedural programs,
  • act autonomously when solving programming tasks and communicate basic properties of simple programs.


Preceding courses

Accompanying courses