Policies
Coursework

Course work consists of:
  • Two lectures per week: Attendance at lectures is strongly recommended and expected but will not be recorded. Students are, however, fully responsible for all material presented in lectures. Some of that material will not be in the textbooks.
  • Six bi-weekly assignments (A): All assignments are to be written based on the assignment specification and should function properly. The assignments are designed to give you as much flexibility as possible: key details will be set out in the assignment specification, and the remaining decisions will be left up to you.
  • One midterm exam (M) and one final exam (F): All exams are closed book, closed notes, no other aids.
Mark distribution

The course mark (C) is calculated as:
        if ((A >= 5.0) and (F >= 5.0)) then
                C = round(0.45*A + 0.2*M + 0.35*F)
        else
                C = round(min(A, M, F)) [Fail]
        endif

The same course mark calculation is used for all exam periods. Course assignments are turned in (and marked) only once, before the first exam period for the course.

Getting Help

Ask questions in class. It always makes lectures (and life) more interesting. Beyond lectures, you can and should use each teaching assistant's weekly office hours to ask questions about your assignments. Office hours are especially appropriate if you need to use a terminal to show/explain what goes wrong in your assignment.

You should make sure that you are subscribed to the course mailing list "h y 4 2 8 – l i s t @ c s d . u o c . g r". You can subscribe to the mailing list by sending mail to majordomo@csd.uoc.gr with the text "subscribe hy428-list" as the mail body. You are encouraged to send e-mail questions/comments to the course mailing list. You are also encouraged to respond to questions of your colleagues posted to the course mailing list, without however, violating any rules of academic contact. In general, if your question will be helpful to others (and usually questions are), then you should e-mail it to the mailing list at "h y 4 2 8 – l i s t @ c s d . u o c . g r"; if your question/comment is specific to your work, or if you must reveal portions of your work to express your question/comment adequately, then you should e-mail it to one of the teaching assistants or the instructors at "h y 4 2 8 @ c s d . u o c . g r".

Collaboration

Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate -- the program must be your own work (although you may ask teaching assistants for help in debugging). If you have a question about how to use some feature of UNIX, etc., then you can certainly ask either your friends or the teaching assistants.

Do not, under any circumstances, copy another person's program. Writing code for use by another or using another's code in any form is academic fraud and will be dealt with harshly. You are also responsible for ensuring that the code you write for the assignments is not readable by others. You can use the chmod command to change the protection of your files (type "man chmod" for more information).

In group assignments, each team is responsible for their team management, including organization and division of work and addressing internal issues that may arise.

Due Dates & Late Work

Assignments are due at 23:59:59 on the date specified. Each assignment has to be turned in by the specified deadline. There will be a penalty of 10% of the assignment mark for each day of delay in submitting an assignment. Exceptions to these rules will be made only under exceptional circumstances, and then only with an appropriate written excuse. Problems with transportation or other unexpected situations do not justify any type of extensions. The only cases that will be considered are days that the University is officially closed due to unexpected conditions.

Assignment Marking - Code Review

Assignments are marked both for functional correctness and design issues. Program readability and student's understanding of the subject are important aspects of the design procedure:
  • Correctness means that the assignment adheres to the specification, and in any case, it either performs according to the specification, or returns an error. "core dumps", even with invalid inputs, are not acceptable (the use of assert statements, though, is an acceptable means of checking for valid states in your program).
  • The student's understanding of the subject matter is tested through questions about the submitted code and the subject matter of the assignment. Various guides to programming style can be found on the web. A couple of documents on style can also be found under the Links directory entry in the course’s web page. Also, you can use the "indent" utility to format C code (for more information type "man indent").
Each student will be examined and marked individually in each assignment, as follows:
  • First, for each assignment you will receive by email, soon after the submission, comments concerning code correctness and style.
  • Second, each student will be examined on their understanding of the code and subject matter during code review sessions. Α code review is a short (about 10min) one-on-one question-and-answer evaluation on the submitted code with a teaching assistant in the lab. There will be three one-to-one code review sessions for each student throughout the semester. The dates for each code review session will be published along with the assignment submission deadline. Each student will reserve a slot for a code review with the www.csd.uoc.gr/~hy325/rendezvous utility.
  • After each code review session, a mark will be issued for each assignment included in the session. The final assignment marks are valid for the second and third replacement final exams as well.
Assignment Submission

To submit an assignment, use "submit" (type "man submit" for more information). Login to a Debian/Linux system (e.g. karpouzi.csd.uoc.gr, milo.csd.uoc.gr, fraoula.csd.uoc.gr - identify other available systems via the uphosts command) and type "submit assign#@hy428 my_folder/" to submit the files of the assignment in "my_folder/". For instance, assuming you have placed the files of assignment 1 in the directory ./assign1, you can use submit assign1@hy428 ./assign1/ to submit assignment number 1. To check if the submition was successfull you can use "ls ~hy428/SUBMIT/assign1/"; if submission was successful you should see a folder with your login name.

Each assignment directory should contain all source files specified by the assignment and necessary to compile and run the assignment. You should also include a brief README file that explains any implementation decisions or reasonable assumptions that you have made, and how you have tested your program. Do not include object or executable files in your assignment submissions, since they only take space.

Each submission is copied into a specific (protected) directory, it is given the name of the user that does the submission, and it is time-stamped with the submission time. Assignments can be submitted multiple times. A resubmission is copied over any previous submission for the same assignment. Late submissions (or resubmissions) will be handled according to the course policies.

© copyright University of Crete, Greece. Last Modified: 28-Jan-2009
Τελευταία τροποποίηση: Τετάρτη, 1 Ιουλίου 2015, 7:09 PM