CSCI-2962
Wednesdays, 4-5:50pm, DCC 330
| 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
- Saturday, December 14
-
All homeworks, exams, and extra credits have now been corrected and
graded. Please check your grades online. I will be submitting Final
Grades to SIS over this weekend, so if there are any discrepancies,
please let me know immediately.
- Wednesday, December 4
-
The Final exam has been posted to the handouts page. Answers will be
posted within a few days.
-
Don't forget, today's exam is being held in Troy 2012 and Troy 2018,
NOT DCC 330. If your last name starts with A-J, or if you do not have
a laptop, please report to Troy 2012. Otherwise, please report to
Troy 2018.
- Tuesday, November 26
-
My solution to HW5 is posted on the homeworks page. Note that if I
were to grade this solution, I'd probably give myself 0/5 for
"Output Style" Hopefully, yours looks better than mine.
- Sunday, November 24
-
Now posted on the handouts page are the review questions and Final
Exam Information from Wednesday's class, along with solutions to the
review questions.
- Wednesday, November 20
-
Now posted on the handouts page are the final exam question and
answers from the previous two semesters. Keep in mind that this
semester's exam will be a different format, and the questions
therefore will not be quite the same difficulty level.
- Friday, November 15
-
Wednesday's class will be a review for the Final Exam. Please come
prepared with questions to ask. Also, I will be asking CS Majors to
fill out a survey on Academic Advising, as well as handing out course
evaluations for the entire class.
-
It was announced in class Wednesday that as a result of a 30-11 vote,
the final exam will be given under the new, online format. If you
have any questions regarding this format, let me know. Preferably,
come to the Final Exam Review session during this week's class.
- Wednesday, November 13
-
I have posted an extra-credit assignment, homework 6, to the homeworks
page. We will discuss it in class today.
- Tuesday, November 12
-
I have to cancel my Tuesday office hours for next week, 11/19. Since
it would be in horrendous taste to not hold office hours on the day a
homework is due, I am extending the HW5 deadline to 11:59:59pm EST on
Wednesday, 11/20.
-
I implore everyone to visit http://www.lib.rpi.edu/resources/databases/trials/safari.html.
The RPI Library system has a trial subscription to Safari, and online
technical library. This library includes virtually every O'Reilly
programming book, including our three texts. Whether the subscription
continues past the end of the month or not depends on user feedback.
Please visit the page, try out the system, and encourage Matt Benzing to purchase a full
subscription to the Safari System.
- Sunday, November 10
-
Grading of HW4 will begin shortly. If you have any questions or
concerns about your grade, contact Dave first, then take the issue to
me if Dave can't resolve it.
-
My solution to HW4 is available on the Homeworks page
- Thursday, November 7
-
Available on the handouts page are all of the example scripts from
yesterday's class, as well as a text file describing how to get
started using CGI on the CS system.
- Wednesday, November 6
-
Homework 5 is now available. We will discuss
it after class today.
Older Announcements
Course Info
Announcements
Course Policies
Syllabus
Perl Quotes
Hyperlinks
Definitions & Acronyms
Handouts
Homeworks
Check
Grades
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:
- Copying (manually or mechanically) the homework assignment of
another student (past or current)
- Giving (directly or indirectly) your code to another
student
- Working on an assignment in cooperation with another
person
- Placing your code in any publicly accessable location (ex:
public-access computer, public drive of a networked computer)
- Lending your computer, which contains your code, to another
student, even if there is no intention of Academic Dishonesty
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:
- First violation: Failure of the assignment, and a one letter
grade reduction off the final grade
- Second violation: Failure of the course
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
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
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.
Course Info
Announcements
Course Policies
Syllabus
Perl Quotes
Hyperlinks
Definitions & Acronyms
Homeworks
Check
Grades
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
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?