This page describes how the course will look like and what to expect.

Table of contents

Labs

The focus of the course is on practical skills that can be gained only by working on a computer and trying things for yourself.

In this course we put a great stress on self-study. It does not make sense to talk about things theoretically if you need to try them yourself. But everyone prefers a slightly different pace to digest things.

Therefore the course is organized in the following manner.

Lectures are cancelled (despite the formal 1/2 course type).

Almost all work will be done as part of a preparatory self-study before the labs. We will provide you with a study materials (examples etc.) but you need to learn from them by yourself. The materials should contain all required information and a lot of examples and self-quizzes.

Text marked like this refers to extra information that is not crucial to understanding rest of the text but we find it useful/interesting enough to mention it.
And this box will inform you about potentially dangerous operations.
While this box will inform you about important things that you really should remember.

During labs we will discuss what you have learned (and possibly correct misunderstandings) and work on further examples to strengthen your knowledge.

During three of the labs there will be a graded assignment (taking place in the first 45 minutes of the lab). There will be also further homework assignments and these assignments together will be used to determine the final grade (see below for details, please).

We believe this system will make most of everybody time. You can organize your preparation as you see fit (some prepare to work in smaller chunks of 20 minutes here and there, some prefer an uninterrupted streak of several hours). We can spend the lab on interesting topics instead of trivial things that you can find on the Internet in various tutorials anyway.

The actual labs are taking place in IMPAKT (Trója) or Rotunda computer labs (entrance to SU2 is from the side corridor). Feel free to bring your own laptop. We will try to help you install Linux to your own machine so that you can study, experiment and play at home too.

The most important rule is: when in doubt, ask. Seriously.

We are here to help you, to guide you. Do not be afraid to ask.

The attendance is not mandatory: if you plan to not attend at all, please, enroll to the special lab 24bNSWI177x15 and come only for the graded assignments.

If you do not attend any of the first labs without prior notice, we will automatically move you to the 24bNSWI177x15 lab.

We will provide for each lab a set of learning outcomes so that you can test yourself if you understood all the important parts of the lab. These will be always divided into two groups – conceptual knowledge and practical skills. The first one relates to things you should be able to explain or talk about (e.g. explain what is a compiler). The second one relates to things you should be able to do (e.g. know how to run a compiler).

Even if your lab is cancelled due to vacation days etc. we still expect you will learn the topic by yourself.

Generally, the labs are interchangeable and usually it is possible to visit another one in the same week (e.g., due to dentist appointment). This does not apply to weeks where the on-site tests are taken (or talk to us really well in advance, please): the preparation requires we know the list of students in advance.

Grading

We believe that the most important aspect of any course is to learn new things and explore how they work. However, for a university course we also need to test this process to allow us to evaluate your skills when awarding the credits.

To this end your final grade will be determined from your performance in the following areas:

  • on-site test (week 8) on Git versioning system (20 points)
  • on-site test (week 12) on basic shell scripting skills (20 points)
  • on-site test (week 14) on using make build system (20 points)
  • homework assignment on CI setup (around week 11) (20 points)
  • six on-site quizzes during the first half of the semester (each 2 points)
  • four mini-homework spread across the whole semester (8 points total)

All parts are optional: if your skills are strong you may opt for taking the on-site tests and doing only the big homework, if you prefer to have a safe margin you will probably attend the quizzes too.

You need at least 60 points to pass the course, very good grade is awarded for having at least 70 points and for excellent grade you need more than 80 points.

Details for each test will be announced later (expect the information about 2-3 weeks before the test).

Be original …

… and do not cheat.

The purpose of this course is to get acquainted with Linux and learn how to work in it efficiently. Therefore, submitting solution copied from the Internet will not fulfill this goal (unless we explicitly allow it). Also, this is not a team course — discussing issues or approaches to the solution is fine, submitting collective work as your own is not.

External code must be clearly marked as such, using external code without attribution (providing URL is usually good enough) is also considered cheating. If you decide to copy external code verbatim, state what part of your solution is copied and why. If you decide to transform external code into your solution, state what part of your solution was thus inspired and why.

When in doubt, ask us.

Cheating means failing the course. And a huge red mark in your credit book.

Please, don’t. It is embarrassing for us and for you as well.

We are really sorry we need to raise this as it applies to only a fraction of the students but we strongly prefer to not need to handle this at all.

Thank you!

On-site tests

The on-site tests will be held at the beginning of the lab (we expect them to take at most 45 minutes). The topic is specified above and we will provide hints for each test on what to focus during your preparation.

If you are attending the 24bNSWI177x15 lab, we will split it into two halves to accommodate the higher number of students enrolled (exact details will be announced later).

The test is an individual affair: you cannot use any outside help.

Unfortunately, last year a lot of students decided to abuse our goodwill and tried to game the rules to their (unfair) advantage. To prevent this happening again, we will strictly adhere to the following rules:

  • you can attend the test only at the lab you are enrolled to
  • leaving the room during the test means end of the test (i.e. we will grade what you have submitted so far)
  • using your cell-phone or similar device during the test is considered cheating (and it doesn’t matter for what purpose was the device used) which is not tolerated

It is possible to retake one of the on-site tests during the examination period. We might allow another retake if you miss the test for serious reasons. This depends on the situation at hand but, please, be prepared to provide some paperwork to back your explanation. Thank you!

You will be able to use only the school computer in the lab: working on a private laptop is not allowed. The machine will have limited internet access: you can use only the offline documentation (man pages) or certain cheat sheets from us.

On-site quizzes

On-site quizzes will be given at the beginning of the lab and they will check the basic understanding of the topic of that particular lab.

We will also use them to quickly asses the understanding of the topic to better align the focus of the lab.

They will not be given for the special 24bNSWI177x15 lab.

Homework assignments

We will announce the homework assignments well in advance, typically there will be about two weeks to complete the small ones and about 4 weeks to complete the big one.

The homework assignments must be submitted before the deadline, extensions are not possible.

It will possible to consult sites such as StackOverflow or even use tools such as Copilot, ChatGPT or similar to build your solution for these assignments. In these cases you must cite your sources and be able to explain how your solution works. Inability to describe this is equal to not submitting it at all.

Contact

If you want to ask something, the best time and place is obviously during the labs.

Technical questions

If you have a question regarding some of the topics or exercises from the labs, please, open an issue in this project on GitLab.

We will add all students to the Forum during the first week of the semester.

Once you have access to the Forum project, do not e-mail your teacher directly. We will not respond to such e-mails.

If you want to ask a question about some of the graded tasks (and you are not sure whether you are not also providing a solution) or a private question, please, mark the issue as Confidential.

The reason for using this approach is twofold. You will learn to use GitLab a bit more and it allows an efficient sharing of typical issues. That is, first search whether someone else have not asked the same question before.

Other questions

We generally prefer if you use GitLab Issues in the Forum for everything as it makes the process simpler for us. Marking the issue as Confidential will ensure that only teachers can see it.

Contacting your lab teacher or lecturer directly is also possible but opening an Issue will typically shorten the response time.

There is also an e-mail alias teachers-nswi177@d3s.mff.cuni.cz for sending an e-mail to all teachers.

Special cases

There are about 300 students enrolled each year. We strongly prefer to avoid any exceptional handling to keep the playground as fair as possible.

The grading is configured that you will be able to pass the course even if you fail in some of the assignments.

But we know that it is not possible to plan for everything in advance. If you feel that your situation needs special care, please, contact as soon as possible to work out the details (typically, this involves long term illness or similar situations that we sincerely hope will not arise).

If you are on some kind of a special plan (such as having more time for on-site tests) or have some special requirements (e.g. you need a bigger font for printed materials), let us know ASAP.