Introduction to Programming

Bertrand Meyer, Fall 2012
Deutsche Version dieser Seite

General

News

03.12.2012 — Assignment 10 is online. Note that solving this assignment is required for the testat. Because the assignment includes the final project, you are given more time than usual to solve it (until December 19).

27.11.2012Announcement: the second mock exam will take place next Wednesday, December 5, during the exercise session. The place is your regular exercise rooms. Your presence at the Mock exam is required for the Testat. If you have a justifiable reason for not coming, please, contact your assistant in advance.
There is no assignment due on December 5; please use this week to prepare for the mock exam.

12.11.2012 — During the second lecture hour on Tuesday, November 20, Emmanuel Stapf, Head of Engineering at Eiffel Software, will give a guest lecture. (A regular lecture will take place during the first hour).

12.11.2012 — Emmanuel Stapf, Head of Engineering at Eiffel Software, will be at ETH on November 19 and 20. During his visit he would like to meet with students who encountered problems with EiffelStudio to look into the issues you faced (or are still facing).
We will set up a meeting on Monday November 19 between 15:15 and 17:00 (after the lecture) and/or on Tuesday November 20 between 13:15 and 15:00. If you would like to discuss any EiffelStudio-related issues, please indicate in the doodle poll which of the two days works for you (enter you name and legi number).

30.10.2012Announcement: the first mock exam will take place next Wednesday, November 7, during the exercise session. The place is your regular exercise rooms. Your presence at the Mock exam is required for the Testat. If you have a justifiable reason for not coming, please, contact your assistant in advance.
There is no assignment due on November 7; please use this week to prepare for the mock exam.

24.09.2011 — The exercise groups have been created. If you don't find your legi number in any of the groups, please contact Julian Tschannen specifying your experience level and preferred language.

23.09.2012 — Assignment 1: EiffelStudio installation instructions for Linux have been updated.

11.09.2012 — The self-assesment questionnaire is online. Please fill it in until the end of Friday, September 21, in order to be assigned to an exercise group.

10.09.2012Lecture time and place change: There will be no lecture on Tuesday, September 25. A replacement lecture will take place on Friday, September 21, at 13:15-15:00, in HG E7.

10.09.2011 — The first lecture will take place on Tuesday, September 18. The first exercise sheet will be published on Monday. There are no exercise sessions during the first week.

Course description

252-0021-00 Introduction to Programming

Content:

Course book

Bertrand Meyer: Touch of Class, Learning to Program Well with Objects and Contracts, Springer 2009, ISBN: 978-3-540-92144-8. Electronic version (only available inside ETH network).

Helping and getting help

To get stated with the Traffic software, you might want to read this introduction. If you think you have found a bug in Traffic, share your thoughts with your assistant, and possibly submit a bug report.

In case you encounter a crash of the EiffelStudio development environment, please click the "Submit bug report" button and provide the following credentials: login ethinfo1, password ethinfo1.

You can use the help forum to ask course- and exercise-related questions. The assistants will do their best to answer your questions as soon as possible.

Downloads

The precise description of which software is needed and how to install it can be found on the first exercise sheet. It is also possible to use public computer rooms (CAB H56 and H57) where the required software is already installed.

The lecture slides (in PowerPoint and PDF format), the exercise session slides, the exercise sheets, the masters solutions for the exercises and the mock exams can be downloaded from this page.

Additional materials:

Further reading

Lecture

Schedule

Day Time Location
Monday 13:15-15:00 HG F1
Tuesday 8:15-10:00 HG F1

Slides and video recordings

Watch video recordings of the lectures (slides + voice).

You can also watch video recordings from 2009 in English.

Note: in the PDF version of the slides animation is not retained and some slides can become unclear.

Date Lecture Title Slides Readings
Tue. 18.09 1.2 Introduction Final version pdf pptx Chapter 1, 2
Fri. 21.09 2.1 Dealing with objects I Final version pdf pptx Chapter 2
Mon. 24.09 2.2 Dealing with objects II Final version pdf pptx Chapter 3
Mon. 01.10 3.1 Interface of a class Final version pdf pptx Chapter 4
Tue. 02.10 3.2 Invariants and logic Final version pdf pptx Chapter 5
Mon. 08.10 4.1 Object creation Final version pdf pptx Chapter 6
Tue. 09.10 4.2 Assignment, references, and object structure Final version pdf pptx Chapter 9
Mon. 15.10 5.1 Control structures I Final version pdf pptx Chapter 7
Tue. 16.10 5.2 Control structures II Final version pdf pptx Chapter 7
Mon. 22.10 6.1 Abstraction Final version pdf pptx Chapter 8
Tue. 23.10 6.2 Dynamic model Final version pdf pptx Chapter 8
Mon. 29.10 7.1 Inheritance and genericity I Final version pdf pptx Chapter 16
Tue. 30.10 7.2 Inheritance and genericity II Final version pdf pptx Chapter 16
Mon. 05.11 8.1 Recursion I Final version pdf pptx Chapter 14
Tue. 06.11 8.2 Recursion II Final version pdf pptx Chapter 14
Mon. 12.11 9.1 Data structures I Final version pdf pptx Chapter 13
Tue. 13.11. 9.2 Data structures II Final version pdf pptx Chapter 13
Mon. 19.11 10.1 Multiple Inheritance Final version pdf pptx Chapter 16
Tue. 20.11 10.2 Describing syntax Final version pdf pptx Chapter 11
Mon. 26.11 11.1 Topological Sort I Final version pdf pptx Chapter 15
Tue. 27.11 11.2 Topological Sort II Final version pdf pptx Chapter 15
Mon. 03.12 12.1 Event-driven programming and agents I Final version pdf pptx Chapter 17, 18
Tue. 04.12 12.2 Event-driven programming and agents II Final version pdf pptx Chapter 17, 18
Mon. 10.12 13.1 An example: Undo/Redo Final version pdf pptx Chapter 17
Tue. 11.12 13.2 From programming to software engineering Final version pdf pptx Chapter 19
Mon. 17.12 14.1 From programming to software engineering II Final version pdf pptx Chapter 19
Tue. 18.12 14.2 Some research topics of the Chair of Software Engineering

Temporary version = Temporary version Final version = Final version

Exercises

Exercise Groups

Here you can find the distribution of students into exercises groups as well as general information about the groups.

The distribution of students in the exercise groups is based on a self assessment questionnaire.

Assignments and mock exams

The weekly assignments are published every Monday before 18:00. You have to submit your solution within the next nine days (by the end of Wednesday). The suggested way to submit the solutions is by email. They will be checked but not graded; you can check the status of your submissions online. Master solutions will be published online after the due date (on Thursday). Students are strongly encouraged to look at the solutions and ask questions.

Two mock exams will take place during the exercise sessions, be graded and returned.

To get the testat and be allowed to take the final exam, students must do both the mock exams and hand in all but one assignment.

Week Exercise Links
Week 1 Getting started Sheet
Week 2 Give me your feature name and I'll call you Sheet Solution
Week 3 Of objects and features Sheet Solution
Week 4 Object creation and logic Sheet Solution
Week 5 Assignments and control structures Sheet Solution
Week 6 Loopy games Sheet Solution
Week 7 Mock exam 1 Exam Solution
Week 8 Inheritance and polymorphism Sheet Solution
Week 9 Recursion Sheet Solution
Week 10 Data structures Sheet Solution
Week 11 Mock exam 2 Exam Solution
Week 12 Agents and board games Sheet Solution

Exercise session slides

Date Material (PDF) Material (PowerPoint)
26.09.2012 pdf pptx
03.10.2012 pdf pptx
10.10.2012 pdf pptx
17.10.2012 pdf pptx
24.10.2012 pdf pptx
31.10.2012 pdf pptx
14.11.2012 pdf pptx
21.11.2012 pdf pptx
28.11.2012 exercise solution
12.12.2012 pdf pptx
Additional Topics Material (PDF) Material (PowerPoint) Material (Other)
Syntax comparison Eiffel/Java pdf pptx
Invariants / Marriage example pdf pptx code
Once routines pdf pptx code
Void safety pdf pptx code
Programming paradigms pdf pptx
CAT calls pdf pptx
Verification pdf pptx
Beyond Eiffel pdf pptx