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.
Learning objective
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.
Content
Basics of object-oriented programming. Objects and classes. Pre- and postconditions, class invariants, design by contract. Fundamental control structures. Assignment and references. Fundamental data structures and algorithms. Recursion. Inheritance and interfaces, basic concepts of Software Engineering such as the software process, specification and documentation, debugging, reuse and quality assurance.
Lecture notes
The lecture slides are available for download on the course page.
Literature
See the course page for up-to-date information.
Prerequisites / Notice
There are no special prerequisites. Students are expected to enroll in the other courses offered to first-year students of computer science.
Performance assessment
Performance assessment information (valid until the course unit is held again)
Performance assessment as a semester course
In examination block for
Bachelor's Degree Programme in Computer Science 2016; Version 07.11.2024 (First Year Examination Block 1)
The performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examination
written 160 minutes
Additional information on mode of examination
Während des Semesters können durch aktive Mitarbeit Bonuspunkte erarbeitet werden. Die Veranstaltung bietet als "Leistungselement" (im Sinne der WEISUNG: Anwendung von Leistungselementen in der Lehre vom 22.12.2017) Lernelemente an. Die Lernelemente sind Bonusaufgaben und klar markierter Teil der wöchentlichen Aufgabensammlung. In maximal 13 Wochen wird es Bonusaufgaben geben. Die durch die Lernelemente erworbenen Punkte verbessern das Ergebnis der schriftlichen Prüfung um maximal 0.25 Notenpunkte, wobei für dieses Maximum nicht die Maximalpunktzahl erforderlich ist.
Die Lernelemente müssen selbstständig bearbeitet werden. Unehrliches Verhalten bei der Bearbeitung der Lernelemente (z.B. Kopieren von Lösungen, Lösungsansätzen, Skizzen, oder Datensätzen von Mitstudierenden oder anderen Quellen, oder die Zurverfügungstellung solchen Materials zum Kopieren) haben ernste Konsequenzen inklusive der Aberkennung aller Bonuspunkte dieser Veranstaltung.
Weitere Informationen zu den Leistungselementen finden Sie auf der Webseite der Veranstaltung.
Schriftliche Prüfung (160 Min) -- online Programmieren am Computer (120 Min) und Bearbeiten von Aufgaben zu Grundlagen (40 Min). Die Note ergibt sich aus den beiden Teilen: 2/3 Programmier- und 1/3 Grundlagen-Prüfung.
Written aids
None
Digital exam
The exam takes place on devices provided by ETH Zurich.
Distance examination
It is not possible to take a distance examination.
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.