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.

2019S, VU, 3.0h, 4.0EC

Properties

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

Aim of course

Technical and Methodological Knowledge:

After successfully participating in this course students can describe

  • systematic approaches to programming (especially for creating and using data abstractions, traversing and modifying recursive data structures),
  • selected algorithms, data structures and data abstractions,
  • important sources of errors as well as quality assurance techniques (verifying input data, exception handling, testing, documentation, code-review).

Cognitive and Practical Skills:

After successfully participating in this course students can

  • translate informal program descriptions given in natural language (i.e. programming tasks) into executable Java programs,
  • 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.

Social and Personal Skills:

After successfully participating in this course students can

  • act autonomously as well as team players (teams of 2 persons) when solving programming assignments,
  • 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) 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
  • programming styles and program documentation

Additional information

Preliminary Talk

The preliminary talk (March 4, 2019, 10-11 a.m., Audi.Max.) gives much information on the organisation of this course. Please participate.

Learning Activities

  • Talks each Monday and Tuesday (10 a.m. c.t. in the Audi.Max., in German) give an overview of all topics in the course and provide examples. It is recommended to participate in all talks. The first talk (March 4) gives information on the organisation of this course.
  • A script (in German) is available for download - see the Documents section. 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 7 exercise sheets have to be solved within about 1 week each. Solutions in the form of IntelliJ IDEA projects have to be uploaded before the deadlines. Some of the tasks are obligatory, they must be solved.
  • The team task is a slightly larger programming task to be solved by a team of two students within about two months. The solution has to be uploaded in the same way as for exercise sheets. Feedback to a preliminary solution has to be requested from a tutor in good time before the deadline, and given suggestions shall be considered in the final solution.
  • Guided exercises take place in groups of approximately 25 students who meet 8 times for 45 minutes, one meeting for discussing each exercise sheet and the team task. In the meetings, students have to present their solutions of programming tasks when requested to do so by the exercise instructor. Furthermore, small programming tasks (called ad-hoc tasks) have to be solved during the meetings either allone or in teams of two students (as requested by the exercise instructor) under pressure of time. Some ad-hoc tasks may depend on solutions of obligatory programming tasks on exercise sheets; if the obligatory task has not been solved, such ad-hoc tasks will be almost insolvable.
  • The "programming cafe" is a weekly informal meeting in the InfLab where students can discuss their experiences and solve programming tasks together. At least one instructor or tutor will attend the meeting to provide assistance.
  • There are two regular tests on computer terminals in the labs, 60 minutes each, where you have to answer multiple-choice questions and solve programming tasks. The first test will happen in the middle of the semester, the second at the end of the semester.
  • For each regular test there will be a corresponding supplementary test. Results of these tests replace results of corresponding regular 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 yielded a negative result. The supplementary test substituting the 1st regular test will happen shortly before the begin of the summer break, that substituting the 2nd regular test shortly after the end of the summer break.

Who shall participate

  • Shortly after successfully completing "Einführung in die Programmierung 1" students shall participate in "Einführung in die Programmierung 2".
  • It is recommended to participate in "Einführung in die Programmierung 2" together with "Algorithmen und Datenstrukturen".
  • Students, who got a negative mark in "Einführung in die Programmierung 1" shall not participate in "Einführung in die Programmierung 2". The only exception are students, who almost completed successfully, know the reasons for their failure and meanwhile eliminated these reasons.
  • Students in the first semester shall participate only if they already have much programming experience in Java.

Registration

To participate, students have to register for a guided exercise group within the short registation period using TISS in order to determine room and dates.

Mail

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.

ECTS-Breakdown

(4 ECTS correspond to 100 hours of work)

  • 21 h for participation in talks
  • 06 h for participation in 8 guided exercise meetings, 45 minutes each
  • 03 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
  • 26 h for private study, programming cafe, test preparation

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Mon10:00 - 11:0004.03.2019 - 24.06.2019GM 1 Audi. Max. Vorlesung
Tue10:00 - 11:0005.03.2019 - 25.06.2019GM 1 Audi. Max. Vorlesung
Thu15:00 - 17:0014.03.2019 - 06.06.2019Informatiklabor Pong -
Fri10:00 - 12:0015.03.2019 - 21.06.2019Informatiklabor Pong Programmier-Café
Introduction to Programming 2 - Single appointments
DayDateTimeLocationDescription
Mon04.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue05.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Mon11.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue12.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Thu14.03.201915:00 - 17:00Informatiklabor Pong -
Fri15.03.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mon18.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue19.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fri22.03.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mon25.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue26.03.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fri29.03.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mon01.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue02.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fri05.04.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mon08.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue09.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Fri12.04.201910:00 - 12:00Informatiklabor Pong Programmier-Café
Mon29.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung
Tue30.04.201910:00 - 11:00GM 1 Audi. Max. Vorlesung

Examination modalities

  • A positive marking of this course requires that at least 50% of the accomplishable achievements were accomplished for each of the following three parts:
    • guided exercises
    • 1st test (1st regular test or alternatively the corresponding supplementary test)
    • 2nd test (2nd regular test or alternatively the corresponding supplemantary test)
  • If the marking 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 average of the percentages of achievements in the following three areas:
    • sum of the ratings of exercise sheets and their presentations in guided exercise meetings, each calculated by (participation factor * points for solved tasks as specified on the task sheet) where the exercise instructor determines the participation facor (1 usually; 0 on absence from the meeting, refusal of participation or obvious misunderstanding of a self-uploaded solution of a task; a value between 0 and 1 if there are deficits in presenting a self-uploaded solution of a task),
    • sum of the ratings of all ad-hoc tasks by the exercise instructor,
    • rating of the team task by the exercise instructor, where the team task is rated with at most 50% if no feedback for a preliminary solution was collected from a tutor before uploading the final solution.

Exams

DayTimeDateRoomMode of examinationApplication timeApplication modeExam
Thu08:00 - 20:0014.05.2020complang-Labor written05.05.2020 12:00 - 12.05.2020 13:00TISS1. Test
Thu08:00 - 20:0014.05.2020Informatiklabor Frogger written05.05.2020 12:00 - 12.05.2020 13:00TISS1. Test
Thu08:00 - 20:0014.05.2020Informatiklabor Q*bert written05.05.2020 12:00 - 12.05.2020 13:00TISS1. Test
Thu08:00 - 20:0014.05.2020Informatiklabor Pong written05.05.2020 12:00 - 12.05.2020 13:00TISS1. Test
Thu08:00 - 20:0014.05.2020DSLab written05.05.2020 12:00 - 12.05.2020 13:00TISS1. Test
Thu10:00 - 17:3014.05.2020 CL-Lab, Argentinierstraße 8, Tiefparterrewritten05.05.2020 12:00 - 12.05.2020 13:00TISSTest 1 im CL-Lab
Thu10:00 - 17:3014.05.2020 DSLab, Argentinierstraße 8, Keller, Eingang Paniglgassewritten05.05.2020 12:00 - 12.05.2020 13:00TISSTest 1 im DSLab
Thu10:00 - 17:3014.05.2020 InfLab (Frogger, Q*bert, Pong) Favoritenstraßewritten05.05.2020 12:00 - 12.05.2020 13:00TISSTest 1 im InfLab
Thu10:00 - 17:3014.05.2020 TILab, Treitlstraße 3, Hochparterrewritten05.05.2020 12:00 - 12.05.2020 13:00TISSTest 1 im TILab
Thu08:00 - 20:0025.06.2020Informatiklabor Pong written16.06.2020 12:00 - 23.06.2020 13:00TISS2. Test
Thu08:00 - 20:0025.06.2020DSLab written16.06.2020 12:00 - 23.06.2020 13:00TISS2. Test
Thu08:00 - 20:0025.06.2020Informatiklabor Frogger written16.06.2020 12:00 - 23.06.2020 13:00TISS2. Test
Thu08:00 - 20:0025.06.2020Informatiklabor Q*bert written16.06.2020 12:00 - 23.06.2020 13:00TISS2. Test
Thu08:00 - 20:0025.06.2020complang-Labor written16.06.2020 12:00 - 23.06.2020 13:00TISS2. Test

Group dates

GroupDayTimeDateLocationDescription
di11aTue11:00 - 12:0019.03.2019Informatiklabor Frogger -
di11aTue11:00 - 12:0002.04.2019 - 18.06.2019Informatiklabor Frogger -
di11bTue11:00 - 12:0019.03.2019Informatiklabor Q*bert -
di11bTue11:00 - 12:0002.04.2019 - 18.06.2019Informatiklabor Q*bert -
di12aTue12:00 - 13:0019.03.2019Informatiklabor Frogger -
di12aTue12:00 - 13:0002.04.2019 - 18.06.2019Informatiklabor Frogger -
di12bTue12:00 - 13:0019.03.2019Informatiklabor Q*bert -
di12bTue12:00 - 13:0002.04.2019 - 18.06.2019Informatiklabor Q*bert -
di17aTue17:00 - 18:0019.03.2019Informatiklabor Frogger -
di17aTue17:00 - 18:0002.04.2019 - 18.06.2019Informatiklabor Frogger -
di17bTue17:00 - 18:0019.03.2019Informatiklabor Q*bert -
di17bTue17:00 - 18:0002.04.2019 - 18.06.2019Informatiklabor Q*bert -
di18aTue18:00 - 19:0019.03.2019 - 18.06.2019Informatiklabor Frogger -
di18bTue18:00 - 19:0019.03.2019 - 18.06.2019Informatiklabor Q*bert -
mi11aWed11:00 - 12:0020.03.2019Informatiklabor Frogger -
mi11aWed11:00 - 12:0003.04.2019 - 12.06.2019Informatiklabor Frogger -
mi11bWed11:00 - 12:0020.03.2019Informatiklabor Q*bert -
mi11bWed11:00 - 12:0003.04.2019 - 12.06.2019Informatiklabor Q*bert -
mi12aWed12:00 - 13:0020.03.2019Informatiklabor Frogger -
mi12aWed12:00 - 13:0003.04.2019 - 12.06.2019Informatiklabor Frogger -
mi12bWed12:00 - 13:0020.03.2019Informatiklabor Q*bert -
mi12bWed12:00 - 13:0003.04.2019 - 12.06.2019Informatiklabor Q*bert -
mi17aWed17:00 - 18:0020.03.2019Informatiklabor Frogger -
mi17aWed17:00 - 18:0003.04.2019 - 12.06.2019Informatiklabor Frogger -
mi17bWed17:00 - 18:0020.03.2019 - 12.06.2019Informatiklabor Q*bert -
mi18aWed18:00 - 19:0020.03.2019 - 12.06.2019Informatiklabor Frogger -
mi18bWed18:00 - 19:0020.03.2019 - 12.06.2019Informatiklabor Q*bert -
mo11aMon11:00 - 12:0018.03.2019Informatiklabor Frogger -
mo11aMon11:00 - 12:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo11bMon11:00 - 12:0018.03.2019Informatiklabor Q*bert -
mo11bMon11:00 - 12:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo12aMon12:00 - 13:0018.03.2019Informatiklabor Frogger -
mo12aMon12:00 - 13:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo12bMon12:00 - 13:0018.03.2019Informatiklabor Q*bert -
mo12bMon12:00 - 13:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo15aMon15:00 - 16:0018.03.2019Informatiklabor Frogger -
mo15aMon15:00 - 16:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo15bMon15:00 - 16:0018.03.2019Informatiklabor Q*bert -
mo15bMon15:00 - 16:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo16aMon16:00 - 17:0018.03.2019Informatiklabor Frogger -
mo16aMon16:00 - 17:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo16bMon16:00 - 17:0018.03.2019Informatiklabor Q*bert -
mo16bMon16:00 - 17:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo17aMon17:00 - 18:0018.03.2019Informatiklabor Frogger -
mo17aMon17:00 - 18:0001.04.2019 - 17.06.2019Informatiklabor Frogger -
mo17bMon17:00 - 18:0018.03.2019Informatiklabor Q*bert -
mo17bMon17:00 - 18:0001.04.2019 - 17.06.2019Informatiklabor Q*bert -
mo18aMon18:00 - 19:0018.03.2019 - 17.06.2019Informatiklabor Frogger -
mo18bMon18:00 - 19:0018.03.2019 - 17.06.2019Informatiklabor Q*bert -

Course registration

Begin End Deregistration end
04.03.2019 12:00 06.03.2019 13:00 06.03.2019 13:00

Registration modalities:

Register for a group of this course. Group registration is regarded as registration for the course.

Application is currently locked manually.

Group Registration

GroupRegistration FromTo
di11a04.03.2019 12:0006.03.2019 13:00
di11b04.03.2019 12:0006.03.2019 13:00
di12a04.03.2019 12:0006.03.2019 13:00
di12b04.03.2019 12:0006.03.2019 13:00
di17a04.03.2019 12:0006.03.2019 13:00
di17b04.03.2019 12:0006.03.2019 13:00
di18a04.03.2019 12:00
di18b04.03.2019 12:00
mi11a04.03.2019 12:0006.03.2019 13:00
mi11b04.03.2019 12:0006.03.2019 13:00
mi12a04.03.2019 12:0006.03.2019 13:00
mi12b04.03.2019 12:0006.03.2019 13:00
mi17a04.03.2019 12:0006.03.2019 13:00
mi17b04.03.2019 12:0006.03.2019 13:00
mi18a04.03.2019 12:0006.03.2019 13:00
mi18b04.03.2019 12:00
mo11a04.03.2019 12:0006.03.2019 13:00
mo11b04.03.2019 12:0006.03.2019 13:00
mo12a04.03.2019 12:0006.03.2019 13:00
mo12b04.03.2019 12:0006.03.2019 13:00
mo15a04.03.2019 12:0006.03.2019 13:00
mo15b04.03.2019 12:0006.03.2019 13:00
mo16a04.03.2019 12:0006.03.2019 13:00
mo16b04.03.2019 12:0006.03.2019 13:00
mo17a04.03.2019 12:0006.03.2019 13:00
mo17b04.03.2019 12:0006.03.2019 13:00
mo18a04.03.2019 12:0006.03.2019 13:00
mo18b04.03.2019 12:0006.03.2019 13:00

Curricula

Literature

A script is available for download.

Previous knowledge

Technical and Methodological Knowledge:

Before participating in the course students must be able to describe the following:

  • basic precedural concepts of Java,
  • basic algorithms for searching in and sorting of arrays,
  • sources of errors in simple procedural programs.

Cognitive and Practical Skills: 

Before participating in the course students must be able to develop, understand, debug, modify and document simple programs in Java.

 Social and Personal Skills:

Before participating in the course students must be able to

  • act autonomously when solving programming assignments,
  • communicate basic properties of simple programs.

Preceding courses

Accompanying courses

Language

German