VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Concepts of Object-Oriented Programming
Last Updated: 2026-06-03 00:07:33
Abstract
Course that focuses on an in-depth understanding of object-oriented programming and compares designs of object-oriented programming languages. Topics include different flavors of type systems, inheritance models, encapsulation in the presence of aliasing, object and class initialization, program correctness, reflection
Objective
After this course, students will: Have a deep understanding of advanced concepts of object-oriented programming and their support through various language features. Be able to understand language concepts on a semantic level and be able to compare and evaluate language designs. Be able to learn new languages more rapidly. Be aware of many subtle problems of object-oriented programming and know how to avoid them.
Content
The main goal of this course is to convey a deep understanding of the key concepts of sequential object-oriented programming and their support in different programming languages. This is achieved by studying how important challenges are addressed through language features and programming idioms. In particular, the course discusses alternative language designs by contrasting solutions in languages such as C++, C#, Eiffel, Java, Python, and Scala. The course also introduces novel ideas from research languages that may influence the design of future mainstream languages. The topics discussed in the course include among others: The pros and cons of different flavors of type systems (for instance, static vs. dynamic typing, nominal vs. structural, syntactic vs. behavioral typing) The key problems of single and multiple inheritance and how different languages address them Generic type systems, in particular, Java generics, C# generics, and C++ templates The situations in which object-oriented programming does not provide encapsulation, and how to avoid them The pitfalls of object initialization, exemplified by a research type system that prevents null pointer dereferencing How to maintain the consistency of data structures
Resources
Literature
Will be announced in the lecture.
General Information
- Language
- English
- Levels
- DZ , SHE , MSC , WBZ
- Frequency
- Yearly recurring
Examination
- Type
- end-of-semester examination
- Mode
- written 120 minutes
- Aids
- keine
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture |
Concepts of Object-Oriented Programming
Does not take place this semester.
|
No time listed | 3 h weekly |
| exercise |
Concepts of Object-Oriented Programming
Does not take place this semester.
|
No time listed | 2 h weekly |
| independent project |
Concepts of Object-Oriented Programming
Does not take place this semester.
|
No time listed | 2 h weekly |
Offered In
-
-
Electives (In the ‘electives’ subcategory, at least two course units must be successfully completed. All courses listed as core courses (not electives) for one of the following ETH MSc programmes, MSc Statistics, MSc Physics, MSc Computer Science, MSc (Applied) Mathematics, MSc Neural Systems and Computation, MSc Robotics, Systems, and Control, MSc Data Science, MSc Electrical Engineering and Information Technology, can be taken as an elective course in the MSc CSE without prior permission.)
-
-
-
-
Computer Science Teaching Diploma (More informations at : )
-
Computer Science TC (Detailed information on the programme at: )
-
Computational Biology and Bioinformatics Master (More information at: )
-
Advanced Courses (A total of 30 ECTS must be acquired in the advanced course category. Thereof, at least 16 ECTS in the theory and at least 10 ECTS in the biology subcategory.)
-
Theory (At least 16 ECTS need to be acquired in this subcategory.)
-
-
-