[CS Dept., U Chicago] Courses


CMSC 34910: Mathematical Transforms for Signal Processing (Winter 2005)

Computing Resources


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.

Valid HTML 4.0!


Last modified: Wed Jan 5 14:38:27 CST 2005