Informatik I  (IMI) – Winter 08  (Schmiedecke)


Course start is on Thursday, October 2, 2008, 12:00 a.m. in WH A2 307

 

General information – read carefully

 

Overview

Informatik I is a course in object oriented programming using Java. Programming is considered the basic skill of computer scientists. The choice of the programming language is less important; the primary objective is to learn how to solve programming tasks in a state-of-the-art manner. Programming must no longer be considered a secret science; using "best practices", i.e. well known solutions, belongs to the set of basic quality criteria for software.

Hence, this course follows a non-traditional scheme, identifying problem categories and their solutions, usually using some existing software,  rather than concentrating on skilful usage of control structures. Your own program will either take the role of a control module, organizing and controlling the collaboration of other parts, or of an service working under the control of a given system.

The concept behind this course is Prof. Lynn Andrea Stein 's syllabus "Interactive Programming in Java (IPIJ)", which she developed in the  "Rethinking CS101" project at MIT. Although the course has developed its own thread, it is still useful to refer to the IPIJ-Script. The approach is intentionally non-traditional in order to overcome traditional programming paradigms. Hence, the starting conditions for students with and without programming experience level out (at least partly).

Organisation and Communication:

The course consists of a double lecture per week and a double lab session every other week.
All course materials, script, slides, exercises, memos are published in the Moodle e-learning environment. If Moodle is down, you will find most of the materials also on my homepage in the Inf1 folder. Exercises are handed in by uploading them in Moodle.

 

Exercises:

There are two types of exercises: Lab exercises (X) are designed for a double lab session and are due at the beginning of the following lab session. They are handed in as lab reports, uploaded in Moodle. They have to be uploaded by the beginning of the following lab session. In most cases, the grading is based on the report, but at times, you will be interviewed about your solution before you get credits for it.

Theoretical exercises (T) are to be done as homework, most of them come as interactive tests in Moodle, the others have to be uploaded in Moodle. They have to be done within 7 days after the corresponding lecture.

Lab exercises are worth 20 points and loose 4 points per week of delay (20%). Theoretical exercises have to be done in time, or loose all points.

Grading:

In order to pass the course, you must have done all exercises with at least 50% of the points and passed the final exam. 
The final grade will be a 50/50 combination of exercise and exam.

Exercises are graded as follows:

*  T-Exercise 5-10 points, X-Exercise 20 points.

*  This corresponds to a full solution without extras.

*  If you do not reach the full solution, points will be deduced – but not, if you lab report shows that in spite of good preparation, you have come across unexpected difficulties.

*  If you have done extras or worked particularly well, you will receive 1-5 extra points.

*  If your report is uploaded late, you will get a 20% deduction per week, i.e. 4 points for the first two weeks, and 2 points for further weeks.

*  Full grading on all exercises corresponds to  a final marking of 2,0, extra points lead to higher grades, missing portions or delay deductions to lower grades.

The final exam will contain questions both on the lab exercises and on the lecture. There will be 2 preparatoy lectures before the exam. You can refer to old exams on my homepage.

 

Literature:

 

There is an unceising stream of Java publications. Text books follow one of two concepts: "traditional" or "objects first". I suggest to pick books of the latter type, which usually carry the term "object oriented" in their title.

As you are more likely to work with German literature, I pick out three German books for you

 

  1. David Barnes, Michael Kölling, Objektorientierte Programmierung mit Java,  Pearson-Studium, München 2003 (highly recommended!)
  2. Christian Ullenboom, Java ist eine Insel, galileo-computing – complete free online version - (also highly recommended)
  3. Solymosi, Schmiedecke, Programmieren mit Java, Vieweg-Verlag, Braunschweig, 3. Auflage 2001 (next edition coming soon) – helpful for understnading the core object oriented concepts inheritance, polymorphism and exceptions, but more limited in scope than this course.

 

 

If you have been programming before, using C, C++ or the like, and you feel lost in the objects first approach, might like to look into in  Flanagan, Java in a Nutshell, Oreilly  Köln, 2001 (also in English) or in Mössenböck, Sprechen Sie Java?, dpunkt-Verlag Heideberg, 2003. Try to use these books only to find your path, but then walk on the oo path with us! 

 

As a language reference, the RRZH script (available for about 6 Euros in the HRZ) on Java prooves useful, even though it does not yet cover the newer java versions 5 and 6.

 

If you are looking for programming examples on a variety of relevant topics, there is a beautiful new German book:

  1. Reinhard Schiedermeier, Klaus Köhler, Das Java-Praktikum, dpunkt Heidelberg 2008.

 

Last not least, the internet is an almost unlimited source of java programming tutorials on all sorts of topics and technologies. By the end of this course, you should be able to follow and understand most of the tutorials for the standard and micro applications, i.e. using the Java standard edition JSE, and the Java micro Edition JME for handhelds and mobile phones.  The Java Enterprise Edition JEE requires furhter background knowledge.