ottMap/index.html (note that you need to change line 7):
<!--  This file is the initialization file, and mostly makes it so that you don't have to start off the web mapping application with a long, complicated URL. -->
<HTML>
<HEAD><TITLE>Learning to map Ottawa using Mapserver</TITLE></HEAD>
<CENTER><H2>Ottawa</H2>

<FORM method=GET action="/cgi-bin/mapserv">
  <INPUT type="hidden" name="map" value="/var/www/courses/GEOM4008/smitchExp/ottMap/map/ottawa.map">
  <INPUT type="hidden" name="layer" value="streets">
  <INPUT type="hidden" name="layer" value="highways">
  <INPUT type="hidden" name="zoomdir" value=1>
  <INPUT type="hidden" name="zoomsize" value=2>
  <INPUT type="hidden" name="program" value="/cgi-bin/mapserv">
  <INPUT type="submit" value="Start Mapserver">

</FORM>
</CENTER>
</BODY>
</HTML>

map/ottawa.map:
# Ottawa mapping demo
# Inspired and borrowing code from C. Nieman's Undergraduate Essay, GEOM 4909

MAP
  NAME "Ottawa"

  # ==================================================
  # Reference Objects (map size, projection, extents, etc.)
  # ==================================================
  INCLUDE "./templates/template.ref"

  # ==================================================
  # Polygon and Raster Layers
  # ==================================================
  INCLUDE "./layers/dem.lay"               # Digital Elevation Model
  INCLUDE "./layers/waterpoly.lay"         # Water Bodies
  
  # ==================================================
  # Line Layers
  # ================================================== 
  INCLUDE "./layers/contours.lay"           # Contour Lines
  INCLUDE "./layers/waterlines.lay"         # Rivers
  INCLUDE "./layers/streets.lay"            # Streets
  INCLUDE "./layers/highways.lay"           # Highways

  # ==================================================
  # Annotation Layers
  # ================================================== 
  INCLUDE "./layers/toponyms.lay"           # Toponyms
END #mapfile

map/templates/template.ref:

SHAPEPATH "../data/"
FONTSET "../etc/fonts.txt"

STATUS ON
SIZE 640 480
EXTENT -75.72 45.38 -75.70 45.43
UNITS DD
IMAGECOLOR 255 255 255
IMAGETYPE agg/png24
CONFIG  "MS_ERRORFILE" "stderr"
DEBUG 2

# ==================================================
# Output Format Definition
# ==================================================

OUTPUTFORMAT
  NAME "agg/png24"
  MIMETYPE "image/png; mode=24bit"
  DRIVER "AGG/PNG"
  EXTENSION "png"
  IMAGEMODE "RGB"
END 

# ==================================================
# Web Interface Definition
# ==================================================
WEB
  IMAGEPATH "/tmp/ms_tmp/"
  IMAGEURL "/tmp/"
  TEMPLATE "../htdocs/viewer-template.html"
#   MINSCALE 1  # necessary for CGI point query
#   MAXSCALE 65000
  METADATA
    "wms_title" "Ottawa Maps"
    "wms_srs" "EPSG:4268"
    "wms_enable_request" "*"
    "wfs_title" "Ottawa test maps"
    "wfs_abstract" "Testing WFS serving capabilities, GEOM 4008"
    "wfs_enable_request" "*"
  END
END

# ==================================================
# Projection Definition
# ==================================================
PROJECTION
  "init=epsg:4268"
END

map/layers/streets.lay (just an extract):
# ==================================================
# Layer: Streets
# ==================================================   
LAYER
  NAME "streets"
  STATUS ON
  TYPE LINE
  DATA "streets"
  METADATA
    "wms_title" "Streets"
    "wms_name" "Streets"
    "wms_srs" "EPSG:4268"
  END
  LABELITEM "a_NAME"
  FILTER (("[a_CLASS]" != "HI"))
  # --------------------------------------------------
  # Class: Streets
  # --------------------------------------------------
  CLASS
    NAME "Streets"
    MINSCALE 50000
    MAXSCALE 70000
    STYLE
      COLOR 204 197 190
      WIDTH 1
    END
  END
  # --------------------------------------------------
  # Class: Streets
  # --------------------------------------------------
  CLASS
    MINSCALE 20000
    MAXSCALE 50000
    STYLE
      COLOR 183 176 169
      WIDTH 3
    END
    STYLE
      COLOR 254 254 254
      WIDTH 1
    END
  END   
  # --------------------------------------------------
  # Class: Streets
  # --------------------------------------------------
  CLASS
    NAME "Streets"
    MINSCALE 15000
    MAXSCALE 20000
    STYLE
      COLOR 183 176 169
      WIDTH 4
    END
    STYLE
      COLOR 254 254 254
      WIDTH 2
    END
    LABEL
      FONT "sans"
      TYPE TRUETYPE
      POSITION CC
      OFFSET 0 0
      ANGLE FOLLOW
      SIZE 7
      BUFFER 3
      MINDISTANCE 300
      MINFEATURESIZE 10
      COLOR 0 0 0
      OUTLINECOLOR 242 236 230
      ANTIALIAS TRUE 
      PARTIALS FALSE
    END 
  END 

htdocs/viewer-template.html:
<!-- MapServer Template -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD><TITLE>Learning to map Ottawa using Mapserver</TITLE></HEAD>
<BODY>
<CENTER><H2>Ottawa</H2>

<!--  This is a comment.  This file is the template file that Mapserver will fill in with a map, etc-->

<HR>

<!-- <FORM method="GET" action="[program]"> -->
<FORM name="mapserv" method="GET" action="/cgi-bin/mapserv">

<!-- Note that the following form INPUT is actually the map image -->
<!-- This is supposed to allow you to click on the map to resubmit the form -->

<INPUT type="image" NAME="img" SRC="[img]" 
	style="border:0;width:640;height:480" ALT="Map Image" />

<BR>
Map Control:
<select name="zoom">
      <option value="4" [zoom_4_select]>Zoom In 4x</option>
      <option value="3" [zoom_3_select]>Zoom In 3x</option>
      <option value="2" [zoom_2_select]>Zoom In 2x</option>
      <option value="1" [zoom_1_select]>Recenter</option>
      <option value="-2" [zoom_-2_select]>Zoom Out 2x</option>
      <option value="-3" [zoom_-3_select]>Zoom Out 3x</option>
      <option value="-4" [zoom_-4_select]>Zoom Out 4x</option>
</select>

<br>
<!--  Now some hidden inputs, for passing the map coordinates, extent, map name, ...  -->
<INPUT type="hidden" name="imgxy" value="[center_x] [center_y]">
<INPUT type="hidden" name="imgext" value="[mapext]">
<INPUT type="hidden" name="map" value="[map]">
<INPUT type="hidden" name="savequery" value="true">
<INPUT type="hidden" name="mapext" value="shapes">
<INPUT type="hidden" name="program" value="[program]">

<BR>
<INPUT type="submit" value="Refresh/Query" />
<br>
<SELECT multiple name="layer" size=6>
  <OPTION value="streets" [streets_select]>Streets</OPTION>
  <OPTION value="highways" [highways_select]>Highways</OPTION>
  <OPTION value="water_lines" [water_lines_select]>Water boundaries</OPTION>
  <OPTION value="water_polygons" [water_polygons_select]>Water polygons</OPTION>
  <!-- not working, have not investigated it yet <OPTION value="toponyms" [toponyms_select]>Water labels</OPTION> -->
  <OPTION value="contours" [contours_select]>Contours</OPTION>
  <OPTION value="dem" [dem_select]>DEM</OPTION>
</SELECT>
</FORM>
</CENTER>
</BODY>
</HTML>