Unix/Linux Programming in C (NSWI015)
NSWI015, MFF UK, winter semester 2026/2027
Lecture: Mon 9:00 SW1
(Malá Strana)
Labs: Mon 10:40 SW1
(Malá Strana)
Department: SISAL
Note: Each labs are different so it is recommended you to attend every week if possible (even though it's officially biweekly).
Lecturer: Vladimír Kotal
The class is lectured in English.
Contents
SyllabusMaterials
Unix machine access
Exams
Labs
Final lab assignment
Consultations
Contact
Schedule
References
Syllabus
We follow this syllabus. The schedule may slip during the semester though.
Materials
- The primary material for this lecture are the commented slides.
- Slides as used during the lectures. They are part of the commented slides so you will probably not need them.
- See opening slides for recommended materials for further study.
- An extensive list of recommended and not recommended C programming materials can be found on Miroslav Virius's page. Mr. Virius teaches C/C++ at the Faculty of Nuclear Sciences and Physical Engineering in Prague.
- Online access to the C source code files used during the lectures. Often not complete, and may contain bugs on purpose. Read comments carefully. You can download tarred achives in releases.
- Some ViM tips for editting and navigating C source code files.
- Information on the recommended C style for writing code so that fellow programmers can read it as well.
Unix machine access
Exams
The exam schedule will be provided at the end of the semester. We hope exams can be held in person but we will adjust accordingly based on the Covid-19 situation at the time.
Labs
Assignments from the individual lab classes: unix-linux-prog-in-c-labs@github
Final Lab Assignment
The final lab assignment you need to implement to get credits for the labs (which is a hard dependency for entering the credits that you get for passing the exam into the school information system). For this year the task is to implement a simple MQTT broker.
The assignment is a home project and a GitHub link (or a link to a similar hosting site supporting either Git or Mercurial) to your implementation is required for handover. When you are done, send the link via e-mail (see Contact below).
It is an individual, not a team project. In your source code files, you are not allowed to use code written by anybody else than you. The idea is you learn by coding your own project.
You must pass the tests before handing over your solution.
Note that we will build your program and verify the
tests at least on one of the u-pl* Linux machines in the MFF UK lab at
Malá Strana. Which one should not matter as their configuration is
expected to be identical. See Unix machine access
above for more information. So, that means it is up to you what
Unix-like system you choose to develop your program on but you must be able to
build it and verify the tests on a u-pl* machine as well.
|
The assignment must be finished and handed over via e-mail before the examination period for the Summer semester starts, i.e. by Sunday 23:59, May 24, 2026, CET. You need to send the e-mail before the deadline. The date stands even if the semester is prolonged. The deadline is hard requirement so stick to the schedule. Late arrivals are not accepted and handing over late automatically means you are not eligible for the credits for the year. |
You can hand over the assignment anytime before the deadline.
This can be useful esp. if you need to finish your semester earlier
(that may apply to Erasmus students).
Consulations
Via e-mail or after a lecture or practice.
Contact
vlada at kotalovi dot cz
Schedule
Is in the information
system.
References
The UNIX spec (The Open Group Base Specifications Issue 7, 2018 edition).
Last changed: