Home
Schedule
Exercises
Resources
Technical Help
Guidelines
Administratives
Guidelines
Teaching Policy
We make every effort to help you study the course material in the most convenient way for you:

- You are welcome of course to attend the lectures and the exercises
- All course material, including lectures, exercise slides and class handouts will be available online
- The 'Resources' section contains online papers that cover a large percentage of the material and can be used to learn it, as well as any other useful material you find
- You are also welcome to schedule meetings at the reception hour for individual assistance.
In addition, we firmly believe in learning from hands-on experience, and so an important part of the course is the exercises. The five exercises compose 45% of the final grade.

 
Programming Exercises
Students in this course are required to submit all homework assignments in pairs. Two heads are better than one, especially when designing software - but if this causes a problem for you, exceptions can be made. Each pair must work on their own - you are assumed to know the distinction between cooperation and cheating.
Programming exercises must be done in Java, using the Eclipse platform. See the 'Technical Help' section about how to download and install at home Eclipse and all the plug-ins we will use. Although this is not a first-year programming course, points will be taken for messy, unmodular or under-documented code. Be professional! Your code will not undergo a serious of automatic tests, but it will have to pass several tests, as well as rigorous reading of the code and the design, in order to assess how good your design is. In addition, each exercise must be accompanied with a complete set on unit tests using JUnit. The unit tests are an important part of the exercise! It is suggested that you start with the unit tests before writing the actual code.
All programming exercise must include an ant file which performs a complete build (compilation and execution of unit tests), and include a README file.
 
README submission
The README file should include the following details:
  • In the first line should be the login(s) of the author(s), comma seperated (and nothing else).
  • The personal details of the author(s).
  • The name of the exercise.
  • A list of the submitted files, with a one line dexcription for each file.
  • Any remarks you have about special cases, implementations, additional features or anything else you think the checker should know.
  • The name of the file should be "README". Not "readme", "ReadMe"  or other variations which mainly appear after working under Windows.
You can use the sample README as template.
 
Theoretical Exercises
There are three  theoretical exercises. They are intended to introduce you to further material, which we don't have time to cover in class. Therefore, each such exercise usually asks you to read 3-5 articles, and answers questions which show that you understand them. As a solution, submit a file with your answers, which must be in one of the following formats: text file (.txt), HTML file (.html) or PDF (.pdf). The name of the file should be exX.<suffix> (i.e. ex1.txt, ex2.pdf). It should contain the submitters' names, logins and IDs.
Note that no printouts are submitted in any exercise in this course.
 
How to submit
The exercises are submitted electronically. For each project create a zip file called exX.zip (i.e. ex1.zip, ex2.zip, etc). Linux users: create the file using zip -9 -r <zip-file> <file-list>. Submit the zip file using the course admin system that can be reached from the administratives page.
 
What if you can't finish the exercise on time?
Relax. Submit what you have done, explain what problems you had to complete the exercise, and you will get partial credit for your work. Another popular approach is to email us with an excuse we can't reject, and an extension request so polite that we can't refuse.