<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="TrainingCatalog.xsl"?>
<!DOCTYPE course SYSTEM "TrainingCatalog.dtd">
<course title="Perl Jumpstart">
  <keywords>
    <keyword>Perl training</keyword>
    <keyword>programming</keyword>
    <keyword>programmer</keyword>
    <keyword>Perl</keyword>
    <keyword>training</keyword>
  </keywords>
  <duration units="days">2</duration>
  <format>
    <description>Emphasis on practical skills</description>
    <description>Hands-on</description>
    <description>Web-based materials</description>
  </format>
  <courseware>
    <url>http://www.keller.com/perljumpstart</url>
  </courseware>
  <audience>
      This class is for programmers who want to add Perl
      to their repertory of languages.
  </audience>
  <objectives>
    <objective> Grasp the syntax of Perl </objective>
    <objective> Invoke Perl </objective>
    <objective> Interact with users through standard I/O </objective>
    <objective> Do file I/O </objective>
    <objective> Use various built-in functions </objective>
    <objective> Embed comments in your code </objective>
    <objective> Write loops, branches, and related control structures </objective>
    <objective> Process text in a variety of powerful ways </objective>
    <objective> Find, compare, and modify strings </objective>
    <objective> Process list variables </objective>
    <objective> Process arrays </objective>
    <objective> Use regular expressions and the associated Perl operators </objective>
    <objective> Use special features of Perl 5 </objective>
    <objective> Process command-line arguments </objective>
    <objective> Use Perl's special built-in variables </objective>
    <objective> Write modular code (subroutines and structure) </objective>
    <objective> Grasp issues of Perl programming style </objective>
    <objective> Apply the notion of scope </objective>
    <objective> Generate attractively-formatted output </objective>
    <objective> Use boolean operators </objective>
    <objective> Pipe to Unix and NT utilities </objective>
    <objective> Use associative arrays </objective>
    <objective> Handle dbm files </objective>
    <objective> Write object-oriented Perl code </objective>
    <objective> Make your programs robust </objective>
    <objective> Handle errors, generate messages, terminate gracefully </objective>
    <objective> Use Perl's debugger </objective>
  </objectives>
  <prerequisites minimum="8">
    <prerequisite>
      Some programming experience; any language is ok
    </prerequisite>
    <prerequisite>
      Basic concepts: variables, control of flow (loops,
      branches), input/output, functions (subroutines)
    </prerequisite>
    <prerequisite>
      Use of a text editor:  any editor available in the
      classroom is ok (Notepad on NT, vi on Unix, etc.)
    </prerequisite>
    <prerequisite>
      Invoking commands at the command-line prompt
    </prerequisite>
    <prerequisite>
      Navigating the filesystem
    </prerequisite>
    <prerequisite>
      Fundamentals of shell programming
    </prerequisite>
    <prerequisite>
      Writing and running scripts
    </prerequisite>
    <prerequisite>
      Regular expressions
    </prerequisite>
    <prerequisite>
      Record- and field-oriented data processing
    </prerequisite>
    <prerequisite>
      Command-line options and arguments
    </prerequisite>
    <prerequisite>
      Basic notions of I/O in Unix or NT; standard in/out/error
    </prerequisite>
    <prerequisite>
      Creating and managing files
    </prerequisite>
  </prerequisites>
  <method>
    <p>
    With a series of practical examples that are
    increasingly sophisticated, this course teaches the foundations of Perl
    programming. Attendees construct a life-like data processing package for
    the hypothetical Joe's Garage. The essential components of the language
    are introduced as they are used to satisfy Joe's data management, entry,
    and reporting requirements.
    </p>
	  <p>
	  Programming is best learned by example. This presentation is
    task-oriented rather than the more common but less effective
    feature-oriented approach. As each mechanism in the language is presented,
    it is clear why it is needed, and the example demonstrates it quickly.
    </p>
	  <p>
	  No other Perl class covers this much material this quickly.
    Attendees emerge with practical skills -- they can write substantial
    Perl programs of their own -- after being away from their desks for a
    minimum time.
    </p>
  </method>
  <references>
    <reference><url>http://www.perl.com/</url></reference>
    <reference>O'Reilly's books on Perl
      <url>http://www.oreilly.com/publishing/perl/</url>
    </reference>
  </references>
  <setup>
    <requirement>A classroom</requirement>
    <requirement>A whiteboard or flipchart</requirement>
    <requirement>A computer for each student</requirement>
    <requirement>Unix/Linux/Solaris/HP-UX or Windows 95/98/NT/2000)</requirement>
    <requirement>A computer for the instructor</requirement>
    <requirement>A data projector for the instructor's computer</requirement>
    <requirement>A web browser on each computer</requirement>
    <requirement>Connection to the Internet</requirement>
    <requirement>Perl version 5.004 or later</requirement>
    <url>http://www.keller.com/curric/perl-setup.html</url>
  </setup>
  <site>
    This course can be taught in your classroom, anywhere in
    the world.
  </site>
  <travel>
    Travel outside the San Francisco Bay Area requires
    reimbursement of the instructor's travel expense.
  </travel>
</course>

