CS428 Embedded Systems Lab: Course Info

Department of Computer Science

University of Crete



E4 - Computer Architecture and Computer Systems




Spring 2023


Angelos Bilas

Manolis Marazakis


Course Info
                   Syllabus                        Assignments                 Policies





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.

·       6-7 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 is calculated as:

if ((A >= 5.0) and (F >= 5.0)) then

C = round(0.45*A + 0.2*M + 0.35*F)


C = round(min(A, M, F)) [Fail]

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 majordom@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". 



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 must ensure that your git repositories for the your assignments are private and you must use the chmod command to change the protection of your local files. 

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 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. There will be a penalty of 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 Examination and Marking 

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. 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:

·       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 a one-to-one code review sessions for each student for every one or two assignments. The dates for each code review session will be published in advance. Each student will reserve a slot for a code review with the randevouz 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 period (September) final exam as well. 


(c) Copyright University of Crete, Greece, Last Modified: 07-Feb-2022