CS 105 Computer Programming: Perl
Spring 2009

Unique # 53984
MW 10:00-11:00, Jan 21 to Mar 11
RLM 5.118

Instructor Yiu Fai Sit
Office hours MW 11:00-12:00, in TAY basement, or by appointment
E-mail yfsit@cs.utexas.edu
Website Use Blackboard, at http://courses.utexas.edu/

Course Objectives

Perl is a programming language that combines the modern robustness of Java with the expedient pragmatism of scripting languages. It offers both the low-level system access of C and the high-level elegance of Lisp. One of its mottoes is, “There’s More Than One Way To Do It.” Its flexibility makes Perl a powerful tool, but its permissiveness can lead to incomprehensible code or mysterious bugs.

This course provides a brief introduction to the language for students who want to add Perl to their toolbox. It assumes familiarity with the fundamental elements of computer programming, but no prior experience with Perl or any other particular language is necessary. Brief weekly assignments will give students hands-on experience writing, debugging, and revising Perl programs. A final project will exercise students' ability to develop a slightly more involved program, integrating concepts familiar from the weekly assignments.

Textbook

Learning Perl, Fifth Edition by Randal L. Schwartz, Tom Phoenix, and brian d foy. Published by O'Reilly Media, Inc., 2008.

Learning Perl is the only textbook necessary. The 4th edition of the book should also be fine, because we will only briefly cover features in the newest version of Perl, which as of this writing has not yet been installed on the UTCS machines.

Students who like Learning Perl and who want more are encouraged to try Intermediate Perl, by the same authors. Students seeking a more in-depth presentation of material from both books are encouraged to read Programming Perl, Third Edition, by Larry Wall, Tom Christiansen, and Jon Orwant. Published by O'Reilly Media, Inc., 2000.

Also, the perldoc web site at http://perldoc.perl.org/perl.html contains both some relatively well-written tutorials and many handy reference material.

Lectures

Students are encouraged to attend every lecture. Any lecture slides or code samples will appear on Blackboard.

Homework

Seven weekly homeworks will be assigned in Wednesday classes and due the following Wednesday at 11:59 PM. Homework will be submitted using the turnin program from a CS account. DO NOT USE THE MICROLAB TURNIN WEB PAGE. Type man turnin on a CS machine for more details.

You have 4 slip days for your homeworks. You may divide your slip days across the homeworks in any way you want.

To create a CS account, visit https://udb.cs.utexas.edu/amut/acut/. To access a CS account, visit the computer lab in the basement of Taylor Hall or log in remotely to a CS machine listed at http://www.cs.utexas.edu/facilities/accommodations/public_labs/unix_hosts_status/.

Grading

Homework assignments and attendance will collectively account for 70% of the final grade. Each assignment's grade will be equally weighted. A final project will account for the remaining 30% of the final grade. Grades may be viewed via Blackboard. Any questions about grades must be submitted in writing (including via e-mail).

Discussion Board

Students are encouraged to use the discussion board that will soon be set up in Blackboard. Appropriate discussion topics include questions about Perl itself, requests for clarification about anything said in class, requests for help with the computing environment, etc. In general, the discussion board is for sharing information that may be of interest to classmates, but obviously homework solutions (before the due date) are off-limits!

Code of Conduct

See http://www.cs.utexas.edu/users/ear/CodeOfConduct.html. Students are encouraged to work together to improve their understanding of the course material, but for all homework assignments, only their own work may be submitted. University policies on academic dishonesty will be strictly enforced.

Schedule

The course will proceed at the pace of one chapter in the text for each meeting. (The chapters are relatively short.) Students should feel free to read each chapter either before or after the corresponding lecture, as better suits their learning style. The instructor reserves the right to adjust the schedule if necessary.

ChapterDateTopic
1 Jan 21 Introduction
2 Jan 26 Scalar Data
3 Jan 28 Lists and Arrays
4 Feb 2 Subroutines
5 Feb 4 Input and Output
6 Feb 9 Hashes
7 Feb 11 In the World of Regular Expressions
8 Feb 16 Matching with Regular Expressions
9 Feb 18 Processing Text with Regular Expressions
10 Feb 23 More Control Structures
11,12 Feb 25 Perl Modules and File Tests
13 March 2 Directory Operations
March 4 References
March 9 Data Structures
16,17 March 11 Process Management and Some Advanced Perl Techniques