Theoretical homework
Instructions for all assignments:
- The theoretical homework are personal and intended for self work. It is not allowed to solve these assignments together or to share solutions.
- Solutions should be submitted to wooden box #4 (next to room 005, ground floor, Schreiber Building). They will be returned to room 114.
- Explain each of your answers, unless instructed otherwise.
- Write your answers clearly, in print or with a clear pen.
- Do not forget to write your name and ID on top of the exercise.
- Keep a copy of every assignment you submitted.
Assignments
Assignment | Due date | Solutions |
---|---|---|
Assignment no.1 there was a minor fix in question 2 | Nov 5, 13:00 | solution |
Assignment no.2 there was a minor fix in question 2a | Nov 19, 13:00 | solution |
Assignment no.3 | Nov 26, 15:00 | solution |
Assignment no.4 there was a minor fix in question 4b | Dec 10, 15:00 | solution |
Assignment no.5 | Dec 17, 15:00 | solution |
Assignment no.6 | Dec 24, 15:00 | solution |
Assignment no.7 | Dec 31, 15:00 | solution |
Assignment no.8 | Jan 14, 15:00 | solution |
Assignment no.9 | Jan 28, 15:00 | solution |
Programming projects
Assignment | Due date | Tester | Results |
---|---|---|---|
RB Tree - Specifications Skeleton Code | Dec 24, 23:55 | RBTree Tester Runtime tester | submission errors Grades |
Binomial Heap - Specifications Skeleton Code | Jan 21, 23:55 | Heap Tester Runtime tester (milli changed to micro) The actual tester | Grades |
- There will be two programming assignments during the semester.
- Each student must submit all assignments in order to be eligible for a final grade.
- The programming projects should be submitted in pairs.
- The projects should be submitted on time.
What to submit?
- The Java file with your code.
- Built-in data-structures: You may not use in your implementation any of the built-in java.util data-structure classes (or similar packages)
- Inline comments : The java file should have inline documentation, mainly composed of a reasonable amount of comments (when needed).
- Code readability : Pay attention to things like variable names (call a variable start, not s ), line length (no lines spilling over to the next line!)
- A documentation file. The file name should be ex1.doc for the first exercise, and ex2.doc for the 2nd exercise.The documentation file should contain :
- Course and exercise number
- Full name, ID and login of both students. Also include an email addresses if you are not using the @post.tau.ac.il address.
- A description of the class and how you implemented it. What is the purpose of each member of the class.
- For every method in your program:
- A short description of what it does and how it works.
- The method's complexity analysis. This should be rigorous. (Like you did in class or in the lectures. Note that if a method calls other methods, you must include this in your calculations.)
How to sumbit?
- Submit a printout of the documentation file, and of the .java file you created, printed from both sides, maximum font size 10, and stapled together or in a folder, to box #296 (Shai Vardi) on the first floor in Schreiber. Submit one hardcopy per pair.
- Submit a softcopy in your account.
- You should have a ds09a directory in your account.
- Exercise 1 should reside in the directory ~/ds09a/ex1. Exercise 2 should reside in ~/ds09a/ex2.
- This directory should contain 2 files: the .java file for the exercise and the appropriate documentation file (ex1/2.doc)
- You must not touch or change the files you submit after the deadline. All files carry a timestamp indicating the time of last modification. Files that are changed after the deadline will be considered as not submitted on time!
- The exercises should be in both students' accounts.
File permissions
The permissions of the entire path from your home directory down to the exercise files themselves should be 755, to enable reading by the checkers. You may use the following commands, which should be used from a linux terminal window, either in the lab or remotely from home (using Putty, for example):
chmod 711 ~
chmod -R 755 ~/ds09a
It is very important to submit the project with correct file permissions. A project without the right access permission cannot be check and would not be graded.
To make sure that you have the right permissions, do the following:
A. Run:
ls -lR ~/ds09a
The result should be something like that:
/a/home/cc/students/cs/student/ds09a/:
total 4
drwxr-xr-x 2 student student 4096 2009-10-29 20:14 ex1
/tmp/ds09a/ex1:
total 0
-rwxr-xr-x 1 student student 0 2009-10-29 20:14 example.java
Where the line of each directory should start with drwxr-xr-x, and the line of each file should start with -rwxr-xr-x
In case of problems with file, you can contact the helpdesk.
Grading
- The grades will be composed of the following parts:
- Correctness of the program.
- Implementation efficiency. Your programs should have the smallest asymptotic time complexity you can achieve.
- Documentation and code clarity. Your documentation and code should be easy to understand.
- You can appeal a grade within 2 weeks of a grade's publication.
Contact
Question regarding the submission of the projects, and their grades should be directed to the grader - shaivar1 at post tau ac il
Working on school servers
FAQ can be found here.
It is explained there how to log-in to "nova" using Putty and how to upload files using WinSCP.