The assignments for the ACC course will be managed by the git versioning system. You will find this enables you to easily save progress, go back in time, collaborate (with your group colleague!) and try out different versions of the assignment with ease. It will also allow you to mark commits as final deliverables for the assignment and run the test suite on them remotely.
Getting Access to the Repository
To gain access to the repository, first decide on a group two people. You can exceptionally work alone or in a group of 3, but before doing so, please consult with the professor or one of his TAs.
Once you decided on the two people in the group, click the Repository link on the right. This will take you to the git server’s web interface:
Click on the “Advanced Compiler Construction” course. After logging in, you should get to the page for creating your group. Please indicate the colleague’s SCIPER number and create the group. Once this is done, your colleague will be able to log directly into the group.
Setting up the SSH Keys
Before you could gain access to the source code (of the assignments), you need to register the SSH public key of your local system with the repository. The procedure for doing that is explained below. Check if you already have a SSH public key file “~/.ssh/id_rsa.pub” in you home directory, otherwise you can generate one using the command: ssh-keygen. Copy the contents of the “~/.ssh/id_rsa.pub” file into the SSH key tab of the web interface shown in the following snapshot.
Cloning the Source Code
The url of your git repository will be displayed in the Repositories tab. Create a clone of the repository on your local system: “git clone <git-repo-url>“. For details on using git see this tutorial: www-cs-students.stanford.edu/~blynn/gitmagic/. The commits you make to your repository will be displayed in the web interface like in the example shown below:
Testing your commit
The interface allows you to test your code using some tests created by us. However, the frequency with which you can test your code is restricted. To run a test, go to the Tests tab of the interface. It will show the commits you have made and for each commit you will have an option to run tests. The results of the tests will be displayed to you. Each time a test is run, it will use up one token. You can only run as many tests as the number of tokens you have, at any given time. Initially, you will be awarded 3 tokens. Each day you will be given one token if you have less than 3 tokens. You are encouraged to write your own tests for the problems as the tests provided by us would seldom be adequate to correctly cover all the cases of the assignment problems.
Submitting your Code for Evaluation
You can submit your commits for evaluation. To do so, go to the deliverables tab where each commit will have a deliver option. The interface also allows you to run tests if you have some tokens left. You can deliver as many commits as you want before the deadline. However, only the latest version delivered will be considered for evaluation.
Questions regarding the Interface, Repository and Assignements
For questions regarding the assignements or for more help on using the interface and repository, please post them to the discussions forum. You may also contact the TAs during the specified office hours. However, we encourange using the forum as it may benefit other students as well.