Instructors: Mona ElSaadawy & Jacob Errington
Soft due date: Monday, 13 September 2025 Hard due date: the date of midterm 1
You must have already set up your School of Computer Science (SoCS) account on
our server called mimi
. On McGill wifi (or after connecting to the McGill VPN)
visit this page to set up your SoCS account.
ssh
is a very versatile program that we use to log into a remote computer.
To log into a computer, we need to provide a username (to specify as who we
would like to act as) and some kind of password (to prove that we have the
authority to act as that user.)
You're already used to ordinary passwords, that you type in when you want to log in. But ssh has an alternative mechanism for providing a password. That alternative mechanism is called an ssh key.
An ssh key will have been emailed to you by IT. Download it to your computer.
Assuming your name is Jane Smith, the file you downloaded should be named
something like jsmith13-key
.
You will next need to transfer this key into your SoCS account.
This will depend on what OS is running on your computer. We won't give detailed instructions on how to do this; you will need to do some research.
Our recommendation is to find a way to install the rsync
program on your
computer. This is a command-line program for copying files via ssh.
brew install
rsync
.apt install rsync
.To learn how to use rsync, check out this guide
You can alternatively install on your computer a graphical program, such as Cyberduck, Filezilla, or WinSCP. (Just be careful with the Filezilla installer: I think you need to uncheck a box during installation somewhere to prevent it from also installing some kind of garbage alongside Filezilla.)
Using whatever program you decided to go with, copy the ssh key you
downloaded (e.g. jsmith13-key
) into the home directory of your SoCS account.
Next, log into mimi and do the following:
- Run this command mkdir -p .ssh
-- create a hidden directory called .ssh
inside your home directory
- Run this command: chmod 400 jsmith13-key
-- this makes the key read-only, as required by ssh.
- Run this command: mv jsmith13-key .ssh
-- move the key into the .ssh
directory
- Follow the instructions from the email you received from IT to create the
file named config
inside the .ssh
directory.
Congratulations, you set up your ssh key. You will now be able to obtain and submit the homework via git on mimi.
comp-206
in your home directory.homework
, labs
, and notes
as subdirectories of
comp-206
.homework
directory and clone the repository containing these
instructions: git clone fall2025-comp206:hw1.git
hw1
.Check you did it right: ls ~/comp-206/homework/hw1/.git
should succeed and
show a listing of some strange, internal git files.
Next, get the lecture notes, which we are also distributing via git:
cd ~/comp-206
git clone https://gitlab.cs.mcgill.ca/jerrin/comp-206-notes.git notes
Check you did it right: ls ~/comp-206/notes/.git
should succeed and similarly
show a listing of strange, internal git files.
hw1
directory, create a file called copying-to-from-mimi.txt
.Next:
tree -F comp-206
.
This will output a textual diagram of the directory structure you created in
part 1.tree -F
), clearly showing your username.hw1
directory,
and rename it to screenshot.png
(or screenshot.jpg
if it happened to be
in jpg format.)To recap, your hw1 directory should contain at this point:
copying-to-from-mimi.txt
; andscreenshot.png
(or screenshot.jpg
); andinstructions.md
(this file!)Then,
git add .
to prepare all changes in the repo to be committed.git commit -m "completed assignment 1"
git push
to upload your solution, which will run the autograder on it.
The autograder will output a message saying SCORE
telling you whether you
passed the assignment or not.If you need to revise your solution and resubmit it, repeat the three steps in
this section: git add .
, git commit -m "a message describing the changes"
,
git push
.
You can run the autograder via git push as many times as you like!
(In practice when doing software development, running git push
won't run an
autograder, but it will typically run some scripts to run a test suite on your
code, compile your code, and deploy your program, i.e. make it accessible to
users!)
This assignment is graded simply on completion, and the main point of it is to familiarize you with the mechanism by which you'll be doing and submitting your homework throughout the semester.
Simply pushing with the required files present and of the correct types will earn full marks.