CIS-33A - Programming in Perl

Summer Session 2009 - De Anza College

MTWTh 3:10 - 5:50 P.M. in ATC-205


Prerequisite: Computer Information Systems 18A and either Computer Information Systems 15BG or 26A. Advisory: English Writing 211 and Reading 211 (or Language Arts 211), or English as a Second Language 272 and 273.

Course Description

A complete coverage of the core PERL language. Topics covered will include: basic loops and control structures, the elemental data types and operators, subroutines and variable scooping, regular expressions and text parsing, manipulation of files and directories, advanced list processing with grep and map, references, built-in functions and core modules, and advanced input/output including random-access files and formatting.

Three hours lecture, six hours laboratory.

Course Objectives

The student will:

  1. Create programs using regular expressions and scalar operators to parse, analyze and error-check files and user input.
  2. Create programs which create and use lists to store files and data.
  3. Create programs which create and use hashes to store data, prevent duplicate data, and count frequencies of occurrence of events.
  4. Create programs which generate files and/or manipulate files and their attributes.
  5. Create programs which manipulate directories.
  6. Create programs which search for or alter substrings within strings.
  7. Create programs which selectively access portions of files rather than entire files.
  8. Create programs which use advanced list functions to filter out elements of a list or use formulae to change the contents of a list.
  9. Create programs which use references to pass lists or hashes to functions or to build multidimensional data structures.
  10. Accessing the operating system with command substitution and pipes.


Mary Ann May-Pumphrey


Learning Perl (5th Edition) by Schwartz, Phoenix, and foy. (We'll be reading all but 2 chapters from this book.)

Intermediate Perl by Schwartz, Phoenix, and foy. (We'll be reading just 3 chapters from this book.)

Daily Schedule

Lab: 3:10 - 3:30 MTWTh
Lecture: 3:30 - 5:00 MTWTh
Lab: 5:00 - 5:50 MTWTh


Students may be dropped after the third unexcused absence from class. But don't count on this happening! If you need to disappear from the class, drop it yourself to be safe.


Final Letter Grade:

Overall Score Letter Grade
97-100 A+
90-92 A-
87-89 B+
80-82 B-
75-79 C+
67-69 D+
60-62 D-

Depending on the grade breakdown, the instructor may lower the minimum percentage needed for some of these grades. Do not depend on this happening!


In the "real world," the more collaboration, the better. Thus, you are encouraged to collaborate with your classmates and other acquaintances in order to help you produce the best work possible on your assignments. But since this is still an academic setting, your final "hand-in" work must be your own.

If somebody else does the actual work handed in or presented, that will be viewed as an example of cheating, not collaboration. In addition, the midterm and final exam will be traditional academic exams, in which any collaboration will be viewed as cheating.

Any student involved in an incident of cheating, even if serving only to provide work to another student, will be given a grade of "0" for that assignment or exam. No excuses, no exceptions!

Class Schedule


Monday, 06/29 Chapter 1 in Learning Perl
Review of course outline.
Procure accounts.
Lab: Chapter 1 exercises on page 18.
Tuesday, 06/30 Chapter 2 in Learning Perl
Wednesday, 07/01 Chapter 3 in Learning Perl
Thursday, 07/02 Chapter 4 in Learning Perl
Assignment-1 due midnight, Saturday, 07/04
Monday, 07/06 Chapter 5 in Learning Perl
Tuesday, 07/07 Chapter 6 in Learning Perl
Wednesday, 07/08 Chapter 7 in Learning Perl
Thursday, 07/09 Chapter 8 in Learning Perl
Assignment-2 due midnight, Saturday, 07/11
Monday, 07/13 Chapter 9 in Learning Perl
Tuesday, 07/14 Review for Midterm
Wednesday, 07/15 More midterm review and prep!
Start Chapter 10 in Learning Perl
Thursday, 07/16 Midterm exam (2 hours)
Go over midterm solutions (40 minutes)
Monday, 07/20 Chapter 12 in Learning Perl
Tuesday, 07/21 Chapter 13 in Learning Perl
Wednesday, 07/22 Chapter 14 in Learning Perl
Thursday, 07/23 Chapter 16 in Learning Perl
Assignment-3 due midnight, Thursday, 07/23
Monday, 07/27 Chapter 17 in Learning Perl
Tuesday, 07/28 Chapter 4 in Intermediate Perl
Wednesday, 07/29 Chapter 5 in Intermediate Perl
Thursday, 07/30 Chapter 6 in Intermediate Perl
Assignment-4 due midnight, Thursday, 07/30
Monday, 08/03 Left-overs Day
Tuesday, 08/04 Review for final exam
Wednesday, 08/05 More prep for final exam
Thursday, 08/06 Final Exam

bette file
Assignment-5 due midnight, Saturday, 08/07