Programming in Perl

CSCI-2962

Wednesdays, 4-5:50pm, DCC 330

perlF02@cs.rpi.edu

Name Email Office Office Hours Phone AIM
Instructor: Paul Lalli lallip@cs.rpi.edu Lally 004 T 4-5, F 2-3 276-8988 PerlRPI
Undergrad TAs: Justin McGuire mcguij2@cs.rpi.edu CII 3130 T 12-1
David Foster fosted@cs.rpi.edu CII 3130 R 2-3
Richard Conlan conlar@rpi.edu CII 3130 M 2-3
Course Text Books Required Optional
Title: Programming Perl Learning Perl CGI Programming With Perl
Authors: Larry Wall, Tom Christiansen, & Randal L. Schwartz Randal L. Schwartz & Tom Phoenix Scott Guelich et al
Edition: 3rd 3rd 2nd
Publishers: O'Reilly O'Reilly O'Reilly
ISBN: 0-596-00027-8 0-596-00132-0 1-565-92419-3

Course Info Announcements Course Policies Syllabus Perl Quotes Hyperlinks Definitions & Acronyms Homeworks Handouts Check Grades

Announcements

Saturday, December 14
Wednesday, December 4
Tuesday, November 26
Sunday, November 24
Wednesday, November 20
Friday, November 15
Wednesday, November 13
Tuesday, November 12
Sunday, November 10
Thursday, November 7
Wednesday, November 6
Older Announcements
Course Info Announcements Course Policies Syllabus Perl Quotes Hyperlinks Definitions & Acronyms Handouts Homeworks Check Grades

Course Policies

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

There will be one homework assigned aproximately every two weeks, for a total of Aproximately six (6) 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
or
60% of the Homework average and 40% of the Exam average,
whichever results in a higher course average for each student.

Each homework will have the same weight, as will each exam.

Your letter grade will be computed based on the following scale: (numeric grades will be rounded to the nearest tenth of a point)

A
>= 90.0%
B
80.0%-89.9%
C
70.0%-79.9%
D
60.0%-69.9%
F
< 60.0%

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. Along the same lines, under no circumstances will there be any opportunity to salvage a grade by redoing an assignment or by doing an 'extra credit' asignment.

Academic Integrity

All homeworks are to be done individually, unless specifically noted otherwise. You may discuss programming style, concepts, and error debugging 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.

All of the following are considered violations of Academic Integrity, and will be penalizied equally:

In addition, YOU are responsible for ensuring that no other student is able to access your code. Take any and all necessary precautions to prevent this.
In all cases of academic dishonesty, no attempt will be made to determine which submission is "Authentic" or "Original". Both students will be penalized equally, as follows:

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 textbooks, 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.

RPI-Speak:
"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
English:
You cheat, you fail -- Paul Lalli

Course Info Announcements Course Policies Syllabus Perl Quotes Hyperlinks Definitions & Acronyms Handouts Homeworks Check Grades

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 28 Introduction to CSCI-2962 (PDF) Policies, Info, etc
Aug 28 Introduction to Perl (PDF) shebang, basic I/O, variables Chapter 1, pgs 45-60
Sept 4 Interpolation (PDF), Context (PDF), Operators (PDF), File/Directory access (PDF) variable & backslash interpolation, scalar/list context, operators, operator precedence, File & Directory manipulation pgs 61-79, Chapter 3
Sept 11 Built-in Functions (PDF), Command Line arguments (PDF), Control Structures (PDF), Running External Programs (PDF) @ARGV, push, pop, splice, shift, unshift, keys, values, sort, length, index, reverse, stat, if-else, while, do, for, foreach, next, last, redo, until, unless, backticks, system, pipes Chapter 4
Sept 18 Regular Expressions (PDF) Intro to regexps, basics of regexps pgs 139-178
Sept 25 More Regular Expressions (PDF) modifiers, transliteration, Lookaround Assertions pgs 178-202
Oct 2 More Built-In Functions (PDF), Review for Midterm map, grep, glob, each; Review Questions (PDF) & Answers (PDF)
Oct 9 MidTerm Exam - Questions (PDF), Answers (PDF)
Oct 16 References (PDF), Subroutines (PDF) named & anonymous references, multi-dimentional arrays and hashes; defining & calling subroutines, parameters, prototypes, return values Chapter 6
Oct 23 Object oriented programming (PDF) classes, methods, standard modules & pragmas Chapter 12 - not all of it
Oct 30 NO CLASS
Nov 6 CGI Programming (PDF) CGI Basics - forms, methods, etc Mouse,
CGI.pm docs,
Another documentation
Actual CGI.pm file
Nov 13 More CGI (PDF) HereDocs, Multiple Submits, Emailing, Cookies, File Uploading
Nov 20 Review for Final Exam Question and Answer Session
Dec 4 Final Exam
* These topics will not be covered in class. It is presumed that most students have a passing familiarity with these two topics. The presentations here are merely a reference for those who are not accustomed to Unix or HTML.
Course Info Announcements Course Policies Syllabus Perl Quotes Hyperlinks Definitions & Acronyms Handouts Homeworks Check Grades

Perl Quotes

A great many things have been said about Perl. Many of them quite funny. If you happen to come across a passage about Perl that makes you grin or laugh, please share your good fortune with the rest of the class.

Enter the Quote
Your name
Source (author, site, reference, etc)
Leave fields blank to view existing quotes

Course Info Announcements Course Policies Syllabus Perl Quotes Hyperlinks Definitions & Acronyms Homeworks Check Grades

Links

The following hyperlinks may be useful to your learning of Perl and your success in this course:

Please feel free to suggest another link


Course Info Announcements Course Policies Syllabus Perl Quotes Hyperlinks Definitions & Acronyms Handouts Homeworks Check Grades

Definitions & Acronyms

The following terms will be used frequently throughought this course.
C
Probably the industry-standard programming language. Paul likes to live in denial that it exists, but perl is actually written in C.
Camel
Nickname for Programming Perl, the book on Perl
camel
"Kind of a horse designed by committe." The pseudo-official mascot of Perl. The association of camels with Perl is trademarked by O'Reilly - so don't tell them Paul uses a camel for PerlRPI's buddy icon.
CPAN
Comprehensive Perl Archive Network. Repository for all Perl modules not included in the core distribution
Java
Ewwwwwwwww!
Labstaff
The RPI Computer Science department's group of staff responsible for maintaining the Computer Science network - which is completely distinct from RCS. They can be reached at labstaff@cs.rpi.edu
Lalli
Your instructor. Not to be confused with Lally
Lally
Your instructor's office building. Not to be confused with Lalli
Llama
Nickname for Learning Perl, an extremely good tutorial for Perl
Mouse
Nickname for CGI Programming with Perl, an excellent reference for learning to create CGI scripts using Perl
Perl
Pratical Extraction and Report Language. The language we study in this course. Note this is *not* an acronym (it's a retronym), so don't make it all-caps.
perl
the implementation of Perl. ie, program that runs your Perl script.
RCS
Rensselaer Computer Systems. The network of computer systems and terminals all over campus. In reality, the network includes machines which run Windows, Unix, and Macintosh. As far as this class is concerned, "RCS" refers soley to the Unix machines on which perl is installed.
RCS Id
Rensselaer Computer Systems Identification. Your login Id. The first part of your email address. Not to be confused with your RIN.
RegExps
Regular Expressions. The power-house of Perl
RIN (aka RPI Id #)
Rensselaer Id Number. The way the registrar identifies you. The nine-digit number that replaced your social security number a few years ago. Not to be confused with your RCS Id
RPI
You should know this one
TLA
Three Letter Acronym
TMTOWTDI
There's More Than One Way To Do It. The motto of Perl.
Wall, Larry
The creator and primary maintainer of Perl. To say he has issues is something of an understatement. See what I mean?

Valid XHTML 1.0!