<?php require_once "fs_inner_context.inc"; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">

<title><?php echo $HTML_TITLE; ?></title>

</head>

<?php echo html_bgcolor_body($BG_COLOR); ?>

<!-- Standard hierarchical header structure -->

<?php echo $CS_HEADER_HTML; ?>

<?php echo html_linked_text("<em>Courses</em>", $CS_COURSES_ROOT_URL); ?>

<?php echo $HTML_HEADER; ?>

<hr>

<?php echo html_header(HTML_HEADER_LEVEL + 1, "Computer Systems"); ?>

<p>You may use any computer system that you like for class work. But,
since I use the Department of Computer Science's <em>Unix/Linux</em>
systems, and since we will share work through the CS
<em>Unix/Linux</em> file system, you need your own CS account. Your CS
account also gives you access to the <em>Linux</em> PCs in the
Regenstein Linux Lab.  The PCs in this lab run <em>Linux</em>, which
for our purposes is just <em>Unix</em>. The PCs are named after famous
trains. They are accessible by remote login from outside with
<code>ssh</code>. If you are accustomed to using <code>rlogin</code>
or <code>telnet</code>, start using <code>ssh</code> instead.</p>

<p>If you don't already have a CS account, get one by filling out
<a href="https://www.cs.uchicago.edu/info/services/account_request">the form</a>.</p>

<?php echo html_header(HTML_HEADER_LEVEL + 1, "Software and Data"); ?>

<?php echo html_header(HTML_HEADER_LEVEL + 2, "Unix/Linux Utility Software"); ?>

<p>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.</p>

<dl>
  
  <dt><em>UNIX</em> shell:</dt>
  <dd>You can't do <em>UNIX</em> without a shell --- the interactive
  system that processes your commands. I prefer <code>bash</code>, but
  if you are accustomed to another shell, stick with it.<br><br></dd>

  <dt><em>XWindows</em>:</dt>
  <dd>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 <em>XWindows</em> system. <em>classes</em>, the Macintosh
  <em>X</em> terminals in Ryerson Annex 175, and the
  <em>Linux</em> PCs all run <em>XWindows</em>. <em>XWindows</em> is a
  protocol for managing graphics displays, but it does not provide any
  particular style of display on its own.<br><br></dd>

  <dt>Window manager:</dt>
  <dd>The particular style of graphical interaction in
  <em>XWindows</em> is controlled by a <em>window manager</em> of your
  choice, plus your customization of that window manager. My favorite
  is <code>fvwm2</code>. With the right choice of window manager and
  the right customization, you can simulate the look and feel of
  Microsoft Windows or Macintosh.<br><br></dd>

  <dt>Editor:</dt>

  <dd>To prepare programs and supporting documents, an editor that
  uses the graphics capabilities of the PCs is a big help. I strongly
  recommend <em>Emacs</em>. Some people violently prefer
  <em>vi</em>. Use what you already know.<br><br></dd>

  <dt>Web browser:<dt>

  <dd>To read the documents that I've prepared for you, and
  participate in the online discussion. I recommend <em>Mozilla</em>
  on graphics stations, <em>Lynx</em> on character terminals.<br><br></dd>
       
  <dt>Online manual:<dt>

  <dd>Of course, you can type the <code>man</code> command to the
  shell, but I recommend <em>Xman</em>, running in its own window,
  whenever you are on a graphics terminal. A lot of documentation is
  presented through the <code>info</code> command instead of
  <code>man</code>.<br><br></dd>

  <dt>Document processing:</dt>

  <dd>Textual materials that you want to share online will be most
  useful if you can provide them in <em>HTML</em> format, or
  <b>LaTeX</b> if they have significant mathematics. I do not insist
  that you learn <b>LaTeX</b> 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.<br><br></dd>

  <dt>Version control:</dt>

  <dd>I strongly recommend that you keep track of all your work with
  <em>RCS</em> (<em>R</em>evision <em>C</em>ontrol
  <em>System</em>). In each working directory, create a subdirectory
  named <code>RCS</code>. When you create a file, check it in with the
  command

  <blockquote><code>ci -l <var>&lt;filename&gt;</var></code></blockquote>

  From time to time as you are working on a file, repeat the
  command. <code>ci</code> 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
  <em>RCS</em>. Occasionally, you will want to find out what changes
  you made recently, and you'll give the command 

  <blockquote><code>rcsdiff <var>&lt;filename&gt;</var></code></blockquote>

  To view the sequence of versions, use

  <blockquote><code>rlog <var>&lt;filename&gt;</var></code></blockquote>

  When you get all screwed up, and wish you could get back to an
  earlier version, you can. At that point, read the documentation

  <blockquote><code>man rcs</code></blockquote>

  and

  <blockquote><code>man co</code></blockquote>

  to figure out how to use <code>co</code> and other features of
  <em>RCS</em> to back out of your errors.</dd>

</dl>

<?php echo html_header(HTML_HEADER_LEVEL + 2, "DSP Software"); ?>

<p>All of these are available for Unix/Linux systems, and most are
available for other platforms.</p>

<dl>

  <dt>MATLAB:</dt>

  <dd>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.<br><br></dd>

  <dt>Octave:</dt>

  <dd>Free software very similar to MATLAB.<br><br></dd>

  <dt>Scilab:</dt>

  <dd>Free software providing similar functionality to MATLAB and
  Octave, but in a substantially different style.<br><br></dd>

  <dt>Mathematica:</dt>

  <dd>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.<br><br></dd>

  <dt>Maple:</dt>

  <dd>An expensive proprietary competitor to Mathematica.</dd>

</dl>

<?php echo html_footer("index", 0, 1); ?>
<!-- hhmts start -->
Last modified: Wed Jan  5 14:38:27 CST 2005
<!-- hhmts end -->

</body>

</html>
