CS255 Systems Programming Lab
Department of Computer Science
University of Crete
Instructor: Angelos Bilas
Semester: Spring 2021
Course Info Syllabus Assignments Policies
Assignment 1: Translate program, due Tue, 2-Mar, 23:59.
Assignment 2: A String Module, due Tue, 16-Mar, 23:59.
Assignment 3: ADTs: Abstract Data Types (Symbol Table), due Tue, 30 Mar, 23:59.
Assignment 4: Sudoku checker, solver, and generator , due Tue, 20 Apr, 23:59.
Assignment 5: C and Assembly Code Tutorial: Computing Sums, due Tue, 11 May, 23:59.
Assignment 6: Systems Security: Buffer Overrun Attack, due Tue, 25 May 2020, 23:59.
Assignment Submission in GitLab
We will use gitlab-csd to submit assignments. You can also use gitlab-csd to organize and keep track of your code. For the purposes of the course, there is a CS255 group in the departmental GitLab server. Each assignment has its own repository within the CS255 group.
First, follow once these steps to join the CS255 group in gitlab-csd:
- Sing-in to gitlab-csd using LDAP credentials (i.e., csdXXXX@csd.uoc.gr where XXXX is your student ID). By default you will be external user (no permissions to create projects or groups and no access for internal or private projects - only for public).
- Go to the “Group Tab”
- Select the group “CS255”
- Click on Request Access (and wait until the TA accepts your request - this may take a few hours or a day)
- You will be a Regular user after you have been accepted in the CS255 group. You will have Reporter access to available repositories.
- After you have been accepted in the CS255 group create your personal token:
- Sing-in to gitlab-csd using LDAP credentials (i.e., csdXXXX@csd.uoc.gr where XXXX is your student ID).
- In the top-right corner, select your avatar.
- Select edit profile.
- In the left sidebar, select Access Tokens.
- Choose a name and optional expiry date for the token.
- Choose all the scopes.
- Select Create personal access token.
- Save the personal access token somewhere safe. If you navigate away or refresh your page, and you did not save the token, you must create a new one.
Before each assignment:
Each assignment has its own repository in the CS255 group. Before each assignment starts, you have to fork the assignment repo and create your own private repo. Forking creates a copy that allows you to make changes to the copied (and private) repository.
How to fork an assignment repository:
- Sing-in to the gitlab-csd and go to the CS255 group
- Select the assignment repo (e.g. assignment1) and press fork
- Use your name as the namespace
- Make the new repo (project) private and share with TAs:
- In each assignment repo there is a python script private.py
- Run this script to make you repo private and add TAs as members with Developer role. Read the README.md file in the repo to find how to run the script
- For more information about how to run this script, read the README.md file in the repository.
Now you can clone locally your forked repository and start working locally on your assignment:
- E.g. for csp1039 issue, from your csd account in one of the csd servers, the command:
git clone https://gitlab-csd.datacenter.uoc.gr/csdp1039/...
Use these general git guidelines and practices while you work on your assignment:
- Commit often, at least one commit for each step in an assignment (commit merges your work to your local repository)
- Commit only source files and modifications (not executables or other binaries!)
- Pay attention to your commit messages: Describe precisely the purpose of each commit and what it includes
- Push changes frequently, in case something goes wrong with the system you are working on (push sends work from the local repository to the server)
Submitting your assignment
- You should submit all the source files specified by the assignment and anything else necessary to compile and run it.
- You should also include a brief README file that explains any implementation decisions or reasonable assumptions that you have made, and how you have tested your program. Do not include object or executable files in your assignment submission, since they only take space.
- Commit all files (not executables or object files!)
git add file1.c file2.c file3.c
git commit -m "Commit message"
git tag "assignment1"
git push origin --tags
- These instructions are part of the makefile. To tag your last commit, type:
- The day and time of the deadline scripts will automatically download from all members of CS255 csd-gitlab team all shared forks. Any further modifications will be ignored.
Please read carefully the policies section.
Please read carefully the policies section.
Last Modified: 03-03-2020 22:33