FHTW Berlin

FHTW Berlin
Fachbereich 4
Internationale Medieninformatik
PROG1: Programmierung I
Wintersemester 02/03


General Information Sheet


Welcome to Programming 1!

This handout describes some of the general information that you will need to know about Programming 1 (called Prog 1 by the administration).  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.fhtw-berlin.de/~weberwu/prog1/. It is generally a good idea to keep a bookmark of my home page around, as I put lots of information there.

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



Course Staff

Prof. Dr. Debora Weber-Wulff, weberwu@fhtw-berlin.de, 5019-2320, Room VG 802.
My office hours are Thursday 10-11. I am notoriously bad to reach by phone, but I read my email religiously!

I will try and get a tutor for the laboratories, but there is almost no money. We can get a few hours of tutorials for foreign students from the DAAD, so foreign students please let me know who you are!

Contacting People

I am notoriously bad to reach by phone, but I read my email religiously!

I have a mailing list set up for the class, so that you can reach other students. This is not the same mailing list as the one for your semester, as there are people taking this class from other semesters. You can join anytime by sending an email to majordomo@fhtw-berlin.de with the worda

SUBSCRIBE IMI-PROG1

in the body. What? You don't have email yet? I passed out forms on orientation day! Then please go to the computer center and obtain an email account. You can't live without it!

Course Materials

Text:   The textbook for this course is a draft of Interactive Programming in Java (IPIJ) by Prof. Dr. Lynn Andrea Stein, MIT.

I have had copies of the table of contents and of the first chapter made for you. I will pass these out at the first exercise session. The web site has links to the on-line versions of the text. You may read the materials on-line (at http://www.mkp.com/ipij), or print them out for yourself. Since printing is more expensive than copying, you might want to organize making copies amongst yourselves. The FHTW does not have funds to make the copies for you. If you are caught printing the text out on the lab printers, your account will be revoked. We barely have enough money for paper and toner for normal instruction.

Reference:   There is no required reference for this course; the textbook plus a web reference such as Java's API documentation (URL) should be sufficient. However, some people prefer to have a paper reference in addition to the on-line reference.

If you prefer to have a paper copy of a Java reference, I recommend that you acquire a copy of

    Java in a Nutshell by David Flanagan (O'Reilly).

Be sure that you get the most recent edition. This book is an excellent reference on Java and it is reasonably priced. It is available from a bookstore or online. I suggest getting the English version, as Java usually changes by the time they get around to getting it translated into German :-)

Further Reading:   If you are interested in the topics covered in this class, you may wish to read more. In particular, I recommend:

    Java Gently by Judy Bishop,
    Concurrent Java by Doug Lea, Addison Wesley.
    Java Design by Peter Coad, Mark Mayfield, and Jon Kern, Prentice Hall.

These are all superb books. However, they were not cheap when I priced them last. They cover more advanced material than we will in this class, and none are in any way required for Prog1. During the term I may recommend other advanced books for those who wish to learn more about certain topics.

Sources:   You can buy Java books (among many other places) at either of the two large technical bookshops in Berlin, Lehmann's or Kiepert (Oops, Kiepert just went broke. Maybe someone will buy it up.), or from on-line stores such as amazon.de, bol.de, or buch.de.  Some publishers -- like O'Reilly -- also sell their books directly. Shop around for a good price.


Course Components

Course Meetings

The class meets on Fridays from 13.45 - 15.15 in HG 027. I may have to move one or two lectures to accomodate other appointments. If so, I will announce it in advance and put it on our web site.

In addition to lecture, each student will be assigned to a four-hour weekly laboratory session. Labs are on Wednesdays from 9.45-13.30 with a 45 minute break for lunch. The first week, October 2, I want to see each group for one block. After that, the groups will come on alternate weeks. Please check the schedule to make sure that you have the right week! You may not skip between weeks.

Assignments and Grades

During the term, there will be 7 exercises which will be written assignments, design assignments and programming experimentation labs. There will be a 2-hour examination on January 24, 2003. The room will be announced. The examination will cover Java programming and conceptual understanding in ways that may be difficult to assess during the laboratory sessions.

Your grade in Prog1 will be a weighted mixture of the evaluated elements of the course (laboratories, written assignments, and exam) together with my assessment of your understanding of course materials, e.g. in laboratory check-in and check-out interviews, participation in class meetings, etc.

To earn an 1.0 in Prog1, you should regularly demonstrate mastery of the material, have a strong understanding of and performance in laboratory work, be a valuable participant in course meetings and collaborations, and complete all portions of the course work in a timely fashion and write excellent reports. For example, at the end of the course, you should be able to lead a team in designing and building a complex networked video game.

To earn a 2.0 in Prog1, you should demonstrate a solid grasp of most of the course material, competently perform laboratory work, participate in course meetings and collaborations, and complete all portions of the course work in a timely fashion and write good reports. For example, at the end of the course, you should be able to independently design and build a simple networked video game.

To earn a 3.0 in Prog1, you should demonstrate a sufficient understanding of the course materials that you can go on to build on that understanding in subsequent courses or employment, participate in course meetings and collaborations, and complete all portions of the course work in a timely fashion. For example, at the end of the course, you should be a solid contributor to a team that designs and builds a networked video game.

If none of the three descriptions above fits you at the end of Prog1, there are two possibilities:
 

  1. Your understanding of the material and demonstrable performance of that understanding is inadequate to build on in subsequent coursework. In this case, you are ineligable for a Prog1 final grade of 4.0 or above. You will need to repeat the course and pass within 2 semesters in order to be able to continue with this program.

  2.  
  3. Your understanding of the material and demonstrable performance is adequate to receive a 3.0 or higher, but  you did not participate in course meetings and collaborations or you did not complete all portions of the course work in a timely fashion. In this case, your final grade will be adjusted to reflect this factor as follows:

  4. Missing one laboratory or one assignment may add 0,3 to your grade.
    Missing three laboratories or assignments may add 1,0 to your grade.


Late work will not be accepted and may be treated as missing work. Always turn in what you have completed on time rather than delaying in the hope that you will be able to do more.

Laboratories

Laboratory sessions are an essential part of the course. Each week, a laboratory assignment will be posted on the home page. We have two kinds of exercises, written or finger exercises and experimentation labs. Finger exercises are given in the text and should be worked by yourself to check your knowledge of the materials. You are encouraged to work in groups on this. The experimentation labs consist of three parts: pre-lab, in-lab work, and post-lab work. We will be working in the Linux laboratory, in VG 212.

Pre-lab

Students are expected to come to their assigned laboratory session having completed the preparatory work.  In general, you are not expected to have begun the programming of the laboratory assignment before coming to lab; however, you are expected to have spent time outlining the program that you intend to write and to have planned the various steps that you will take during your lab.

Students who do not prepare adequately for lab will be denied admission to the laboratory until they are prepared. This will give you less time for experimentation and will be reflected in your grade for that laboratory.

In-lab

Each experiment is designed so that there is a range of work that might solve the problem. You should begin by implementing a simple piece or version of the solution. When this works to your satisfaction, you should build on additional features or behavior. The experiment assignment will indicate a target portion to be completed in lab. Often, you will be asked to design test cases as a part of the pre-lab exercises or to share code and test cases with your classmates.

When you are done with your assignment, or when the lab session is nearing its end, you should ask me to check you out of lab. Check-out consists of a discussion between you and me about your work. Show me what you have got running.

As a rule, you are not expected to spend any time outside of the laboratory session at a computer, programming. You are, however, expected to spend time preparing for the lab and writing your report. Expect to spend at least as many hours outside of class as inside working on this. Of course, you may continue programming if you would find it helpful at any point: to try out the programs and environments that are provided; to test hypotheses; to develop intuition; or just to have fun!

Your grade on the laboratory will be based on how well you complete the target portion of the assignment. In general, it is better to do this part well than to go beyond the target portion. You will get a better grade for having a good report than for implementing all sorts of bells and whistles.

You may leave the lab as soon as your work is done and you have been checked out.  The lab begins at 9.45 sharp and I leave at 13.30 sharp, as faculty meetings begin at 14.00.

Post-lab

After the experiment session ends, you should write up and turn your completed assignment on the specified due date. Although the details of the post-lab writeup will vary from lab to lab (and from student to student), you can expect that it will generally include:


You should also include


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 outside of class, but all course handouts 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 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, I request a note from a doctor. In addition, I would appreciate it if you would make an effort to notify the course staff at the earliest possible opportunity so that I can adjust accordingly.
 

Late Work

Laboratory assignments will have due dates clearly indicated. Late work will not be accepted.

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. I expect that any written work you turn in will be your own, though it may reflect joint preparation.

Experiment work is a more complex topic. It is often useful to discuss your program with peers or with course staff, and we 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 experimental 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.

Some labs will involve more explicit collaboration. In those cases, I will explicitly specify ways in which labs can be broken up, so that each person writes code but no one person writes the whole program, or indicate explicitly that a particular lab or portion of the lab may be programmed together, as a team. Even in this case, it is important that each team member have an opportunity to independently compose some code. Since the pre-lab will generally involve designing the code that you are going to write, it is best to also allocate responsibility for pieces of the code to members of the team at that time.

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 (especially from the Internet) is entirely unacceptable and may result in a failing grade for the course.

I also encourage you to make use of the course-wide mailing list (imi-prog1@fhtw-berlin.de) for questions. Do not worry - if you have a question, there are sure to be 5 others with the same question, so ask! Someone is bound to help!

Where to Find Additional Information

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


This course is an adaption for the Fachhochschule für Technik und Wirtschaft , Berlin by Prof. Dr. Debora Weber-Wulff of a part of Prof. Dr. Lynn Andrea Stein's Rethinking CS101 project produced while she was at the MIT AI Lab belonging to the Department of Electrical Engineering and Computer Science (EECS) at the Massachusetts Institute of Technology. The copyright for all materials belongs to Lynn Andrea Stein, this adaptation is used by permission. All rights reserved.
A textbook is in preparation by Morgan Kaufmann Publishers


Questions or comments: <weberwu@fhtw-berlin.de>

Letzte Änderung: 2002-10-04 16:45