ECE419, Winter 2026
University of Toronto
Instructor:
Ashvin Goel
Please start by visiting the lab information page that provides information about the lab assignments and the programming environment. It also describes the lab machines we will be using for the labs and the lab software available on those machines.
We will provide various tools in the /cad2/ece419s/bin directory. Please add this path to your PATH variable so that it is easier for you to access the tools. We also provide a recent Go installation in the /cad2/ece419s/go directory that you need to use for the labs.
For csh, add the following in your ~/.cshrc file just below where the path variable is currently defined in the file:
set goroot=(/cad2/ece419s/go)
set path=(/cad2/ece419s/bin $goroot/bin $path)
For bash, add the following in your ~/.bashrc file just below where the PATH variable is currently defined in the file:
export GOROOT=/cad2/ece419s/go
export PATH=/cad2/ece419s/bin:$GOROOT/bin:$PATH
Please do not add the lines shown above at the end of the file, which can cause problems.
Then make sure to log out and log back in.
Next, run echo $PATH and you should see the new path. Then, run go version to check that the Go version is 1.25. If it is different version, then make sure that you have followed the instructions shown above carefully. If you plan to develop code on your home machine, we recommend installing the same Go version.
For this course, you'll be using Git for version control. If you're new to using Git, the free online Pro Git Book is an excellent resource. Chapter 3 is especially useful, since we will be using git branches and you will be merging code.
We'll be hosting our starter code repository and your git remote repository at our code repository website:
You will be able to login to this site with your University of Toronto (UTORid) credentials. To access the code repositories, please go to the Manage SSH Keys page and add your public SSH key.
You may need to generate SSH keys. Make sure to use a good passphrase.
Please setup an SSH agent and add your SSH key to the SSH agent so that you don't have to type a passphrase every time to access the repositories.
You should be using a password manager to follow good security practices. The recommended password manager is 1Password. It is a paid option with nice features such as SSH integration. Luckily as University of Toronto students, you can get a free subscription here. We won't cover it in this setup, but it's a good idea to use it.
Now you are ready to setup your git local repository (e.g., on the UG machines) using the following git instructions (replace <UTORid> with your UTORid):
cd ~
git clone ssh://git@code.ece.gg/ece419-2026-winter/<UTORid> ece419-labs
cd ece419-labs
git remote add starter-code ssh://git@code.ece.gg/ece419-2026-winter/starter-code
The git clone command creates your git local repository in the ece419-labs directory from your remote ssh://git@code.ece.gg/ece419-2026-winter/<UTORid> repository. We have already created your remote repository and you should see it on our code repository website. You will develop code in your local repository and push it to your remote repository. We will access your remote repository to grade your code.
We provide you starter code in the read-only ssh://git@code.ece.gg/ece419-2026-winter/starter-code repository. The git remote add starter-code command above links your local repository to our starter code repository so that you can pull the starter code into your local repository.
Make sure you are in the ece419-labs directory, then setup the Git options for your repository using the following commands:
git config user.name "Your Full Name"
git config user.email your@email.com
git config init.defaultBranch main
git config pull.rebase false
git config alias.lol "log --pretty=oneline --abbrev-commit --graph --decorate"
Your email should end with something similar to @mail.utoronto.ca.
Now you are ready to update your local repository with our starter code.
If you have trouble with any of the steps above or with accessing your remote repository or our starter code repository, please let us know on Piazza.