This course is a general introduction to computer systems. You will learn how computers works at a basic but fundamental level and how this reflects to the programs that you write. We will cover topics from Machine architecture, Operating Systems, Computer Networks, and basic IT-Security. We will also introduce you to the C programming language, which will be used throughout the course.
Make sure that you read all the following carefully.
CompSys have gotten a reputation of being both a hard and informative course. As you can see below (and the course description), we will cover a lot of different topics that conceptually are very different, in a short time. It is therefore important that you are ready for the course when we start in September, avoiding to fall behind during the first weeks.
We do not ask you to read ahead in the material. However, most of you are still inexperienced programmers and CompSys in very heavy on programming and program understanding. You need to think of programming as a craft, like playing an instrument. You have during the first year learned the basics of how it works. But if you lay it away over the summer (do not program for two months) you will lose much of these skills that you have gain over the first year.
It is also important that you have looked into the tools that are needed for the course, so we encourage you to look at the Tools page.
In the following is given a short overall description of the course. More details can be found further down.
The general outline of CompSys will be the following:
- Week 36-41: Machine architecture and introduction to C programming
- Week 42: Fall break
- Week 43-45: Operating systems
- Week 46: No activities (reexam week)
- Week 47-48: Operating systems cont.
- Week 49-51: Computer networks
- Week 52: Christmas vacation
- Week 1-2: Computer networks cont. and encryption
- Week 3: Exam preparation and question hour
- Week 4: 4 hour written exam
Be aware that CompSys is a semester course, which means that we will be teaching (including having normal exercise and assignments) throughout the exam period (weeks 44 and 45) of Block 1.
The exam is a written 4-hour open-book exam and will be held on Wednesday Jan 22. Course syllabus is all reading material, including the assignments. We will later publish example sets based on the previous exam iteration and further details on the exam procedure. It will be possible to get limited feedback on the exam performance afterwards.
The course will have both class exercises and open café sessions. The class exercises fill focus on smaller exercises that will make you better understand material from the lectures, prepare you for the details of the assignments, or prepare you for the exam.
The café sessions will, on the other hand, mainly be your possibility to get help with the assignments. However, it will also be possible to ask about exercises and other material. Also different teachers will (mainly on Wednesdays) also be presents, so you can ask anything in an informal setting.
To qualify for the exam, a minimum number of points must be gained through the assignments. On purpose, to achieve this limit requires a basic understanding of the programming tasks of the assignments (including presentation of this though test and a report), but not a full understanding.
It is also important to note, that the main purpose of the assignment is not to prepare you for the exam; that is what the exercise classes are for. The assignments will focus on larger implementations and the practical learning goals of the course. Some questions in the exam will relate to the assignments, but qualifying of the exam (and even fully solving the assignments) will not be enough preparation to pass the exam. You need to make the exercises and the best way is to come to the exercise classes.
Instructors:
- Michael Kirkedal Thomsen (instructor-in-charge)
- Finn Schirmer Andersen
- Troels Henriksen
TAs:
- Alexander Christensen
- Bjarke Pedersen
- Jens Kanstrup Larsen
- Jonas Grønborg
- Kristian Bøjer Andreasen
- Magnus Joensen
- Walter Restelli-Nielsen
- Mondays at 12:45-14:30
- Wednesdays at 10:15-12:00
Week 45, no teaching Wednesday, but Friday 10:15-12:00
All lectures will be online. The exact format can vary.
Exercises will mainly be with physical help, but there will also will be an option for online help.
There is room for 24 students in each room and due to Covid-19 restrictions this is a hard limit. I don't expect that this will be a problem, but if you arrive and the room is full, you have to find another room or use the online forum.
- Mondays 15:30-17:00
- These classes are dedicated to exercises and not making assignments.
- Wednesdays 13:15-15:00
- These classes are dedicated to exercises and not making assignments.
Week 45, No teaching Wednesday, but Friday 13:15 - 15:00
See skema.ku.dk for room details.
NB! You are only allowed to arrive 15 minutes before these times.
- Hold 1: Jens
- Blok 2:
- Monday: NBB 01.3.H.142 (flytter fra NBB 01.3.I.164)
- Wednesday: HCØ A110
- Blok 2:
- Hold 2: Bjarke
- Blok 2:
- Monday: NBB 01.3.I.080
- Wednesday: HCØ A104 (flytter fra A105)
- Blok 2:
- Hold 3: Jens
- Blok 2:
- Monday: NBB 01.3.H.142
- Wednesday: HCØ A110 (flytter fra A104)
- Blok 2:
- Hold 4: Jonas
- Blok 2:
- Monday: NBB 01.2.I.158
- Wednesday: HCØ A111
- Blok 2:
- Hold 5: Jens
- Blok 2:
- Monday: NBB 01.3.H.142 (flytter fra NBB 01.3.I.164)
- Wednesday: HCØ A110
- Blok 2:
- Hold 6: Alexander
- Blok 2:
- Monday: HCØ A112
- Wednesday: HCØ A112
- Blok 2:
- Hold 7: Alexander
- Blok 2:
- Monday: HCØ A112 (flytter fra Biocenter 4-0-10)
- Wednesday: HCØ A112 (flytter fra Biocenter 4-0-13)
- Blok 2:
Map of Nørre Campus: https://nexs.ku.dk/kontakt/findvej/kort_norre-campus/
- Biocenter, Ole Maaløes Vej 5, https://www.biocenter.ku.dk/kort/
- DIKU, No further explanation needed
- NBB, Niels Bohr Building, Jagtvej 155 (other side of Jagtvej)
- HCØ, Aud 7 is 1st floor in Vandrehallen
- Wednesdays 15:15-17:00
- This sessions have a café structure and are dedicated to help with assignments and other open questions.
- Fridays 14:15-16:00
- TA organised café classes for help with assignments and exercises.
- Week 45, 15:15-17:00
Wednesday
- HCØ A110 - Hold 1, Hold 3 og Hold 5
- HCØ A104 - Hold 2
- HCØ A111 - Hold 4
- HCØ A112 - Hold 6 og Hold 7
Friday
- HCØ A102 - Hold 1, Hold 3 og Hold 5
- HCØ A106 - Hold 2
- HCØ A104 - Hold 4
- HCØ A105 - Hold 6 og Hold 7
The second year study ambassadors will can help you find a find a groups, if you are missing one. They can also be the link to the study administration; if there is something you are in doubt about and feel better to ask a fellow student, they are available. One of them will always be available at the Friday cafées.
The study ambassadors are:
- All the TAs
- [BOH] Computer Systems: A programmer's perspective, Randal E. Bryant and David R. O'Hallaron, Pearson, 3rd and Global Edition, ISBN 13: 978-1292101767.
- [KR] Computer Networking: A Top-Down Approach, James F. Kurose and Keith W. Ross, Pearson, 7th and Global Edition, ISBN 13: 978-1-292-15359-9 (This book will not be used before December).
- [JG] Modern C, Jens Gustedt, Oct. 10, 2019, https://modernc.gforge.inria.fr/.
- Some notes and book chapters that will be made available through the detailed course schedule.
BOH is (and KR will be) available at Academic Books at Biocenteret (http://www.academicbooks.dk/).
There are 8 assignment in total during the course with deadline roughly every second week with the following deadlines.
Expected deadline | |
---|---|
A0: Getting started with file(1) | 06 Sep @ 16:00 |
A1: file(1) - Unicode | 20 Sep @ 16:00 |
A2: Simulering of x86 subset | 04 Oct @ 16:00 |
A3: Program behaviour | 25 Oct @ 16:00 |
A4: Processes | 08 Nov @ 16:00 |
A5: Concurrent Programming | 29 Nov @ 16:00 |
A6: Computer Networking - 1 | 13 Dec @ 16:00 |
A7: Computer Networking - 2 | 10 Jan @ 16:00 |
The assignments will be graded with points from 0 to 4 and it is not possible to re-hand-in any of the assignments.
Assignments are made to be solved in groups of preferably three students, but groups of two active students will also do. We strongly encourage not to work alone. Groups cannot be larger than three students. Each Group must make their own solutions and cannot share implementations and report with other. You can discuss material and ideas.
Feedback to assignments will be given by TAs on the course. It will be given written and can be expected about two weeks after the hand-in. Feedback will focus on what could be approved in the assignment relating to both technical implementations, and report structure and material. The feedback may thus be useful for later assignment. Feedback will not give a direct justification of the evaluation in number of points.
We expect the correction of submissions to take about as long as a the submission (either one or two weeks).
The system in Absalon for group hand-ins does not always work as intended; we are therefore working around this. When you hand-in your assignments you are also asked to give a group.txt
file, that contain the KU-ids of all group members terminated with a line-break; and only this. No names or other messages. The content of group.txt
could look like:
dlb838
mdt733
agy623
You should still only make one submission per group; not one for each member. Note, that this means that the submission in Absalon is then only registered with the student doing the hand-in. However, we consider (behind Absalon) all valid KU-ids in the group.txt
.
When your TA has corrected your submission all members of the group will be given the evaluation (comments and points). If some of your group members have gotten the evaluation, but you are missing, please, contact the course responsible. This often comes from a missing KU-id in the group.txt file. It is there very important that your report always contain both names and KU-ids of all group members, as the report is then used for resolution.
To qualify for the exam you are required to achieve at least 50 % of the total number of points in the assignments. A0 and A1 is in total considered the same size as the following assignments: this means that points given in A0 is weighted 1/3 while A1 is weighted 2/3.
Furthermore, we will require that you show a reasonable understanding of all parts (ARK, OS, CN) of the course. This is firstly interpreted as achieving points at least 40 % points in each the of topics. To optimise your understanding of the course, and since all assignments are in the syllabus, we encourage you to work with and hand in all sets.
Mapping of topics to assignments:
A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 | |
---|---|---|---|---|---|---|---|---|
Machine architecture | X | X | ||||||
Operating System | X | X | ||||||
Computer network | X | X |
The rule about 40 % of points for assignments in each topic, is included to make sure that you will uphold the learning goals for the course. We will teach you about many different abstractions and you should learn something about all of them. Without this rule you could attend the exam without e.g. learning anything about computer networks by getting enough points in the beginning of the course. The 40 % is chosen as it should be "easier" than the general rule of 50 %; it will therefore be set to 3 of the possible 8 points.