How to Attend
The lectures take place on Tuesday and Thursday in the corresponding lecture room. We will post recordings of the lectures online afterwards so that you can (re-)watch the lectures whenever you want or need.
In most weeks, we will release an exercise sheet in the Materials section of the CMS (most likely on Friday afternoons). While these exercises are not a formal requirement for passing the course, we strongly recommend that you make use of them to check and deepen your knowledge of the course materials. The exercises are discussed in the tutorials, which take place in person on Mondays, and sample solutions will be available afterwards. Feel also free to discuss your solutions with other students.
The project assignments will also be released in the Materials section of the CMS.
In a first, smaller project, you will have to work on your own. The assignment will be released at the end of the second lecture week.
This first project covers the first topics of the lecture and will have a deadline on 2025-Nov-9, 23:59, CET. Your results for this project will influence your final project grade.
You must upload this project to our GitLab to get automated daily feedback and for it to be graded.
Later, you will implement a C compiler in small groups of two to three people, collaborating via a repository in our GitLab. We are running daily tests on your code and present the results in a progress overview of all groups. You may share test cases for the compiler with the other students via this testsuite repo (access will be given after the project registration deadline).
This project will have only soft deadlines throughout the semester that are indicators of how far you should have gotten at that point in time.
The final deadline will be after the end of the lecture period.
At any point in time, if you have questions about the course topics, the exercises, or the project assignment, post them in the Discourse forum. This way, the other students can also contribute to and benefit from the answers.
If you have project-related questions that are specific to your group, like crashes on the test server that you cannot reproduce, contact your tutor or Joachim Meyer.
Project Registration
To register for the project, which is required to pass the course, you have to perform the following steps until Tuesday, 2025-Oct-21, 23:59, CEST:
-
Login to our Gitlab. This will automatically work as long as you are logged in to your CMS account.
-
Upload your SSH key. Visit this page for further instructions.
-
Remember to correctly set your name and email address on your machine. In the case you have used git before you have most likely done this. However: you shall use an identifyable name and address!
git config --global user.name "Your Name" git config --global user.email "my_email_address@stud.uni-saarland.de"
-
Create a project 'regexfe' with private visibility level in the Gitlab. Do this via the [+] icon in the top bar of the Gitlab website when you are logged in.
The project should live in your user's namespace (not a group). It is important to really use the exact project name 'regexfe'. -
Clone your empty project and enter its root folder:
git clone git@cc.cdl.uni-saarland.de:<your-user-name>/regexfe.git cd regexfe
You can also find the URL by visiting your regexfe project in the GitLab.
-
Make sure that your default git branch is
main
. Only development on themain
branch will be tested. -
Add a file with the name
student.txt
in the root folder of your project containing one line that follows the template:lastname, firstname, matriculation number
e.g.
Doe, Jane, 1234567
-
Add, commit and push this file to your repository:
git add student.txt git commit -m "Add student file" git push -u origin main
For the group project, the registration deadline is Tuesday, 2025-Nov-11, 23:59 CET. Perform the following steps until then:
-
Form a group consisting of 2 to 3 people with fellow students. You may use the tutorials or the forum's project category to find your group.
-
For each group, one of the members has to create a Group with private visibility level in the Gitlab. Do this via the [+] icon in the top bar of the Gitlab website when you are logged in. The entry for the group URL decides how the group is referred to on the progress website, so make sure to choose something identifiable (puns are encouraged).
-
Add the other members of the team via the group's Members settings.
-
Create a fresh, new project
c4
via the [+] icon in the top bar. Make sure that the project lives in your group's "Namespace". It is important to really use the exact project name 'c4'. -
Clone your empty project and enter its root folder:
git clone git@cc.cdl.uni-saarland.de:<your-group-name>/c4.git cd c4
You can find out the URL by visiting your group's
c4
project in the GitLab. -
Make sure that your default git branch is
main
. Only development on themain
branch will be tested. -
Add a file with the name
group.txt
in the root folder of your project containing a line for each member of your team according to the following template:lastname, firstname, matriculation number
e.g.
Doe, Jane, 1234567 Roe, Richard, 2345678
-
Add, commit and push this file to your repository:
git add group.txt git commit -m "Add group file" git push -u origin main
Do not hesitate to ask questions in the discourse forum in case anything is unclear.