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 | Lesson | Slides | Topics | Handouts | Texts † |
|---|---|---|---|---|---|
| NONE |
Unix Basics *
|
|
The very basics - cd, mkdir, ls, rm, rmdir, chmod
|
||
| Jan 28 |
Introduction to CSCI2230
Helpful Resources Introduction to Perl |
|
Policies, Info
Resources, Effective Emailing Lexical vs Global, Scalars/Arrays/Hashes, basic I/O |
ICA0
Paul's solution |
C chp 1, pp 45-60, 72-78 L chp 1-3,6, pp 68-73 P intro, data |
| Feb 4 |
Interpolation
Context Operators File/Directory Access |
|
variable and backslash interpolation
scalar vs list context operators, operator precidence open, opendir, close, <>, $/ |
ICA1
Paul's solution |
C chp 3, pp 60-72, 78-85 L chp 1-3,5,12 P op, opentut |
| Feb 11 |
Built-In Functions
Command Line Arguments Control Structures External Programs |
|
lc/uc, math fctns, keys, values, sort, length, index, reverse, file tests, substr
@ARGV, <> magic if/else/unless, while/until, for/foreach, do, given/when, next/last/redo system, backticks, pipes |
ICA2
Paul's solution |
C chp 29, pp 111-126 L chp 10,13, pp 193-196,198-203 P func, syn |
| Feb 18 |
Regular Expressions
|
|
pattern matching, search-and-replace, regexp basics, "dirty dozen"
|
ICA3
Paul's solution |
C pp 139-178 L chp 7-8 P retut, re, reref |
| Feb 25 |
More Regular Expressions
More Built-In Functions |
|
modifiers, lookaround assertions, transliteration
map, grep, qw//, glob, each, eval, defined, exists, undef, our |
ICA4
Paul's solution |
C chp 29 pp 178-202 L chp 9,16 P reref, func |
| Mar 4 |
References
Subroutines |
|
named references, anonymous references, multi-dimensional structures
subroutines, parameters, pass-by-value, pass-by-reference, prototypes, return values |
ICA5
|
C chp 6 & 8 L chp 4 A chp 3-4 P sub, reftut, lol, dsc, ref |
| Mar 11 |
NO CLASS
|
SRING BREAK
|
|||
| Mar 18 |
Object-oriented Programming
|
|
packages, classes, methods, overloading
|
ICA6
Paul's Solution Pair.pm pair.pl Student.pm stud.pl |
C chp 10-13 A chp 2,8,9 P obj, mod, toot |
| Mar 25 |
More OOP
|
|
Inheritance, Exporting/Importing, testing, h2xs, documentation using POD
|
Person Base Class
Student Class Student test file ICA7 Accounts test file Paul's BankAccount Paul's InterestAccount Paul's CheckingAccount Paul's InterestCheckingAccount |
C chp 12 & 26 A chp 12-15 P mod, pod |
| Apr 1 |
Useful Modules
|
|
integer, List::Util, Switch, File::Find, File::Basename, File::Copy, Getopt::Long, Net::FTP, POSIX, Text::Wrap, List::MoreUtils, File::Stream, Regexp::Common, LWP::Simple, Mail::Send
|
ICA8
Paul's Solution |
P modlib |
| Apr 8 |
NO CLASS
|
CLASS CANCELLED
|
|||
| Apr 15 |
CGI Programming
|
|
CGI basics, forms, input types, param()
|
Steps For CGI
CGI Examples ICA9 Paul's Solution (Run) Paul's Solution (View) |
P CGI |
| Apr 22 |
More CGI
|
|
Heredocs, cookies, file uploading, HTML::Template, Taint checking
|
More CGI Examples
ICA 10 Paul's Solution (Run) Paul's Solution (View) |
P CGI, HTML::Template, sec |
| Apr 29 |
Perl/Tk (GUI with Perl)
|
|
Event-driven programming, pack/place/grid, widgets, callbacks, key-binding
|
Steps For Perl/Tk
Hello World Tk Packing Example Tk Menu Tk ICA 11 Paul's Solution |
P Tk |
| May 6 |
Advanced Perl Topics
|
|
database access, signals, fork/exec/wait, Advanced objects
|
Moose Student
main for Student ICA 12 Paul's Option A - ica12A.pl Paul's Option B - parent Paul's Option B - child Paul's Option C - Pizza.pm |
P ipc, Moose, DBI |
* This topic will not be covered in class. It is presumed that most students have a passing familiarity with this topic. The presentation here is merely a reference for those who are not accustomed to Unix.
† Letters in this column represent:
C » Camel » Programming Perl
L » Llama » Learning Perl
A » Alpaca » Intermediate Perl
P » Perldoc » perldoc perl<foo>
