Courses
Computer Systems
You may use any computer system that you like for class work. But,
since I use the Department of Computer Science's Unix/Linux
systems, and since we will share work through the CS
Unix/Linux file system, you need your own CS account. Your CS
account also gives you access to the Linux PCs in the
Regenstein Linux Lab. The PCs in this lab run Linux, which
for our purposes is just Unix. The PCs are named after famous
trains. They are accessible by remote login from outside with
ssh
. If you are accustomed to using rlogin
or telnet
, start using ssh
instead.
If you don't already have a CS account, get one by filling out
the form.
Software and Data
Unix/Linux Utility Software
If you choose to work on a system other than Unix/Linux, you'll
have to find appropriate information on your own. Here are some
important software items that you should use if you work under
Unix/Linux.
- UNIX shell:
- You can't do UNIX without a shell --- the interactive
system that processes your commands. I prefer
bash
, but
if you are accustomed to another shell, stick with it.
- XWindows:
- In order to co-ordinate your work with a number of different
pieces of utility and sound-processing software, you need to work in
the XWindows system. classes, the Macintosh
X terminals in Ryerson Annex 175, and the
Linux PCs all run XWindows. XWindows is a
protocol for managing graphics displays, but it does not provide any
particular style of display on its own.
- Window manager:
- The particular style of graphical interaction in
XWindows is controlled by a window manager of your
choice, plus your customization of that window manager. My favorite
is
fvwm2
. With the right choice of window manager and
the right customization, you can simulate the look and feel of
Microsoft Windows or Macintosh.
- Editor:
- To prepare programs and supporting documents, an editor that
uses the graphics capabilities of the PCs is a big help. I strongly
recommend Emacs. Some people violently prefer
vi. Use what you already know.
- Web browser:
-
- To read the documents that I've prepared for you, and
participate in the online discussion. I recommend Mozilla
on graphics stations, Lynx on character terminals.
- Online manual:
-
- Of course, you can type the
man
command to the
shell, but I recommend Xman, running in its own window,
whenever you are on a graphics terminal. A lot of documentation is
presented through the info
command instead of
man
.
- Document processing:
- Textual materials that you want to share online will be most
useful if you can provide them in HTML format, or
LaTeX if they have significant mathematics. I do not insist
that you learn LaTeX just for this course, but it is an
extremely useful facility for typesetting mathematical and technical
material, so if you find time to learn it you will get a lot of
value over the years.
- Version control:
- I strongly recommend that you keep track of all your work with
RCS (Revision Control
System). In each working directory, create a subdirectory
named
RCS
. When you create a file, check it in with the
command
ci -l <filename>
From time to time as you are working on a file, repeat the
command. ci
will prompt you for a desription of the
changes, but the description is not nearly as important as just
keeping track of the changes themselves. Most of the time you won't
care about the series of versions stored for you by
RCS. Occasionally, you will want to find out what changes
you made recently, and you'll give the command
rcsdiff <filename>
To view the sequence of versions, use
rlog <filename>
When you get all screwed up, and wish you could get back to an
earlier version, you can. At that point, read the documentation
man rcs
and
man co
to figure out how to use co
and other features of
RCS to back out of your errors.
DSP Software
All of these are available for Unix/Linux systems, and most are
available for other platforms.
- MATLAB:
- An expensive proprietary software package providing a variety of
tools for manipulating and representing numerical data. It is
oriented particularly toward vector and matrix operations. It has a
toolkit for signal processing, and several research communities have
made it a de facto standard for research computing. MATLAB is found
on most platforms at UC, under a campus-wide license.
- Octave:
- Free software very similar to MATLAB.
- Scilab:
- Free software providing similar functionality to MATLAB and
Octave, but in a substantially different style.
- Mathematica:
- An expensive proprietary software package for symbolic
mathematical derivations, integrated with numerical computation and
graphical display. Mathematica functionality derives from (but the
company does not acknowledge credit) the Macsyma research
project. UC has a campus-wide license, but there is some overhead
involved in using it.
- Maple:
- An expensive proprietary competitor to Mathematica.
Last modified: Wed Jan 5 14:38:27 CST 2005