Tutorial 1 - Introduction

Submission process:

  • Submission deadline is October 30, 14:00 CET (before the lecture) .
  • Commit and push your solution as separate notebook files per subtask via git as ./tutorial/tutorial1/tutorial1_1.ipynb. Please take care of the correct subfolder/filename since submission is denied otherwise.
  • During the first lecture after the deadline we will discuss a sample solution in class.
  • Afterwards, you have time until November 4, 16:00 CET (before the lecture) to submit a corrected version of your submission:
    1. Rework your solution according to our discussion in class.
    2. Commit and push the corrected version as a separate file per subtask via git as ./tutorial/tutorial1/tutorial1_1.ipynb. Please take care of the correct filename since submission is denied otherwise.

Remarks:

  • Grading is done based on both versions of your submission.
  • If the first submission is missing your submission will not be graded.
  • If the second submission contains major flaws after revision not more than half of the credits for this tutorial can be achieved.
  • A sample solution is provided after November 4, 16:00 CET eventually.
  • Please use acn@net.in.tum.de for questions regarding lecture, tutorial, and project of ACN.

Problem 1 GIT Access [1.5 credits]

This exercise should make you familiar with the git repositories.

Git is a distributed version control system, originally developed by Linus Torvalds for maintaining the Linux kernel. It became popular in professional software development over the past few years due its features, stability, and efficiency. We use git in this course as a version control system for both submissions of exercises as well as the project, i.e., we provide you with a git repository structure hosted on the LRZ Gitlab. You can clone your repository and push changes to the server using SSH or HTTPS with or without a deploy token.

a) [0.5 credits] Explain the differences between the git commands add, commit, and push.

According to git man:

git-add (1) Add file contents to the index.
git-commit (1) Record changes to the repository.
git-push (1) Update remote refs along with associated objects.

b) [0.5 credits] Save your current changes to this Jupyter notebook. Add the file to a new commit and push to remote, then pull again. Execute the command git tag and paste the output here.

Explain the meaning of the output.

The output looks like this:

submission/1476987868
submission/1476989062

The git server responded with a list of tags for every successful commit pushed to the server. Each of those tags points to a specific commit in the history. These tags contain a timestamp of the commit (server time, not local machine time). We use this timestamp to check if the hand-in of the solution was done before the deadline.

c) [0.5 credits] Create and push a new branch called grades. Paste the commands used to do so into your answer. Explain what happens.

A remote branch grades already exists. The remote branch is a protected branch, which means that only authorized users may push to it.

Advanced Computer Networking by Prof. Dr.-Ing. Georg Carle

Teaching assistants: Christian Dietze, Sebastian Gallenmüller, Marcel Kempf, Lorenz Lehle, Nikolas Gauder, Patrick Dirks