Contents (hide)


The course

In this course you will study and exercise basic concepts in Computer Science, object-oriented programming, and programming principles, using the Java programming language. You will learn how to design, write, and analyze code to solve computational problems. You will learn to think about problems the way a computer scientist thinks.

  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.
  6. Object oriented programming

Grading policy

Your grade in this course is evaluated based on four components: final exam, midterm, homework assignments, and weekly online quiz questions. If you do not pass the final exam then your final grade in the course is equal to your final exam grade. The four components, in more detail:

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

  • Midterm (20%): There will be an obligatory midterm exam (בוחן חובה) during the course. Students who miss a midterm will receive a 0 grade on the midterm. We will make exceptions only according to the cases listed here (נוהל בחינות חדש) on page 3 clause 4.2 and page 5 clause 7. There will be no moed bet in the midterm. If a midterm exemption has been given to you, than your final exam weight is 86%.

  • Homework Assignments (12%):

    There will be 4-6 homework assignments. The purpose of the assignments is to practice the studied material. The assignments will be submitted using the submission system provided by the Department of computer science (A detailed explanation is provided below). Homework assignments will be submitted solo (not in pairs) unless otherwise noted. The assignment grade will be determined as follows:

    1. Each assignment will receive a grade between 0 and 100. Your assignment grade is the average of the best n-1 from the n assignments submitted (probably n=5).
    2. We check your assignments for cheating. Students who submit similar solutions will be sent to VA'ADAT MISHMA'AT (ועדת משמעת). There were many cases in the past in which students failed the course, or were expelled from the university after cheating (see some examples here).
    3. In special cases a student may be exempted from submitting the assignment (as explained in "Special cases: exemptions"). There will be no extensions on homework assignments. You should submit as much of the assignment that you manage to solve within the allocated time.
    4. You may submit the work more than once, and the latest submission that was submitted before the deadline will be checked.
    5. 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. There will be no late submissions. Please submit a partial solution and update it as you progress with your work. This will also help you recover your work in case it gets lost/destroyed somehow.
    6. There will be no delays in assignment submissions for any reason. Please submit in time as much of the assignment as you can. For details on exemptions (army reserve, hospitalization), see below. If you have not been granted an exemption, please remember that we compute your assignment grade as the average of the best n-1 from the n assignments submitted.

    Assignment Appeals: Any appeals concerning your assignment grade must be submitted within 10 days from the day the grades were published. Appeals will be submitted via the Submission system.

    Important note: It is your responsibility to verify that your assignment grades appear correctly on the submission system. Any errors must be reported within 10 days from the day the grades were published.

  • Weekly Quizzes (2%):

    Quizzes are done online, and you need to login in order to do them. Each week a new quiz will be published in the Assignments & Quizzes page, and will cover the material studied in that week. Each quiz will have a deadline and you will receive a grade for the quiz if you meet the deadline. Each quiz will remain online after the deadline but you will no longer be able to receive a grade. The final grade for the Quizzes will be the average of the best n-2 quizzes out of the n quizzes (probably n=12 or 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 only the last submission is considered.

  • Computing your final grade:

    If you pass the exam (grade ≥ 56) your final grade is computed according the the following formula:

              0.66*(exam grade) +  0.2*(midterm grade) + 0.12*(assignments grade) + 0.02*(quizzes grade) + bonus

    If you fail the exam then your final grade in the course is your exam grade.

    A bonus is given to students who attend the midterm, pass the exam and improve their performance between the midterm and the exam (exam grade is greater than midterm grade). It is computed as follows:

             if (exam grade >= 56 AND exam grade > midterm grade)
                 bonus = 0.1*(((exam grade - midterm grade)^2)/(100 - midterm grade))
                 bonus = 0

    If the midterm exam is not held (for any reason) the weight of the final exam will be 86%.

    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 exemption before the deadline (There will be no extensions).

    Submission instructions:

    1. You should submit a single archive file in ZIP format containing only the files requested in the assignment. Do not include any other files into the zip file.
    2. Any newer submission for a given assignment overrides the previous one (if any).
    3. The file names should be exactly as specified in the assignment. All directory names and any additional file names must be in English.
    4. 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).


    For special cases, such as army reserve, hospitalization, etc. an exemption from an assignment, quiz or the midterm will be approved, as defined in the university regulations (explained here (נוהל בחינות חדש)).

    All special cases are handled via the student contact system.

    For special requests regarding the final exams: you must see the head of the teaching committee (יו"ר ועדת הוראה) (these requests are not managed by the course staff).


    In this course we do not follow any particular text book. If you feel you need to read additional material on Java we recommend you try the library or search the web. You might try one of the following links:
    1. Java Programming - Wikibooks
    2. Think Java - Allen B. Downey
    3. Java Software Solutions, John Lewis, William Loftus. Addison Wesley.
    4. Java Precisely, Peter Sestoft. MIT Press. (Old edition PDF.)
    5. מההתחלה Java, נועם גילעדי, גדי הולצמן ואיתן הרטמן.
    6. פרקי מבוא במדעי המחשב, אורי אברהם.

    Academic integrity

    Cheating in university courses is regarded as a serious offense. To avoid any possible misunderstanding, please read the following carefully.

    Academic dishonesty includes any act of obtaining, soliciting or making available to others, material related to homework assignments. If you commit any of the above, then you are guilty of academic dishonesty. In cases where it is allowed to submit assignments in pairs: If your partner commits any of the above and you submit the assignment jointly, then you are just as guilty of academic dishonesty. If you choose to work with a partner, then you are both personally responsible for what you submit together. Claiming that you were not aware of the fact that your partner copied the assignment from somebody else will not absolve you of any responsibility.

    To eliminate any doubts, we make no distinction between the two (or more) sides of the cheating. If we suspect that Bob and Alice have copied an exercise one from the other, we see no way they could have done this without cooperation. It is your own responsibility to make sure that nobody can copy your files. Be discreet.

    We will not tolerate academic dishonesty in this course. If you are suspected of academic dishonesty, then a complaint will be filed with the university disciplinary board (ועדת משמעת) and a detailed report placed in your academic records. The minimal penalty for this type of offense is a grade of zero in the course. You might also be expelled from the university.

    We reserve the right to check for academic dishonesty anytime after you have submitted an assignment.

    To remove any doubt: you cannot share any amount of source code with other students. If you copied just a bit, it cannot be considered as a mitigating (special) circumstance in the disciplinary hearing, since in programming, details are crucial. Neither the difficulty of an assignment can be considered such a circumstance. Similar programs submitted by more than one group will be considered as cheating.

    The students discipline Regulations can be found here (תקנון משמעת סטודנטים).