Introduction to Computer Science I
Winter Term 2007/2008
Prof. Bernt Schiele, Dr. Guido Rößling
Contents
- News
- About this course
- Lecture
- Exercise
- Trial exam
- Lab
- Consulting hours
- Exam bonus
- Exams
- Literature
- Contact
- Forum
News
- [22.8.2008] For questions during the preparation for the exam the following tutor consulting hours are offered in room S202/A313 (Piloty-Building):
woche Mo di mi do fr 08.09. - 14.09.08 - 09.09., 15.00-16.30 - 11.09., 15.00-16.30 - 15.09. - 21.09.08 - 16.09., 15.00-16.30 17.09., 15.00-16.30 18.09., 15.00-16.30 19.09., 15.00-16.30 22.09. - 28.09.08 22.09., 14.00-17.00 23.09., 14.00-17.00 (24.9., Exam) - [05.08.2008] The next ICS1 exam will be written on 24.09.2008, 8-10 am.
For a better preparation we will offer tutor consulting hours in the 2 weeks before the exam.
About this course
The lecture presents important basic principles of computer science, including concepts of programming languages, elementary algorithms, types of abstract data, simple data structures (stacks, lists, trees), recursion, and algorithm efficiency analysis. Students will be encouraged to think in formal systems and to accept the necessity of abstraction and the importance of appropriate model formations in computer science. As teaching language we will use Scheme in the first part of the term while Java will be used in the second part of the term.
The practical exercises accompanying this lecture encompass 12 weekly exercises, a trial exam and a two-week lab after the lecture period. For each of those you can achieve points, and if you gather enough points, you are eligible for a bonus in the exam for this lecture.
Lecture
- Time: Monday, 16.15 - 17.55 and Thursday, 11.40 - 13.20
- Place: S202/C120 (Piloty-Building)
- First lecture: Monday, 15.10.07
| Topic | Slides | slides 9-on-1 | Last Update | date | related Book Chapter |
|---|---|---|---|---|---|
| Introduction | T0 | T0 | 19.10.07 | 15.10. | |
| Basic Elements of Programming | T1 | T1 | 19.10.07 | 15./18.10. | HTDP 1-5 |
| Structured Data Types, Data Abstraction | T2 | T2 | 19.10.07 | 18./22.10. | HTDP 6-8 |
| Recursive Data Types and Structural Recursion | T3 | T3 | 25.10.07 | 22.10. | HTDP 9-14 |
| Evaluating Order and Lexical Scoping | T4 | T4 | 29.10.07 | 25.10. | HTDP 15-18 |
| Abstracting Designs | T5 | T5 | 12.11.07 | 29.10./1.11. | HTDP 19-24 |
| Generative Recursion | T6 | T6 | 12.11.07 | 8./12.11. | HTDP 25-28 |
| Complexity of Algorithms | T7 | T7 | 15.11.07 | 12./15.11. | HTDP 29 |
| Accumulating Knowledge | T8 | T8 | 15.11.07 | 15.11. | HTDP 30-32 |
| Interpreter based on the Substitution Model | T9 | T9 | 15.11.07 | 19.11. | SICP 4.1, 3.5 |
| Assignments and other effects | T10 | T10 | 23.11.07 | 22.11. | HTDP 34-37 |
| Environment Model | T11 | T11 | 23.11.07 | 22.11. | SICP 3.2 |
| --Java Part T12-T21 in one file-- | T12-T21 | 23.11.07 | |||
| Classes and Objects | T12 | T12 | 23.11.07 | 26./29. 11. | JKarel in a JAR Information about usage |
| Inheritance | T13 | T13 | 23.11.07 | 3. 12. | |
| Stepwise Refinement | T14 | T14 | 23.11.07 | 6. 12. | |
| Java Elements Encapsulation | T15 | T15 | 23.11.07 | 10.12. | |
| Static Typing | T16 | T16 | 23.11.07 | 20.12. | |
| JavaDoc-Mini Intro | JavaDoc | javaDoc | 23.11.07 | 20.12. | |
| Genericity | T17 | T17 | 23.11.07 | 7. 1. | On slide 32, the correct notation should be Collection, Sink, not Collection, Sink. |
| Exceptions | T18 | T18 | 23.11.07 | 14. 1. | |
| Testing | T19 | T19 | 23.11.07 | 17. 1. | Test Demo Sources as ZIP |
| Streams | T20 | T20 | 23.11.07 | 21. 1. | FIle I/O Demo Sources as zip |
| GUI | T21 | T21 | 23.11.07 | 28. 1. | GUI Demo ZIP / Translator JavaDoc as a ZIP file Please unzip and run using java GUITest or java -cp translator.jar:. I18NDemo |
Different copyshops, e.g. 'Die Kopiethek', Magdalenenstr. 5, offer
a possibility to download and print scripts for the price of a normal photocopy.
New: 'Die Kopiethek' has also a smaller number of preprinted copies of the Java Part T12-21 in stock.
Please
keep in mind that printing of lecture slides is not permitted at the HP
laser printers in the computer rooms of the RBG. However, if you want
to print out at the faculty, you may use the Lanier Printer in room C005 for printing the slides. (! some users reported problems with graphics on this printer)
Exercises
The exercises take place weekly in groups of about 20 students, supervised by a tutor. Your tutor is your first contact person for questions concerning the contents of lectures and exercises. In addition to the weekly exercises, we strongly encourage you to take advantage of the daily consultation hours of the tutors if you have any questions.
The assignment of students to exercise groups will be organized with the webreg system.
Registration is closed. You can see your exercise group in Webreg. Please follow this link... In case you had problems with the registration, please contact inf1@mis...
Exercise dates
| nachname | vorname | gruppe | zeit | raum | tutormail (@mis.informatik.tu-darmstadt.de) |
|---|---|---|---|---|---|
| Galickis | Aleksandrs | 31(ICS) | Tuesday, 08:00 - 09:40 | S202/A102 | tutor31 |
| Franek | Andreas | 32(ICS) | Friday, 13:45 - 15:25 | S103/111 | tutor32 |
The exercises start in the week of Oct. 22th. The last exercise is scheduled for the week of Jan. 29th, 2008.
Evaluation of the home assignments
The home assignments are evaluated by your tutor. Per exercise you can get up to 10 points, so the maximum number of points is 120 points in the 12 exercises. You can view your current number of points in the webreg system. Deadline for handing in the home assignment by email is Monday, 8.00, two weeks after the publication of the exercise sheets.
Working in Groups
The home assignments can be solved alone or in groups of up to three students. If you work in a group, you must tell your tutor at least one week before the deadline which students the group consists of, and which student is responsible for the submission of the assignment. One submission per group is sufficient. However, we expect that each group member is knowledgeable about all parts of the assignment.
Computer Rooms
For working on home assignments, the computer rooms of the RBG can be used. At certain times students of ICS1 have priority in the computer room S202/C005. The exact times for this are communicated by a timetable at the door of the room.
Changing the exercise group
Changing an exercise group is only possible in exceptional cases. Please talk to your tutor in this case.
Exercise Sheets
| nr | publication date | deadline | materials | templates for home assignment | proposal for solution | Extras | updates |
|---|---|---|---|---|---|---|---|
1 | Mon, 22.10.07 | Mon,05.11.07 | ICS 1 | T8 T9 | all | Template A8 updated. Definitions evaluate cleanly in DrScheme now. Important: Comment all functions in the home assignment at least with contract, purpose, example and test to get full grade. Please make also use of auxiliary functions when useful. | |
2 | Mon, 19.10.07 | Mon, 12.11.07 | ICS 1 | T6 T7 | all | [05.11.] A6: You can use eq? to test symbols and integers for equivalence | |
3 | Mon, 05.11.07 | Mon, 19.11.07 | ICS 1 | T6 T7 | all | [05.11.] A7: Definition of the non-trivial permutation case corrected: "input list lst is not empty" (was : "input list lst has more than one element") [10.11.] Template A7: Contract for insert-everywhere corrected | |
4 | Mon, 12.11.07 | Mon, 26.11.07 | ICS1 | T7 | all | ||
| 5 | Mon, 19.11.07 | Tue, 04.12.07 | ICS1 | T6 | all | ||
6 | Mon, 26.11.07 | Mon, 10.12.07 | ICS1 | T7 T8 | all | interpreter T3 slide T11.23 (EM & local) EM step-by-step 1 2 (T5) | [5.12.] correction in T5 solution proposal; 2nd example for EM; |
7 | Mo, 3.12.07 | Mon, 17.12.07 | ICS1 | T8 JAR for JKarel | all | ||
| Mo, 10.12.07 | - | repetition & last year's trial exam for preparation | - | - | Trial Exam compressed (8p.) full (21p.) | ||
| 8 | Mon, 17.12.07 | Mon, 14.01.08 | ICS1 | T5 | all | ||
| 9 | Mon, 07.01.08 | Mon, 21.01.08 | ICS1 | T6 | all | ||
| 10 | Mon, 14.01.08 | Mon, 28.01.08 | ICS1 | T5 IStoreManager2.java IFilterPredicate.java Tests.java | all | If you need more than one generic parameter, they are separated by comma: public <T extends Person, Q extends T>. As you can see, since T is already "known" to be a type, it can be used for the "extends" phrase. In Tests.java you will find several tests that may make implementing and checking the homework assignment easier. | |
| 11 | Mon, 21.01.08 | Mon, 04.02.08 | ICS1 | T6 | all | ||
| 12 | Mon, 28.01.08 | Mon, 11.02.08 | ICS1 | group tasks |
Trial exam
The trial exam takes place on Dec. 17th, 2007.
The registration is done via Webreg, open from 26.11 till 10.12.07. Follow this link...
- Date: Monday, 17. Dec. 2007 @ 6pm
- Duration: 120 min
- Room: S103/23
- Contents: including lectures & exercises until the exam date (up to T15)
- Allowed aids: Non-native English speakers may bring a dictionary. Dictionaries will be checked during the exam.
- Bring the following to the exam:
- a blue or black pen
- a valid ID card
- your student card
Lab
At the end of the course, there will be a two-week lab, during which the students will be given a programming task and work on it in teams of four students. Additional details will follow.
Registration: As of now the registration for the lab course is open through WebReg. Please register in groups of four if possible, single registrations and
smaller groups will be filled up to groups of four! Registration is possible from 7.12.2007 until 11.01.2008 4pm!
Duration: 2 weeks
Date: 18.2.2008 - 29.2.2008
Additional consulting hours for early beginners:
Due to the early publication of the task description at short notice, we cannot provide full tutoring service for the upcoming week. However, some tutors will offer additional general consulting hours in the week 11.2.2008 - 15.2.2008. In case of problems please contact them first during their consulting hours! Regular tutoring will start from 18.2.2008 with the assigned tutors. They will do the attestation in the end.
| time | monday | tuesday | wednesday | thursday | friday |
|---|---|---|---|---|---|
| 10-12 o'clock | Christian Thaler (A213) | Christian Thaler, Oliver Schwahn (A313) | Christian Thaler, Oliver Schwahn (E315) | Christian Thaler (E102) | Christian Thaler, Oliver Schwahn (E302) |
| 12-18 o'clock | Steffen Lortz (A213) | Dominik Schulz (A313) | Lei Xuan (E315) | Max Zeller (E202) | Dominik Schulz (E302) |
Task description:
The task description for the lab course is available here along with the binaries for Windows, Linux and the required framework. Please download at least the task description, the Robocup package for your operating system and the Java Framework.
| Binaries | Code | documentation | |
|---|---|---|---|
| Task description | ICS1-Lab.pdf | ||
| ATAN | Atan2.jar | atan2.zip | |
| Code skeleton | framework.zip | ||
| Utilities | utils.jar, XmlToDot.jar | utils.zip | |
| Windows | soccermonitor.exe VMWare-Image Graphviz | ||
| Linux | robocup-linux.tar.gz Graphviz | ||
| VMWare | VMWare Player |
For users of other unix based operating systems (for instance Mac OS X) the source files of the server above can be downloaded here:
| source files | |
|---|---|
| rcssbase | rcssbase-10.0.11.tar.gz |
| rcssserver | rcssserver-10.0.7.tar.gz |
| rcssmonitor | rcssmonitor-10.0.0.tar.gz |
Send all mails concerning the lab to: inf1-lab(at)mis(dot)informatik(dot)tu-darmstadt(dot)de
Consulting hours
During each day of the term, two consulting hours are offered by the tutors. These consulting hours give you the possibility to get advice and answers if you did not understand something from a lecture or an exercise. Three different types of consulting hours offered: Theory, Pool and Newbie:
Theory consulting hours
The theory consulting hours mainly take place in room A313 (see the schedule below for times and locations). These consulting hours are meant for any type of questions regarding lecture and exercise topics.
Pool consulting hours
During the pool consulting hours, a tutor will be present in the computer room S202/C005. He will answer questions about the practical part of the home assignments, and also help you if you have troubles with the development environment installed on the RBG machines. You can recognize the tutor's place by a sign on top of his monitor which reads "GdI1+ICS1 Tutor".
Newbie consulting hours
As our experience shows, the knowledge about computer science of the students in ICS1 varies very strongly. The newbie consulting hours are especially for students who had little or no prior exposure to topics of computer science such as programming. These consulting hours run particularly under the slogan “there are no stupid questions”. They do not directly concern the solving of particular exercises - this is the purpose of the theory and pool consulting hours. If there are no specific questions from the students, the tutor may also choose to present and discuss some topics on his own.
Consulting hour times and locations
Last consulting hour: Fr, 1.2 (theory); Fr, 8.2. (pool)
| Time | monday | thusday | wednesday | thursday | friday |
|---|---|---|---|---|---|
| 10.30-11.30 | pool (C005) | ||||
| 11.30-12.30 | pool (C005) | ||||
| 12.30-13.30 | theory (A313) | ||||
| 13.20-14.20 | newbie (A313) | newbie (A313) * | theory (A313)* | theory (A313) | |
| 14.30-15.30 | pool (C005) | pool (C005) | |||
| 16.15-17.15 | pool (E0) |
*On 6th and 7th of november in room E302
consulting hours for exam preparation (3.3.-14.3.08)
| week | Mo | tue | wed | thu | fr |
|---|---|---|---|---|---|
| 03.03. - 07.03.08 | 14.00-15.00, A213 | 10.00-11.00, A313 | 13.20-14.20, A313 | 14.00-15.00, E302 | |
| 10.03. - 14.03.08 | 14.00-15.00, A313 | 14.00-15.00, A313 | 14.00-15.00, E202 | 14.00-15.00, A313 | 13.00-14.00, A313 14.00-15.00, A213 |
Exam Bonus
With the acquired points from exercises, trial exam and lab you can improve your result in the exam by up to a whole grade (e.g. 3,0 to 2,0). In order to get the bonus, you have to reach at least 25% of the exam-points. The following exercise-point boundaries apply for the exam bonus:
- 240 points and above: improvement of one grade stage (e.g. 3,3 to 3,0)
- 280 points and above: improvement of two grade stages (e.g. 3,3 to 2,7)
- 320 points and above: improvement of three grade stages (e.g. 3,3 to 2,3)
The bonus points are converted into exam points, i.e. every bonus point between 200 and 320 will increase the number of points in the exam.
The bonus can also affect passing of the exam. It is only valid for the first two exams that take place after the course. (Spring 2008 & Autumn 2008)
Students, which got an bonus in ICS1 06/07, can use it in the exam in spring 2008, but were also allowed to aim for a higher bonus by participating again in exercises, trial exam and lab in semster 07/08.
Points achieved in ICS1 lectures before 06/07 can not be used for the bonus.
Exam
Exam registration for Exam in Autumn 2008
The
next exam will take place in autumn 2008. Please see your study
guidelines to find out whether you need to write the exam in
combination with ICS2 and how to register.Exam in Autumn 2008
- Date: 24.09.2008, 8:00-10:00
- Duration: 120 min
- Rooms:
Basismodul Informatik (ICS1 part): tba (see this map)
ICS1 exam: tba (see this map) - Allowed aids: Non-native English speakers may bring a dictionary. Dictionaries will be checked during the exam.
- Bring the following to the exam:
- a blue or black pen
- a valid ID card
- your student card
- Students writing the 'Basismodul Informatik' will write the ICS1 Part and the ICS2 Part separately (ICS1 on 24.09.; for ICS2 please see lecture's website)
Exam Results (Spring 2008)
The Results of the ICS1 / BM Inf (part ICS1) are published in Webreg.
(Remark: Please ignore the message of Webreg 'Sie sind zu dieser Klausur nicht angemeldet'. It has nothing to do with your exam registration.)
Grades
Minimum points needed to pass the exam were 45 points (incl. bonus). With 120 or more points the exam is graded 1,0.
| points incl. bonus | Note |
|---|---|
| < 45.0 | 5 |
| => 45.0 | 4.0 |
| => 53.5 | 3.7 |
| => 61.5 | 3.3 |
| => 70.0 | 3.0 |
| => 78.5 | 2.7 |
| => 86.5 | 2.3 |
| => 95.0 | 2.0 |
| => 03.5 | 1.7 |
| => 111.5 | 1.3 |
| => 120.00 | 1.0 |
Bonus
Details about the exam bonus can be found in section exam bonus.
In this exam the maximum bonus of 3 grade stages is equivalent to 25 exam points, which were linearly mapped to your bonus. Please note, that you need to achieve at least 25% (32,5 Pt.) of the written exam, in order to benefit from the bonus.
Insight
You can take a look at your exam on Mon, March 31st, between 9.00 and 13.00 in Room S202/A102.
Oral Re-Examinations
Please note the following if you want to participate in an oral reexamination:
- Only students, which have written the exam the 2nd or 3rd time, are allowed to take part in an oral exam.
- The oral reexaminations will take part at the beginning of the semester, the specific dates are not available yet.
- In order to participate in an oral reexamination for ICS1, you have to register in written form until Monday, 7.4.2008.
Registration for oral reexamination in BM Informatik will be longer possible (until insight ('Einsicht') for ICS2). - Forms for registering are available during the inspection on 31. March, and on the Blackboard next to room B108.
- The date and further information about structure of the oral re-examinations the will be sent to you by email, and will be also available here.
Exam in Spring 2008
- Date: 17.03.2008, 8:00-10:00
- Duration: 120 min
- Rooms:
Basismodul Informatik (ICS1 part): S313/36 (see this map)
ICS1 exam: S202/C120 (see this map) - Allowed aids: Non-native English speakers may bring a dictionary. Dictionaries will be checked during the exam.
- Bring the following to the exam:
- a blue or black pen
- a valid ID card
- your student card
- Students writing the 'Basismodul Informatik' will write the ICS1 Part on 17.3. and the ICS2 Part on 25.3.
Exam registration for Exam in Spring 2008
Please see your study guidelines to find out whether you need to write the exam in combination with ICS2 and how to register.
MCS-Students in the first semester could write in spring an advance exam for the GdI1 part of BM Informatik, for details please see this announcement. [Update 17.1.] As we were informed from FB4 (Mathematics), all first
semester students have new study guidelines and write separate ICS1 and
ICS2 exams with registration at the 'Zentrales Prüfungssekretariat'.
Therefore the offer of an advance exam is not relevant
anymore.
Literature and Material
Literature
- M. Felleisen, R. Findler, M. Flatt, S. Krishnamurthi. How to Design Programs (HTDP). The MIT Press, 2001. ISBN: 0262062186.
[Online-Version (english)]
- H. Abelson, G. J. Sussman, J. Sussman. Structure and Interpretation of Computer Programs (SICP). Springer, 2001. ISBN: 3540423427
[Online-Version (english)]
- B. Eckel. Thinking in Java. Prentice Hall, 2002. ISBN 0136597238
[Online-Version (english)]
- Christian Ullenboom. Java ist auch eine Insel. Galileo Computing, 2006. ISBN: 3898425266.
[Online-Version (german)]
Materials
In the first part of the lecture we use the development environment DrScheme for the home exercises. In the second part of the lecture we use the Java development platform eclipse. Both programs are already installed in the computer pools of the RBG. They are also available for download free of charge:
Scheme
Java
Contact
| Name | Function | consulting hours | Room |
|---|---|---|---|
| Dr. Kristof Van Laerhoven | Lecture (1st part of semester) | S202/B107 | |
| Dr. Guido Rössling | Lecture (2nd part of semester) | by appointment | S202/A125 |
| Ulrich Steinhoff | Exercises | by appointment | S202/B111 |
| Nikodem Majer | Exercises | by appointment | S202/B104 |
| Michael Stark | Lab | by appointment | S202/B104 |
| Christian Wojek | Lab | by appointment | S202/B104 |
For questions, that cannot be not answered by this web page or by your tutor, as well as for appointments for consulting hours, please use the following email address:
Send all mails concerning the lab to:
| inf1-lab(at)mis(dot)informatik(dot)tu-darmstadt(dot)de |
Forum
You can use the forum of the "Forum der Fachschaft Informatik" as an unofficial discussion platform for this course (mostly german): GDI1-Forum