CSE 481p:
Classroom and Computing Facilities for CSE 481p in Spring 2018

University of Washington, Spring 2018


Active Learning Classrooms

We are using a special classroom this quarter. Because of its special format, it is called an "Active Learning Classroom." Its seating arrangement is based on round tables that can seat 9 students each. In addition, it has extra technology features such as per-table large-screen monitors, microphones, many glass walls on which dry-erase pens can be used, and an instructor-controllable video camera.

Library policy permits only closed drinking containers to be brought into the room, and no food should be eaten in the room.

Computing Server "Nicto"

The Paul Allen School of Computer Science and Engineering technical staff has set up a virtual machine for us that can run web servers. The virtual machine is named "Nicto" and it has the Internet address: nicto.cs.washington.edu. Your instructor and TA have been designated as the system administrators for this virtual machine. They have installed whatever basic software (in addition to standard Linux distribution software) that you will need for your work in this course. They have created or will create accounts for each students, so that you can use the software.

You will access Nicto remotely. (It's running on CSE school hardware deep in the basement of the Allen Center building, where only authorized laboratory staff normally can go.) You will generally access Nicto via a terminal program such as PuTTY or by SSHing in via some other terminal program and host. When you try out problem formulations, you might also use a web browser, which will be able to connect, through a special tunneling method, to your own web server running on Nicto.

Here is a list of software we will be using, with a description of each item.

  1. Linux. The Nicto virtual machine has Linux installed on it for us. In order to use Nicto, you will need to learn how to log in, change directories, create and delete directories, create and edit files, list the contents of a directory, and possibly some additional operations such as removing files, copying files, and changing permissions on files. In order to edit files on the server itself, you may want to learn to use one of the following editors: pico, vim, or emacs. (Your instructor Steve is an emacs user and can help out if you are choosing to try emacs.) You may choose to do all or most of your editing on your own personal computer using any editor you like, and then upload files to Nicto when needed. However, it would be useful for you to be able to edit files directly on Nicto now and then. On your own computer, Sublime is a choice that some people like, but other editors, including Emacs, Microsoft Wordpad, Eclipse with PyDev, and others are possible. The default shell on Nicto is csh, but it is easy to change that to bash, which is what Steve prefers to use.
    (We will not require every student to use Nicto. However, when we do group projects, at least one group member will need to use Nicto to prepare demonstrations. It will also probably be easier to get help when your code is located on Nicto. Also, if you don't use Nicto, then you will definitely have to configure your own PC's software and install Flask and svgwrite, plus any other tools you may need.)
  2. PuTTY. This is a terminal-emulator program that supports the SSH (secure shell) protocol. You will probably want to use this when connecting from a PC or Mac to Nicto. If you don't already have this installed on your own computer, it's recommended that you get it.
    http://www.putty.org
    
    An alternative is SSHClient. This also has a convenient file-transfer capability. So you might want to use both PuTTY and SSHClient. If you use a form of Linux on your own computer, such as Darwin on Mac OS machines, or CygWin on Windows, then you should have access to the secure copy program scp, which you can use to move files between your computer and Nicto.
  3. Python. We will be mainly using Python version 3.6. You may wish to install this on your own computer, so that you can try out code there. We also have it on Nicto, and your games and programs there should normally be run in Python 3.6, not the default of Python 2.7. To start a Python 3.6 session on Nicto, when already logged into Nicto, type python3.
  4. Flask. This is a Python module that makes it easy to have a small web server on a computer that runs Python. We have it on Nicto, and you can download it and install it on your own computer. The reason we need a web server is mainly so that we can use the nice graphics that web browsers can render. You can get your own copy of Flask here:
    http://flask.pocoo.org/
    
  5. Flask-SOLZ-Client-and-Server.py. (The name of this file may change, but for now, let's use this one.) This program will run a Flask server using any properly formulated problem that you come up with. You'll typically put this in the same folder as your problem formulation on Nicto (or on your own personal computer). This program will be made available to students enrolled in the class. It is not available to the public.
  6. svgwrite. This is a Python module that helps create graphical web content. We have installed this module on Nicto so that your Python programs can easily import it. You can also install it on your own computer by using a standard approach to installing a Python module. You can get svgwrite here:
    https://pypi.python.org/pypi/svgwrite