Introduction to fundamental concepts of modern programming and operational skills for developing high-quality programs, including large programs as in industry. The course introduces software engineering principles with an object-oriented approach based on Design by Contract as present in Eiffel. For the second time we offer a supporting MOOC (online) version with more exercises and a hint system.
Many people can write programs. The "Introduction to Programming" course goes beyond that basic goal: it teaches the fundamental concepts and skills necessary to perform programming at a professional level. As a result of successfully completing the course, students master the fundamental control structures, data structures, reasoning patterns and programming language mechanisms characterizing modern programming, as well as the fundamental rules of producing high-quality software. They have the necessary programming background for later courses introducing programming skills in specialized application areas.
Basics of object-oriented programming. Objects and classes. Pre- and postconditions, class invariants, Design by Contract. Fundamental control structures. Assignment and References. Basic hardware concepts. Fundamental data structures and algorithms. Recursion. Inheritance and deferred classes, introduction into event-driven design and concurrent programming. Basic concepts of Software Engineering such as the software process, specification and documentation, reuse and quality assurance.
Textbook: "Touch of Class" (see under "Literatur") The lecture slides are available for download on the course page.
The course uses an "Outside-In" approach enabling students, right from the beginning, to use an advanced graphical library and produce significant applications. Students then learn step by step how the library is built, as a source of imitation and inspiration.
The course covers not only basic concepts of programming but also some advanced topics seldom encountered in introductory courses, such as recursion, undecidability, event-driven programming, multiple inheritance and others.
Performance assessment information (valid until the course unit is held again)
Performance assessment as a semester course
In examination block for
Bachelor's Programme in Computer Science 2008; Version 24.02.2016 (Examination Block)
The performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examination
written 120 minutes
If the course unit is part of an examination block, the credits are allocated for the successful completion of the whole block. This information can be updated until the beginning of the semester; information on the examination timetable is binding.