Fundamentals of Computer Systems

Topic preferences

The main work of the Essentials of Computing Systems course is the self-study of a topic and a small project of your choice as a team. These teams are formed on Brightspace and are of size 5 or 6. You can express your preference for a topic below. Each topic is typically assigned to one group, but we may also have a second group studying the same topic for a different perspective. Details about the topics can be found in the overview map and were presented in the introductory lectures.

Your preference is expressed as an integer for each topic. Lower numbers indicate a stronger preference. You can assign equal preferences to multiple topics. You do not have to assign a preference for every topic. The minimum number of preferences to submit is 3.

Topic assignment is performed by linear optimisation to achieve maximum "happiness", that is, to assign to as many groups as possible their most-preferred topic according to the given ranking. If none of your preferences is available, then you may also get a random topic that no one wants. Therefore, the more topics you assign a preference to, the more likely you are to get one of your preferred topics. Assigning more preferences does not affect your chances of getting the topics you prefer most.

// If there are personal circumstances that make it impossible for you // to work in a group, please contact us. // In this case we will verify whether those circumstances are sufficient // and, if this is the case, you will be allowed to work alone. // We have a strong preference that everyone works in groups, // as group work is an important skill to learn. //

?>

The deadline for submitting your preferences is Friday, 01 October 2021 at 23:59.

Topic preferences must be integers.

'); $correct = False; $topicPref = ""; } $topicPrefs[$topicIndex] = $topicPref; if ($topicPref) $topicPrefCount += 1; $topicIndex += 1; } $groupnr = trim(getfield("groupnr")); $filled_student_nr = false; if ($ask_student_number) { for($k = 0; $k < $max_students_per_group; $k++){ $studnr[$k] = ltrim(trim(getfield("studnr" . ($k + 1))), "s"); $filled_student_nr = $filled_student_nr || $studnr[$k]; } } $comments = trim(stripstring(getfield("comments"))); $filled = $groupnr || $filled_student_nr || $comments || $topicPrefCount > 0; if ($filled && !$groupnr) { echo('

Group number must be filled in.

'); $correct = False; } if ($groupnr && !checkgroupnr($groupnr)) { printf('

Group invalid. Needs to be a number between 1 and %d

', $num_groups); $groupnr = ""; $correct = False; } if ($ask_student_number) { for($k = 0; $k < $min_students_per_group; $k++){ if ($filled && !$studnr[$k]){ echo '

Student number ', $k + 1, ' must be filled in.

'; $correct = False; } } for($k = 0; $k < $max_students_per_group; $k++){ if($studnr[$k]){ if (!checkstudnr($studnr[$k])) { echo '

Student number ', $k + 1, ' is not a valid student number.

'; $studnr[$k] = ""; $correct = False; } else { for($i = $k + 1; $i < $max_students_per_group; $i++){ if($studnr[$k] == $studnr[$i]){ echo '

Student numbers ', $k + 1, ' and ', $i + 1, ' are identical.

'; $correct = False; } } } } } } if ($filled && $topicPrefCount < $min_num_preferences) { printf('

You must provide preferences for at least %d topics.

', $min_num_preferences); $correct = False; } if ($filled && $correct) { $datetime = date("Y-m-d H:i:s"); $ip = $_SERVER['REMOTE_ADDR']; $line = "\n"; if ($ask_student_number) { $line .= sprintf("%s;%s;%s;", $datetime, $ip, $groupnr); for($k = 0; $k < $max_students_per_group; $k++){ $line .= $studnr[$k] . ";"; } $line .= $comments; } else { $line .= sprintf("%s;%s;%s;%s;", $datetime, $ip, $groupnr, $comments); } for ($topicIndex = 0; $topicIndex < count($topicNames); $topicIndex++) { if ($topicPrefs[$topicIndex]) { $line .= "\t" . $topicPrefs[$topicIndex] . "|" . stripstring($topicNames[$topicIndex]); } } file_put_contents($preferences_file, $line, FILE_APPEND|LOCK_EX); printf('

Preferences stored successfully.

'); } else { if (!count($topicNames)) { $topicNames = readTopicNames(); } ?>
'; } } ?> ' . "\n", htmlspecialchars($subject))); } echo(sprintf('' . "\n", htmlspecialchars($topicName[1]), $topicIndex, htmlspecialchars($topicNames[$topicIndex]), $topicIndex, $topicIndex < count($topicPrefs) ? htmlspecialchars($topicPrefs[$topicIndex]) : "" )); } ?>
Brightspace Group Number
Student number ', $k, '
Comments
%s
%s

Data processing

We store the following information: all fields submitted using this form, your IP address, and the date/time you submitted the form. This information is necessary to assign topics and to be able to investigate technical issues or abuse.

This information will be processed on the university's systems. In principle, it is only accessible to the teacher, but can be shared with IT support and/or the board of examiners in case of (suspected) problems. Based on the "Wet op het Hoger Onderwijs en Wetenschappelijk Onderzoek" and the rules and regulations of the education program, this information will be stored for two years.

Other information

All information about this course is available on Brightspace. If you have any questions, please let us know via essencs21@liacs.leidenuniv.nl, or the Brightspace forum.