Classwork 1: Getting started with Linux, vim, and git
Logistics
- Due: Monday, May 10th no later than 1:35pm.
- Submission instructions: push a commit with the tag
classwork1
to your git repository. - Deadline reminder: after the deadline passes, you cannot earn any points for this assignment. If the deadline is approaching, submit what you have in order to earn partial credit.
Learning outcomes
- Be able to use the course Slack workspace to communicate with the instructor and your classmates.
- Understand the course format and the resources that are available for you to succeed.
- Be able to
ssh
into the course server and use basic Linux commands to navigate and perform basic tasks. - Be able to use
git
to version control your work. - Be able to read and edit files using vim.
- Understand the general course structure and the resources available to help you succeed.
Assignment
Part 1: Introduce yourself and explore the syllabus
- Post in the
#random
channel on Slack introducing yourself to the class. At minimum, tell us your preferred name, your major (or intended major), and one thing you are looking forward to during the course This can be course-related or just something fun you’ve got going on during May or June. - In a direct message to Lucy on Slack, send answers to the following questions:
- What time is classwork due?
- What time are labs and programs due?
- What is your github username? (If you don’t already have one, just do Part 2 of the assignment first, where you will create one.)
- What part of the course makes up the most of your grade?
- Someone asks you for help with a lab because they are getting an error they don’t understand. Is either of the following is okay? (a) For them to send you a copy of their code for you to debug, or (b) To get on a video call with them, have them share their screen, and show their code to you while you talk them through debugging it?
Part 2: Create a file, edit it with vim, and push to GitHub
- Create a
.vimrc
file in your home directory and customize it however you like. See the Lecture 1 videos for more details. - Create a git repository for the class and push a file to it, as shown in the Lecture 1 video. You can follow the video to accomplish all of these steps. If you are still having trouble, we will also go through them together during class.
- If you do not have a GitHub account, create one.
- Create a private git repository named
csci112-2021-firstname-lastname
and clone it in your/home/netid/
directory usinggit clone https://github.com/your-github-username/csci112-2021-firstname-lastname.git
Note: if you prefer, you can use a SSH key rather than HTTPS to communicate with GitHub. It’s a litle more complicated to set up but I’m happy to help if you are interested.
- Inside the
csci112-2021-firstname-lastname
directory, create following directories:classwork
,labs
, andprograms
. - Inside the
classwork
directory, create another directory calledclasswork1
. Inside that directory, create a file calledfirst_file.txt
. In that file, put whatever you want. For example:This is my first classwork assignment!
- Add lgw2 as a collaborator (so that I can pull your work to grade it).
- Commit
first_file.txt
and add a tag ofclasswork1
. - Push your changes to GitHub. (The first time you do this, you will need to enter your credentials, but if you store them as above you will not need to after this)
- To save your credentials so that you don’t need to reenter them every time you push, you can run
git config credential.helper store
Note: this is not a very secure way to store your credentials, because this command will cause them to be stored in plaintext in a file called
.git-credentials
in your home directory, so if someone gained access to your computer, they could see your GitHub login information. Other students cannot see any of the files in your home directory, but I can – though I won’t look at your stored password. If you would like a more secure way to store your credentials so that you don’t need to reenter them every time, go back and clone using SSH instead.
Grading - 10 points
- 2 points - there is a post in the
#random
channel on Slack including the information described above. - 3 points - there is a direct message to Lucy in Slack answering all five questions listed above.
- 1 point - there is a directory called
csci112-2021-firstname-lastname
in your/home/netid/
directory on the course server, containing the three directories listed above. - 1 point - there is a
.vimrc
file in your home directory. - 1 point - you have a GitHub repository called
csci112-2021-firstname-lastname
and lgw2 (Lucy) is added as a collaborator. - 3 points - there is a file called
first_file.txt
in yourclasswork/classwork1
directory.
Grading turnaround
This classwork will be graded with scores in Brightspace by 5pm the day it is due (May 10th).