CS255 Systems Programming Lab

Department of Computer Science

University of Crete

Instructor: Angelos Bilas

Semester: Spring 2021


Course Info Syllabus Assignments Policies





Course work consists of: 

Mark distribution

The course mark (C) is calculated as:

if (F ≥ 5.0) then

        C = round(0.3*A + 0.2*M + 0.5*F)


        C = round(F) [Fail]


Due to remote classes, there will be no midterm this semester in CS255. Midterm marks will be distributed to assignments and final exam and the final course mark will be calculated as:

if (F ≥ 5.0) then

        C = round(0.4*A + 0.6*F)


        C = round(F) [Fail]


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. 

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. Teaching assistants are here to help you, take advantage of it. During remote classes, office hours will be held in the CS255 Team in MS Teams. 

Ask questions to the course's forum at CS255 Moodle, especially if your questions are helpful to other students (and usually they are). To login, use your LDAP credentials (i.e., csdXXXX@csd.uoc.gr where XXXX is your student ID). You are encouraged to respond to questions of your colleagues already posted, 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. 

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 e-mail to m a j o r d o m o @ c s d . u o c . g r with the text "subscribe hy255-list" as the mail body. The course mailing list h y 2 5 5 - l i s t @ c s d . u o c . g r will be used for course-specific announcements. 


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 or consult the first tutorial). 

Due Dates and Late Work 

Assignments are due at 23:59:59 on the date specified. Each assignment has to be turned in by the specified deadline. Nevertheless you can submit an assignment for the next three days past the deadline, having as a penalty 10% of the assignment mark for each day of delay in turning in an assignment. Exceptions to these rules will be made only under exceptional circumstances, and then only with an appropriate written excuse. Problems with transportation, network connectivity, 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. 

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: 

Each student will be examined and marked individually in each assignment, as follows: 


All assignments are to be done on the CSD GNU/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 GNU/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 tutorials. 



Last Modified: 12-Feb-2021 03:17