Contents (hide)
1 The course
2 Textbooks
4 Submission system
5 Email system

# Syllabus

## The course

The purpose of the course is to explain and to exercise the basic concepts in Computer Science, object-oriented programming, and programming principles, using the Java programming language.

1. Introduction to data structures and algorithms.
2. Principles of procedural and object-oriented programming, polymorphism, abstract classes and interfaces.
3. Recursive definitions and programs.
4. Algorithmic efficiency: upper bounds and computation of running time for basic sorting and searching algorithms.
5. Java as a regular programming language, with examples from various areas in Computer Science, such as abstract data structures.

The welcome page you received in class.

## Textbooks

1. Java Software Solutions, John Lewis, William Loftus. Addison Wesley.
2. Java Precisely, Peter Sestoft. MIT Press. (Old edition PDF.)
3. מההתחלה Java, נועם גילעדי, גדי הולצמן ואיתן הרטמן.
4. פרקי מבוא במדעי המחשב, אורי אברהם.

• Final Exam (66%): Passing the final exam (grade $tex$) is a necessary condition for passing the course.

• Midterm (20%): There will be an optional (but not MAGEN) midterm exam (בוחן) during the course. We recommend that you do the midterm. A student that does the midterm will receive a bonus of 3 points to his/her final grade. Students who miss the midterm will not receive the bonus points. A student who did not take the midterm due to extended reserve duty (מילואים), hospitalization (see here for more reasons) will receive the bonus points. There will be no moed bet in the midterm. In the event that the university will not be able to allocate resources to hold a midterm, the final exam will constitute 86% of the final grade.

• Quizzes system:

Quizzes are done online, and you need to login to do them.
Each week a new quiz will be published in the Assignments page, and will cover the material studied in that week.
To receive the grade for the Quizzes (in the Grade Calculation part), you must submit 10 quizzes with a grade of 100. Otherwise, a partial grade will be given.
The final grade for the Quizzes will be the average of the best 10 quizzes (out of the 13).
The grade is calculated and presented to you as soon as you submit your answers. You can submit the quiz as many times as you want, while the only the last assignment is considered.
Note that some of the questions in the midterm or the exams may be related to questions from the quizzes.

• Homework Assignments:

There will be 5 homework assignments. The purpose of the assignments is to practice the studied material, and familiarizing you with programming. The assignments will be submitted using the submission system.
The assignments must be submitted in pairs (individual submissions are not recommended).
The assignment grade will be determined as follows:

• Each assignment will receive a grade between 1 to 100. A student that does not submit an assignment will receive 1 point for that assignment.
• 0 points for an homework is reserved for a student which is caught cheating.
• The homework assignments grade is the average of 4 out of 5 best assignment grades. Nevertheless, we suggest that you submit all 5 assignments, because they serve as a good practice for the studied material, and a good preparation for the exams.
• We check your assignments for cheating. Students who submit similar solutions will be sent to VA'ADAT MISHMAT (ועדת משמעת). There were many cases in the past in which students failed the course, or were expelled from the university after cheating (some example here). Please do not test us.
A student who is found guilty will receive 0 for the total assignments grade (all 12%).
• A submission by a group of 3 students will automatically decrease 30 points from the assignment grade.
• A submission by a group of 4 students will automatically decrease 50 points from the assignment grade.
• A submission by a group of 5 or more students will set the assignment grade to 1.
• In special cases where a student may be exempted from submitting the assignment (as explained in "Special cases: exemptions and extensions").
• You may submit the work more than once, and the latest submission will be checked.
• You must submit the assignment before its deadline. We advise you to submit the assignment a few hours before the deadline in order to prevent last minute problems, which may cause a late submission.
A late submission of up to 24 hours will decrease the assignment grade by 10 points.
A late submission of more than 24 hours and up to 48 hours will decrease the assignment grade by 30 points.
A late submission of more than 48 hours will set the assignment grade to 1.
If you submit an assignment more than once, only the last submission time is considered.

Homework assignments (14%) = Assignments(12%) + Quizzes (2%).

If (Student did midterm) then
Final Grade = Exam (66%) + Midterm (20%) + Homework (14%) + 3
Else If (Student did not do midterm && Has exemption) then
Final Grade = Exam (86%) + Homework (14%) + 3
Else // (Student did not do midterm && No exemption)
Final Grade = Exam (86%) + Homework (14%)

2. Lab Assignment: There will be one lab assignment during the first week of the course. This assignment is part of the first quiz. It will familiarize you with the assignment submission process. All submission problems due to incorrect accounts, wrong registration, etc., must be handled during this assignment. Thus, it is of great value to do this assignment.

3. Special cases: exemptions and extensions
For special cases, such as army reserve, hospitalization, etc. an exemption or extension from an assignment might be approved, under the right conditions (explained here).

All special cases are handled in the submission system in the corresponding assignment, under the "Exemption request" text box.
You should state the reason for your exemption, and put the appropriate documentation in the course mailbox (building 37, floor 0, box number 64, near the lab). Only requests that are received within two weeks before the relevant deadline will be considered.

Your request will be processed. You can see the status of your request in the submission system. Here are the codes for the different events:
201 - Missing document.
202 - Your request has been approved and you are exempted from the assignment.
203 - Your request has been approved and you get an extension. See your new Submission Deadline date.
204 - Your request has been rejected. See grader notes for reject reason.

## Submission system

All assignments should be submitted, in time, via the Submission System. Note that no special extensions will be provided if you fail to submit at the last minute, unless there is a communication failure confirmed by the Computation Center. The deadline in the submission system is one hour after the deadline published in Assignments, and you are expected to abide by the latter. Submissions by email will not be accepted. If you are in a special circumstance, you need to secure an extension before the deadline, and the submission group needs to be created before the deadline as well.

Submission instructions:

1. You should submit a single archive file in ZIP format containing only the files requested in the assignment. Any newer submission for a given assignment overrides the previous one (if any). The file names should be exactly as specified in the assignment. All directory names and any additional file names must be in English.
2. The code should compile together with a simple sanity testing function which will call each of the required methods with simple parameters.

If the above does not hold, the submission will be rejected, with an explanatory message (including the testing code).

In order to submit an assignment late (after deadline), you need to write a request in the late submission box at the bottom of the submission group details, after which you should be able to make a late submission. See the late submission policy in the previous section. Note that if you secured an assignment extension (e.g., due to reserve duty), this does not apply to you – your personal deadline should be extended instead.

## Email system

We use the web, forum and email extensively in this course. Our email address is .
We also use an automatic system to divert your questions to the person in-charge.
That is why you should write your questions as clear as possible and address them using the correct medium.
All questions related to:
1. An assignment or a quiz: use the "Help forum".
2. Studied material: come to the office hours.
3. Achva students registration: send an email using the following format
Email Subject: Achva Student
4. Account/user problems (login related issues): send an email using the following format:
Email Subject: Account problem
Email body should include:
My ID: 12345
5. Otherwise: send an email using the following format:
Email Subject: misc
Email body should include:
My ID: 12345
This will allow us providing you with an answer as soon as possible.
An example of an email in case the account is not in the system:
Email Subject: Account problem
Email Body:
Hello,
It seems that I cannot login to the website in order to do the quiz.
My ID: 012345678
Student1.