- What are the Computer Science Teaching Labs?
- Where are the Teaching Labs located?
- What do I need to know to start using my Teaching Labs account?
- If I’m at home, how do I log in to the Teaching Labs machines?
- How do I report problems?
- What do I do if I’m having problems with my assignment?
- How can I save or reserve a workstation? Can I leave for a while without logging out and losing the workstation I’m using?
- The answers in this FAQ appear to be out of date or just plain wrong! How come?
- How to I get into the Teaching Labs?
- What are the hours of operation of the Teaching Labs?
- Is the Bahen Centre open 24 hours?
- I just obtained a new TCard and it won’t let me into the labs. Why?
- I’m an Engineering student enrolled in a CS course, but my TCard won’t let me into the labs. Why?
- For whatever reason, my TCard won’t get me into the labs, and/or the Bahen Centre. What should I do?
- What sort of computers are these?
- What sort of operating system are they running?
- Are there GPUs available?
- How do I reset my dot files to the defaults?
- How do I read a PDF document?
- How do I preview a postscript document before printing it? How do I look at a postscript document without printing it?
- How do I find out more about UNIX?
- How do I get back or unerase an accidentally deleted file?
- How do I set up a home page?
- I typed Control-Z, and my job got “suspended”. How do I get it back?
- How do I start up a graphical application on a remote machine, and have it display on the machine that I am using?
- How do I use my USB drive?
- How do I remove or kill a process that I don’t want?
- How do I clean up the Firefox profile if the browser refuses to start?
- How do I get free Microsoft software?
- How do I get a program account?
- What are the rules for using my account?
- When exactly do accounts get deleted?
- I’ve just graduated. When will I lose my program account?
- How are accounts suspended for rules violations?
- How do I print a text file?
- How do I print a PDF file?
- How do I print a postscript file?
- On what printer will my printout appear? How do I pick which printer I want?
- How do I see the status of my print job? How can I cancel it?
- How do I make my postscript file print out on both sides of the page?
- What is a print quota? Why do we have them?
- How are print quotas assigned?
- How do I find out how many pages I have left?
- What can I do to print less?
- What is a disk quota? Why do we have them?
- How are disk quotas assigned?
- How do I find out how much space I have left?
- I’m running out of space. How do I get more?
- How can I conserve disk space?
- What is electronic mail? How do I send/receive mail?
- What is my e-mail address?
- How do I find out somebody’s e-mail address?
- How do I forward e-mail?
- How do I read my Teaching Labs mail from home?
A: These are a set of computer labs and computing environments provided by the Department of Computer Science to support Computer Science courses. The primary environment is Ubuntu Linux.
Q: Where are the labs located?
A: The labs are located in the Bahen Centre for Information Technology (40 St George St) in rooms BA2200, BA2210, BA2220, BA2230, BA2240, BA3175, BA3185, BA3195, BA3200.
For more info about the labs and lab access, see About the Labs.
A: To get yourself started we recommend that you read the New User’s Guide .
Your Teaching Labs username is your UTORid. You will be emailed an initial password which you will have to change on first use. Your password is unique to the teaching labs: you can set it to whatever you want (subject to password quality constraints), it does not have to be the same as your UTOR login. You can make it the same if you want, but it’s safer to choose a unique password. If you forget it, you can reset your teaching lab password via the Teaching Labs web page under Resources: Account Management.
A: To log into the Teaching Lab machines from home, you must have internet access. If you wish to connect and use the same environment as the Teaching Lab workstations, detailed information can be found on the Connecting to Teaching Labs remote access server page. Internet access can be obtained from numerous commercial Internet Service Providers (ISP), through a cable TV connection or your phone line, with a variety of fee structures. If you wish to connect using the secure shell protocal (SSH), you need to download and install an SSH client for windows. A list of “free” windows clients are available on the OpenSSH website. With your ssh client, connect to “teach.cs.toronto.edu”. For unix, linux or Mac OS X computers, use a terminal window and type the following (substitue your UTORid for user-name): ssh firstname.lastname@example.org
A: Send mail to sysadmin.
A: Contact your TA or your course instructor. Do not contact the site administrators. Even if they could help you, they’re not allowed to.
A: Workstations are allocated on a first-come, first-serve basis. If you wish to leave for a short period of time without logging out, you can lock it using
xlock, which will prevent anyone from meddling with it while you’re gone.
If you remain away from your workstation too long, you will be automatically logged out. If there is no mouse movement or keyboard activity for 20 minutes, you will be given a warning. (The warning may be hidden by other windows). You will be logged off if there is no activity for 30 minutes.
A: The FAQ is regularly updated but things sometimes do get missed. We are always open to suggestions about missing questions and answers. Please let sysadmin know if you have any suggestions or if you find errors.
A: The labs in the Bahen Centre are accessible 24 hours a day, 7 days a week during term time. Access is controlled by a card-access lock system that restricts entry to authorized individuals. To enter one of the labs you will need to swipe your TCard through the card reader that is installed outside of each door.
In general, access is granted to all students enrolled in a computer science course, or enrolled in the computer science program. We obtain this information from the University’s Student Information System (Acorn). We receive updated information from Acorn on a reasonably frequent basis, and it should take one full day for newly enrolled students to get added to the lock system database.
A: Most Teaching Labs in the Bahen are accessible 24 hours a day, seven days a week during the school term, including holidays with the exception of Christmas break, or unless otherwise indicated. Some lab rooms are bookable which means they are reserved for specific classes (typically tutorials) at certain times during the day.
A: The Bahen Centre is open to the general public from 8am until 11pm, Monday – Friday. Outside of those hours, you will need your TCard to access the building. All of the major entrances to the building have card readers outside of the doors. If you can get into the labs with your TCard, you should be able to get into the building with your TCard.
A: Each issued TCard stores a unique bar-code which is used by the lock system. When a new card is issued by the Library, it takes a while for the information to propagate to us via the Student Information System. Updates to our access system generally occur overnight.
A: Access to rooms in the Computer Science Department is administered separately from access to space in the Engineering Faculty. A similar division exists for students in CS and Engineering students. As a consequence, processing room access for situations where the two groups intersect has been tricky, but generally works correctly. If contacting us please indicate that you are in Engineering (or other “non-standard” conditions, such SGS, or staff), since this can delay finding the right person to address your problem.
A: Send an e-mail to email@example.com. Include your name, student number, the 16 digit bar-code at the very bottom of your TCard, the names of the courses you are taking, and special conditions as indicated in the previous question. We can’t promise that we’ll get back to you right away, or fix your problem right away, but we will do our best to address problems as soon as we can. In the meantime, keep trying your card.
If your card itself is damaged, you need to go to the Information Commons to get a new card.
A: There are about 160 workstations running Linux in the various labs, as well as lots of places to use your own laptop or tablet. There is also an SSH server, accessed through the name
teach.cs.toronto.edu, two remote-graphical-desktop systems named
rhino, and other servers, such as a database application server called
A: The servers and workstations run Ubuntu 22.04.
A: Computers in room BA2240 have NVIDIA RTX A4000 GPUs (16GiB RAM). Computers in BA2210, BA2220, and BA3200 have NVIDIA RTX A2000 GPUs (6GiB RAM). Those in BA3175, BA3185, BA3195, and BA2200 have NVIDIA GeForce RTX 2060 GPUs (6GiB RAM).
These lab workstation GPUs are available only to a student sitting at the workstation. There is also a remotely-accessible computing cluster with similarly-powerful GPUs. These are normally available only for specific courses.
A: If you run the command:
this will reset all of the default files. If you only want to rest one of them, run:
A: You can use a utility called
gv to view postscript files. For example, to view the postscript file named
There is no easy way to preview a postscript document in a text-based terminal window. However, there are versions of ghostview available on the Internet for most PC operating systems. See the GhostScript homepage for these programs. See A First Guide to Postscript for more information about the Postscript page description language.
A: Most commands have a “man page” (short for manual page) which tells you how to use them. If you want to find out about a command named
To find out more about man pages and the man command, type:
There are many books and guides about UNIX available. We recommend you start with A Student’s Guide to the Teaching Labs. Another good choice is “UNIX for Students”, by Harley Hahn, and Unix is a four letter word.
A: Unfortunately all too often, the answer is “You cannot“.
If you deleted the file through KDE, you might find the file in Trash. (Please remember to empty your Trash regularly). However, it is better to follow the advice below than rely on Trash.
An unrecoverable file, particularly an important assignment file that gets accidentally erased shortly before the due date, can be very upsetting. To minimize the possibility, make copies of your important files, use a revision control system (eg. RCS or CVS), copy them onto floppy disk or a USB key, and keep an eye on your disk quota. When your disk quota fills up, you may not be able to write files successfully, and this sometimes results in lost work. You can see how much disk quota you have left by typing:
Backups of all the files on the system are made most nights to restore the entire system in the event of catastrophic loss. You can request a restore from these backups by email to the Teaching Labs admins. Be aware the backup will very likely have taken place many hours previously and the file restoration will also take quite some time, possibly as long as a day, so if it is for an assignment, it is often quicker to re-create the file.
A: Create a “public_html” directory for your home page and make it publicly accessible. The web server runs without privileges, and so it can’t read your files unless you do this. You can put files there that you want to make available from your home page. They should be made publicly readable. The default filename is index.html. Files are accessible via the URL “http://www.teach.cs.toronto.edu/~login/filename”. NOTE: “public_html” does not show up in the URL.
For example, suppose Wanda W. Webb (webbw) wants to put up a simple home page consisting of a single html file and a picture of Wanda and her sister Wendy wiring a Coke machine for ethernet. She sets up her home page as follows:
# First, Wanda creates the directory... mkdir $HOME/public_html # ...and makes it publicly accessible. chmod og+x $HOME $HOME/public_html # Now, she creates the home page using her favourite editor, which, # in her case, happens to be pico. You can use vi, nedit, emacs, # or whatever editor you want. pico $HOME/public_html/index.html # Next, she makes the home page publicly readable. chmod og+r $HOME/public_html/index.html # Okay, that's done. Now she copies the picture.... cp netcoke.gif $HOME/public_html # ...and make it publicly readable. chmod og+r $HOME/public_html/netcoke.gif # All done. Now Wanda can tell all her friends that her home page # can be browsed at "http://www.teach.cs.toronto.edu/~webbw/". Since Wanda's # sister Wendy also wants to reference the coke machine picture in # her own home page, Wanda tells Wendy that the picture can be # found at "http://www.teach.cs.toronto.edu/~webbw/netcoke.gif".
A: Suspended jobs can be resumed or brought to the foreground by typing
fg. You can put a job into the background by typing
bg. This is useful if you meant to start the job up in the background but forgot to type the
& on the command line.
You can see all the suspended and background jobs by typing
jobs -l. The output of
jobs -l shows five things for each job:
[job number] +/- <process number> <command stutus> <command name>
For example, the output of
jobs -l might look something like:
 - 22902 Suspended bluefish  + 23082 Suspended konsole  23106 Running nedit
If you type
bg, the job marked with the
+ will be the one that you get. You can specify another job for
bg by typing the job number preceeded by a
%. For example, to change bluefish from being suspended to running in the background, type:
The manual page for csh has more information about job control.
A: In a terminal, type:
ssh -X <server> <command>
For example, to run the bluefish editor from wolf, use:
ssh -X wolf.teach.cs.toronto.edu bluefish
See the X11 forwarding section of the ssh man page for more details.
A: Insert your USB drive. An alert should pop up telling you that a new device has been detected; click on the device name to make it accessible.
When you are finished using your USB drive, you must unmount it before unplugging it. If you don’t unmount it first, some files on the drive may be damaged. To unmount your drive, click on the USB logo (the round one next to the volume control) on the bottom bar; then click the round “remove this device safely” icon to the right of the device name.
If you get the error message “Could not unmount device”, it means that there are programs still accessing files on the drive. You must close these programs before you can unmount the drive.
A: Killing a process in Linux involves sending the KILL signal to the process. The simplest way to this, is to use the “pkill” utility in a terminal window. To kill a program, type:
pkill -KILL -U <user name> <program name>
For example, if user stujang wanted to kill a firefox process that had crashed, she could type:
pkill -KILL -U stujang firefox
One disadvantage to killing processes this way is that all instances of the named program will be killed. To get around this, you need to find out the process identification (PID) of the specific instance of the program you want to kill and send the KILL signal directly to it. To get a list of the instances of a specific program, type:
ps aux | grep <user name> | grep <program name>
For example, to see the instances of nedit, user stujang would type:
ps aux | grep stujang | grep nedit
The output might look something like:
stujang 1681 0.2 0.0 8856 4952 pts/6 S 15:09 0:00 nedit ClassOne.java stujang 1700 0.3 0.0 8856 4960 pts/6 S 15:10 0:00 nedit ClassTwo.java stujang 1709 0.0 0.0 1544 460 pts/6 S+ 15:10 0:00 grep nedit
The PID is the number beside the user name. Processes can be killed using the the following command:
kill -KILL <PID>
Using the example process listing from above, user stujang would kill the nedit instance that had ClassTwo.java open by typing:
kill -KILL 1700
More information about sending signals to processes can be found in the man pages for
A: If your Firefox browser refuses to start and displays a message telling you that Firefox is already running, you can run the following two commands to clean up your Firefox profile. Please, first ensure that there really are no other instances of Firefox running, next start a terminal by clicking on the Konsole icon on the KDE panel (at the bottom of the screen), and then run:
rm `find .mozilla/ -name lock` rm `find .mozilla/ -name .parentlock`
Alternatively, you can do this simply by using the command:
A: There are two methods of obtaining free Microsoft software for students: DreamSpark Standard and DreamSpark Premium.
- All University of Toronto students are eligible for Dreamspark Standard. DreamSpark is a Microsoft program that supports technical education by providing access to Microsoft software for learning, teaching and research purposes. You will need an active University of Toronto login and a Windows Live ID account to verify your student status and to access Microsoft DreamSpark software. Dreamspark gives you the students the ability to create an account and verify your student status . This is an automated process.
- The Department of Computer Science (DCS) is a subscriber to Microsoft’s DreamSpark Premium program which includes more software than the Standard program . To be eligible for Premium, you must have an active Teaching Lab computer account, which will be a different email address from the general University of Toronto account you may have set up for Standard above. To begin send email to firstname.lastname@example.org The subject and body of the email can be empty. You must send the email from your active Teaching Lab account, in order to confirm your association with the Department. You will get a confirmation message which you must reply to for the account creation process to continue. Eligibility is term based; if you remain in a Departmental course or program your subscription will be automatically renewed each term. Please note it may take up to a week for you to be initially setup for Dreamspark Premium.
A: In the past if you are an undergraduate student and are enrolled in one of the Computer Science Specialist or Major programs at the St. George campus, you were allowed to request a different sort of account on the Teaching Labs machine called a “program account”. It had more generous quota allocations, for example. We don’t do that anymore: instead, if you are in one of the programs, your Teaching Labs account will automatically be given the more generous quota allocations that your enrolment in the program allows you to receive. You do not need to do anything for this to happen.
A: Accounts for non-program students exist for the sole purpose of allowing that student to take a Computer Science course (or courses). They will be suspended shortly after the last course’s final exam. Accounts for graduate courses are suspended when the instructor directs.
Suspended accounts remain dormant (files intact) for a period of time, generally two academic sessions, then are deleted. Accounts for students in a Computer Science Major or Specialist program are suspended if the student leaves the program.
A: Teaching Labs accounts for students who were formerly in a Computer Science Major or Specialist program are removed two or three times a year, usually near the beginning of a term. As part of our procedure, we send out an e-mail warning to the user approx. one month prior to account suspension. Once we suspend the accounts, we leave them on the system for another month or two, just to make sure no one’s account is removed by accident. In general, we give you plenty of warning, so you don’t need to worry about your account going away until you hear from us.
A: If you don’t comply with the Teaching Labs usage policies, a systems administrator may suspend your account. You will know your account is suspended if you see a message telling you so when you try to log into a Teaching Labs computer (remotely or locally). The message will also include instructions that you need to follow in order to get the account unsuspended. Usually this would involve talking to a faculty member at the Department of Computer Science.
A: We recommend you use the
man print for details. You can use the
enscript command if you want to play with the details of how the text is formatted. See
man enscript for details. Or you can use the
lpr command directly if you wish.
You can print from
okular. This will print on both sides of a page. If you want to print more than one page per side, use the
pdfnup command to get multiple pages. For example, type the following to make a new PDF file with 4 pages of the original on 1 page of the new pdf:
pdfnup file_name.pdf --nup 2x2
This will create a new file called file_name-2×2.pdf that can be viewed and printed with
okular. See the man page for pdfnup for more details.
A: First, check the postscript file to make sure that the first line is something that looks like
%!PS-Adobe-1.0 (actually only the leading
%! is strictly required). If the postscript file was generated on a PC, make sure it uses UNIX newline conventions (use the
flip command to do this).
Then send your file to the printer using
gv, because if you didn’t get the first line correct, the printing software won’t know it’s postscript, and will print it out as text, which is probably not what you want.
If you want to print more than one page per side, use the psnup command:
psnup -4 file_name.ps > new_file_name.ps
This creates new_file_name.ps that you can view and/or print with
gv. See the man page for
psnup for more details.
A: You can find out which printers are available using the
lpq -a command. This command also shows the room locations of the printers.
In general, printouts are sent to a printer on the same floor of the building as the computer that you are printing from.
You can specify the printer you want by providing a
-Pprintername argument to whatever command you use to print. You can set the PRINTER environment variable to the name of the printer you want to be your default.
A: Each job has a “job number”. You can find the job number of all the jobs currently printing or waiting to be printed using
lpq, which stands for Line Printer Queue. (Unix usually calls its printers “line printers” for historical reasons.) Like most printer commands, lpq can take a
-P argument; use
-Pp2210a to see the queue for that downstairs printer, and
-Pp3175a for the upstairs printer. The output will look something like this:
Rank Owner/ID Pr/Class Job Files Size Time active wayne@b3175-04+281 A 319 (STDIN) 39030 Jan 6 23:51:30 2 you@b3195-13+747 A 320 foo.txt 534145 Jan 6 23:51:30
meaning that wayne’s job (number 319) is currently printing, and job number 320, belonging to “you”, is next. Both jobs are 7 bytes. To remove your job, type
lprm 320. Don’t forget to use
You can sometimes remove an active job, but often the printer will have printed it before the command is processed, unless it has jammed or is otherwise delayed. You may want to do this as a courtesy to others if you are printing a big job and many other people are behind you in a hurry. In fact, you shouldn’t print big jobs at all when the printer is busy.
A: Use the
If you prefer to modify your file by hand, do the following: Edit the postscript file using your favourite text editor, and after the first line, which reads something like
%!PS-Adobe-1.0, insert the following line:
statusdict begin true setduplexmode end
If your document has an odd number of pages, before the last page is printed, insert the line:
statusdict begin false setduplexmode end
If you don’t do this, the final blank side will count as a printed page in your print quota.
A: A print quota is a limit on the number of pages you are allowed to print. We have print quotas because laserprinting (especially the toner) is expensive, and we can’t afford to let everybody print all they want for free.
For the purpose of quotas, a “page” is what you’d expect: a printed side of a sheet of paper.
A: Teaching Lab accounts for students in a Computer Science Major or Specialist (including Data Science) program get 300 additional pages at the beginning of each term, at no cost. Unused pages are carried over to the next term, up to a maximum of 600 pages. For example, if you start the term with 300 pages and print 142, your quota will be 458 (300 − 142 + 300) when the next term starts; if you print nothing the next term, you’ll start with 600 the term after that.
Additional print quota cannot be purchased.
Students not in a Computer Science Major or Specialist program receive no print quota and cannot use Teaching Labs printers. Use the printing facilities at the Information Commons or those specific to your own study program.
pquota. Alternatively, you can use the Student Secure Website.
A: First, don’t print unless you have to. Take advantage of the workstation’s high-resolution screen to preview your document. When you have to print, use the
Use pdfup command to get multiple pages on a side when the source is a PDF file. This creates a new PDF file that you can view or print with
pdfnup file_name.pdf --nup 2x2
This will create file_name-2×2.pdf. See the man page for more details.
Use psnup command when the source is a ps file:
psnup -4 file_name.ps > new_file_name.ps
This creates new_file_name.ps that you can view and/or print with
gv. See the man page for the psnup for more details.
If you have a computer and printer at home, you can bring your document home, on a floppy, USB key or over the network, and print it there.
A: A disk quota is a limit on the amount of hard disk space your files are permitted to occupy. We have only a limited amount of hard disk space, and disk quotas help to ensure that everybody gets their fair share.
A: Each account has an alloted amount of disk space.
Non-program student accounts have 3GB of disk quota.
Program student accounts have 5GB of disk quota.
TA accounts (logins beginning with ‘t’) have 5GB of disk quota.
Incoming mail has 1GB of disk quota.
quota -v. See the manual page for details.
A: This command will summarize your usage for each subdirectory:
You will often find that cache directories from your browser and the KDE Trash folder consume your quota, so be careful to set the preferences to use a small amount of cache. Be aware of the hidden files in your account (files that begin with a . eg .mozilla). The command given above shows the size of hidden files as well as non-hidden files.
A: Erase all the files you don’t need, or copy them onto a floppy disk, a USB drive or your UTorWeb space. Use
gzip to make your files take up less room. Erase files that you can recreate from source code (eg. object code of the form *.o, *.x, a.out, *.class etc.).
A: Electronic mail is a message-transmission service which allows electronic messages to be transmitted from one person to another. When a message arives for somebody, it is placed in the person’s mailbox (usually /var/spool/mail/”login”, where “login” is the person’s login name).
Thunderbird is a GUI mail and news reader available on the Teaching Labs machines. Command line email clients are
mutt, and you can read more about them from the man pages. Web browsers and xemacs have GUI email client components.
To send mail, you need to know the person’s address. This is usually of the form “email@example.com”. For example, to mail to “Jane Doe” who has the login name “jdoe” on the machine “geronimo” in the domain “uwaterloo.ca”, use the address “firstname.lastname@example.org”.
Our default domain name is “toronto.edu”, and our machine name (for purposes of mail) is “teach.cs”. We have an alternative domain name, “utoronto.ca”, which can also be used if you prefer.
A: Your email address is “email@example.com”, where “loginname” is your login name (typically your UTORid). “firstname.lastname@example.org” will also work.
A: If you know their login name, machine name, and domain is, then try “email@example.com”. But the best and most sure way to find someone’s e-mail address is to ask them. There’s not usually an easy way to automatically find out the email address of “my friend Kim at Harvard”.
A: You may wish to forward e-mail that is addressed for your Teaching Labs account to another e-mail account. This can be accomplished by creating a file named “.forward” in your home directory, and listing the e-mail address of the destination to which you wish to have mail forwarded. The file can be created with any program that can edit text, including DrJava.
For example, Jane Student may wish to forward her Teaching Labs e-mail to her firstname.lastname@example.org account. To do this, she would create a new file with the her UTORmail address on the first line and would save this file as
.forward in her home directory. The file would look like this:
You can use any mail reader that supports retrieving mail using POP3-SSL protocol. Most popular mail readers support this. Enter
pop3.teach.cs.toronto.edu for the mail server address, and make sure that the SSL support is enabled, connecting to port 995. Use your Teaching Labs user name for the login.
Alternatively, you can connect to the Teaching Labs over SSH or NX and read your mail the same way you do it in the lab.
A: Firstly, respect other people’s machines. The fact that a machine is accessible over the network does not give you permission to use it. Attempts to access other computers without authorization (by circumventing password protection, for example) is an offence, and can result in the loss of your Teaching Labs account or even academic or legal sanctions.
Secondly, respect other people’s use of the network. Don’t overload a network with lots of traffic. Don’t use services that require lots of network bandwidth (such as peer-to-peer file transfer). Don’t send large or many files via e-mail unless you know that your recipient’s email service can accommodate it.
Finally, don’t set up any network servers of your own without consulting the Teaching Lab administrators.