HTW Berlin Medieninformatik

HTW Berlin
Fachbereich 4
Internationaler Studiengang
Internationale Medieninformatik (Bachelor)
Info 2: Informatik II
Winter Term 2009/10


General Information Sheet


Welcome to Informatik 2! We will be looking at Data Structures and Algorithms in Java this semester.

This handout describes some of the general information that you will need to know about the course.  It also includes course policies that I will expect you to abide by during this term.  You should read through this handout and make sure that you understand its contents.  You will probably also want to save it for future reference.  This handout -- as well as other course information -- is available on the web via the course web page, http://www.f4.htw-berlin.de/~weberwu/info2.
 
Contents

Course Staff
Course Materials
Course Components
Laboratories
Expectations and Policies
Where to Find Additional Information



Course Staff

Teacher and Tutor
  • Prof. Dr. Debora Weber-Wulff, weberw [at] htw-berlin.de, 5019-2320, WH C 645
    Office hours are posted on my home page.
Contacting me

I am best reached by email. I usually read email regularly, and late at night. if you have something urgent, this is probably the best way to contact me.

Collaboration room

I have a collaboration room set up for the class. There are forums here for you to ask questions, for announcements, and there are areas here for you to submit your assignments.

http://moodle.htw-berlin.de/moodle/course/view.php?id=22

If you do not already have an id here, please follow the instructions on the login page. There is a secret key to get into the room. It is Algorithms. The key is just a test to see if you read this document.

I do not want assignments sent to me by email, they should be directed here.

Course Materials

We do not have a textbook for this course. There are lots of books and many web sites on the subject, but none that I really like. And none with BlueJ, yet.
Michael T. Goodrich and Roberto Tamassia
Data Structures and Algorithms in Java in Java with CD-ROM. 2nd edition, 2000. Wiley, ISBN 0471193089, 40 € new, 25 € used.
Some of the structures and algorithms are described very well, others I don't like.
Thomas A. Standish
Data Structures in Java, 1997, Addison-Wesley, ISBN 020130564X, 35 €.
Ditto. Oldish - concentrates on the algorithms, not the fancy new stuff

Duane A. Bailey
Java Structures. Math.sqrt(7) edition. Free online textbook
http://www.cs.williams.edu/~bailey/JavaStructures/

John R. Hubbard
Schaum's Outline of Data Structures with Java (Schaum's Outlines)
ISBN 0-07-136128-6. 2nd edition, 2009. 14 €
This is a compact collection of samples and exercises.

Robert LaFore
Data Structures and Algorithms in Java (Mitchell Waite Signature)
ISBN-10: 1571690956, Sams, 1998. 42 €
Has a nice CD containing all of the examples.

David Harel
Algorithmics. The Spirit of Computing. Addison-Wesley. 3rd edition, 2004. 67€
This is one of the classics of algorithmics. It has nothing whatsoever to do with Java, but explains Algorithmics nicely, with just the right amount of theory. The focus is on design and not maths.
Thomas Ottmann and Peter Widmayer
Algorithmen und Datenstrukturen. BI Wissenschaftsverlag. 4th edition, 2002. 62 €
Relatively thorough in the theory, but of course no connection with Java.

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
Introduction to Algorithms. 3rd edition. MIT Press ISBN-13: 978-0262033848 2009.
(Algorithmen - Eine Einführung . Oldenburg. ISBN 3-486-27515-1. 2004)
Big. Thick. Lots of math. No code. Yes, Rivest is the "R" in RSA.

Hans-Werner Lang
Algorithmen: in Java. 2. Auflage. Oldenburg. ISBN 3-486-57938-X. 2006.
The book is in German, unfortunately. But since the author as a Assistent in Kiel taught me Automata Theory, he gets special mention even though the book is rather heavy on the theory side. He does give many algorithms in Java, however, which makes them good for our purposes.

Donald E. Knuth
The Art of Computer Programming
Vol 1: Fundamental Algorithms
Vol 2: Seminumerical Algorithms
Vol 3: Sorting and Searching

This is *the* classic algorithms book found in all computing libraries.

Please don't get Weiss, Data Structures and Problem Solving using Java. It is a translation from the author's Pascal book and completely misses the mark on the object-oriented way of thinking. Some of the others do too, to some extent or other.

Exercises will be posted on the web site, a week in advance or more if I make it. There will be pre-labs that I expect you to have completed before you come to class.


Course Components

Course Meetings

The lecture is given twice a week on Tuesdays room WH C 353 in the fourth block and Thursdays in the second block in WH C 356. The lecture halls and labs are in a bit of disarray, but we will cope. Class starts October 6.

In addition to the lecture, each student applied to be in a weekly 2-hour laboratory section, either Tuesday fifth block or Thursday first block.

Assignments and Grades

During the term, there will be 16 exercises which will be written assignments on programming. We will be programming lots of "little" things about algorithms and data structures. There will be a 2-hour online examination the beginning of February 2010. The examination will cover data structures and algorithms and conceptual understanding in ways that may be difficult to assess during the laboratory sessions. You may take 2 hand-written pages into the exam with you - no computer-printed material.

Your grade in Informatics 2 will be a weighted mixture of the following elements of the course

There are 20 lecture questions to be completed throughout the semester. You need to write about half a page in your own words (that means *no* Wikipedia copies) about the question. They are due by the Monday evening after the lectures by 23.00 at the latest. No late work will be accepted.

Laboratories

Laboratory sessions are an essential part of the course. The laboratory assignments will be posted on the home page. You must work in groups of two. This means that I expect you to work together and not do every other exercise alone. There is a pre-lab/finger exercise section for most of the exercises. It is usually a good idea to think these through before coming to the lab. I expect each student to have their own pre-lab copy with them when they come to class. The report, however, will be for the group, so there will only be one report for two people. All lab work must be turned in on time and be labelled with the names of the students who did the work.

You must pass the examination to have your lab work counted. Each exercise is worth 10 points. They are in general due Monday or Wednesday evenings at 23.00 at the latest.

I want to have the assignments handed in as reports (in .pdf format, please) explaining the process that you used in the lab. You should include your code, but I want to focus on what you tried, what failed, what worked. I expect the reports to be in complete sentences and to explain any collaboration (see below) that happened. Remeber to put the assignment in the Moodle area and don't forget your names and matriculation numbers! Your report should have a reflection at the end on what you learned in this exercise. They should not be epic works, but a maximum of 5 pages.

Late work will not be accepted. Any reports not handed in on time receive 0 points. Always turn in what you have completed on time rather than delaying in the hope that you will be able to do more.



Expectations and Policies

Missed Meetings

You are responsible for all material covered in each lecture unless otherwise indicated. This material may not be covered elsewhere, so if you miss a meeting, you are responsible for getting notes from a friend or otherwise making up the material. Handouts will not be distributed on paper, but will be made available on the course web site.

Attendance at laboratory is mandatory. If for any reason you cannot attend your scheduled laboratory session, it is your responsibility to make alternate arrangements with me and your partner as far in advance as is reasonably possible. In particular, if you have an athletic event or other scheduled conflict, I expect that you will discuss this with me as soon as the conflict is scheduled. I understand that unforseen events do arise (see below); however, your brother's wedding is (probably) not one of them.

The only exceptions to this policy (i.e., last-minute or after-the-fact rescheduling) will be in cases of significant and unanticipatable emergency. In these cases, we request a note from a doctor. In addition, we would appreciate it if you would make an effort to notify the course staff at the earliest possible opportunity so that we can adjust accordingly.

Collaboration

This section details the general course collaboration policy. Certain assignments require different kinds of, or restrictions on, collaboration. When the collaboration policy differs from that described here, it will be specified in the laboratory assignment.

I encourage you to work together on the exercises. They are designed for working in small groups, allowing you to help each other learn and to balance your knowledge and strengths. Note that collaboration extends to discussion and problem-solving, but not to writeups. We expect that any written work you turn in will be done by one of the two authors of the notes, though it may reflect group preparation.

Experiment work is a more complex topic. It is often useful to discuss your program with peers or with me, and I strongly encourage this. It is particularly useful to do so as a means of debugging your program. Reading code written by others and having others critique your code are good ways to improve your programming style. However, it is of no benefit to you or to anyone else to have someone else actually do your experimental work. I expect that the default assumption (i.e., unless specified otherwise) is that experimantal assignments are your own work, but may reflect input from others just as an essay edited by friends might. You should be the one who wrote the code you turn in.

In each piece of work that you turn in, you must specify everyone with whom you have collaborated and each person's role in the collaboration (e.g., pre-lab, post-lab discussion and analysis, in-lab coding  - specify which pieces or how responsibility was distributed - , debugging, or advice). Failure to specify such collaboration will be interpreted as a statement that you have not collaborated with others in your work. While this is acceptable under course policy, it is probably ill-advised. (Really.  I want you to work together and to learn from each other!)

Examinations are diagnostic in nature and as a consequence should represent independent work.

Of course, copying of the work of others is entirely unacceptable and will result in the lab in question being marked as missed. This includes pre-lab work.


Where to Find Additional Information

The primary source of information for this course is the world-wide web. The home page for the course is located at http://www.f4.htw-berlin.de/~weberwu/info2/. Course materials will be made available there. Check this page regularly for news and updates.


Copyright 2009 Prof. Dr. Debora Weber-Wulff
Questions or comments: <weberwu@htw-berlin.de>
Some rights reserved. - Copyright and Warranty

Last change: 2009-10-27 22:56