Course organization

There are no in-class quizzes, no exams, no deadlines (read below), no points, no complicated grading scheme, no mandatory attendance. In return, we ask you to come to the classes prepared.

Credit requirements

We believe in learning by doing and we expect you to spend the semester with your hands on the keyboard.

There are two ways to get credit:

  • Track #1: Completion of homework assignments
  • Track #2: Completion of an individual project

These options aren’t mutually exclusive:

  • You can start work on the homework (recommended) and later switch to the project if it’s too easy.
  • You can also start work on the project and later switch to the homework if it’s too difficult.

By default, we expect you to work on the homework assignments.

There are three groups of homework assignments, organized by grade:

  • To get grade 3, you need all grade 3 assignments done.
  • To get grade 2, you need all grade 3 and all grade 2 assignments done.
  • To get grade 1, you need all grade 3 and all grade 2 and all grade 1 assignments done.

Every assignment asks you to set up some real-world infrastructure (provision a Linux VM, create a backup scheme, set up a mail server). There is an automated system which runs checks against your infrastructure. An assignment is done when it passes all checks.

A good strategy is as follows:

  • Get the grade 3 tasks done during the semester, that gets you the course credit. This shouldn’t be too hard, but it’s not exactly easy either.
  • Work on the remaining tasks when you are safely on track to earn the course credit. We’ll keep the infrastructure running, you have time until end of September 2024.
  • Take advantage of there being no deadlines. You can work on the tasks in your spare time, at your own pace. That flexibility should make the workload much more manageable.

Track #2: Individual project (experimental)

If, after looking at the homework assignments, you think they are dull and boring, perhaps you would enjoy working on some real project instead? If that’s the case, please prepare a short (!) specification of your project:

  • It should be similar in complexity to the sum of the homework assignments.
  • It should cover most of the topics that the homework assignments cover.
  • If some topics are missing (which is understandable), then other topics should be explored in more depth.
  • Otherwise your project can be almost anything.
  • We are happy to lend infrastructure for your project (but the resources are finite).

Please get in touch to iron out the details.

This is an experimental track we’re testing for the first year.

Classes

Classes are where we discuss principles: how things work, and why they work that way. We don’t want you to sit and listen, as that is boring for everybody. Instead, we want to make the lectures as interactive and engaging as possible.

This is why lectures require preparation and for each class, you will be assigned something to read. We ask you to read the materials and do the mental work necessary to fully grasp basic concepts. The rest will be discussed in class.

Please approach this task responsibly.

Class attendance is not required.

Labs

Labs are where we meet to work on the homework/project together. It is an opportunity to ask your teachers for help when you’re stuck, or to discuss more advanced topics.

Lab attendance is not required.

We also expect all of you to use Linux as your only operating system for the entire semester. This way, you will get the most of this course.

We’ll provide you with the server hardware to host your Linux infra, so the course can be done even on a Windows laptop or a Mac. This is discouraged.

Course rules

Encouraged behavior

  • Coming to the classes prepared
  • Asking a question whenever you have one
  • Providing constructive feedback to your teachers and other students
  • Keeping an open mind, discussing ideas with others
  • Leveraging any security vulnerabilities you can find

These are the things that build true knowledge. They are hard to do.

Discouraged behavior

  • Coming to the lectures unprepared
  • Using a config file from Stack Overflow which you do not understand in full
  • Mindless trial-and-error until your homework solution passes all tests
  • Providing unsolicited homework spoilers to others

These are the things that inhibit learning. They are dumb.

Unacceptable behavior

  • Copy-pasting a friend’s Unbound config file and just “tweaking it”
  • Sharing homework solutions with others
  • Having others do the work for you. If you need help, talk to your teacher!
  • Interfering with others’ work by being purposefully destructive or overconfident. You will be held responsible for all damage done on purpose or due to gross negligence.

These get everybody involved kicked out of the course and in front of the University’s ethical committee.

Getting credit

To get credit, please get in touch; ideally some time in advance.

Track #1: Homework

  • Let us know the grade you expect.
  • Your infra needs to pass all of the checks required for the grade you want.
  • The checks must be in the Stable state.
  • We reserve the right to:
    • Request changes be made to the infrastructure if it’s insecure or it only works by accident, even if it passes the checks.
    • Inquire about your setup and insist on an explanation of any part of your infrastructure. It is a good idea to keep notes.
    • Should you prove unable to answer even very basic questions about how your setup works, we reserve the right to challenge your authorship of the work.

Track #2: Individual project

  • Prepare a short (!) presentation of your work (no slides).
  • We’d like to sit with you and see a demonstration of the thing in action. 30 minutes should be enough.
  • We reserve the right to:
    • Request changes be made to the thing if it’s insecure or it only works by accident.
    • Inquire about your setup and insist on an explanation of any part of your thing. It is a good idea to keep notes.
    • Should you prove unable to answer even very basic questions about how your thing works, we reserve the right to challenge your authorship of the work.

Deadlines

We do not enforce any deadlines for the completion of the homework/project. But please keep in mind that the faculty does enforce deadlines. We will be happy to award credit for the course on September 30 2025, but we might be otherwise occupied, and the Department of Academic Affairs might have something to say about that, too. To stay on the safe side, aim to get credit no later than second week of September 2025.

If you plan any stunts, please let us know in advance.


Happy hacking!