CURRICULUM PROPOSAL FORM #3
UNIVERSITY OF WISCONSIN-WHITEWATER

NEW COURSE


 
Effective: Fall, 2001 If adding a Graduate component to an existing course, check here ___
Course Number: * 765-382   Cross Listed Number:  
Course Title: Perl and CGI Scripting  

(limited to 65 characters)
 
15 Character Abbreviation: Perl and CGI
25 Character Abbreviation: Perl and CGI Scripting

 
 
Sponsor: Bennette Harris   E-mail Address: harrisb@mail.uww.edu
Department: Mathematical and   College: Letters and Sciences
  Computer Sciences      
Co-sponsor:     E-mail Address:  
Department:     College:  
  * You MUST verify course numbers with Registrar's Office prior to submitting (x1211)

 
 
Other Programs Affected: None

 
 
Check if course is to meet any of the following requirements:
__ None __ Writing __ Computer __ Diversity __ General Ed and Area  

 
 
Credit/Contact Hours: (per semester)
Total lab hours: 0   Total lecture hours: 48
Number of credits: 3   Total contact hours: 48

 
 
Check if course is repeatable: X No _ Yes (if yes, answer the following questions)
  • No of times in major 
    No of credits in major  
  • No of times in degree 
    No of credits in degree  

 
 
Enter the appropriate titles if the course is required in any of the following:
Major Title(s)          
Minor Title(s) Web Site Design and Administration        
Emphasis Title(s) Cert. in Web Site Design and Admin.        

Course justification:
Web site design and administration is perhaps one of the fastest growing areas in the modern information and technology-driven world. Typical programs of study tend to focus on either document design or web server technologies and systems. The minor and certificate programs offered by the Department of Mathematical and Computer Sciences is designed to bridge the gap smoothly between these two extremes by combining skills in the latest document design systems and paradigms with a deep understanding of the background technologies that drive document delivery and processing.

The Common Gateway Interface (CGI) is the primary means whereby a web page communicates information back to a server for further processing. At the server side, an application must exist to process the information. Perl is the most widely used scripting language for CGI application development. Perl also is often the language of choice for interfacing with server-side databases. Although originally a Unix-only language, the creation of implementations for other operating systems has increased its applicability.
 

Relationship to program assessment objectives:
The proposed course extends the Department’s ability to expose students to cutting-edge technologies, and to allow them to compete in the current job market. This course is a key component in the Department’s overall strategy for offering programs that offer the very latest in skills needed by our graduates.

The course provides a wide range of problem-solving opportunities designed to enhance students’ critical thinking skills.
 

Budgetary impact:
The Mathematical and Computer Sciences Department currently has faculty able to teach the proposed course. The Department also has been allocated an additional position by the College of Letters and Sciences and is conducting a search for a person to augment the skills already present within the Department. With the additional staff, and with the computer facilities already available, no additional resources should be required initially.
 

Course description:
Perl and CGI scripting are key to processing web forms, as well as for automating a wide range of server tasks. Perl is optimized for scanning text files, extracting information and generating reports/web pages based on the results. This course will provide a thorough introduction to the Perl language, with an emphasis on its use in processing web forms. Students will learn to manipulate data, generate dynamic web pages, control email and much more.
 

Course requisites:
Prerequisites 765-171 Introduction to Programming and 765-281 HTML and Web Page Design, or equivalent preparation and consent of instructor.
 

If dual listed, list graduate level requirements for the following:

1. Content (e.g., What are additional presentation/project requirements?) N/A

2. Intensity (e.g., How are the processes and standards of evaluation different for graduates and undergraduates? ) N/A

3. Self-Directed (e.g., How are research expectations differ for graduates and undergraduates?) N/A
 

Course objectives and tentative course syllabus:

Course Objectives:
Upon successful completion of this course, students will be able to

  1. Understand the concept of server-side CGI and CGI scripting
  2. Understand the nature and capabilities of the Perl programming language
  3. Find Perl script archives on the web.
  4. Understand the process for including and authorizing Perl scripts on websites.
  5. Create dynamic web pages in Perl by combining template files with data drawn from a flat-file database.
  6. Create complex web-form processing systems in Perl, such as a shopping cart application.
  7. Understand the security risks posed by CGI scripting, and use systems such as TaintPerl to minimize these risks.
  8. Automate simple system maintenance chores with Perl and Crontab


Tentative Syllabus:

Text:
Schwartz, Randal L. & Tom Christiansen (1997). Learning Perl, 2nd Edition. O’Reilly.

Purpose of the Course:
Perl and CGI scripting are key to processing web forms, as well as for automating a wide range of server tasks. Perl is optimized for scanning text files, extracting information and generating reports/web pages based on the results. This course will provide a thorough introduction to the Perl language, with an emphasis on its use in processing web forms. Students will learn to manipulate data, generate dynamic web pages, control email and much more.

Grading:
Hour Exams: 3 @ 150 pts each: 450
Programs: 450
In-class work: 100
Final Exam: 500
Total: 1500

The final course grade will be assigned as follows: A: 90% or better; B: 80 - 89%; C: 70 - 79%; D: 60 - 69%; F: below 60%. Passing course grades will be awarded only to those students who turn in all programming assignments and take all scheduled examinations.
 

Tentative Course Schedule:

Week 1: Chapter 1: Introduction and Chapter 2: Scalar Data
Week 2: Chapter 3: Arrays and List Data and Chapter 4: Control Structures
Week 3: Chapter 5: Hashes and Chapter 6: Basic I/O
Week 4: Chapter 7: Regular Expressions
Week 5: Chapter 8: Functions
Week 6: Chapter 9: Miscellaneous Control Structures
Week 7: Chapter 10: Filehandles and File Tests
Week 8: Chapter 11: Formats
Week 9: Chapter 12: Directory Access
Week 10: Chapter 13: File and Directory Manipulation
Week 11: Chapter 14: Process Management
Week 12: Chapter 15: Other Data Transformation
Week 13: Chapter 16: System Database Access
Week 14: Chapter 17: User Database Manipulation
Week 15: Security and TaintPerl


Bibliography: (Key or essential references only. Normally the bibliography should be no more than one or two pages in length. Indicate current library holdings by placing an asterisk [*])

*Birznieks, Gunther & Selena Sol (1997). CGI for commerce : a complete Web-based selling solution. M&T Books.

Christiansen, Tom & Nathan Torkington (1998). Perl Cookbook: Tips and Tricks for Perl Programmers. O’Reilly.

Descartes, Alligator & Tim Bunce (2000). Programming the Perl DBI: Database programming with Perl. O’Reilly.

*Friedl, Jeffrey E. F. (1997). Mastering Regular Expressions: Powerful Techniques for Perl and Other Tools. O’Reilly.

Guelich, Scott, Shishir Gundavaram, and Gunther Birznieks (2000). CGI Programming with Perl, 2nd Edition. O’Reilly.

*Gundavaram, ShiShir (1996). CGI Programming on the World Wide Web. O’Reilly.

Hardt, Dick, Erik Olson, David Futato & Brian Jepson (1998). Perl Resource Kit -- Win32 Edition. O’Reilly.

*Johnson, Eric F. (1996). Cross-platform Perl. M&T Books.

*Orwant, Jon (1996). Perl 5 interactive course. Waite Group Press.

Orwant, Jon, Jarkko Hietaniemi & John Macdonald (1999). Mastering Algorithms with Perl. O’Reilly.

*Schwartz, Randal L. & Tom Christiansen (1997). Learning Perl, 2nd Edition. O’Reilly.

*Schwartz, Randal L., Erik Olson & Tom Christiansen (1997). Learning Perl on Win32 Systems. O’Reilly.

*Siever, Ellen, Stephen Spainhour & Nathan Patwardhan (1998). Perl in a Nutshell. O’Reilly.

Spainhour, Stephen & Robert Eckstein (1999). Webmaster in a Nutshell, 2nd Edition. O’Reilly.

Srinivasan, Sriram (1997). Advanced Perl Programming. O’Reilly.

*Tittel, Ed, et al (1996). Web programming SECRETS with HTML, CGI, and Perl. IDG.

*Wall, Larry, Tom Christiansen & Jon Orwant (2000). Programming Perl, 3rd Edition. O’Reilly.

Walsh, Nancy (1999). Learning Perl/Tk: Graphical User Interfaces with Perl. O’Reilly.