Prof. Bob Boothe - Computer Science Dept.
Course syllabi, materials, and links:

COS 160
& 170

COS 285

COS 350

COS 485

Connecting to the lab from home

  All courses: Guidlines and Expectations for Programming Assignments
Non-intro Courses: Quick Guide to the Computer Science lab

THIS WEB PAGE IS NOT UP TO DATE. CURRENT ASSIGNMENTS ARE NOW ALL FOUND ON BRIGHTSPACE

COS 160 - Structured Problem Solving: Java

COS 285 - Data Structures

COS 350 - Systems Programming

  • Book's website - use the "Jump to ..." pull down menu to find the book's example programs by chapter
  • Tips for  linux - a nice collection of tutorials on a variety of linux topics
  • Extra books recommended by students:
    • "C for java programmers" by Tomasz Muldner
    • "Head First C" by Griffiths & Griffiths

COS 485 - Design of Computing Algorithms

Connecting to the lab's linux machines from home

  • You can connect to any of the linux machines: ant, beetle, firefly, honeybee, locust, mosquito, wasp. You can also just connect to "linux" which will pick a machine randomly to distribute the load. In the examples below wherever is says "linux", you can substitute an actual machine name.
  • To use a Windows computer to connect remotely.  These are the programs I use and my configuration settings.
    • To transfer files between the lab and a PC, I recommend filezilla
      • File > Site Manager > Host: linux.cs.usm.maine.edu
      •                                  > Protocol > SFTP
      •                                  > Logon Type: Normal           
      •                                  > User: <your user name>
      •                                  > Password: <your password>
    • To establish a text based terminal connection, I recommend putty.
      • Session > Host Name: linux.cs.usm.maine.edu
      •              > Connection type: SSH
      • Windows > Colours (I changed the Foreground and Background colors because I don't like reverse video.)
      • Windows > Appearance (I changed the font and point size.)
      • Connection > Seconds between keepalives: 300
      • Session > Saved Session give it a name > [Save]      You can then just load it next time
      • Note: When you are logging in and it asks for your password, it does not print anything as you type.
      • I further streamlined logging in by making a Windows shortcut to putty and adding command line options so that the Target looked like:
      • ...(path)...putty.exe -load session name -l username -pw  password
    • To establish an X windows graphical connection, I recommend Xming.  This is needed to run X windows applications such as ddd remotely.
      • To allow Putty to accept the X windows commands:
        • In the Putty Configuration
        • Connection > SSH > X11
        • Check: Enable X11 forwarding
    • I also installed xming-fonts. This will give you more fonts choices.
      • Font choices can be configured by editing the hidden file .Xdefaults in your home directory on the linux machines.
      • xfontsel (kind of broken but useable) and xlsfonts display and list font choices
  • To use a Mac or linux computer to connect remotely.
    • Use the terminal application.
    • At the prompt open a secure shell (ssh) connection with the command: ssh -X <your username>@linux.cs.usm.maine.edu
    • The -X is optional. It allows using X windows graphical applications, such as emacs in its graphical mode or the ddd debugger.
    • In the mac terminal program you can set up a profile to save this ssh command
      • In the Terminal menu bar select Preferences
      • + to create a new profile, give it a name such as USM
      • under Shell > Run command:   type the ssh command as explained above
      • now to start a remote terminal connection from the Terminal menu bar select: shell > New Window > USM
    • On a mac, if you loose connections and get a "Broken pipe" message, I fixed it by configuring ssh to send keep alive messages:
      • Open the terminal application on your mac (locally).
      • It will start in your home directory.
      • Go to the hidden directory .ssh:
    cd .ssh
      • You want to add this to the config file:
    Host *
    ServerAliveInterval 120
      • I didn’t have a config file so I just created one with cat and directly entered the file contents. Press Ctrl-D when done.
    cat > config
    Host *
    ServerAliveInterval 120
    (press Ctrl-D)
    • To transfer files between to/from the lab you can use filezilla as above
    • Or use sftp directly. Connect with sftp username@linux.cs.usm.maine.edu     Some basic commands are:
      • cd path    - change directory on remote machine
      • lcd path    - local change directory
      • ls              - list files in remote directory
      • lls             - local list files
      • put file      - upload a local file onto remote machine
      • get file      - dowload a remote file onto local machine
    • Here are instructions for installing the C debugger DDD on a Mac.