Please, see latest news in issue #92 (from April 03).
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.
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 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.
Details for each test will be announced later (expect the information about 2-3 weeks before the test).
Be original …
… and do not cheat.
When in doubt, ask us.
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.
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.