Before the lab
Before every lab in this course, you will be given tasks to complete. These will generally be easy tasks like watching videos, but you need to complete them in order to keep up with the class.
Command Line Familiarity Check
In an FCS linux lab (remote or locally) log in, and open a terminal.
Make a directory *
Create a file in that directory using one of the available text editors
Now clean up, removing the file and the directory.
If any of this was new to you, then please take the time to go through parts 1 to 5 of the Learning the Shell Tutorial.
Read the course syllabus.
The Course Syllabus is available on line. Please read it, and bring any questions you have about it to the first lab.
Background Reading
For every lab there will be some related reading. I'll point these out as we go through the lab, but I'll also collect them at the start of the lab in case you want to get a head start (or refer back to them later).
About the course
- Time
- 10 minutes
- Activity
- Q&A, discuss course syllabus.
What's similar to other CS courses you've taken?
What's different?
Key point, how are labs evaluated?
Software Setup
- Time
- 10 minutes
- Activity
- Group work
- Summary
- Install software needed to work with frog
Open a terminal.
Install frog and the other tools we need via the following command (throughout the course,
$
at the beginning of a line will indicate a shell prompt, you don't need to type it.):$ raco pkg install --auto unb-cs2613
Install the python library pygments, used by frog for syntax highlighting
$ python -m ensurepip --upgrade $ python -m pip install pygments
There are an unfortunate number of warnings here, but we can ignore them for now.
Getting Started with Frog
- Time
- 30 minutes
- Activity
- Individual work
- Summary
- Getting started with frog
We'll be using frog frog to keep a journal of what we learn in this course.
Open a terminal.
Make a directory called
cs2613
that will keep all of your work (note that case and spaces matter in Linux and this is not the same asCS2613
orCS 2613
. For the rest of this course we will assume it is directly under your home directory. The shortcut~/cs2613
will refer to this directory in the lab texts and in the shell.Make a directory
journal
inside~/cs2613
. Inside~/cs2613/journal
, run$ raco frog --init
Try viewing the newly created blog with
$ raco frog -bp
Start a new blog page for today's lab, and delete the fake entry created by the frog setup command. Note that you may have to refresh the browser after running
raco frog -bp
.
Setting up a git repo
- Time
- 30 minutes
- Activity
- Individual work
- Summary
- This is where we create the git repository used for the rest of the term to hand things in.
Change to
~/cs2613
. This directory should have one subdirectory calledjournal
, which has the results of your experiments above with frog.Create the git repository
$ git init -b main
Git will reply with something like
Initialized empty Git repository in /home1/ugrads/$username/cs2613/.git/
You’ve now initialized the working directory — you may notice a new directory created, named ".git". You should mentally replace "$username" with whatever the login name is that you use to log into the FCS linux machines.
Read the git-quickref page, and follow the initial configuration steps there.
- note that the "--wait" option for gedit is important here.
Next, tell Git to take a snapshot of the contents of all files under the
journal
, with git add:$ git add journal
- Notes
- Many revision control systems provide an
add
command that tells the system to start tracking changes to a new file. Git’sadd
command does something simpler and more powerful: git add is used both for new and newly modified files, and in both cases it takes a snapshot of the given files and stages that content in the index, ready for inclusion in the next commit.
This snapshot is now stored in a temporary staging area which Git calls the "index". You can permanently store the contents of the index in the repository with git commit:
$ git commit
This will open and editor and prompt you for a commit message. Enter one and exit the editor. You’ve now stored the first version of your project in Git. See §5.2 of Pro Git for some hints about writing good commit messages. As mentioned in the class git policy, you will be marked on your commit messages, so you may as well get started with good habits.
Pushing to a central repo
- Summary
- Learn how to upload your work to a server
- Time
- 20 minutes
- Activity
- Individual work
- Notes
- You absolutely have to understand this before continuing in the course, since all marks in the course will be based on work pushed to the coursegit repos.
Since we are using the FCS git repositories there is an existing repository for all students who registered early enough. If it turns out there is no repository for you, you may need to do the last step later.
First add the
remote
. This something like a nickname for the URL where the repo will be stored.$ git remote add origin https://$username@vcs.cs.unb.ca/git/cs2613-$username
origin is the default name for a remote, but we could have used a different name here. Replace
$username
with your FCS Linux account name.Now upload your local copy of the repo.
$ git push --all origin
you should see something like
Counting objects: 388, done. Delta compression using up to 8 threads. Compressing objects: 100% (350/350), done. Writing objects: 100% (388/388), 71.63 KiB | 0 bytes/s, done. Total 388 (delta 223), reused 59 (delta 33) To https://$username@vcs.cs.unb.ca/git/cs2613-$username e7e5311..f1ae959 main -> main
If you have extra time, start L02
Before next lab
- Read Section 2 of FICS. We will do some of the exercises in next lab.