Perl Class Syllabus

 

Instructor: Darin London, Lead Developer, IGSP-IT

email: darin.london@duke.edu

 

Introduction

 

It is arguable by some that the programming language we will be talking about in this class literally saved the Human Genome Project. It is definitely the most used language in the field of bioinformatics. The aim of this class is to help get you started using this Practical Extraction and Reporting Language in your day to day research tasks. The class will consist of five (6) 1-hour sessions (2 per week). Starting from the first session, and continuing every other session, we will have a short quiz. It is my belief that the best way for you to learn a programming language is to spend time reading the language in the wild to decipher it into your own language. The quiz reflects this belief. It will always consist of one section on the previous week's topics (if any), and one section on the current week's topics. But wait, you might ask, how am I to know the correct answer to a question on a topic I havent even learned yet!? The class isnt for credit, so I can do whatever I want to do, WUHAHAHAHA! But seriously. Dont Worry. The idea is to get you to read a piece of code, and make a logical stab at what it is accomplishing. Perl can be written in some strange binary language, or even as beautiful, expressive poetry. But well written perl will look like a piece of logical, self documenting human text. All of the questions for the current week's topics will be self-documenting, but, I hope they will challenge you to the point of coming up with an 'AHA!, I didnt know you could do that with Perl!' moment when you realize just what the code is doing. The second portion of the quiz will, hopefully, reinforce what you learned the previous session. The rest of the time will be spent talking about code, writing code, running code, and debugging code. The class will end on a wimper. There is no final, no large project, no report, nothing. Nonetheless, I think you will be prepared to write your own code to do whatever your projects might require.

 

Class Website

 

http://perlsOfLondon.pbwiki.com

 

The place to find this syllabus, and the lecture notes

 

 

Day 1

 

 

  • quiz
  • Intro, pass this thing you are reading out, talk about this thing you are reading.
  • What do you want a computer to do?
  • Basic Unix/Shell
  • editing in Unix. vi and Emacs.
  • Intro to Perl
    • path
    • version
    • hello world script (what class would be complete without it)
    • different ways of running a perl script
  • The essential Perl Library

 

 

Day 2

 

 

  • Filehandles (when redirection isnt enough, or wont work)
    • STDIN
    • STDOUT
    • STDERR
  • Operators (number, string)
    • Binary Arithmetic
    • assignment
    • string
    • logical
    • comparison
    • file tests
  • Flow Control
    • the evanescent quality of 'Truth', at least in Perl
    • if, elsif, else
    • while
    • unless
    • for
    • foreach
    • next, last
  • Data types, lvalues
    • scalars
    • arrays
    • hashes

 

 

Day 3

 

 

  • quiz
  • List Processing, slices, and @ARGV
    • map
    • grep
    • sort
    • Schwartzian Transforms
  • subroutines
  • References & globs
    • passing by reference vs passing by value
    • multidimensional hashes/arrays
    • coderefs
    • closures
  • Regular Expressions 101

 

 

Day 4

 

 

  • Packages/Modules
  • Make a Module
  • @INC
  • Intro to Object Oriented Programming
    • Objects vs. Procedural Code
    • Is Perl OO? (No, but we'll never know the difference)
    • What distinguishes perl OO from Java, Python, etc.
  • Write an object oriented Module

 

 

Day 5

 

 

  • quiz
  • Network Programming with Perl
    • FTP
    • HTTP
    • SOAP (IGSPnetServices)
  • CPAN
  • Perl Objects I have known and Loved
  • Perl Mongers, Perl Monks

 


Page Information

  • 4 months ago [history]
  • View page source
  • You're not logged in
  • Tags: itinerary

Wiki Information

Recent PBwiki Blog Posts