Remote login to teach.cs
If you have internet access at home, you can log in to your teach.cs
account and work from home.
(Note, however, that attendance is taken in the labs at the tutorial time — you need to
attend the lab (physically) to receive credit for the lab exercise.)
If you haven't used your teach.cs account before, or if you forget your
password, you can set or reset your password at
https://www.teach.cs.toronto.edu/account
There is a remote login protocol called "ssh" which is supported by the
teach.cs computers.
That is, the teach.cs computers
run the "server"; what you need to connect to them is the "client" software, which is
the other side of a "server-client" connection over the internet.
(Similar to how your web browser is a "client" and it connects to a "web server"
over the internet.)
You can log in using the hostname "teach.cs.toronto.edu" (which currently
points to a machine named "wolf", and will always point to an appropriate
machine to log in to using ssh).
Possible client software (all zero cost):
- For unix/linux,
OpenSSH.
Probably included with your OS
distribution; try typing
"ssh user@teach.cs.toronto.edu"
at a shell prompt.
- For Mac OS, also openssh. Use a terminal window (in Utilities under
Applications), and type
"ssh user@teach.cs.toronto.edu".
- For MS-Windows,
- The current version of MS-Windows has an ssh command under "command prompt".
As above, just type
"ssh user@teach.cs.toronto.edu".
- For any version of MS-Windows, you can use
PuTTY.
(You can install the package if you want, but more simply you can scroll down
to the second section and just download putty.exe by itself (most likely "64-bit x86"), no special
"installation" required.)
- For Android, "JuiceSSH" (in the "play store")
- For iOS, "Shelly" (in the "app store")
You should try to run GUI applications such as web browsers on the machine
you are physically at; e.g. start firefox before doing a network
login to a(nother) linux host (or make sure that when you start it later,
you are running it on the local machine, not on the remote machine).
I strongly recommend doing your work on the teach.cs computers.
Using ssh, you can do this from home.
On the other hand, you may be able to work on your programs using a C compiler
at home.
Some of the issues here are:
- If your own computer ceases functioning for any reason, this won't be
accepted as a legitimate excuse for lateness.
The teach.cs machines are provided for you to do your course work on and they are
properly maintained, by professional sysadmins.
- I will likely not be able to help you with any technical problems with
your own equipment (although my students are welcome to ask me for help
and I'll see if I have any relevant advice).
- To test and submit your programs, they have to be in your directory on
the teach.cs
computers. So you will have to transfer them, and some people introduce
problems with their files when they do this. In particular, you will likely
have to make sure that they are transferred in "text mode" so as to avoid
interesting control characters cropping up at the ends of the lines.
Other problems people experience relate to non-standard character codes used
by macintoshes and especially ms-windows, notably for the directional quotes and
em-dash.
- Your programs have to compile and run on the teach.cs computers.
If you are using a C compiler at home, well, C compilers vary substantially in
quality and in the extent to which they correctly implement the C programming
language. Furthermore, a lot of C compilers these days allow "C++isms" of
various kinds, especially if those compilers are just restricted versions of
C++ compilers from the same vendor, and you must write your
assignments for this course in C, not C++.
So it will be essential to make sure your programs function correctly on the
teach.cs
computers, after you transfer them from home.
- Some of the programs in CSC 209 will be unix-specific, and won't work on
a non-unix (and non-linux) system which you may have at home.
(This last item is not a problem if you are running linux or unix at home (including Mac OS, which is unix).)
So all of the above is to say that I recommend simply logging in to
teach.cs and
always working on teach.cs even if you are not physically in
the teach.cs labs.
But if you don't do that, you might need to copy files between your home
computer and teach.cs.
To copy files to and from teach.cs, I recommend:
- For unix/linux, openssh (or any other version of ssh) has "scp" and "sftp".
I use scp, and also often rsync.
- For Mac OS, this is unix so you can use scp and sftp.
For a GUI-clicky sftp client,
you might want to try
Cyberduck
(note that you need to make an SFTP connection, not the default FTP)
or Filezilla
(be careful to decline the optional "extra"
during the installation).
- For MS-Windows, I believe that there is an scp command in the current version, or PuTTY comes with
"pscp"
from the same site.
(Again, if you like you can scroll down and just download pcsp.exe itself
rather than doing an "installation".)
For a graphical-user-interface scp client, try
"WinSCP"
(be sure to decline the additional software it asks to
install).
(In either case, check the newlines on the resulting file!)
On another note, the CS Teaching Labs facility also supports remote login with
the full desktop experience like sitting in front of a Teaching Labs
workstation. You can find how to do this on
their web pages, but I don't
think this should be necessary or useful for you any more, now that you are
getting familiar with the command-line.
Rather, make as many windows with whatever contents you want on the computer
you are sitting in front of, and some of them might be "ssh"es to
teach.cs.toronto.edu.
But of course you can use the desktop-experience remote login if you want.