Final Exam Topics
These are the topics that I covered in the second half of the semester.
  Perl
  - 
    Chapter 5
    
      - 
	adding and deleting elements
      
 - 
	keys and values
      
 - 
	looping through a hash
    
 
   - 
    Chapter 7
    
      - 
	matching with / /
      
 - 
	character patterns with [ ]
      
 - 
	special symbols: \d \w \s \D \W \S
      
 - 
	grouping: * + ?
      
 - 
	memory: ( ) \1 $1
      
 - 
	anchoring: ^ $ \b \B
      
 - 
	using =~
      
 - 
	substitutions with s/ / /
      
 - 
	split and join
    
 
   - 
    Chapter 8
    
      - 
	defining functions
      
 - 
	invoking functions
      
 - 
	returning values
      
 - 
	passing arguments
      
 - 
	private my variables and global variables
    
 
   - 
    Chapter 10
    
      - 
	opening and closing a file
      
 - 
	reading from a file
      
 - 
	writing to a file
      
 - 
	testing for file existence
    
 
   - 
    Chapter 12
    
      - 
	translation using tr/ / /
    
 
   - 
    Chapter 17
    
      - 
	opening and closing a dbm file
      
 - 
	adding, deleting and changing elements
    
 
 
  Html - Chapter 5
  - 
    Standard Codes - html, head, body, title
  
 - 
    Paragraphs, line breaks and horizontal rules
  
 - 
    Body Tag
  
 - 
    Links
  
 - 
    URLs - relative and absolute
 
  Server
  - 
    Chapter 3
    
      - 
	AddHandler cgi-script .cgi-extension
      
 - 
	ScriptAlias /cgi-bin /path/to/cgi-bin
      
 - 
	Alias directive
      
 - 
	Options
	
	  - 
	    All
	  
 - 
	    None
	  
 - 
	    Multiviews
	  
 - 
	    ExecCGI
	  
 - 
	    Includes
	  
 - 
	    IncludesNoExec
	  
 - 
	    Indexes
	  
 - 
	    FollowSymLinks
	
 
       - 
	Mime types
      
 - 
	Error Documents
      
 - 
	Log files
      
 - 
	Specific Directives
	
	  - 
	    ScriptAlias
	  
 - 
	    Alias
	  
 - 
	    AddHandler
	  
 - 
	    AddType
	  
 - 
	    ErrorDocument
	  
 - 
	    Location
	  
 - 
	    Directory
	  
 - 
	    Options
	
 
     
   - 
    Chapter 8
    
      - 
	Passing parameters in the URL
      
 - 
	Format of the query string
      
 - 
	Using Fill-Out forms
	
	  - 
	    action, method
	  
 - 
	    text, hidden, password, textarea
	  
 - 
	    submit, reset, image
	  
 - 
	    select, multiple select, radio, checkbox
	
 
       - 
	Accessing scripts using a form (gateways)
      
 - 
	Server Side Includes
	
    
 
   - 
    Chapter 10
    
      - 
	Executing a system command (`date`,calendar.pl)
      
 - 
	Retrieving Server and Browser information (%ENV, printenv.pl)
      
 - 
	Knowing when a script is called the first time (calendar3.pl)
      
 - 
	Using parse-lib.pl to get the query string (get_query( ))
      
 - 
	Using CGI.pm to get the query string
      
 - 
	Preserving state (making forms sticky)
      
 - 
	Writing cookies to the browser (Set-cookie: name; expires=date;
	path=path)
      
 - 
	Retrieving the cookie using parse-lib (get_cookie( ))
      
 - 
	File uploads using CGI.pm (multipary/form-data)
      
 - 
	Server Push (nph-script.pl, multipart/x-mixed-replace, boundary)
      
 - 
	Browser Pull (Refresh: seconds)
    
 
 
  CGI Scripting
  - 
    be able to write scripts: perform operation on server
  
 - 
    how do you know if the script is being called the first time
  
 - 
    query string: know what it looks like for a GET
  
 - 
    get, post
  
 - 
    making forms sticky (maintaining state)
  
 - 
    generating different pages based on input or a calculation
  
 - 
    displaying name/value pairs using parse-lib.pl
  
 - 
    file access: dbmopen and dbmclose
  
 - 
    multipart/form-data
 
  JavaScript
  - 
    alert
  
 - 
    data types
  
 - 
    functions
  
 - 
    if statements
  
 - 
    loops
  
 - 
    object heirarchy for a web page (window, document, frames, links, elements,
    etc)
    
      - 
	methods for objects (open, close, etc)
      
 - 
	properties for objects (length, value, selectedIndex, checked, etc)
    
 
   - 
    form: name, validate before submitting
  
 - 
    events: onClick, onSubmit, onChange, onFocus, onBlur, onMouseOver, onMouseOut