185.206 Type Systems
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, VO, 2.0h, 3.0EC

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VO Lecture

Learning outcomes

After successful completion of the course, students are able to

  • list reasons for the use of types in programming languages,
  • describe different kinds of types in programming languages,
  • roughly outline formal rule systems used by compilers for type checking,
  • compare different kinds of types concerning their most important prospects and limits.

Subject of course

  • meaning of the notion of type in programming languages
  • classification of programming languages regarding type systems
  • simple theoretical type models
  • types in imperative languages (especially Ada)
  • theoretical models of polymorphic type systems and type inference
  • programming languages with polymorphic type systems
  • subtyping
  • genericity
  • types as partial specifications of object behariour
  • use of polymorphic type systems in object-oriented programming
  • current trends

 

Teaching methods

"Typesystems" is a lecture in the classic style based on a weekly talk, mixed up by activities like interposed questions and brief discussions. After an overview and the introduction of some terminology we repeatedly examine (1) practical experiences [with discussions of own experiences], (2) formal models based on them [with discussions of reasons behind some technical details] and (3) typical applications thereof for type checking [with discussions of prospects and limits], leading to new practical experiences. Students shall prepare themselves for the talks and the final exam also by autonomous research (supported by the script).

Mode of examination

Oral

Additional information

ECTS-Breakdown:

  • 25h: Weekly lectures
  • 25h: Consolitation of the topics by autonomous research
  • 25h: Preparation for exam and oral exam

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Fri09:00 - 11:0004.10.2019 - 24.01.2020EI 3A Hörsaal Lecture
Type Systems - Single appointments
DayDateTimeLocationDescription
Fri04.10.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri11.10.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri18.10.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri25.10.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri08.11.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri22.11.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri29.11.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri06.12.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri13.12.201909:00 - 11:00EI 3A Hörsaal Lecture
Fri10.01.202009:00 - 11:00EI 3A Hörsaal Lecture
Fri17.01.202009:00 - 11:00EI 3A Hörsaal Lecture
Fri24.01.202009:00 - 11:00EI 3A Hörsaal Lecture

Examination modalities

An oral exam will check each of the four learning outcomes given above.

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

Course registration

Begin End Deregistration end
01.10.2019 00:00 31.10.2019 23:59

Curricula

Study CodeObligationSemesterPrecon.Info
066 504 Master programme Embedded Systems Not specified
066 931 Logic and Computation Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective

Literature

Find the script and the slides (all in German) in the Course Material section of this course.

Previous knowledge

Students are expected to have good practical programming capabilities in strongly typed object-oriented (and in the ideal case also functional) programming languages; this implies experience in the static use of types.

Language

German