HTW Berlin Fachbereich 4 Internationaler Studiengang Internationale Medieninformatik (Bachelor) Info 1: Informatik I Winter Term 2022/23 |
General Information Sheet |
Welcome to the HTW and welcome to Informatik 1!
This page describes some of the
general information that you will need to know about Informatik 1
(called Info 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 page 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://people.f4.htw-berlin.de/~weberwu/info1/site.
It is generally a good idea to keep a bookmark of my home page
around, as I put lots of information there.
Contents: |
Course Teachers |
Prof. Dr. Debora Weber-Wulff, weberwu@htw-berlin.de
or d.weber-wulff@htw-berlin.de
or debora.weber-wulff@htw-berlin.de,
Tel: 5019-2320, Room: WH C 645. My office hours are posted on
my web site and will probably be held in Zoom. The link is on
my web page. I am notoriously bad to reach by telephone, but I
read my email religiously.
I strongly suggest that you Google me to see if you can figure
out my position on plagiarism.
Alexander Müller-Lobeck, Alexander.Mueller-Lobeck@htw-berlin.de, will be teaching the exercise Groups 1 and 2. He can be reached by email.
Nermin Rustic will be our tutor this semester. He will be offering a weekly online tutorial Fridays, 9:45-11:15 in WH C 537, where you can get extra help if you need it, or just have some time to speak with him and others about programming. He can also be reached by email: Nermin.Rustic@Student.HTW-Berlin.de.
I have a collaboration room set up for the class on Moodle, a learning management system for collecting materials and submitting assignments. You can reach all the other students in your course this way, and there is a forum that reaches all members of the class (this is not identical to the people in your semester, as there are people taking this class from other semesters), a forum for questions for me, some additional material, and areas for uploading your exercises. You have automatically been assigned to this room by the administration.
Please use your HTW email account for all correspondence. We do not use "cute" email addresses like gogogirl@hotmail.com or master_of_the@universe.de in communicating with each other as professionals.
Please put up a picture in Moodle that looks like you—I will have difficulty learning to associate your face to your name if all I see online is a picture of your dog. These pictures are not public.
Textbook: The textbook for this course is Objects First with Java: A Practical Introduction Using BlueJ by David Barnes and Michael Kölling. I will be using the 6th edition (published in 2016). We are focusing on the core language of Java with a touch of functional programming. There are translations of older versions into German and other languages, they may work for you. Use at your own risk. The library also has some copies if you do not want to purchase the book.
Reference: There is no required reference for this course; the textbook plus a web reference such as Java's API documentation (https://docs.oracle.com/en/java/javase/11/docs/api/index.html) should be sufficient.
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 Programming in Java by Doug Lea, Addison Wesley
Java Design by Peter Coad and Mark Mayfield, Prentice Hall
These are all superb books. However, they were not cheap when I priced them last and a bit old. The last two cover more advanced material than we will in this class, and none are in any way required for Info1. 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 a technical bookshop such as Lehmann's or order them from any bookstore (this may take a day or so). You can also get them 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. (If you buy it from Amazon, IMI gets a few cents kickback to pay for cookies for the showtime.... but English books are rather expensive at Amazon and they appear to treat their workers as slave labor). I strongly suggest only getting the English version, as Java usually changes by the time they get around to getting it translated into German :-( We will be using Java 17 under the hood of our environment, BlueJ 5.1.0.
There is also plenty of material online about Java, especially on stackoverflow.
If you feel the need to practice syntax, I strongly suggest using the CodingBat.
Course Meetings
The class lecture meets on Wednesdays from 12:15-13:45 in room C 446 and Thursdays from 14:00-15:30 in room C 356 starting October 12, 2022.
I like to start on time. Excuses for being late do not amuse me.
I may have to move one or two lectures to accommodate other appointments. If so, I will announce it in advance via the Moodle announcements. I may be swapping times with another teacher so that we can have some more lecture time.
In addition to the lecture, each student is assigned to a
laboratory session. There is no third group for people repeating
the course. This group of people takes the exam for 100 % of their
grade. If any of the beginners want this, please see me.
Group 1 meets Thursdays 15:45-17:15, Group 2 meets Tuesdays 12:15-13:45. We now have a third exercise group Mondays 14:00-15:30.
Lab work
For each week you are expected to do a pre-lab, a written
preparation for the labs. Each student does this work by
themselves. It is okay to write on paper and take a photograph, or
you can prepare a document that you show Alexander at the
beginning of class.
The first lab will be an introduction to the equipment we have and the resources available to you in order to complete your work.
The tutorials are a chance for you to repeat material, ask questions, do extra exercises, etc. Your tutor will be available all semester, not just the 3 weeks before the exam, TIME. Learn to ask for help!
How to attend a Zoom lecture should we have to go back online
In case we have to revert to online teaching, this section details how that works. You may have had Zoom lectures in school last year, but not everyone comes directly to study from school. So how do you attend university-level Zoom lectures?
First: please be on time! I like to start right away. You can either install the Zoom app on your device, or just join through the browser. You have limited functionality using the browser, but enough for you to follow the lecture. Please use your full name on your video block! I once had seven Daniels in a class, I need to learn who you are and your names. Please put your video stream on for me. I like to see faces, not just blank black boxes, when I teach. If your computer can deal with it, you can use a background to hide your room. Please don't use one with animation in it, I understand that it is cute, but with 17 different animations I get seasick.... If you cannot use the video, I would appreciate you registering with Zoom and putting up a picture of you so that I at least see a face. I understand that your cat is much cuter, but please have a picture of yourself.
We are a University of Applied Sciences, that means that we want to teach you in a seminaristic manner. We expect you to ask questions, so feel free to jump in and ask a question! You can also use the chat window to ask a question - I usually have the chat window behind my laptop. However, if I am writing on the "whiteboard" (i.e. my iPad or a piece of paper under my cool, document camera), I may not see it, so feel free to speak!
In-class in Germany we knock on the table after a lecture is over instead of clapping or just gathering your things and shuffling out. In Zoom you use the reactions button to acknowledge the lecturer.
I am open to any and all suggestions on how to improve the learning experience for you. Feel free to email me, and I may have some anonymous feedback questions in the Moodle room for you.
Assignments and Grades
During the term, there will be 13 graded exercises numbered 0–12. Yes, this is how we count in Java. The graded exercises will be written reports on programming experimentation. The first exercise, "Getting started", is not graded. These exercises will be done with a partner who will be randomly assigned to you at the beginning of each lab session. Thus, it is important to be on time!
Your grade in Info1 will be a weighted mixture of the evaluated elements of the course (lab reports and exam exercises). The partial grades will be assessed as follows:
Lab reports: 30%
There are 13 graded exercises (0-12) to be done. For each week
you must write a report together with your partner for that
week. The report must be in English or German, spell-checked,
and use complete sentences, explaining what you did in the
exercise session, that is, focusing on the process.
Screenshots of the working program are expected. Each report should
not be more than about 5 pages, not counting the
appendix and in PDF format and must have your names, the date,
and the exercise number on it. It must include a reflection
on what both of you learned during the session, if anything.
Code must be included in an appendix. The reports must be
submitted to the Moodle area by 22.00 the night before your
next lab.
We will be giving "stars" to let you know how well you are
doing on each graded exercise. No stars does not mean no
points—it means you handed in a report on time, but it was
nothing to write home about.
Stars |
Meaning |
---|---|
****+ |
Exceptional - above and beyond the call of duty. Very seldom. Additional red star. |
****- |
Excellent: All of the exercises completed and an excellent report. |
***-- |
Very good: All of the exercises completed, and a good report that may have some minor problems. |
**--- |
Good: Something is missing, although the report is good, or the report has major problems. |
*---- |
Satisfactory: Nothing worked, but you had a good report. |
----- |
Nothing worked, but you managed to scrape together a report. Or you did a million bells and whistles, but turned in a half-page report using bullet lists of misspelled sentence fragements that are, however, technically a report on time. |
X |
Late work, not handed in |
For the lab work you will receive
30 points (i.e. a 1.0) if at least 12 are graded with ****- or ***--;
25 points (i.e. a 2.0) if at least 10 are graded ***-- or better AND at least 12 are graded **--- or better;
20 points (i.e. a 3.0) if at least 10 are graded **--- or better AND at least 12 are graded *---- or better;
15 points (i.e. a 4.0) if you handed in at least 10 labs that are graded *---- or better and a maximum of 5 labs graded -----;
0 points (i.e. a 5.0) if you do not meet any of the above criteria.
Late work will not be accepted and will 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.
Missing one laboratory will deduct two points from your lab
grade.
Missing two laboratories will deduct four points from your lab
grade
Missing three laboratories will deduct six points from your
lab grade.
I know that there are many potential solutions to similar labs floating around the Fachschafts-Dropbox and the Internet. Be aware that I have a very good memory for things submitted in the past, and I do have copies of these, too. If you are found to be copying code and/or process description from anyone in the class or in past classes or getting help from outside class (such as best friend, big sister, parent, ghostwriter) you will not only fail the course, but I will initiate proceedings to have you thrown out of school and prevented from studying computing in Germany.
Exam 75%
The exam will be held on or about February 2, 2023. It will be
diagnostic in nature and taken in Moodle. You may take 2 (two)
DIN A4 pages with handwritten notes into the exam with you. No
electronic devices may be used.
Yes, I know this adds up to
105%. It always does. I don't want to bitch about points with you.
The Long and winding road, CC-by-nc-nd, foreby, 2008 |
Wanderer, your footsteps
are From Selected Poems of Antonio Machado |
Laboratory sessions are an essential part of the course. Laboratory assignments are posted on the home page and linked from the schedule. Finger exercises may be given in the text and should be worked by yourself before class to check your knowledge of the materials. You are encouraged to work in groups on them, but the writeup should be your own. .
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 reading the exercise and to have
planned the various steps that you will take during your lab.
Students who do not prepare adequately for lab may be asked
to leave the laboratory session. This will give you
less time for experimentation and will be reflected in your
grade for that laboratory. This is what people mean on
meinprof.de by the "cruel and unusual punishment" Prof.
Weber-Wulff doles out, but it is really just common sense. If
you are not prepared, it is rather useless to be in the lab.
We expect your preparations to be available online, not just
in your head. Submitting copies of group pre-lab work is not
acceptable, this should be your own work, even if you prepare
in a group.
We will be checking your pre-lab in the lab. Putting your name
on the page will help make this phase short.
In-lab
We will be doing pair programming. At the beginning of lab you
will be randomly assigned to work with another student who is
present in the lab. After 10 minutes of
introduction to the lab, choosing partners, and getting
settled, there will be 4 sessions of programming. One of the
pair is the "driver". Only s/he is allowed to share their
screen. The other person is the "navigator", looking over the
driver's shoulder and discussing what to do next. Every 20
minutes a bell will ring and you must switch jobs.
Each laboratory is designed so that there is a range of work
that might solve the problem. Your group 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 assignment sheet will
indicate a target portion to be completed in lab. You may be
asked to design test cases as a part of the pre-lab exercises
or to share code and test cases with your classmates.
As a rule, you are not
expected to spend any time outside of the laboratory session
at a computer, programming. You report on what you achieved in
class. 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.
There are always questions "for the bored" so that those who
wish to have a more rigorous course can find something to
occupy their minds. It is not necessary for anyone to do these
exercises. There are no extra stars to be earned for doing
them, they are just to occupy the bored and keep them out of
trouble.
Post-lab
After the experiment session ends, you should as a pair write
up and turn in your completed assignment by the specified due
date. Both names must be on the report, each of you submits
the PDF to Moodle. Although the details of the post-lab
writeup may vary from lab to lab (and from student to
student), you can expect that the 5 pages
you write must include:
a short description of your lab plan;
a discussion of what you did during the laboratory;
a written evaluation of your lab-work, including a comparison with your development plan;
information about the code running (e.g., transcripts or screen shots),
a brief account of how much time
you spent on which portions of the assignment
(including any parts that were
particularly problematic),
a brief account of what you learned during the exercise,
and a list of any collaboration. (See the course collaboration policy for details).
You should include as an appendix
any additional material indicated in the post-lab section of the laboratory assignment;
any written pre-lab or "finger" exercises from the laboratory assignment;
a copy of the final version of any code that you wrote (including documentation).
The reports need not be especially beautiful, but they should use complete sentences in English or German and concisely explain the above points. I appreciate good contrast and nicely-sized fonts. Grey on light blue or red on black in 8 pt does not do it for me. I do not want a click-by-click report, but a focused report on what happened in the lab. Taking digital notes during the lab will dramatically decrease the amount of time you need to spend on this. Don't forget to put your names, your email addresses, the name of the course, the exercise number, and the date on the report. Use a spelling checker. The reports are to be submitted as a pdf to the Moodle area for exercise submission.
Missed Meetings
You are responsible for all material covered in each lecture. 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. Note that there is no script or slides. I do "live hacking", taking notes on the board (which is my iPad this semester). You need to learn to take notes—one page with important key words that you want to look up afterwards. Maximum.
Attendance at laboratory is mandatory. If for any reason you cannot attend your scheduled laboratory session, it is your responsibility (and not a friend's) to make alternate arrangements with us as far in advance as is reasonably possible. In particular, if you have an athletic event or other scheduled conflict, we expect that you will discuss this with us 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 documentation. In addition, we would appreciate it if you would make an effort to notify us at the earliest possible opportunity.
Late Work
Laboratory assignments will have due dates clearly indicated. Late work will not be accepted and counts as missed.
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.
We encourage you to work together on the exercises. They are designed for working in pairs, allowing you to help each other learn and to balance your knowledge and strengths. Any written work you turn in will be written jointly by the members of the pair, although it may reflect joint preparation with other students.
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. We 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, not your cousin.
Some labs will involve more explicit collaboration. In those cases, we 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. We want you to work together and to learn from each other!)
Of course, copying of the work of others (especially from the Internet) and not quoting it properly is entirely unacceptable and may result in a failing grade for the course.
We also encourage you to make use of the collaboration room forum for questions. Do not worry—if you have a question, there are sure to be five others with the same question, so ask! Someone is bound to help, either a fellow student, the tutor, or one of the teachers.
Our tutor, Nermin Rustic, will be holding a weekly tutorial Fridays from 9:45-11:15 in WH C 537. You can join if you want, it is not mandatory. He will also be available by email for questions.
Where to Find Additional Information
The primary source of information for this course is our web site. The home page for the course is located at http://people.f4.htw-berlin.de/~weberwu/info1/site. Course materials will be made available there and in the collaboration room. You can set your profile in Moodle to have news from the collaboration room sent to your preferred email address.
Last Change 2022-10-10 22:02 |