Contents (hide)

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.

Textbooks

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

Grading policy

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

  • Midterm (28%): 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 in cases which would entitle the student to a "moed gimel" in case of a final exam (such as extended reserve duty (מילואים), or hospitalization. See here for more reasons). 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 88% of the final grade.

  • Quizzes (2%):

    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 only the last submission is considered.
    Note that some of the questions in the midterm or the exams may be related to questions from the quizzes.

  • Homework Assignments (10%):

    There will be 4 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.
  • 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 10%).
  • 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 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.

    1. Grade calculation:

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

      If (Student did not do midterm && Has exemption) then
      Final Grade = Exam (88%) + Homework (12%)
      Else
      Final Grade = Exam (60%) + Midterm (28%) + Homework (12%)

    2. 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.

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. 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 keep records of submitted homework assignments, and 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.