Programming in Perl - CSCI 2962

Instructor TA Course Text Books
Paul Lalli
Office: Lally 004
Phone: 276-8988
Office Hours:
  • Tues 4-5
  • Fri 11:30-12:30
Justin McGuire
Office Hours:
  • Tues 4-5 Lally 004
  • Thur 2-3, AE 217
Programming in Perl
CRN: 44125
Wednesdays, 4:00-5:50pm
Amos Eaton 214

Programming Perl
Larry Wall, Tom Christiansen, & Randal L. Schwartz
3rd Edition
O'Reilly Publishers
ISBN: 0-596-00027-8
Learning Perl
Randal L. Schwartz & Tom Christiansen
2nd Edition
O'Reilly Publishers
ISBN: 1-56592-284-0

Announcements Course Information Syllabus Policies Check Grades


December 12th
December 11th
December 7th
December 5th
December 3rd
December 1st
November 28th
November 27th
November 26th
November 24th
November 20th
November 19th
November 14th
November 13th
November 10th
November 8th
November 7th
November 6th
November 5th
November 2nd
November 1st
October 31st
October 30th
October 27th
October 24th

Older Announcements

Course Policies

This 2-credit course will run the entire semester, from 4:00pm to 5:50pm on Wednesdays.

There will be aproximately five (5) homeworks assignments throughout the course of the semester. Submission instructions will be included with each assignment. All homeworks will be due at 11:59:59pm Eastern Time on the due date. Homework will be accepted up to 24 hours past the deadline at a penalty of 20% off the homework's grade. Homeworks turned in more than 24 hours past the deadline will be graded a 0.

There will be two (2) exams: a mid-term exam halfway through the course, and a final exam on the last day of class. You will have the full 1 hour, 50 minutes to work on each exam. While the final exam will not be cumulative, the nature of programming will require you to apply knowledge gained during the first half of the course on the final exam

Your course grade will be derived by taking either
70% of the Homework average and 30% of the Exam average
60% of the Homework average and 40% of the Exam average,
whichever results in a higher course average for each student.

Your letter grade will be computed based on the following scale:


Do NOT expect a curve or scale. If there are extreme circumstances (ex, everyone in the class is getting an F), I may consider scaling the final grades, but don't plan for it.

Academic Integrity

All homeworks are to be done individually. You may discuss programming style and concepts with your classmates, but you may not work together on an assignment. Do not look at anyone else's code, and do not show your code to anyone else.

When taking the exams, you may use only the resources specifically noted as acceptable. These may or may not include lecture notes, your own notes, the course textbook, or other books. Under no circumstances will these include any other students. Acceptable resources will be noted at least two (2) weeks prior to each exam.

"The definitions and examples presented (in the Rensselaer Handbook) are samples of the various types of academic dishonesty and are not to be construed as an exhaustive or exclusive list. The academic dishonesty policy also applies to scholarly pursuits and research. Additionally, attempts to commit academic dishonesty or to assist in the commission or attempt of such an act, are also violations of this policy. If found in violation of academic dishonestly policies, students may be subject to two types of penalties. The Instructor administers an academic penalty (i.e., failure of the course), and the student may also be subject to the procedures and penalties of the student judicial system outlined in this handbook." -- The Rensselaer Handbook of Student Rights and Responsibilities
You cheat, you fail -- Paul Lalli

Course Syllabus


NOTE: This schedule is Tentative. The topics we cover each week will depend almost entirely on how much we were able to cover in the previous lecture.

Date Lecture Notes Topics Covered Programming Perl
NONE HTML Basics (PDF) * The very basics - html, head, title, body, font, lists, table, etc
NONE Unix Basics (PDF) * The very basics - cd, mkdir, ls, rm, rmdir, chmod, etc
Aug 29 Introduction to CSCI-2962 (PDF) Policies, Info, etc
Aug 29 Introduction to Perl (PDF) shebang, basic I/O, variables Chapter 1, pgs 45-60
Sept 5 Interpolation (PDF), Context (PDF), Operators (PDF), File/Directory access (PDF) scalar/list context, variable & backslash interpolation, operator, operator precedence, File & Directory manipulation pgs 61-79, Chapter 3
Sept 12 Useful Functions (PDF), Command line arguments (PDF), Control Structures (PDF) @ARGV, push, pop, splice, shift, unshift, keys, values, if-else, while, do, for, foreach, next, last, redo, until, unless Chapter 4
Sept 19 Regular Expressions (PDF) intro to regexps, basics of regexps pgs 139-178
Sept 26 More Regular Expressions (PDF) modifiers, translation, etc pgs 178-202
Oct 3 Lookaround Assertions (PDF),
Review for Midterm
Lookahead, Lookbehind;
Question and Answer Session
Oct 10 MidTerm Exam
Oct 17 Subroutines (PDF) defining & calling, parameters, prototypes, return values Chapter 6
Oct 24 Random bits of Perl (PDF) eval, map, back-ticks, generic quotes, grep, do (search the index - all over the place)
Oct 31 Object oriented programming (PDF) references, classes, methods Chapter 12 - not all of it
Nov 7 CGI Programming (PDF)
More CGI (PDF)
CGI Basics - forms, methods, etc Llama Chapter 19, docs,
Another documentation
Actual file
Nov 14 Whatever else we have time for
Nov 28 Review for Final Exam Question and Answer Session
Dec 5 Final Exam

* These topics will not be covered during lecture. It is assumed most of you are already familiar with these topics. I am presenting very basic overviews for those who do not, as these topics will be necessary to carry out certain functions in this course.

The Perl Quotes Page

A great many things have been said about Perl. Many quite funny. Some you will find in your textbooks by the authors, others you may find randomly on the net or in a magazine. If you see something you think might bring a smile to someone's face, by all means, share it with the class:

Your quote:
Source (author and book/magazine/site/etc):
Your name:
Submit quote and/or view previously submitted quotes

Valid XHTML 1.0!