Lab work should be carried out in teams
of two students.
While it is perfectly ok to use the lab at any time if resources are
available, access can only be guaranteed during scheduled lab hours.
The assignments are compulsory, i.e., you are required to pass them all
to pass the assignments part of the course. The only grades given on
assignments are passed or not passed. If you have not passed all
assignments at the end of the course you will have to redo the
assignment part of the course next year.
The assignments should be written in C, targeting the AVR Butterfly
board and using our own in-house kernel (where appropriate). No
solutions using any other language, or any other operating system, will
be accepted in this course.
For grading, the design and presentation of the solution
considered. It is not enough that a program produces ``correct'' output
to be accepted. Solutions must use the methods and
primitives requested in each assignment, and not enforce more
serialization than necessary. Conversely, programs allowing too much
concurrency by failing to ensure mutual
exclusion when needed will not obviously not be accepted.
An assignment is completed when the following conditions
have been met:
- The team has produced a working
solution (design, quality,
comments etc. according to the description above) and demostrated it in the lab.
- Upload the code in canvas.
additional oral examination has been
passed. It is okay to divide work, but both memebers of the team must
be able to answer questions about all parts of the solution, even the
part he or she didn't write.
For each assignment there is a due date that must be met.
However, if you notice that you are unable to finish an assignment
before the deadline, you can apply for a new date (at least a day in
advance). Bring your work this far to your lab
instructor and make a plan for when to demonstrate the full program.
Remember that a later deadline for an early lab gives you less time for
NOTE: no deadlines adjustments will ever be made retroactively!
Cooperation vs. cheating
You are encouraged to work together with other groups on a conceptual level, as long as
you declare which people you have been
working with at your presentations. Note that this means that you are
required to develop your own running
for each assignment. If it is found out
that source code has been stolen or
copied, it will treated as cheating,
reported to the
Severe failure at an oral examination by a team or a single team member
will be interpreted as an indication of cheating,
on the grounds that a solution can possibly only exist as the result of
the knowledge possessed by its authors. It is the responsibility of the
team to ensure that each member is prepared to defend the solution.