252-0237-00L  Concepts of Object-Oriented Programming

SemesterAutumn Semester 2021
LecturersP. Müller
Periodicityyearly recurring course
Language of instructionEnglish



Courses

NumberTitleHoursLecturers
252-0237-00 VConcepts of Object-Oriented Programming
Online lecture: This lecture will take place online. Reserved rooms will remain blocked on campus for students to follow the course from there.
3 hrs
Thu09:15-12:00HG E 1.1 »
P. Müller
252-0237-00 UConcepts of Object-Oriented Programming2 hrs
Fri08:15-10:00CAB G 57 »
08:15-10:00CHN D 42 »
10:15-12:00CAB G 57 »
10:15-12:00CHN D 42 »
10:15-12:00CHN D 44 »
P. Müller
252-0237-00 AConcepts of Object-Oriented Programming2 hrsP. Müller

Catalogue data

AbstractCourse 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
Learning objectiveAfter 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.
ContentThe 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
LiteratureWill be announced in the lecture.
Prerequisites / NoticePrerequisites:
Mastering at least one object-oriented programming language (this course will NOT provide an introduction to object-oriented programming); programming experience

Performance assessment

Performance assessment information (valid until the course unit is held again)
Performance assessment as a semester course
ECTS credits8 credits
ExaminersP. Müller
Typesession examination
Language of examinationEnglish
RepetitionThe performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examinationwritten 120 minutes
Written aidskeine
This information can be updated until the beginning of the semester; information on the examination timetable is binding.

Learning materials

 
Main linkInformation
Only public learning materials are listed.

Groups

No information on groups available.

Restrictions

There are no additional restrictions for the registration.

Offered in

ProgrammeSectionType
CAS in Computer ScienceFocus Courses and ElectivesWInformation
Computational Biology and Bioinformatics MasterTheoryWInformation
Computer Science TCSpecialized Courses in Respective Subject with Educational FocusWInformation
Computer Science Teaching DiplomaSpec. Courses in Resp. Subj. w/ Educ. Focus & Further Subj. DidacticsWInformation
Computer Science MasterCore CoursesWInformation
Computer Science MasterCore Focus Courses General StudiesWInformation
Computer Science MasterMinor in Programming Languages and Software EngineeringWInformation
Computational Science and Engineering MasterElectivesWInformation