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.3*A + 0.2*M + 0.5*F)
else
C
= round(min(A, M, F)) [Fail]
end
The same course mark calculation is used for
all exam
periods. Course assignments are turned in only once,
before the first
exam period.
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.
Make sure
that you subscribe to the course
mailing list h y 2 5 5 – 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 hy255-list" as the mail body. You
may e-mail
questions to the course mailing list at h y 2 5 5 – l i s t @ c s d . u o c . g r, especially if your questions are helpful
to other students (and usually they are). You are
encouraged to
respond to questions of your colleagues posted to the
course mailing
list, without however, violating any rules of academic
contact. If your question is
specific to your work, or if you must reveal portions
of your code to
express your question adequately, then you should
e-mail it to
one of the teaching assistants or all of them at h y 2 5 5 @ 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 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).
Simply login to a Debian/Linux system (e.g.
karpouzi.csd.uoc.gr, milo.csd.uoc.gr,
fraoula.csd.uoc.gr, ...) and type "submit ask#@hy255
my_folder/" to submit the files of the assignment in
"my_folder/" (e.g. submit ask1@hy255 FirstExercise/
to submit assignment number 1).
The files submitted should be all the 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.
A
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
up to 10 times.
A resubmission is not copied over previous
submissions for the same
assignment. Late submissions (or resubmissions) will
be handled
according to the course policies.
Facilities
All assignments are to
be done on the CSD linux
workstations. For all the assignments you should use
the gcc compiler
(type "man gcc" for more help), unless otherwise
stated in the
assignment specification. These are the default
utilities used when you
type gcc on the linux systems (typing "gcc -v" and
"make -v" will give
you version information). Documentation and reference
cards on the
necessary tools can be found on the web and under the
course’s Links
directory entry.
Last Modified:
30-Jan-2009
|