Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "2.104",
%%%     date            = "25 November 2016",
%%%     time            = "09:47:47 MDT",
%%%     filename        = "python.bib",
%%%     address         = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone       = "+1 801 581 5254",
%%%     FAX             = "+1 801 581 4148",
%%%     URL             = "http://www.math.utah.edu/~beebe",
%%%     checksum        = "50375 37248 165792 1655565",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "bibliography; BibTeX; object-oriented
%%%                        programming language; Python; scripting
%%%                        language",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a bibliography of books and other
%%%                        publications about Python, an object-oriented
%%%                        scripting and programming language.
%%%
%%%                        This language has its own World Wide Web
%%%                        site at
%%%
%%%                            http://www.python.org/
%%%
%%%                        with information about the language, its
%%%                        source code distributions, on-line
%%%                        documentation, and e-mail discussion lists.
%%%
%%%                        At version 2.104, the year coverage looked
%%%                        like this:
%%%
%%%                             1991 (   3)    2000 (  22)    2009 (  46)
%%%                             1992 (   3)    2001 (  20)    2010 (  20)
%%%                             1993 (   0)    2002 (  23)    2011 (  15)
%%%                             1994 (   0)    2003 (  17)    2012 (  33)
%%%                             1995 (  10)    2004 (   9)    2013 (  26)
%%%                             1996 (  16)    2005 (  12)    2014 (  68)
%%%                             1997 (  32)    2006 (  32)    2015 (  72)
%%%                             1998 (  27)    2007 (  41)    2016 (  20)
%%%                             1999 (   9)    2008 (  42)
%%%                             20xx (   4)
%%%
%%%                             Article:        295
%%%                             Book:           268
%%%                             InCollection:     1
%%%                             InProceedings:   19
%%%                             MastersThesis:    2
%%%                             Misc:             7
%%%                             Proceedings:     15
%%%                             TechReport:      14
%%%                             Unpublished:      1
%%%
%%%                             Total entries:  622
%%%
%%%                        This bibliography was collected from the OCLC
%%%                        library databases, from the Compendex
%%%                        database, from the IEEE INSPEC database, from
%%%                        the University of California MELVYL catalog,
%%%                        from the U. S. Library of Congress catalog,
%%%                        from the Python Web site, and from the
%%%                        author's personal bibliography collections.
%%%
%%%                        Numerous errors in the sources noted above
%%%                        have been corrected.  Spelling has been
%%%                        verified with the UNIX spell and GNU ispell
%%%                        programs using the exception dictionary
%%%                        stored in the companion file with extension
%%%                        .sok.
%%%
%%%                        BibTeX citation tags are uniformly chosen as
%%%                        name:year:abbrev, where name is the family
%%%                        name of the first author or editor, year is a
%%%                        4-digit number, and abbrev is a 3-letter
%%%                        condensation of important title words.
%%%                        Citation tags were automatically generated by
%%%                        software developed for the BibNet Project.
%%%
%%%                        In this bibliography, entries are sorted
%%%                        first by ascending year, and within each
%%%                        year, alphabetically by author or editor,
%%%                        and then, if necessary, by the 3-letter
%%%                        abbreviation at the end of the BibTeX
%%%                        citation tag, using the bibsort -byyear
%%%                        utility.  Year order has been chosen to
%%%                        make it easier to identify the most recent
%%%                        work.
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================
@Preamble{
    "\ifx \undefined \booktitle \def \booktitle #1{{{\em #1}}} \fi" #
    "\ifx \undefined \pkg       \def \pkg       #1{{{\tt #1}}} \fi"
}

%%% ====================================================================
%%% Acknowledgement abbreviations:
@String{ack-nhfb = "Nelson H. F. Beebe,
                    University of Utah,
                    Department of Mathematics, 110 LCB,
                    155 S 1400 E RM 233,
                    Salt Lake City, UT 84112-0090, USA,
                    Tel: +1 801 581 5254,
                    FAX: +1 801 581 4148,
                    e-mail: \path|beebe@math.utah.edu|,
                            \path|beebe@acm.org|,
                            \path|beebe@computer.org| (Internet),
                    URL: \path|http://www.math.utah.edu/~beebe/|"}

%%% ====================================================================
%%% Journal abbreviations:
@String{j-ACM-COMM-COMP-ALGEBRA = "ACM Communications in Computer Algebra"}

@String{j-BYTE                  = "Byte Magazine"}

@String{j-CACM                  = "Communications of the ACM"}

@String{j-CCPE                  = "Concurrency and Computation: Prac\-tice and
                                   Experience"}

@String{j-COMP-ARCH-NEWS        = "ACM SIGARCH Computer Architecture News"}

@String{j-COMP-NET-ISDN         = "Computer Networks and ISDN Systems"}

@String{j-COMP-PHYS-COMM        = "Computer Physics Communications"}

@String{j-COMP-PHYSICS          = "Computers in Physics"}

@String{j-COMPUT-SCI-ENG        = "Computing in Science and Engineering"}

@String{j-COMPUTER              = "Computer"}

@String{j-COMPUTING             = "Computing"}

@String{j-CONTEMP-PHYS          = "Contemporary Physics"}

@String{j-DDJ                   = "Dr. Dobb's Journal of Software Tools"}

@String{j-DDJ-SOURCEBOOK        = "Dr. Dobb's Sourcebook"}

@String{j-FORTRAN-FORUM         = "ACM Fortran Forum"}

@String{j-FUT-GEN-COMP-SYS      = "Future Generation Computer Systems"}

@String{j-GRAPH-MODELS          = "Graphical models"}

@String{j-EXE                   = ".EXE: the software developers' magazine"}

@String{j-IEEE-CGA              = "IEEE Computer Graphics and Applications"}

@String{j-IEEE-SOFTWARE         = "IEEE Software"}

@String{j-IJHPCA                = "The International Journal of High Performance Computing Applications"}

@String{j-INT-J-PAR-EMER-DIST-SYS = "International Journal of Parallel,
                                  Emergent and Distributed Systems: IJPEDS"}

@String{j-INT-J-PARALLEL-PROG   = "International Journal of Parallel Programming"}

@String{j-INTERACTIONS          = "Interactions (New York, N.Y.)"}

@String{j-J-COMPUT-CHEM         = "Journal of Computational Chemistry"}

@String{j-J-PAR-DIST-COMP       = "Journal of Parallel and Distributed Computing"}

@String{j-J-RES-NATL-INST-STAND-TECHNOL = "Journal of research of the National
                                  Institute of Standards and Technology"}

@String{j-J-STAT-SOFT           = "Journal of Statistical Software"}

@String{j-J-SUPERCOMPUTING      = "The Journal of Supercomputing"}

@String{j-JERIC                 = "ACM Journal on Educational Resources in
                                  Computing (JERIC)"}

@String{j-JOCCH                 = "Journal on Computing and Cultural Heritage
                                  (JOCCH)"}

@String{j-LECT-NOTES-COMP-SCI   = "Lecture Notes in Computer Science"}

@String{j-LINEAR-ALGEBRA-APPL   = "Linear Algebra and its Applications"}

@String{j-LINUX-J               = "Linux journal"}

@String{j-LOGIN                 = ";login: the USENIX Association newsletter"}

@String{j-NUM-LIN-ALG-APPL      = "Numerical Linear Algebra with Applications"}

@String{j-OPER-SYS-REV          = "Operating Systems Review"}

@String{j-PARALLEL-PROCESS-LETT = "Parallel Processing Letters"}

@String{j-SCI-PROG              = "Scientific Programming"}

@String{j-SIGACT                = "ACM SIGACT News"}

@String{j-SIGADA-LETTERS        = "ACM SIGADA Ada Letters"}

@String{j-SIGCSE                = "SIGCSE Bulletin (ACM Special Interest Group
                                  on Computer Science Education)"}

@String{j-SIGPLAN               = "ACM SIG{\-}PLAN Notices"}

@String{j-SPE                   = "Soft\-ware\emdash Prac\-tice and Experience"}

@String{j-SUNWORLD-ONLINE       = "SunWorld online"}

@String{j-TCBB                  = "IEEE/ACM Transactions on Computational
                                  Biology and Bioinformatics"}

@String{j-TECS                  = "ACM Transactions on Embedded Computing
                                  Systems"}

@String{j-THEOR-COMP-SCI        = "Theoretical Computer Science"}

@String{j-TOCE                  = "ACM Transactions on Computing Education"}

@String{j-TOG                   = "ACM Transactions on Graphics"}

@String{j-TOMCCAP               = "ACM Transactions on Multimedia Computing,
                                  Communications, and Applications"}

@String{j-TOMS                  = "ACM Transactions on Mathematical Software"}

@String{j-TUGboat               = "TUGboat"}

@String{j-UNIX-DEVELOPER        = "UNIX Developer"}

@String{j-WEB-REVIEW            = "Web Review"}

@String{j-WEB-TECHNIQUES        = "Web Techniques"}

@String{j-WORLD-WIDE-WEB-J      = "World Wide Web Journal"}

@String{j-X-J                   = "The {X} Journal: Computing Technology with
                                  the {X Window System}"}

%%% ====================================================================
%%% Publisher abbreviations:
@String{pub-ACM                 = "ACM Press"}
@String{pub-ACM:adr             = "New York, NY 10036, USA"}

@String{pub-APRESS              = "Apress"}
@String{pub-APRESS:adr          = "Berkeley, CA, USA"}

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr              = "Reading, MA, USA"}

@String{pub-AW-LONGMAN          = "Ad{\-d}i{\-s}on-Wes{\-l}ey Longman"}
@String{pub-AW-LONGMAN:adr      = "Reading, MA, USA"}

@String{pub-CAMBRIDGE           = "Cambridge University Press"}
@String{pub-CAMBRIDGE:adr       = "Cambridge, UK"}

@String{pub-CHAPMAN-HALL-CRC    = "Chapman and Hall/CRC"}
@String{pub-CHAPMAN-HALL-CRC:adr = "Boca Raton, FL, USA"}

@String{pub-CNRI                = "Corporation for National Research
                                  Initiatives"}
@String{pub-CNRI:adr            = "1895 Preston White Drive, Suite 100, Reston,
                                  VA 20191, USA"}

@String{pub-CRC                 = "CRC Press"}
@String{pub-CRC:adr             = "2000 N.W. Corporate Blvd., Boca Raton,
                                  FL 33431-9868, USA"}

@String{pub-CWI                 = "Centrum voor Wiskunde en Informatica"}
@String{pub-CWI:adr             = "P. O. Box 4079, 1009 AB Amsterdam, The
                                  Netherlands"}

@String{pub-EUROPEN             = "EurOpen"}
@String{pub-EUROPEN:adr         = "Buntingford, Herts, UK"}

@String{pub-EYROLLES            = "Eyrolles"}
@String{pub-EYROLLES:adr        = "Paris, France"}

@String{pub-IEEE                = "IEEE Computer Society Press"}
@String{pub-IEEE:adr            = "1109 Spring Street, Suite 300, Silver
                                  Spring, MD 20910, USA"}

@String{pub-MAC                 = "Macmillan Publishing Company"}
@String{pub-MAC:adr             = "New York, NY, USA"}

@String{pub-MANNING             = "Manning Publications"}
@String{pub-MANNING:adr         = "Greenwich, CT, USA"}

@String{pub-MORGAN-KAUFMANN     = "Morgan Kaufmann Publishers"}
@String{pub-MORGAN-KAUFMANN:adr = "San Francisco, CA, USA"}

@String{pub-MT                  = "M\&T Books"}
@String{pub-MT:adr              = "M\&T Publishing, Inc., 501 Galveston Drive,
                                  Redwood City, CA 94063, USA"}

@String{pub-NETWORK-THEORY      = "Network Theory Ltd."}
@String{pub-NETWORK-THEORY:adr  = "Bristol, UK"}

@String{pub-NO-STARCH           = "No Starch Press"}
@String{pub-NO-STARCH:adr       = "San Francisco, CA, USA"}

@String{pub-NRP                 = "New Riders Publishing"}
@String{pub-NRP:adr             = "Carmel, IN, USA"}

@String{pub-ORA                 = "O'Reilly \& {Associates, Inc.}"}
@String{pub-ORA:adr             = "103a Morris Street,
                                   Sebastopol, CA 95472,
                                   USA,
                                   Tel: +1 707 829 0515,
                                   and
                                   90 Sherman Street,
                                   Cambridge, MA 02140,
                                   USA,
                                   Tel: +1 617 354 5800"}

@String{pub-ORA-MEDIA           = "O'Reilly Media, Inc."}
@String{pub-ORA-MEDIA:adr       = "1005 Gravenstein Highway North, Sebastopol,
                                  CA 95472, USA"}

@String{pub-OSBORNE             = "Osborne/McGraw-Hill"}
@String{pub-OSBORNE:adr         = "Berkeley, CA, USA"}

@String{pub-PACKT               = "Packt Publishing"}
@String{pub-PACKT:adr           = "Birmingham, UK"}

@String{pub-PEACHPIT            = "Peachpit Press, Inc."}
@String{pub-PEACHPIT:adr        = "1085 Keith Avenue, Berkeley, CA
                                  94708, USA"}

@String{pub-PH                  = "Pren{\-}tice-Hall"}
@String{pub-PH:adr              = "Englewood Cliffs, NJ 07632, USA"}

@String{pub-PHPTR               = "P T R Pren{\-}tice-Hall"}
@String{pub-PHPTR:adr           = "Englewood Cliffs, NJ 07632, USA"}

@String{pub-SAMS                = "SAMS Publishing"}
@String{pub-SAMS:adr            = "Indianapolis, IN, USA"}

@String{pub-SIAM                = "Society for Industrial and Applied
                                  Mathematics"}
@String{pub-SIAM:adr            = "Philadelphia, PA, USA"}

@String{pub-STUDENTLITTERATUR   = "Studentlitteratur"}
@String{pub-STUDENTLITTERATUR:adr = "Lund, Sweden"}

@String{pub-SV                  = "Spring{\-}er-Ver{\-}lag"}
@String{pub-SV:adr              = "Berlin, Germany~/ Heidelberg,
                                  Germany~/ London, UK~/ etc."}

@String{pub-SYNGRESS            = "Syngress Publishing, Inc."}
@String{pub-SYNGRESS:adr        = "Rockland, MA, USA"}

@String{pub-USENIX              = "USENIX"}
@String{pub-USENIX:adr          = "Berkeley, CA, USA"}

@String{pub-WILEY               = "Wiley"}
@String{pub-WILEY:adr           = "New York, NY, USA"}

@String{pub-WORLD-SCI           = "World Scientific Publishing Co."}
@String{pub-WORLD-SCI:adr       = "Singapore; Philadelphia, PA, USA; River
                                  Edge, NJ, USA"}

@String{pub-WROX                = "Wrox Press"}
@String{pub-WROX:adr            = "Chicago, IL, USA"}

%%% ====================================================================
%%% Series abbreviations:
@String{ser-LNCSE               = "Lecture Notes in Computational
                                   Science and Engineering"}

%%% ====================================================================
%%% Bibliography entries, sorted by year and then by citation label:
@TechReport{MacLachlan:1991:CCL,
  author =       "Rob MacLachlan",
  title =        "{CMU Common Lisp} user's manual",
  type =         "Research paper",
  number =       "CMU-CS-91-108",
  institution =  "School of Computer Science, Carnegie Mellon
                 University",
  address =      "Pittsburgh, PA, USA",
  pages =        "vi + 168",
  month =        feb,
  year =         "1991",
  bibdate =      "Mon Nov 18 14:18:28 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "This is a revised version of Technical Report
                 CMU-CS-87-156.",
  abstract =     "CMU Common Lisp is an implementation of Common Lisp
                 that currently runs under Mach, a Berkeley Unix 4.3
                 binary compatible operating system. CMU Common Lisp is
                 currently supported on MIPS-processor DECstations,
                 SPARC-based workstations from Sun and the IBM RT PC,
                 and other ports are planned. The largest single part of
                 this document describes the Python compiler and the
                 programming styles and techniques that the compiler
                 encourages. The rest of the document describes
                 extensions and the implementation dependent choices
                 made in developing this implementation of Common Lisp.
                 We have added several extensions, including the
                 proposed error system, a source level debugger, an
                 interface to Mach system calls, a foreign function call
                 interface, support for interprocess communication and
                 remote procedure call, and other features that provide
                 a good environment for developing Lisp code.",
  acknowledgement = ack-nhfb,
  annote =       "Sponsored by the Defense Advanced Research Projects
                 Agency, Information Science and Technology Office.",
  keywords =     "LISP (Computer program language)",
}

@InProceedings{vanRossum:1991:LSG,
  author =       "G. {van Rossum} and J. {de Boer}",
  title =        "Linking a stub generator ({AIL}) to a prototyping
                 language ({Python})",
  crossref =     "EurOpen:1991:EUD",
  pages =        "229--247",
  year =         "1991",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C5620 (Computer networks and techniques); C6110
                 (Systems analysis and programming); C6115 (Programming
                 support); C6140D (High level languages); C6150C
                 (Compilers, interpreters and other processors)",
  conflocation = "Tromso, Norway; 20-24 May 1991",
  corpsource =   "CWI, Amsterdam, Netherlands",
  keywords =     "AIL; Amoeba; client/server interfaces; distributed
                 operating system; distributed processing; interpreted
                 prototyping language; parallel languages; parallel
                 programming; program processors; Python; Remote
                 Procedure Call stub generator; software prototyping;
                 usability",
  pubcountry =   "UK",
  treatment =    "P Practical",
}

@TechReport{MacLachlan:1992:CCL,
  author =       "Rob MacLachlan",
  title =        "{CMU Common Lisp} user's manual",
  type =         "Research paper",
  number =       "CMU-CS-92-161",
  institution =  "School of Computer Science, Carnegie Mellon
                 University",
  address =      "Pittsburgh, PA, USA",
  pages =        "v + 142",
  month =        jul,
  year =         "1992",
  bibdate =      "Mon Nov 18 14:18:28 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Supersedes Technical Reports CMU-CS-87-156 and
                 CMU-CS-91-108.",
  abstract =     "CMU Common Lisp is an implementation of that Common
                 Lisp is [sic] currently supported on MIPS-processor
                 DECstations, SPARC-based workstations from Sun and the
                 IBM RT PC, and other ports are planned. All
                 architectures are supported under Mach, a Berkeley Unix
                 4.3 binary compatible operating system. The SPARC is
                 also supported under SunOS. The largest single part of
                 this document describes the Python compiler and the
                 programming styles and techniques that the compiler
                 encourages. The rest of the document describes
                 extensions and the implementation dependent choices
                 made in developing this implementation of Common Lisp.
                 We have added several extensions, including a source
                 level debugger, an interface to Unix system calls, a
                 foreign function call interface, support for
                 interprocess communication and remote procedure call,
                 and other features that provide a good environment for
                 developing Lisp code.",
  acknowledgement = ack-nhfb,
  annote =       "Supported in part by the Defense Advanced Research
                 Projects Agency, Information Science and Technology
                 Office, issued by DARPA/CMO.",
  keywords =     "COMMON LISP (Computer program language); Compilers
                 (Computer programs)",
}

@InProceedings{MacLachlan:1992:PCC,
  author =       "Robert A. MacLachlan",
  title =        "{Python} compiler for {CMU Common Lisp}",
  crossref =     "ACM:1992:PAC",
  pages =        "235--246",
  year =         "1992",
  bibdate =      "Wed Aug 6 19:54:46 MDT 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "The Python compiler for CMU Common Lisp has been under
                 development for over five years, and now forms the core
                 of a production quality public domain Lisp
                 implementation. Python synthesizes the good ideas from
                 Lisp compilers and source transformation systems with
                 mainstream optimization and retargetability techniques.
                 Novel features include strict type checking and
                 source-level debugging of compiled code. Unusual
                 attention has been paid to the compiler's user
                 interface.",
  acknowledgement = ack-nhfb,
  affiliation =  "Carnegie Mellon Univ",
  affiliationaddress = "Pittsburgh, PA, USA",
  classification = "723.1; 723.1.1",
  keywords =     "Algorithms; Lisp (programming language); Mainstream
                 optimization and retargetability techniques; Program
                 compilers; Program debugging; Program processors;
                 Python compiler; Source level debugging; Type checking;
                 User interfaces",
  sponsor =      "ACM; SIGPLAN; SIGACT; SIGART",
}

@Article{Anonymous:1995:NIP,
  author =       "Anonymous",
  title =        "{NIST} Investigates {Python} Programming Language",
  journal =      j-J-RES-NATL-INST-STAND-TECHNOL,
  volume =       "100",
  number =       "1",
  pages =        "101--101",
  month =        jan # "\slash " # feb,
  year =         "1995",
  CODEN =        "JRITEF",
  ISSN =         "1044-677X (print), 2165-7254 (electronic)",
  ISSN-L =       "1044-677X",
  bibdate =      "Thu May 21 16:28:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://nvl.nist.gov/pub/nistpubs/jres/jrescont.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of research of the National Institute of
                 Standards and Technology",
  journal-URL =  "http://www.nist.gov/nvl/jres.cfm",
}

@Article{Conway:1995:PGD,
  author =       "Matthew J. Conway",
  title =        "{Python}: a {GUI} development tool",
  journal =      j-INTERACTIONS,
  volume =       "2",
  number =       "2",
  pages =        "23--28",
  month =        apr,
  year =         "1995",
  CODEN =        "IERAE3",
  ISSN =         "1072-5520",
  ISSN-L =       "1072-5520",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6115 (Programming support); C6140D (High level
                 languages); C6180G (Graphical user interfaces)",
  corpsource =   "Virginia Univ., Charlottesville, VA, USA",
  fjournal =     "Interactions (New York, N.Y.)",
  keywords =     "authoring languages; authoring systems; Eiffel;
                 graphical user interfaces; GUI development tool;
                 Modula-3; Perl5; Prolog; Python; Scheme; Self; Tcl/Tk;
                 Tk-aware interpreted languages; user interface
                 management systems",
  treatment =    "P Practical",
}

@InProceedings{Huang:1995:CEM,
  author =       "C. C. Huang and G. S. Couch and E. F. Pettersen and T.
                 E. Ferrin",
  title =        "{Chimera}: an extensible molecular modeling
                 application constructed using standard components",
  crossref =     "Hunter:1995:PSB",
  pages =        "724--??",
  year =         "1995",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "A3520B (General molecular conformation and symmetry;
                 A3620H (Macromolecular configuration (bonds,
                 dimensions)); A8715B (Biomolecular structure,
                 configuration, conformation, and active sites); C6110B
                 (Software engineering techniques); C6130B (Graphics
                 techniques); C7320 (Physics and chemistry computing);
                 C7330 (Biology and medical computing);
                 stereochemistry)",
  conftitle =    "Proceedings of Biocomputing '96",
  corpsource =   "Lab. of Comput. Graphics, California Univ., San
                 Francisco, CA, USA",
  keywords =     "application availability evaluation; biology
                 computing; Chimera; computer graphics; digital
                 simulation; interoperability; Kinemage files;
                 macromolecules; molecular biophysics; molecular
                 configurations; molecular modeling application; Open
                 Inventor; open systems; OpenGL; physics computing;
                 programmable command language; Python language
                 interpreter; software extensibility; software
                 libraries; software portability; standard components;
                 standard functionality; technological criteria;
                 workstations; X Windows; X/MOTIF user interface",
  treatment =    "P Practical",
}

@Article{UUIG:1995:VBA,
  author =       "{UVa User Interface Group}",
  title =        "{VR} Blackboard: {Alice}: Rapid Prototyping for
                 Virtual Reality",
  journal =      j-IEEE-CGA,
  volume =       "15",
  number =       "3",
  pages =        "8--11",
  month =        may,
  year =         "1995",
  CODEN =        "ICGADZ",
  ISSN =         "0272-1716 (print), 1558-1756 (electronic)",
  ISSN-L =       "0272-1716",
  bibdate =      "Wed May 08 06:20:22 2002",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/ieeecga.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "722.2; 723; 723.1; 723.5",
  fjournal =     "IEEE Computer Graphics and Applications",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/cga",
  journalabr =   "IEEE Comput Graphics Appl",
  keywords =     "Animation; Computer keyboards; Computer programs;
                 Computer simulation; Computer software; Interactive
                 computer graphics; Mice (computer peripherals); Object
                 oriented programming; Python programming language;
                 Software prototyping; Three dimensional computer
                 graphics; Virtual reality",
}

@TechReport{vanRossum:1995:EEP,
  author =       "Guido {van Rossum}",
  title =        "Extending and embedding the {Python} interpreter",
  type =         "Report",
  number =       "CS-R9527",
  institution =  pub-CWI,
  address =      pub-CWI:adr,
  pages =        "i + 22",
  month =        apr,
  year =         "1995",
  bibdate =      "Thu May 21 14:06:05 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Python is an interpreted, object-oriented programming
                 language. This document describes how to write modules
                 in C or C++ to extend the Python interpreter with new
                 modules. Those modules can define new functions but
                 also new object types and their methods. The document
                 also describes how to embed the Python interpreter in
                 another application, for use as an extension language.
                 Finally, it shows how to compile and link extension
                 modules so that they can be loaded dynamically (at run
                 time) into the interpreter, if the underlying operating
                 system supports this feature. This document assumes
                 basic knowledge about Python. For an informal
                 introduction to the language, see the Python Tutorial.
                 The Python Reference Manual gives a more formal
                 definition of the language. The Python Library
                 Reference documents the existing object types,
                 functions and modules (both built-in and written in
                 Python) that give the language its wide application
                 range.",
  acknowledgement = ack-nhfb,
  keywords =     "Object-oriented programming (Computer science);
                 Programming languages (Electronic computers)",
}

@TechReport{vanRossum:1995:PLR,
  author =       "Guido {van Rossum}",
  title =        "{Python} library reference",
  type =         "Report",
  number =       "CS-R9524",
  institution =  pub-CWI,
  address =      pub-CWI:adr,
  pages =        "iv + 186",
  month =        apr,
  year =         "1995",
  bibdate =      "Fri May 22 14:34:22 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.python.org/doc/lib/lib.html",
  abstract =     "Python is an extensible, interpreted, object-oriented
                 programming language. It supports a wide range of
                 applications, from simple text processing scripts to
                 interactive WWW browsers. While the Python Reference
                 Manual describes the exact syntax and semantics of the
                 language, it does not describe the standard library
                 that is distributed with the language, and which
                 greatly enhances its immediate usability. This library
                 contains built-in modules (written in C) that provide
                 access to system functionality such as file I/O that
                 would otherwise be inaccessible to Python programmers,
                 as well as modules written in Python that provide
                 standardized solutions for many problems that occur in
                 everyday programming. Some of theses modules are
                 explicitly designed to encourage and enhance the
                 portability of Python programs. This library reference
                 manual documents Python's standard library, as well as
                 many optional library modules (which may or may not be
                 available, depending on whether the underlying platform
                 supports them and on the configuration choices made at
                 compile time). It also documents the standard types of
                 the language and its built-in functions and exceptions,
                 many of which are not or incompletely documented in the
                 Reference Manual. This manual assumes basic knowledge
                 about the Python language. For an informal introduction
                 to Python, see the Python Tutorial; the Python
                 Reference Manual remains the highest authority on
                 syntactic and semantic questions. Finally, the manual
                 entitled Extending and Embedding the Python Interpreter
                 describes how to add new extensions to Python and how
                 to embed it in other applications.''",
  acknowledgement = ack-nhfb,
  keywords =     "Object-oriented programming (Computer science);
                 Programming languages (Electronic computers)",
}

@TechReport{vanRossum:1995:PRM,
  author =       "Guido {van Rossum}",
  title =        "{Python} reference manual",
  type =         "Report",
  number =       "CS-R9525",
  institution =  pub-CWI,
  address =      pub-CWI:adr,
  pages =        "ii + 54",
  month =        apr,
  year =         "1995",
  bibdate =      "Thu May 21 14:06:05 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.python.org/doc/ref/ref-1.html",
  abstract =     "Python is a simple, yet powerful, interpreted
                 programming language that bridges the gap between C and
                 shell programming, and is thus ideally suited for
                 `throw-away programming' and rapid prototyping. Its
                 syntax is put together from constructs borrowed from a
                 variety of other languages; most prominent are
                 influences from ABC, C, Modula-3 and Icon. The Python
                 interpreter is easily extended with new functions and
                 data types implemented in C. Python is also suitable as
                 an extension language for highly customizable C
                 applications such as editors or window managers. Python
                 is available for various operating systems, amongst
                 which several flavors of UNIX (including Linux), the
                 Apple Macintosh O.S., MS-DOS, MS-Windows 3.1, Windows
                 NT, and OS/2. This reference manual describes the
                 syntax and `core semantics' of the language. It is
                 terse, but attempts to be exact and complete. The
                 semantics of non-essential built-in object types and of
                 the built-in functions and modules are described in the
                 Python Library Reference. For an informal introduction
                 to the language, see the Python Tutorial.",
  acknowledgement = ack-nhfb,
  keywords =     "Object-oriented programming (Computer science);
                 Programming languages (Electronic computers)",
}

@TechReport{vanRossum:1995:PT,
  author =       "Guido {van Rossum}",
  title =        "{Python} tutorial",
  type =         "Report",
  number =       "CS-R9526",
  institution =  pub-CWI,
  address =      pub-CWI:adr,
  pages =        "iii + 65",
  month =        apr,
  year =         "1995",
  bibdate =      "Thu May 21 14:06:05 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.python.org/doc/tut/tut.html",
  abstract =     "Python is a simple, yet powerful programming language
                 that bridges the gap between C and shell programming,
                 and is thus ideally suited for `throw-away programming'
                 and rapid prototyping. Its syntax is put together from
                 constructs borrowed from a variety of other languages;
                 most prominent are influences from ABC, C, Modula-3 and
                 Icon. The Python interpreter is easily extended with
                 new functions and data types implemented in C. Python
                 is also suitable as an extension language for highly
                 customizable C applications such as editors or window
                 managers. Python is available for various operating
                 systems, amongst which several flavors of UNIX, Amoeba,
                 the Apple Macintosh O.S., and MS-DOS. This tutorial
                 introduces the reader informally to the basic concepts
                 and features of the Python language and system. It
                 helps to have a Python interpreter handy for hands-on
                 experience, but as the examples are self-contained, the
                 tutorial can be read off-line as well. For a
                 description of standard objects and modules, see the
                 Python Library Reference manual. The Python Reference
                 Manual gives a more formal definition of the
                 language.",
  acknowledgement = ack-nhfb,
  keywords =     "Object-oriented programming (Computer science);
                 Programming languages (Electronic computers)",
}

@Article{Watters:1995:TAN,
  author =       "Aaron R. Watters",
  title =        "Tutorial Article No. 005: The What, Why, Who, and
                 Where of {Python}",
  journal =      "UnixWorld Online",
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "1995",
  bibdate =      "Thu May 21 16:11:31 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.wcmh.com/uworld/archives/95/tutorial/005.html",
  acknowledgement = ack-nhfb,
}

@Article{Bauer:1996:IP,
  author =       "Jeff Bauer",
  title =        "An Introduction to {Python}",
  journal =      j-LINUX-J,
  volume =       "21",
  pages =        "??--??",
  month =        jan,
  year =         "1996",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue21/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Do you need help in the rapid development of
                 applications? Python could be the language for you.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@InProceedings{Beazley:1996:SEU,
  author =       "D. M. Beazley",
  title =        "{SWIG}: an easy to use tool for integrating scripting
                 languages with {C} and {C++}",
  crossref =     "USENIX:1996:ATT",
  pages =        "129--139",
  year =         "1996",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6115 (Programming support); C6140D (High level
                 languages); C6180 (User interfaces)",
  corpsource =   "Dept. of Comput. Sci., Utah Univ., Salt Lake City, UT,
                 USA",
  keywords =     "ANSI C/C++ declarations; ASCII format; authoring
                 languages; automatic bindings generation; C language;
                 C++ language; classes; data types; documentation;
                 Guile; HTML; language integration; LaTeX; Perl;
                 pointers; program development tool; programming
                 environments; Python; scripting languages; Simplified
                 Wrapper and Interface Generator; software tools;
                 structures; SWIG; system documentation; Tcl/Tk; user
                 interface management systems",
  treatment =    "P Practical",
}

@Article{Crespo:1996:WBB,
  author =       "Arturo Crespo and Eric A. Bier",
  title =        "{WebWriter}: a browser-based editor for constructing
                 {Web} applications",
  journal =      j-COMP-NET-ISDN,
  volume =       "28",
  number =       "7--11",
  pages =        "1291--1306",
  day =          "1",
  month =        may,
  year =         "1996",
  CODEN =        "CNISE9",
  ISSN =         "0169-7552 (print), 1879-2324 (electronic)",
  ISSN-L =       "0169-7552",
  bibdate =      "Fri Sep 24 20:21:29 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sgml.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/comnet/cas_sub/browse/browse.cgi?year=1996&volume=28&issue=7-11&aid=1616",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Stanford Univ., CA, USA",
  classification = "C6115 (Programming support); C6130D (Document
                 processing techniques); C6130M (Multimedia); C6140D
                 (High level languages); C6150N (Distributed systems
                 software); C6180 (User interfaces)",
  conflocation = "Paris, France; 6-10 May 1996",
  conftitle =    "Fifth International World Wide Web Conference",
  corpsource =   "Dept. of Comput. Sci., Stanford Univ., CA, USA",
  fjournal =     "Computer Networks and ISDN Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01697552",
  keywords =     "application generators; authoring systems;
                 browser-based editor; CGI protocol; clickable maps;
                 Common Gateway Interface; direct-manipulation Web page
                 editor; HTML extensions; hypermedia; Hypertext Markup
                 Language; network servers; nonprogrammers; output
                 regions; page description languages; page stack;
                 programming languages; Python; script; server-based
                 authoring tools; server-based World Wide Web
                 applications construction; server-side editors; SGML;
                 software packages; text editing; toolkit; user
                 interface layout; Web page generating programs;
                 WebWriter; {Internet}",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Dubois:1996:EPO,
  author =       "P. F. Dubois and T.-Y. Yang",
  title =        "Extending {Python} [Object-oriented language]",
  journal =      j-COMP-PHYSICS,
  volume =       "10",
  number =       "4",
  pages =        "359--365",
  month =        jul # "\slash " # aug,
  year =         "1996",
  CODEN =        "CPHYE2",
  ISSN =         "0894-1866 (print), 1558-4208 (electronic)",
  ISSN-L =       "0894-1866",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6120 (File
                 organisation); C6130 (Data handling techniques); C6140D
                 (High level languages); C6150C (Compilers, interpreters
                 and other processors); C7300 (Natural sciences
                 computing)",
  corpsource =   "Lawrence Livermore Nat. Lab., CA, USA",
  fjournal =     "Computers in Physics",
  keywords =     "C language; C++; C++ static-constructor problem,;
                 compiled sources; dynamic loading; embedding; exception
                 handling; first-class functions; Fortran; free
                 language; garbage collection; high-performance
                 numerical extension; interpreted language; natural
                 sciences computing; object types; object- oriented
                 languages; object-oriented language; object-oriented
                 programming; portable language; program interpreters;
                 programmable application; Python interpreter; Python
                 language; Python program; scientific programming;
                 storage management; user interface",
  treatment =    "P Practical",
}

@Article{Dubois:1996:NP,
  author =       "P. F. Dubois and K. Hinsen and J. Hugunin",
  title =        "Numerical {Python}",
  journal =      j-COMP-PHYSICS,
  volume =       "10",
  number =       "3",
  pages =        "262--267",
  month =        may # "\slash " # jun,
  year =         "1996",
  CODEN =        "CPHYE2",
  ISSN =         "0894-1866 (print), 1558-4208 (electronic)",
  ISSN-L =       "0894-1866",
  bibdate =      "Sun Apr 13 12:29:32 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/linux.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Python is a small and easy-to-learn language with
                 surprising capabilities. It is an interpreted
                 object-oriented scripting language and has a full range
                 of sophisticated features such as first-class
                 functions, garbage collection, and exception handling.
                 Python has properties that make it especially appealing
                 for scientific programming: Python is quite simple and
                 easy to learn, but it is a full and complete language.
                 It is simple to extend Python with your own compiled
                 objects and functions. Python is portable, from Unix to
                 Windows 95 to Linux to Macintosh. Python is free, with
                 no license required even if you make a commercial
                 product out of it. Python has a large user-contributed
                 library of ``modules''. These modules cover a wide
                 variety of needs, such as audio and image processing,
                 World Wide Web programming, and graphical user
                 interfaces. In particular, there is an interface to the
                 popular Tk package for building windowing applications.
                 And now, Python has a high-performance array module
                 similar to the facilities in specialized array
                 languages such as Matlab, IDL, Basis, or Yorick. This
                 extension also adds complex numbers to the language.
                 Array operations in Python lead to the execution of
                 loops in C, so that most of the work is done at full
                 compiled speed.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6140D (High level languages); C6110J (Object-oriented
                 programming); C6150C (Compilers, interpreters and other
                 processors); C7300 (Natural sciences computing)",
  corpsource =   "Lawrence Livermore Nat. Lab., CA, USA",
  fjournal =     "Computers in Physics",
  keywords =     "applications; compiled objects; exception; first-class
                 functions; garbage collection; graphical user
                 interfaces; handling; high-performance array module;
                 interpreted object-oriented scripting language; natural
                 sciences computing; object-oriented languages; program
                 interpreters; Python; scientific programming; Wide Web
                 programming; windowing; World",
  treatment =    "P Practical",
}

@Article{Dubois:1996:SPE,
  author =       "Paul F. Dubois and T.-Y. Yang",
  title =        "Scientific Programming: Extending {Python}",
  journal =      j-COMP-PHYSICS,
  volume =       "10",
  number =       "4",
  pages =        "359--??",
  month =        "????",
  year =         "1996",
  CODEN =        "CPHYE2",
  ISSN =         "0894-1866 (print), 1558-4208 (electronic)",
  ISSN-L =       "0894-1866",
  bibdate =      "Thu May 21 16:28:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers in Physics",
}

@InProceedings{Fulton:1996:IPP,
  author =       "Jim Fulton",
  title =        "Introduction to the {Python} Programming Language",
  crossref =     "USENIX:1996:PSUb",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Oct 21 14:29:18 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/coots96/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Hylton:1996:KPS,
  author =       "J. Hylton and K. Manheimer and F. L. {Drake, Jr.} and
                 B. Warsaw and R. Masse and G. {van Rossum}",
  title =        "Knowbot Programming: system support for mobile
                 agents",
  crossref =     "Cabrera:1996:PFI",
  pages =        "8--13",
  year =         "1996",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6130S (Data
                 security); C6150N (Distributed systems software); C6170
                 (Expert systems)",
  conftitle =    "Proceedings of the Fifth International Workshop on
                 Object- Orientation in Operating Systems",
  corpsource =   "Corporation for Nat. Res. Initiatives, Reston, VA,
                 USA",
  keywords =     "cooperative systems; distributed systems; Internet;
                 interprocess communication; Knowbot Programs; mobile
                 agents; multiple autonomous agents; network resources;
                 object-oriented languages; object-oriented programming;
                 object-oriented programming language; process
                 migration; prototype system; Python; security; security
                 of data; software agents",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Oper. Syst.;
                 USENIX",
  treatment =    "P Practical",
}

@Book{Lutz:1996:PP,
  author =       "Mark Lutz",
  title =        "Programming {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxii + 880",
  month =        "Fall",
  year =         "1996",
  ISBN =         "1-56592-197-6, 0-585-03222-X (e-book)",
  ISBN-13 =      "978-1-56592-197-9, 978-0-585-03222-1 (e-book)",
  LCCN =         "QA76.73.P98 L88 1996",
  bibdate =      "Sat Jun 28 10:26:23 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  note =         "Also available in Japanese translation, see
                 \path=http://www.oreilly.co.jp/BOOK/python1.htm=.",
  price =        "US\$39.95",
  URL =          "http://shell.rmi.net/~lutz/;
                 http://www.oreilly.com/catalog/python",
  acknowledgement = ack-nhfb,
  keywords =     "Python (Computer program language)",
}

@Article{Troan:1996:FSSa,
  author =       "Erik Troan",
  title =        "Free Software Solutions: The {Python} Language",
  journal =      j-X-J,
  volume =       "5",
  number =       "5",
  pages =        "96--??",
  month =        may,
  year =         "1996",
  CODEN =        "XJOUEA",
  ISSN =         "1056-7003",
  bibdate =      "Thu Sep 05 09:14:34 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/xjournal.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The X Journal",
}

@Article{Troan:1996:FSSb,
  author =       "Erik Troan",
  title =        "Free Software Solutions: Basic {X} Programming in
                 {Python}",
  journal =      j-X-J,
  volume =       "5",
  number =       "6",
  pages =        "84--??",
  month =        jun,
  year =         "1996",
  CODEN =        "XJOUEA",
  ISSN =         "1056-7003",
  bibdate =      "Thu Sep 05 09:14:34 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/xjournal.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The X Journal",
}

@Article{Troan:1996:FSSc,
  author =       "Erik Troan",
  title =        "Free Software Solutions: Meta Widgets in {Python}",
  journal =      j-X-J,
  volume =       "5",
  number =       "7",
  pages =        "??--??",
  month =        jul # "\slash " # aug,
  year =         "1996",
  CODEN =        "XJOUEA",
  ISSN =         "1056-7003",
  bibdate =      "Wed Sep 4 09:14:40 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/xjournal.bib;
                 http://www.sigs.com/publications/docs/txjr/9607/txjr9607.toc.html",
  fjournal =     "The X Journal",
}

@Book{Watters:1996:IPP,
  author =       "Aaron Watters and Guido {van Rossum} and James C.
                 Ahlstrom",
  title =        "{Internet} programming with {Python}",
  publisher =    pub-MT,
  address =      pub-MT:adr,
  pages =        "xviii + 477",
  year =         "1996",
  ISBN =         "1-55851-484-8",
  ISBN-13 =      "978-1-55851-484-3",
  LCCN =         "QA76.73.P98 W38 1996",
  bibdate =      "Thu May 21 11:05:40 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  price =        "US\$34.95",
  URL =          "http://www.fsbassociates.com/books/python.htm",
  acknowledgement = ack-nhfb,
  annote =       "See book review \cite{Johnson:1997:BRI}.",
  keywords =     "Internet (Computer network); Python (Computer program
                 language)",
}

@Article{Anonymous:1997:BRI,
  author =       "Anonymous",
  title =        "Book Review: {Internet Programming with Python}",
  journal =      j-LINUX-J,
  volume =       "42",
  pages =        "??--??",
  month =        oct,
  year =         "1997",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue42/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.linuxjournal.com/2152.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Arnold:1997:HDO,
  author =       "David Arnold and Andy Bond and Martin Chilvers",
  title =        "{Hector}: Distributed Objects in {Python}",
  journal =      j-DDJ-SOURCEBOOK,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        jan # "\slash " # feb,
  year =         "1997",
  ISSN =         "1077-9019",
  bibdate =      "Thu May 21 15:33:54 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ddsbk/1997/1997_01/arno.htm",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Sourcebook",
}

@InProceedings{Beazley:1997:BFL,
  author =       "David M. Beazley and Peter S. Lomdahl",
  title =        "Building flexible large-scale scientific computing
                 applications with scripting languages",
  crossref =     "Heath:1997:PES",
  year =         "1997",
  bibdate =      "Fri May 22 09:14:10 MDT 1998",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "We describe our use of scripting languages with a
                 large-scale molecular dynamics code. We will show how
                 one can build an interactive, highly modular, and
                 easily extensible system without sacrificing
                 performance, building a huge monolithic package, or
                 complicating code development. We will also describe
                 our use of the Python language and the SWIG automated
                 interface generation tool that we have developed for
                 easily creating scripting language interfaces to C/C++
                 programs.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Utah",
  affiliationaddress = "Salt Lake City, UT, USA",
  journalabr =   "Proc SIAM Conf Parallel Process Sci Comput",
  pagecount =    "8",
}

@InProceedings{Beazley:1997:EMP,
  author =       "D. M. Beazley and P. S. Lomdahl",
  title =        "Extensible message passing application development and
                 debugging with {Python}",
  crossref =     "IEEE:1997:PIP",
  pages =        "650--655",
  year =         "1997",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C5220P (Parallel architecture)C5440 (Multiprocessing
                 systems); C6110P (Parallel programming); C6115
                 (Programming support); C6140D (High level languages);
                 C6150C (Compilers, interpreters and other processors);
                 C6150G (Diagnostic, testing, debugging and evaluating
                 systems); C6150N (Distributed systems software)",
  conftitle =    "Proceedings 11th International Parallel Processing
                 Symposium",
  corpsource =   "Dept. of Comput. Sci., Utah Univ., Salt Lake City, UT,
                 USA",
  keywords =     "application specific debugging; CM-5; Cray T3D;
                 extensible message passing application debugging;
                 extensible message passing application development;
                 interpreted object oriented scripting language;
                 large-scale message passing applications; message
                 passing; message passing program writing; molecular
                 dynamics application; MPI; multiprocessing systems;
                 object-oriented languages; parallel machines; parallel
                 programming; program debugging; program interpreters;
                 Python parallelisation; rapid prototyping; software
                 prototyping; Sun multiprocessor servers",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Parallel
                 Process.; ACM SIGARCH; Eur. Assoc. Theor. Comput. Sci.
                 (EATCS); Swiss Special Interest Group on Parallelism
                 (SIPAR); SPPEDUP Soc",
  treatment =    "P Practical",
}

@Article{Bielak:1997:UPG,
  author =       "Richie Bielak",
  title =        "Using {Python} to Generate {HTML} Pages",
  journal =      "Linux Gazette",
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "1997",
  bibdate =      "Thu May 21 15:19:57 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ssc.com/lg/issue19/python.html",
  acknowledgement = ack-nhfb,
}

@InProceedings{Hammer:1997:ESI,
  author =       "J. Hammer and H. Garcia-Molina and J. Cho and R.
                 Aranha and Crespo and A.",
  title =        "Extracting semistructured information from the {Web}",
  crossref =     "Anonymous:1997:PWM",
  pages =        "18--25",
  year =         "1997",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6160B (Distributed databases); C7210 (Information
                 services and centres); C7250 (Information storage and
                 retrieval)",
  conflocation = "Tucson, AZ, USA; 16 May 1997",
  conftitle =    "Proceedings of Workshop on Management of
                 Semi-Structured Data",
  corpsource =   "Dept. of Comput. Sci., Stanford Univ., CA, USA",
  keywords =     "configurable tool; DARPA I/sup 3/ technology
                 demonstration; database objects; declarative
                 specification; distributed databases; HTML pages;
                 information conversion; information retrieval;
                 Internet; Python programming language; semistructured
                 information extraction; TSIMMIS testbed; various WWW
                 sites; weather data extraction; Web extractor",
  sponsororg =   "NSF",
  treatment =    "P Practical",
}

@Unpublished{Hugunin:1997:PJB,
  author =       "Jim Hugunin",
  title =        "{Python} and {Java}: The Best of Both Worlds",
  year =         "1997",
  bibdate =      "Tue Jan 06 09:29:45 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Discusses an implementation of the Python scripting
                 language in Java. The article and the code are
                 available electronically.",
  URL =          "http://www.python.org/jpython/",
  acknowledgement = ack-nhfb,
}

@Article{Johnson:1997:BRI,
  author =       "Dwight Johnson",
  title =        "Book Review: {{\em Internet Programming with
                 Python}}",
  journal =      j-LINUX-J,
  volume =       "42",
  pages =        "??--??",
  month =        oct,
  year =         "1997",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Apr 30 10:36:13 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "See book \cite{Watters:1996:IPP}.",
  URL =          "http://www.ssc.com/lj/issue42/2152.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Kim:1997:DIW,
  author =       "Hyeon Jong Kim and Ki Ho Lee",
  title =        "Design and implementation of {Web} documents creating
                 system with {HTML}-supporting library",
  journal =      "Journal of KISS(C) (Computing Practices)",
  volume =       "3",
  number =       "4",
  pages =        "375--383",
  month =        aug,
  year =         "1997",
  CODEN =        "CKNCFY",
  ISSN =         "1226-2293",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C5620W (Other computer networks); C6110J
                 (Object-oriented programming); C6130D (Document
                 processing techniques); C6130M (Multimedia); C6140D
                 (High level languages); C6150N (Distributed systems
                 software); C7210 (Information services and centres)",
  corpsource =   "Korea Inf. Sci. Soc., Seoul, South Korea",
  keywords =     "CGI program; compact program; GUI; HTML documents;
                 HTML supporting library; hypermedia; Internet;
                 nonsequential construction; object oriented design;
                 object oriented programming language; object-oriented
                 languages; page description languages; print
                 statements; Python; Web browser; Web document creation
                 system; Web documents",
  language =     "Korean",
  pubcountry =   "South Korea",
  treatment =    "P Practical",
}

@Article{Kuchling:1997:PU,
  author =       "Andrew Kuchling",
  title =        "{Python} Update",
  journal =      j-LINUX-J,
  volume =       "37",
  pages =        "??--??",
  month =        may,
  year =         "1997",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue37/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Laird:1997:CSL,
  author =       "Cameron Laird and Kathryn Soraiz",
  title =        "Choosing a scripting language: {Perl}, {Tcl}, and
                 {Python}: they're not your father's scripting
                 languages",
  journal =      j-SUNWORLD-ONLINE,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        oct,
  year =         "1997",
  ISSN =         "1091-8914",
  bibdate =      "Thu May 21 15:17:09 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sun.com/sunworldonline/swol-10-1997/swol-10-scripting.html",
  acknowledgement = ack-nhfb,
  fjournal =     "SunWorld online",
}

@Article{Orlowski:1997:NSC,
  author =       "A. Orlowski",
  title =        "And now for something completely different? [{Python}
                 language]",
  journal =      j-EXE,
  volume =       "12",
  number =       "2",
  pages =        "34--35, 37, 39, 41",
  month =        jul,
  year =         "1997",
  CODEN =        "EXEEE5",
  ISSN =         "0268-6872",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6140D (High
                 level languages); C6150N (Distributed systems
                 software)",
  fjournal =     ".EXE: the software developers' magazine",
  keywords =     "Amoeba operating system; API; application program
                 interfaces; authoring languages; BSD- style sockets;
                 CGI facilities; client- server systems; client-server
                 system; CORBA; graphical user interface; GUI toolkits;
                 ILU; object-oriented languages; object-oriented
                 programming; operating systems (computers); Python
                 language; scripting language; shared objects; software
                 libraries; SQL interfaces",
  pubcountry =   "UK",
  treatment =    "P Practical",
}

@InProceedings{Pierce:1997:AEU,
  author =       "J. S. Pierce and S. Audia and T. Burnette and K.
                 Christiansen and D. Cosgrove and M. Conway and K.
                 Hinckley and K. Monkaitis and J. Patten and J. Shothet
                 and D. Staack and B. Stearns and Sturgill and C. and G.
                 Williams and R. Pausch",
  title =        "{Alice}: easy to use interactive {3D} graphics",
  crossref =     "ACM:1997:PAS",
  pages =        "77--78",
  year =         "1997",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6115 (Programming support); C6130B (Graphics
                 techniques); C6180 (User interfaces)",
  conftitle =    "Proceedings of Tenth Annual Symposium on User
                 Interface Software and Technology",
  corpsource =   "Dept. of Comput. Sci., Carnegie Mellon Univ.,
                 Pittsburgh, PA, USA",
  keywords =     "Alice; authoring languages; ease of use; human
                 factors; interactive 3D graphics; interactive
                 development environment; interactive systems; Internet;
                 interpreted language; Python; rapid prototyping system;
                 scripting language; simulations; software prototyping;
                 solid modelling; three dimensional graphics; usability;
                 user actions; user interfaces; virtual reality; virtual
                 reality applications; Windows 95",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@InProceedings{Plosch:1997:DCP,
  author =       "R. Plosch",
  title =        "Design by contract for {Python}",
  crossref =     "IEEE:1997:PAP",
  pages =        "213--219",
  year =         "1997",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6140D (High
                 level languages)",
  conftitle =    "Proceedings of Joint 4th International Computer
                 Science Conference and 4th Asia Pacific Software
                 Engineering Conference",
  corpsource =   "Johannes Kepler Univ., Linz, Austria",
  keywords =     "design by contract; instance variables;
                 object-oriented languages; object-oriented programming;
                 object-oriented software systems; prototyping-oriented
                 software life cycle; run-time system; software
                 prototyping; statically typed object-oriented
                 programming language Eiffel",
  sponsororg =   "Croucher Found.; UNU/IIST; IEEE Hong Kong Sect.
                 Comput. Chapter; ACM Hong Kong Chapter; Hong Kong
                 Comput. Soc",
  treatment =    "P Practical",
}

@Misc{Rook:1997:LCC,
  author =       "David Rook",
  title =        "A Language Collector Comments On: {Java}, {Perl} \&
                 {Python}",
  month =        oct,
  year =         "1997",
  bibdate =      "Thu May 21 15:18:28 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.chips.navy.mil/chips/archives/97_oct/file12.htm",
  acknowledgement = ack-nhfb,
}

@Article{Shell:1997:PDS,
  author =       "Jeffrey P. Shell",
  title =        "{Python} Does Scripts and Objects --- {Python} is a
                 platform-independent {OOP} language with capabilities
                 ranging from simple scripting to sophisticated object
                 libraries",
  journal =      j-BYTE,
  volume =       "22",
  number =       "2",
  pages =        "63--64",
  month =        feb,
  year =         "1997",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Sat Feb 15 16:36:48 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/byte1995.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6140D (High
                 level languages)",
  fjournal =     "BYTE Magazine",
  keywords =     "client/server databases; common gateway interface
                 scripts; dynamic range; large object oriented
                 programming libraries; neutral byte code;
                 object-oriented languages; object-oriented programming;
                 objects; programming languages; Python; rapid
                 applications prototyping; scripts; Unix system
                 administration tools",
  treatment =    "P Practical",
}

@Article{Suzuki:1997:P,
  author =       "Junichi Suzuki",
  title =        "{Python}",
  journal =      "Japanese Dr Dobbs",
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "1997",
  bibdate =      "Thu May 21 15:23:47 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "A series of seven articles on Python.",
  acknowledgement = ack-nhfb,
}

@Article{Troan:1997:FSS,
  author =       "Eric Troan",
  title =        "Free Software Solutions: From {Python} to {Java}",
  journal =      j-UNIX-DEVELOPER,
  volume =       "1",
  number =       "1",
  pages =        "77--78",
  month =        jan # "\slash " # feb,
  year =         "1997",
  ISSN =         "1090-2279",
  bibdate =      "Thu Jan 16 17:23:49 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX Developer",
}

@Article{Vanaken:1997:WCS,
  author =       "Michel Vanaken",
  title =        "Writing {CGI} Scripts in {Python}",
  journal =      j-LINUX-J,
  volume =       "34",
  pages =        "??--??",
  month =        feb,
  year =         "1997",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue34/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Python, a simple, yet powerful, interpreted
                 programming language that bridges the gap between C and
                 shell programming, from a CGI perspective.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{vanRossum:1997:P,
  author =       "Guido {van Rossum}",
  title =        "{Python}",
  journal =      j-WORLD-WIDE-WEB-J,
  volume =       "2",
  number =       "2",
  pages =        "??--??",
  month =        "Spring",
  year =         "1997",
  CODEN =        "WWWFFI",
  ISSN =         "1085-2301",
  ISSN-L =       "1085-2298",
  bibdate =      "Thu May 21 15:26:49 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ora.com/catalog/wj6/",
  acknowledgement = ack-nhfb,
  fjournal =     "World Wide Web Journal",
  xxnote =       "Find correct title??",
}

@Book{vonLowis:1997:PB,
  author =       "Martin {von L{\"o}wis} and Nils Fischbeck",
  title =        "{Das Python-Buch}",
  publisher =    pub-AW-LONGMAN,
  address =      pub-AW-LONGMAN:adr,
  pages =        "495",
  year =         "1997",
  ISBN =         "3-8273-1110-1",
  ISBN-13 =      "978-3-8273-1110-8",
  LCCN =         "",
  bibdate =      "Thu May 21 14:49:49 1998",
  bibsource =    "http://www.addison-wesley.de/katalog/item.ppml?textexpr=Python&id=00086;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Includes CD-ROM.",
  price =        "DM 69,90; ATS 510; CHR 63,00",
  acknowledgement = ack-nhfb,
}

@Misc{WalnutCreek:1997:PA,
  author =       "{Walnut Creek}",
  title =        "The {Python} Archive",
  howpublished = "CD ROM.",
  month =        jun,
  year =         "1997",
  bibdate =      "Thu May 21 15:21:13 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Includes precompiled versions of Python for: AIX,
                 BeOS, BSDI, Digital Unix (DEC OSF/1), DGUX, FreeBSD,
                 HPUX, IRIX, Linux, Mac OS, OpenVMS (alpha and VAX),
                 OS/2 (emx), RS6000, SCO, Sequent PTS, SGI IRIX, Solaris
                 x86, Sparc/Solaris, Sparc/SunOS, Ultrix, VMS/VAX, and
                 Windows 95/NT.",
  price =        "US\$39.95",
  URL =          "http://www.cdrom.com/titles/prog/python.htm",
  acknowledgement = ack-nhfb,
}

@Article{Willison:1997:BEP,
  author =       "Frank Willison",
  title =        "Bleeding Edge: {Python}: It's Not Just For Laughs",
  journal =      j-WEB-REVIEW,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  day =          "3",
  month =        jan,
  year =         "1997",
  bibdate =      "Thu May 21 15:29:27 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://webreview.com/wr/pub/Willison_Frank",
  acknowledgement = ack-nhfb,
  fjournal =     "Web Review",
}

@Article{Wilson:1997:PBP,
  author =       "Gregory V. Wilson",
  title =        "Programmer's Bookshelf: Perusing the Bookshelf",
  journal =      j-DDJ,
  volume =       "22",
  number =       "11",
  pages =        "125, 127",
  month =        nov,
  year =         "1997",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Fri Nov 28 17:28:03 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This month on the bookshelf, you'll find Greg's
                 reports on Object-Oriented Software Testing, by Shel
                 Siegel, UML and C++, by Richard C. Lee and William M.
                 Tepfenhart, Software Metrics, by Norman E. Fenton and
                 Shari Lawrence Pfleeger, Programming Python, by Mark
                 Lutz, and Computing Tomorrow: Future Research
                 Directions in Computer Science, edited by Ilan Wand and
                 Robin Milner (eds).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@MastersThesis{Zhou:1997:CCJ,
  author =       "Ling Zhou",
  title =        "A comparison of {C++}, {Java} and {Python}",
  type =         "Thesis (M.S.)",
  school =       "Department of Computer Science, Texas A\&M
                 University",
  address =      "College Station, TX, USA",
  pages =        "vi + 44",
  year =         "1997",
  bibdate =      "Thu May 21 14:06:05 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Zukowski:1997:ISU,
  author =       "Monty Zukowski",
  title =        "Implementing a Selective Undo Framework in {Python}",
  crossref =     "Anonymous:1997:PIP",
  pages =        "69--75",
  year =         "1997",
  bibdate =      "Mon Dec 29 14:27:24 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.python.org/workshops/1997-10/proceedings/zukowski.html",
  acknowledgement = ack-nhfb,
}

@TechReport{Achtzehnter:1998:ILU,
  author =       "Joachim Achtzehnter and Judy Anderson and Antony
                 Courtney and Doug Cutting and Mark Davidson and
                 Jeanette Figueroa and Ken Fishkin and Scott Hassan and
                 Rob Head and Chris Jacobi and Bill Janssen and Swen
                 Johnson and Dan Larner and Bill Nell and Denis Severson
                 and Bridget Spitznagel and Mike Spreitzer and Mark
                 Stefik and Martin von L{\"o}wis and Farrell Wymore and
                 Rick Yardumian",
  title =        "Inter-Language Unification",
  type =         "Technical Report",
  number =       "??",
  institution =  "Xerox Palo Alto Research Center",
  address =      "Palo Alto, CA, USA",
  day =          "12",
  month =        may,
  year =         "1998",
  bibdate =      "Thu May 21 15:35:52 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "The ILU system can be used from C++, Common Lisp,
                 Guile, Java, Modula-3, Perl, Python, Scheme, and
                 Standard C.",
  URL =          "ftp://ftp.parc.xerox.com/pub/ilu/ilu.html",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1998:P,
  author =       "Anonymous",
  title =        "{Python}",
  journal =      j-WEB-REVIEW,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  day =          "10",
  month =        apr,
  year =         "1998",
  bibdate =      "Thu May 21 15:40:28 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://webreview.com/wr/pub/freeware/python.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Web Review",
}

@Article{Anonymous:1998:PDA,
  author =       "Anonymous",
  title =        "The {Python DB-API}",
  journal =      j-LINUX-J,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        apr,
  year =         "1998",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu May 21 14:57:47 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ssc.com/lj/",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@TechReport{Anonymous:1998:PEL,
  author =       "Anonymous",
  title =        "{Python} Extensions: {LLNL}-Distributed Extensions",
  type =         "Technical Report",
  number =       "UCRL-128569",
  institution =  "Lawrence Livermore National Laboratory",
  address =      "Livermore, CA, USA",
  year =         "1998",
  bibdate =      "Thu May 21 15:14:21 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Includes Numerical Python, Python\slash Pact-PDB
                 interface, PyGraphics, PyHistory, RNG (random number
                 generator), CXX\_Objects (Python extensions in C++).",
  URL =          "http://xfiles.llnl.gov/python.htm",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1998:SLG,
  author =       "Anonymous",
  title =        "Scripting Languages Go Prime Time",
  journal =      "Software Development magazine",
  volume =       "??",
  number =       "??",
  pages =        "??",
  month =        apr,
  year =         "1998",
  bibdate =      "Thu May 21 14:56:04 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Discusses Python, Perl, and Tcl.",
  URL =          "http://www.sdmagazine.com",
  acknowledgement = ack-nhfb,
}

@TechReport{Anonymous:1998:WPF,
  author =       "Anonymous",
  title =        "The whole {Python FAQ}",
  type =         "Technical Report",
  institution =  pub-CNRI,
  address =      pub-CNRI:adr,
  year =         "1998",
  bibdate =      "Wed Oct 28 07:23:01 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "For Python Release 1.5.1.",
  URL =          "http://www.python.org/doc/FAQ.html",
  acknowledgement = ack-nhfb,
}

@Article{Beazley:1998:SAC,
  author =       "David Beazley",
  title =        "{SWIG} and Automated {C/C++} Scripting Extensions",
  journal =      j-DDJ,
  volume =       "23",
  number =       "2",
  pages =        "30, 32, 34--36, 100",
  month =        feb,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Sat Mar 07 08:28:08 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "SWIG, short for ``Simplified Wrapper and Interface
                 Generator,'' is a freely available tool that lets you
                 generate interfaces to a variety of scripting languages
                 from a common interface description",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Dougherty:1998:PGV,
  author =       "Dale Dougherty",
  title =        "{Python}'s {Guido van Rossum}",
  journal =      j-WEB-REVIEW,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  day =          "10",
  month =        apr,
  year =         "1998",
  bibdate =      "Thu May 21 15:42:10 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://webreview.com/wr/pub/Dougherty_Dale",
  acknowledgement = ack-nhfb,
  fjournal =     "Web Review",
}

@Article{Garberson:1998:LEP,
  author =       "John D. Garberson",
  title =        "Letter to the {Editor}: Programming {Python}",
  journal =      j-LOGIN,
  volume =       "23",
  number =       "4",
  pages =        "??--??",
  month =        jun,
  year =         "1998",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Tue Apr 11 06:42:33 MDT 2006",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.usenix.org/publications/login/contents/contents.jun98.html",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Article{Hamilton:1998:PHM,
  author =       "Michael Hamilton",
  title =        "The {Python HTMLgen} Module",
  journal =      j-LINUX-J,
  volume =       "55",
  pages =        "22, 24--26",
  month =        nov,
  year =         "1998",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Oct 20 16:41:32 1998",
  bibsource =    "http://www.linuxjournal.com/issue55/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "ftp://ftp.ssc.com/pub/lj/listings/issue55/2986.tgz",
  abstract =     "An easy way to generate HTML-formatted text.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Howes:1998:TPC,
  author =       "Brad Howes",
  title =        "Template processing classes for {Python}",
  journal =      j-DDJ,
  volume =       "23",
  number =       "2",
  pages =        "38, 40, 42, 44--46, 48, 100",
  month =        feb,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Brad shows how you can embed Python objects in HTML
                 pages using boilerplate template processing classes.
                 Then Python creator Guido van Rossum adds a note on
                 what's new in the just-released Python 1.5.",
  acknowledgement = ack-nhfb,
  classification = "C6130D (Document processing techniques); C6130M
                 (Multimedia); C6160J (Object- oriented databases)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "application program interfaces; BoilerPlate; CGI
                 infrastructure; conditional control; Emacs; embedded
                 HTML text; errors; HTML document template; HTML
                 editing; hypermedia; iterative control; multithreaded
                 CGI service; object database; object paradigm;
                 object-oriented databases; page description languages;
                 persistent objects; placeholders; print statements;
                 Python; run- time values; run-time HTML generation;
                 syntax coloring; tagged locations; template HTML
                 constructs; template processing classes; text regions",
  treatment =    "P Practical",
}

@Article{Kuchling:1998:CFP,
  author =       "Andrew M. Kuchling",
  title =        "A {CGI} framework in {Python}",
  journal =      j-WEB-TECHNIQUES,
  volume =       "3",
  number =       "2",
  pages =        "43--46",
  month =        feb,
  year =         "1998",
  CODEN =        "WETEFA",
  ISSN =         "1086-556X",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.webtechniques.com/features/1998/02/kuchling/kuchling.shtml",
  acknowledgement = ack-nhfb,
  classification = "C6110B (Software engineering techniques); C6115
                 (Programming support); C6150N (Distributed systems
                 software); C7210 (Information services and centres)",
  fjournal =     "Web Techniques",
  keywords =     "authoring languages; CGI framework; CGI scripts;
                 common gateway interface; complete computer programs;
                 error handling code; HTML; hypermedia; Internet; page
                 description languages; Python; site development;
                 software libraries; software tools; standard library;
                 user registration scheme; World Wide Web",
  treatment =    "P Practical",
}

@Article{Kuchling:1998:LIG,
  author =       "Andrew Kuchling",
  title =        "{LJ} Interviews {Guido van Rossum}",
  journal =      j-LINUX-J,
  volume =       "55",
  pages =        "18, 20--21",
  month =        nov,
  year =         "1998",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Oct 20 16:41:32 1998",
  bibsource =    "http://www.linuxjournal.com/issue55/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "A talk with the creator of Python.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Kuchling:1998:PDA,
  author =       "Andrew M. Kuchling",
  title =        "The {Python DB-API}",
  journal =      j-LINUX-J,
  volume =       "49",
  pages =        "??--??",
  month =        may,
  year =         "1998",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue49/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Laird:1998:GTW,
  author =       "Cameron Laird and Kathryn Soraiz",
  title =        "{GUI} toolkits: What are your options? An overview of
                 today's best-bet {GUI} toolkits",
  journal =      j-SUNWORLD-ONLINE,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        mar,
  year =         "1998",
  ISSN =         "1091-8914",
  bibdate =      "Thu May 21 14:58:54 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Discusses Python.",
  URL =          "http://www.sun.com/sunworldonline/swol-02-1998/swol-02-python.html",
  acknowledgement = ack-nhfb,
  fjournal =     "SunWorld online",
}

@InCollection{Lutz:1998:POO,
  author =       "Mark Lutz",
  editor =       "Peter H. Salus",
  booktitle =    "Handbook of Programming Languages",
  title =        "{Python}: an Object Oriented Scripting Language",
  publisher =    pub-MAC,
  address =      pub-MAC:adr,
  pages =        "120 (est.)",
  year =         "1998",
  ISBN =         "1-57870-008-6 (vol. 1), 1-57870-009-4 (vol. 2),
                 1-57870-010-8 (vol. 3), 1-57870-011-6 (vol. 4)",
  ISBN-13 =      "978-1-57870-008-0 (vol. 1), 978-1-57870-009-7 (vol.
                 2), 978-1-57870-010-3 (vol. 3), 978-1-57870-011-0 (vol.
                 4)",
  LCCN =         "QA76.7 .H363 1998",
  bibdate =      "Thu May 21 15:54:27 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://shell.rmi.net/~lutz/whatsnew.html#S13",
  acknowledgement = ack-nhfb,
  tableofcontents = "[1]. Object-oriented programming languages \\
                 [2]. Imperative programming languages \\
                 [3]. Little languages and tools \\
                 [4]. Functional and logic programming languages",
}

@Book{Lutz:1998:PPR,
  author =       "Mark Lutz",
  title =        "{Python} Pocket Reference",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "iii + 75",
  year =         "1998",
  ISBN =         "1-56592-500-9",
  ISBN-13 =      "978-1-56592-500-7",
  LCCN =         "QA76.73.P98 L882 1998",
  bibdate =      "Mon Apr 18 14:55:56 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$6.95",
  URL =          "http://www.oreilly.com/catalog/9781565925007;
                 http://www.oreilly.com/catalog/pythonpr/",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Article{McGrath:1998:IPX,
  author =       "Sean McGrath",
  title =        "{Internet} Programming: {XML} Programming in
                 {Python}",
  journal =      j-DDJ,
  volume =       "23",
  number =       "2",
  pages =        "82, 84--87, 101--104",
  month =        feb,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Mon Feb 09 12:29:56 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "XML brings to the document world what the database
                 world has had for a long time --- interoperability via
                 open systems. Sean shows how you can use Python as a
                 development platform for XML programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{McGrath:1998:PBT,
  author =       "Sean McGrath",
  title =        "Programmer's Bookshelf: The {Tcl\slash Tk} and
                 {Python} Scripting Environments",
  journal =      j-DDJ,
  volume =       "23",
  number =       "10",
  pages =        "143, 145",
  month =        oct,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Fri Sep 11 09:12:05 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ddj/1998/1998_10/index.htm",
  abstract =     "Tcl and Python are Sean McGrath's focus as he examines
                 Effective Tcl/Tk Programming, by Mark Harrison and
                 Michael J. McLennan, and Internet Programming with
                 Python, by Aaron Watters, Guido van Rossum, and James
                 C. Ahlstrom. FORUM",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{McGrath:1998:XPP,
  author =       "S. McGrath",
  title =        "{XML} programming in {Python}",
  journal =      j-DDJ,
  volume =       "23",
  number =       "2",
  pages =        "82--??, 84--87, 101--104",
  month =        feb,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6110P
                 (Parallel programming); C6115 (Programming support);
                 C6140D (High level languages); C6150N (Distributed
                 systems software); C7210 (Information services and
                 centres)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "authoring languages; complete computer programs; data
                 description language; data representation format;
                 Extensible Markup Languag; functional programming;
                 hierarchical data structures; highly portable language;
                 HTML; imperative programming features; information
                 description; Internet; Internet programming tool;
                 Internet protocols; object oriented data structures;
                 object oriented scripting language; object- oriented
                 programming; object-oriented languages; page
                 description languages; parallel programming; processing
                 power; Python extensions; recursive structures; web
                 applications; World Wide Web; XML encoded information;
                 XML programming",
  treatment =    "P Practical",
}

@Article{Raymond:1998:SPO,
  author =       "Eric Raymond",
  title =        "Stop the Presses: Open Source Summit",
  journal =      j-LINUX-J,
  volume =       "50",
  pages =        "??--??",
  month =        "",
  year =         "1998",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu May 21 15:07:35 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Discusses Perl, Python, and Tcl.",
  URL =          "http://www.ssc.com/lj/issue50/2918.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Rooker:1998:BRP,
  author =       "Terry Rooker",
  title =        "Book Review: {{\em Programming Python}}",
  journal =      j-LOGIN,
  volume =       "23",
  number =       "2",
  pages =        "??--??",
  month =        apr,
  year =         "1998",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Tue Apr 11 06:42:31 MDT 2006",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.usenix.org/publications/login/contents/contents.apr98.html",
  URL =          "http://www.usenix.org/publications/login/1998-4/python.html",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@TechReport{vanRossum:1998:EEP,
  author =       "Guido {van Rossum}",
  title =        "Extending and Embedding the {Python} Interpreter",
  type =         "Technical Report",
  institution =  pub-CNRI,
  address =      pub-CNRI:adr,
  day =          "14",
  month =        apr,
  year =         "1998",
  bibdate =      "Wed Oct 28 07:23:02 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "For Python Release 1.5.1.",
  URL =          "http://www.python.org/doc/ext/ext.html",
  acknowledgement = ack-nhfb,
}

@TechReport{vanRossum:1998:PCA,
  author =       "Guido {van Rossum}",
  title =        "{Python}/{C} {API} Reference Manual",
  type =         "Technical Report",
  institution =  pub-CNRI,
  address =      pub-CNRI:adr,
  year =         "1998",
  bibdate =      "Wed Oct 28 07:23:03 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "For Python Release 1.5.1.",
  URL =          "http://www.python.org/doc/api/api.html",
  acknowledgement = ack-nhfb,
}

@InProceedings{vanRossum:1998:TPL,
  author =       "G. {van Rossum}",
  title =        "A Tour of the {Python} Language",
  crossref =     "Ege:1998:PTO",
  pages =        "370--??",
  year =         "1998",
  bibdate =      "Fri May 22 08:52:28 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Yang:1998:SOO,
  author =       "T.-Y. Brian Yang and Geoffrey Furnish and Paul F.
                 Dubois",
  title =        "Steering object-oriented scientific computations",
  crossref =     "Ege:1998:PTO",
  pages =        "112--119",
  year =         "1998",
  bibdate =      "Fri May 22 09:14:10 MDT 1998",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Issues relevant to the steering mechanism for
                 object-oriented scientific computations are examined in
                 this paper. The concept of computation steering is
                 delineated, and its benefits are discussed based on
                 past experiences with its application to scientific
                 computations. Experiences of using an object-oriented
                 scripting language called Python to steer C++
                 applications are presented in further details. It is
                 found that Python and C++ can be combined in an elegant
                 way which combines the benefits of steering and the
                 advantages of using an efficient object-oriented
                 language for scientific modeling.",
  acknowledgement = ack-nhfb,
  affiliation =  "Lawrence Livermore Natl Lab",
  affiliationaddress = "Livermore, CA, USA",
  classification = "723.1; 723.1.1; 723.2; C6110J (Object-oriented
                 programming); C6140D (High level languages); C7300
                 (Natural sciences computing)",
  conftitle =    "Proceedings of TOOLS USA 97. International Conference
                 on Technology of Object Oriented Systems and
                 Languages",
  corpsource =   "Lawrence Livermore Nat. Lab., CA, USA",
  keywords =     "C (programming language); C++ application steering;
                 Computation steering mechanisms; Computer simulation
                 languages; natural sciences computing; Natural sciences
                 computing; Object oriented programming; Object oriented
                 scripting language; object-oriented languages;
                 object-oriented programming; object-oriented scientific
                 computations; object-oriented scripting language;
                 Phyton programming language; Python; scientific
                 modeling; steering mechanism",
  sponsororg =   "Interactive Software Eng",
  treatment =    "P Practical",
}

@Article{Angell:1999:PTE,
  author =       "Kirby W. Angell",
  title =        "Programmer's Toolchest: Examining {JPython}: a {Java}
                 test engine puts {Python} to the test",
  journal =      j-DDJ,
  volume =       "24",
  number =       "4",
  pages =        "78, 81--83",
  month =        apr,
  year =         "1999",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Wed Mar 3 06:30:11 MST 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/1999/1999_04/jpython.txt;
                 http://www.ddj.com/ftp/1999/1999_04/jpython.zip",
  abstract =     "JPython is a freely available version of Python
                 implemented in 100 percent pure Java. Since JPython is
                 written in Java, it is easy to include the JPython
                 packages in a Java application and use JPython as your
                 application's scripting engine. JPython also makes an
                 excellent tool for prototyping Java applets that are
                 embedded in web browsers. Additional resources include
                 jpython.txt (listings) and jpython.zip (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Dubois:1999:SPE,
  author =       "Paul F. Dubois and T.-Y. Yang",
  title =        "Scientific Programming: Extending {Python} with
                 {Fortran}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "1",
  number =       "5",
  pages =        "66--73",
  month =        sep # "\slash " # oct,
  year =         "1999",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Oct 13 14:31:09 2000",
  bibsource =    "http://www.computer.org/cse/cs1999;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://dlib.computer.org/cs/books/cs1999/pdf/c5066.pdf;
                 http://www.computer.org/cse/cs1999/c5066abs.htm",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Ernst:1999:TMP,
  author =       "T. Ernst",
  title =        "{TRAPping Modelica} with {Python}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1575",
  pages =        "288--291",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 14 06:09:05 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  keywords =     "CC; compiler construction; ETAPS; software",
}

@Article{Hughes:1999:LP,
  author =       "Phil Hughes",
  title =        "Learning {Python}",
  journal =      j-LINUX-J,
  volume =       "66",
  pages =        "??--??",
  month =        oct,
  year =         "1999",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 14:31:45 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue66/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue66/3541.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Klatchko:1999:DRS,
  author =       "Ron Klatchko",
  title =        "Dynamically Reconfigurable Servers: {Python}'s
                 extensibility makes it easy",
  journal =      j-DDJ,
  volume =       "24",
  number =       "1",
  pages =        "80, 82--84",
  month =        jan,
  year =         "1999",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Dec 3 09:32:09 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ddj/ftp/1999/1999_01/cprofile.zip",
  abstract =     "The dynamically reconfigurable server Ron presents
                 here is implemented in Python, a portable, interpreted,
                 extensible object-oriented programming language.
                 Additional resources include cprofile.zip (source
                 code). PROGRAMMER'S TOOLCHEST",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Book{Kuchling:1999:PT,
  editor =       "Andrew Kuchling and Fred Drake",
  title =        "{Python} tutorial",
  publisher =    "toExcel",
  address =      "San Jose, CA",
  pages =        "????",
  year =         "1999",
  ISBN =         "1-58348-375-6 (soft cover)",
  ISBN-13 =      "978-1-58348-375-6 (soft cover)",
  LCCN =         "????",
  bibdate =      "Mon Jul 4 17:11:22 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  remark =       "Did this book ever appear?",
}

@Book{Lutz:1999:LP,
  author =       "Mark Lutz and David Ascher",
  title =        "Learning {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xvi + 366",
  year =         "1999",
  ISBN =         "1-56592-464-9",
  ISBN-13 =      "978-1-56592-464-2",
  LCCN =         "QA76.73.P98 L8798 1999",
  bibdate =      "Mon Apr 18 14:55:31 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$29.95",
  URL =          "http://www.oreilly.com/catalog/9781565924642;
                 http://www.oreilly.com/catalog/lpython/",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
  subject =      "Python (Computer program language)",
}

@Article{Lutz:1999:UP,
  author =       "Mark Lutz",
  title =        "Using {Python}",
  journal =      j-LOGIN,
  volume =       "24",
  number =       "1s",
  pages =        "??--??",
  month =        jan,
  year =         "1999",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Tue Apr 11 06:42:43 MDT 2006",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.usenix.org/publications/login/contents/contents.jan99.html",
  note =         "Special issue on tools.",
  URL =          "http://www.usenix.org/publications/login/1999-1/python.html",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Book{vanRossum:1999:PT,
  author =       "Guido van Rossum and Fred L. Drake and Andrew
                 Kuchling",
  title =        "{Python} tutorial",
  publisher =    "Open Docs Library",
  address =      "Lincoln, NE, USA",
  year =         "1999",
  ISBN =         "1-58348-375-6 (soft cover)",
  ISBN-13 =      "978-1-58348-375-6 (soft cover)",
  LCCN =         "QA76.73.P98 V36 2000b",
  bibdate =      "Mon Jul 4 17:09:31 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 umlibr.library.umass.edu:210/INNOPAC",
  URL =          "ftp://uiarchive.cso.uiuc.edu/pub/etext/gutenberg/",
  acknowledgement = ack-nhfb,
  remark =       "Release 1.5.2.",
  subject =      "Python (Computer program language); Handbooks,
                 manuals, etc; Object-oriented programming (Computer
                 science); Handbooks, manuals, etc",
}

@Article{Ang:2000:WBL,
  author =       "Cheng-Chai Ang",
  title =        "A {Web}-Based Lunch Ordering System",
  journal =      j-LINUX-J,
  volume =       "79",
  pages =        "176--??",
  month =        nov,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Oct 21 16:25:36 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue79/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "The author demonstrates how easy it is to write in
                 Python --- and make sure you get steamed, not fried
                 rice.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Angell:2000:PSPa,
  author =       "Kirby W. Angell",
  title =        "{Python} Server Pages: Part 1",
  journal =      j-DDJ,
  volume =       "25",
  number =       "1",
  pages =        "44, 46--47, 50",
  month =        jan,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:13 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_01/psp1.txt;
                 http://www.ddj.com/ftp/2000/2000_01/psp100.zip",
  abstract =     "Python Server Pages (PSP) is a server-side scripting
                 engine designed along the lines of Microsoft's Active
                 Server Pages (ASP) and Sun's Java Server Pages (JSP).
                 Additional resources include psp1.txt (listings) and
                 psp100.zip (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Angell:2000:PSPb,
  author =       "Kirby W. Angell",
  title =        "{Python} Server Pages: {Part II}",
  journal =      j-DDJ,
  volume =       "25",
  number =       "2",
  pages =        "54, 57--61",
  month =        feb,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:13 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_02/psp2.txt",
  abstract =     "Last month, Kirby introduced Python Server Pages and
                 looked at how HTML pages with embedded scripts are
                 translated into compilable JPython code. This month, he
                 examines the Java Servlet side of PSP. Additional
                 resources include psp2.txt (listings).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Anonymous:2000:BRLb,
  author =       "Anonymous",
  title =        "Book Reviews: {Linux Programmer's Reference Second
                 Edition by Ibrahim F. Haddad; Python and Tkinter
                 Programming by Phil Hughes; sendmail for Linux by
                 Russell J. T. Dyer}",
  journal =      j-LINUX-J,
  volume =       "77",
  pages =        "??--??",
  month =        sep,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 07:44:13 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue77/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue77/3861.html;
                 http://noframes.linuxjournal.com/lj-issues/issue77/3989.html;
                 http://noframes.linuxjournal.com/lj-issues/issue77/4184.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:2000:POR,
  author =       "Anonymous",
  title =        "Products: {Oracle} Releases {XDK} Update; {Starbase}'s
                 Code Editing System; {Arc Second}'s Palm {PC CAD}
                 Viewer; {Minolta}'s Network Document Server for
                 {Windows 2000}; {Borland}'s {Java} Development Tools
                 for {Palm OS}; {Rational}'s Code Management Tools;
                 {Blaxxun Interactive}'s {Web} Communications Platform
                 Tools; {Informix Software}'s {Linux} Database Engine;
                 {ActiveState} Updates Free {Python} Distribution; {KDE
                 2.0} Released",
  journal =      j-COMPUTER,
  volume =       "33",
  number =       "12",
  pages =        "144--146",
  month =        dec,
  year =         "2000",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Wed Dec 6 18:12:09 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://dlib.computer.org/co/books/co2000/pdf/rz144.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Book{Beazley:2000:PER,
  author =       "David M. Beazley",
  title =        "{Python} essential reference",
  publisher =    pub-NRP,
  address =      pub-NRP:adr,
  pages =        "xviii + 319",
  year =         "2000",
  ISBN =         "0-7357-0901-7",
  ISBN-13 =      "978-0-7357-0901-0",
  LCCN =         "QA76.73.P98 B43 2000",
  bibdate =      "Tue Nov 7 06:58:49 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "New Riders professional library",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
}

@Book{Brown:2000:PAA,
  author =       "Martin C. Brown",
  title =        "{Python} annotated archives",
  publisher =    pub-OSBORNE,
  address =      pub-OSBORNE:adr,
  pages =        "xxii + 722",
  year =         "2000",
  ISBN =         "0-07-212104-1",
  ISBN-13 =      "978-0-07-212104-9",
  LCCN =         "QA76.73.P98 B76 2000",
  bibdate =      "Tue Nov 7 06:58:49 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Includes CD-ROM.",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
}

@Article{Chapman:2000:EPT,
  author =       "Mitch Chapman and Brian Kelley",
  title =        "Examining the {PyGtk} Toolkit",
  journal =      j-DDJ,
  volume =       "25",
  number =       "4",
  pages =        "82, 84, 86, 88",
  month =        apr,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:14 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_04/pygtk.txt",
  abstract =     "PyGtk brings the benefits of a high-level programming
                 language to Gtk+ developers, and gives Python
                 programmers access to a modern, high-performance GUI
                 toolkit. Additional resources include pygtk.txt
                 (listings).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Book{Dutt:2000:GBG,
  author =       "Christoph Dutt and Joachim Freiburg",
  title =        "{GiMP: Bilder gestalten, Fotos retuschieren;
                 [Grundlagen der professionellen Bildbearbeitung, der
                 Umgang mit Fotos, Grafiken und Text, Bilder f{\"u}r das
                 Internet richtig vorbereiten; auf der CD: GIMP f{\"u}r
                 Windows, SCO Unix, Debian GNU Linux, Solaris, OS/2 und
                 BSD, Quelltext aller GIMP- und GTK-Versionen, {\"u}ber
                 300 Plug-ins in C, Perl, tcl, Python und Scheme,
                 XFree86/23.3.6, GIMP User Manual als PDF-Dateien]}",
  publisher =    "C und L",
  address =      "B{\"o}blingen, Germany",
  pages =        "522 + 98",
  year =         "2000",
  ISBN =         "3-932311-64-7",
  ISBN-13 =      "978-3-932311-64-2",
  LCCN =         "????",
  bibdate =      "Tue Sep 17 07:02:55 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Includes CD-ROM.",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Book{Grayson:2000:PTP,
  author =       "John E. Grayson",
  title =        "{Python} and {Tkinter} Programming",
  publisher =    pub-MANNING,
  address =      pub-MANNING:adr,
  pages =        "xxiii + 658",
  year =         "2000",
  ISBN =         "1-884777-81-3",
  ISBN-13 =      "978-1-884777-81-3",
  LCCN =         "????",
  bibdate =      "Thu Sep 21 10:22:40 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  price =        "US\$49.95",
  acknowledgement = ack-nhfb,
}

@Book{Hammond:2000:PPW,
  author =       "Mark Hammond and Andy Robinson",
  title =        "{Python} Programming on {Win32}: Help for {Windows}
                 Programmers",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xvii + 652",
  month =        jan,
  year =         "2000",
  ISBN =         "1-56592-621-8 (paperback), 1-56592-925-X (e-book)",
  ISBN-13 =      "978-1-56592-621-9 (paperback), 978-1-56592-925-8
                 (e-book)",
  LCCN =         "QA76.73.P98 H36 2000",
  bibdate =      "Mon Jul 30 06:50:24 MDT 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/",
  price =        "US\$34.95",
  URL =          "http://www.oreilly.com/catalog/pythonwin32",
  acknowledgement = ack-nhfb,
  keywords =     "Microsoft Win32; Python (computer program language)",
}

@InProceedings{Hardt:2000:PPZ,
  author =       "Dick Hardt and Gisle Aas and Paul Everitt",
  title =        "{Perl}, {Python} and {Zope}",
  crossref =     "USENIX:2000:PAL",
  pages =        "??--??",
  year =         "2000",
  bibdate =      "Wed Oct 16 05:17:16 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/als2000/aas.html",
  acknowledgement = ack-nhfb,
}

@Book{Matthew:2000:PLP,
  author =       "Neil Matthew and Richard Stones and others",
  title =        "Professional {Linux} programming",
  publisher =    pub-WROX,
  address =      pub-WROX:adr,
  pages =        "xviii + 1155",
  year =         "2000",
  ISBN =         "1-86100-301-3",
  ISBN-13 =      "978-1-86100-301-0",
  LCCN =         "QA76.76.O63 P754 2000",
  bibdate =      "Tue Mar 13 17:42:37 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/linux.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sqlbooks.bib;
                 http://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "1: Application Design \\
                 Requirements Capture \\
                 Development Models \\
                 `Fast Track' Development \\
                 Test Early, Test Often \\
                 DVD Store \\
                 Initial Requirements \\
                 Analyzing the User Requirements \\
                 Statement of Requirements \\
                 Use Cases \\
                 Application Architecture \\
                 Detailed Design \\
                 Data Access Functions \\
                 Member Functions \\
                 Title Functions \\
                 Disk Functions \\
                 Rental Functions \\
                 Reference Implementation \\
                 2: CVS \\
                 Tools for Linux \\
                 Repository \\
                 Single User CVS Projects \\
                 CVS Command Format \\
                 Environment Variables \\
                 Importing a New Project \\
                 Starting Work on Our Project \\
                 Checking Our Changes Against the Repository \\
                 Updating the Repository with Our Changes \\
                 Releasing the Project \\
                 Reviewing Changes \\
                 Adding and Removing Files from a Project \\
                 Keyword Substitution \\
                 Revisions, Tags and Branches \\
                 Revisions \\
                 Tags \\
                 Branches \\
                 Multi-user CVS \\
                 Working Collaboratively \\
                 Working with Watches \\
                 More Fun with CVS \\
                 Binary Files \\
                 Correcting Bad Annotations \\
                 Accessing CVS Across a Network \\
                 GUI CVS Clients \\
                 3: Databases \\
                 Choosing a Database \\
                 mSQL \\
                 MySQL \\
                 PostgreSQL \\
                 Which is Right for Me? \\
                 PostgreSQL \\
                 Installation and Commissioning \\
                 Database Fundamentals \\
                 First Normal Form \\
                 Second Normal Form \\
                 Third Normal Form \\
                 De-normalization \\
                 Simple Database \\
                 Using psql \\
                 Commands to psql \\
                 Data Definition Commands \\
                 Data Manipulation Commands \\
                 Transactions \\
                 Database Design Tips \\
                 4: PostgreSQL Interfacing \\
                 Accessing PostgreSQL from Code \\
                 Libpq \\
                 ECPG \\
                 Which Method to Use? \\
                 Application \\
                 5: MySQL \\
                 Installation and Commissioning \\
                 Pre-compiled Packages \\
                 Building from Source \\
                 Post-install Configuration \\
                 MySQL Administration \\
                 Commands \\
                 Creating Users, and Giving Them Permissions \\
                 Passwords \\
                 Creating a Database \\
                 SQL Support in PostgreSQL and MySQL \\
                 Accessing MySQL Data from C \\
                 Connection Routines \\
                 Error Handling \\
                 Executing SQL Statements \\
                 Miscellaneous Functions \\
                 6: Tackling Bugs \\
                 Error Classes \\
                 Reporting Errors \\
                 Detecting Software Errors \\
                 Types of Software Error \\
                 Debug Statements \\
                 Assertions \\
                 Where Are You? \\
                 Backtrace \\
                 Preparing to Debug \\
                 Using the Debugger \\
                 Simple GDB Commands \\
                 Other GDB Features \\
                 7: LDAP Directory Services \\
                 What is a Directory Service? \\
                 X.500 and LDAP \\
                 Structure of a Directory Server \\
                 Naming of Parts \\
                 dn Naming \\
                 Object Components \\
                 LDAP Directory Tree \\
                 LDIF Files \\
                 Installing and Configuring an LDAP Server \\
                 Steps in Installing OpenLDAP \\
                 Configuring OpenLDAP \\
                 Running the Server \\
                 Accessing LDAP from C \\
                 Initialize the LDAP Library \\
                 Bind to the LDAP Server \\
                 LDAP Error Handling \\
                 First LDAP Client Program \\
                 Searching \\
                 Changing the Data \\
                 Adding a New Entry \\
                 Modifying an Entry \\
                 Deleting an Entry \\
                 Application \\
                 8: GUI Programming with GTK+/GNOME \\
                 GTK+/GNOME libraries \\
                 glib \\
                 Types \\
                 Macros \\
                 String functions \\
                 Memory Allocation \\
                 Lists \\
                 GTK+ \\
                 Widgets \\
                 gtk{\"o}init and gtk{\"o}main \\
                 Example GTK+ Application \\
                 GNOME Basics \\
                 Menus and Toolbars \\
                 Dialogs \\
                 Example GNOME Application \\
                 GNOME Source Tree \\
                 Configuration Saving \\
                 Session Management \\
                 Command Line Parsing Using popt \\
                 GNOME/GTK+ Resources \\
                 9: GUI Building with Glade and GTK+/GNOME \\
                 Overview of Glade \\
                 Word on GUI Design \\
                 Glade Tutorial \\
                 Main Window \\
                 Palette \\
                 Properties Window \\
                 Glade-built Source Tree \\
                 lookup{\"o}widget \\
                 Adding Code \\
                 Libglade \\
                 DVD Store GNOME GUI \\
                 Design \\
                 Compiling and Running dvdstore \\
                 Structure \\
                 Code \\
                 10: Flex and Bison \\
                 Input Structure \\
                 Scanners and Parsers \\
                 How Generators Work \\
                 Scanners \\
                 Simple Scanner \\
                 Scanner Specifications \\
                 Longest Match Principle \\
                 Regular Expressions \\
                 Actions \\
                 Redirecting Scanner Input and Output \\
                 Returning Tokens \\
                 Context Sensitive Scanners \\
                 Options to flex \\
                 Parsers \\
                 Generating Parsers \\
                 Creating a Syntax Tester \\
                 Token Types \\
                 Actions in Rules \\
                 Options to bison \\
                 Conflicts in Grammars \\
                 Arithmetic Expressions \\
                 11: Testing Tools \\
                 Testing Requirements Types \\
                 Application Architecture \\
                 Steps \\
                 General Testing \\
                 Regression Testing \\
                 Test Program \\
                 Testing the dvdstore Program \\
                 Scripting Tests \\
                 Expect \\
                 Memory Problems \\
                 Installing mpatrol \\
                 Using mpatrol \\
                 Testing Coverage \\
                 Performance Testing \\
                 12: Secure Programming \\
                 What is Secure Programming? \\
                 Why Secure Programming is Hard \\
                 Filesystem Security \\
                 Authenticating Users \\
                 Using Cryptography Securely \\
                 Secure Network Programming \\
                 Writing Protocols \\
                 Standard Network Cryptography Tools \\
                 Problems with the Environment \\
                 Python \\
                 PHP \\
                 13: GUI Programming with KDE/Qt \\
                 About Qt \\
                 About KDE \\
                 Installing Qt \\
                 Installing KDE \\
                 Libraries \\
                 Programming Applications Using Qt \\
                 Getting Started: Hello World \\
                 Simplifying Makefile Management with tmake \\
                 Signals and Slots \\
                 `Hello World' Revisited \\
                 Deriving From Base Classes \\
                 Widgets \\
                 Layouts \\
                 Programming Applications Using KDE \\
                 Simple Text Editor \\
                 14: Writing the DVD Store GUI Using KDE/Qt \\
                 Application Design \\
                 Main Window \\
                 Member Dialog \\
                 Rent Dialog \\
                 Rental Report Dialog \\
                 Search Window \\
                 Settings Manager \\
                 Adjusting the Code to KDE \\
                 KConfig and SettingsManager \\
                 15: Python \\
                 Python: The Right Tool for the Job \\
                 \ldots{} But Not Every Job! \\
                 Installing Python \\
                 Running Python \\
                 Interactive Interpreter \\
                 Command Argument \\
                 Script Argument \\
                 `Standalone' Executable \\
                 Details \\
                 Interpreter and Byte-compilation \\
                 Comment Syntax \\
                 Case Sensitivity \\
                 Built-in Data Types and Operators \\
                 Variables \\
                 Block Structure Syntax \\
                 Statement Syntax \\
                 Functions \\
                 Built-in Functions \\
                 Namespaces \\
                 Modules and Packages \\
                 Some Modules from the Standard Distribution \\
                 Classes and Objects \\
                 Extending Python \\
                 Example Program: Penny Pinching \\
                 16: Creating Web Interfaces with PHP \\
                 PHP and Server-side Scripting \\
                 Server-side Scripting \\
                 PHP Capabilities \\
                 Installing and Configuring PHP \\
                 Introducing PHP Syntax \\
                 Variables, Constants and Data Types \\
                 Operators in PHP \\
                 Statements \\
                 Functions \\
                 Arrays \\
                 Using PHP with the DVD Project \\
                 HTTP, HTML and PHP \\
                 Application \\
                 Login \\
                 Reservation Status \\
                 Search for Titles \\
                 Reserve Titles \\
                 Cancellation \\
                 dvdstorefunctions.php \\
                 dvdstorecommon.php \\
                 dvdstorelogin.php \\
                 dvdstoresearch.php \\
                 dvdstorestatus.php \\
                 dvdstorecancel.php \\
                 dvdstorereserve.php \\
                 17: Embedding and Extending Python with C/C++ \\
                 Extending Python with a C/C++ Extension Module \\
                 Embedding Python in a Host Program \\
                 Developing Extension Modules in C/C++ \\
                 Required Software Tools \\
                 Extending Python Using SWIG \\
                 Extending Python Using the C API \\
                 Python Object Types \\
                 Reference Counting and Ownership \\
                 Overview of Developing C Extension Modules \\
                 Simple Functions \\
                 Slightly More Complex Function \\
                 Global Interpreter Lock \\
                 Creating New Python Object Types \\
                 Encapsulating C++ Objects Using the C API \\
                 Embedding Python in C/C++ Programs \\
                 Embedding Development Environment \\
                 Embedding Python Using High-level Functions \\
                 Statically Linking a Host Program to an Extension
                 Module \\
                 Embedding Python Using Lower-level Calls \\
                 18: Remote Procedure Calls \\
                 Simple Networked DVD Store Database \\
                 BSD Sockets \\
                 Coding Issues Using the BSD Socket Interface \\
                 ONC RPC Architecture and Concepts \\
                 Why Use RPC in the DVD Store Application? \\
                 RPC Tools and Utilities \\
                 rpcgen \\
                 the RPC Protocol Compiler \\
                 Applying RPCs to the DVD Store \\
                 Functions Without Arguments or Return Types \\
                 Functions With Simple Arguments and Simple Return Types
                 \\
                 More Complex Examples \\
                 Returning Arrays \\
                 Client Timeouts \\
                 Authentication \\
                 AUTH{\"O}NONE \\
                 AUT{\"O}HUNIX \\
                 Client Side Authentication Support \\
                 Server Side Authentication Support \\
                 Using RPC Servers with /etc/inetd.conf \\
                 Other Methods to Simplify Network Programming \\
                 19: Multimedia and Linux \\
                 Current State of Affairs \\
                 Program Integration \\
                 Sound \\
                 Devices \\
                 Handling Standard Audio Formats \\
                 Do It Yourself \\
                 Moving Pictures \\
                 Software Players \\
                 Hardware Players \\
                 Hybrids \\
                 Political and Legal Issues \\
                 20: CORBA \\
                 Interface Definition Language (IDL) \\
                 Object Request Broker (ORB) \\
                 Interoperable Object Reference (IOR) \\
                 Object Adapter \\
                 Servers \\
                 Naming and Trading Services \\
                 Evaluating CORBA \\
                 CORBA and RPC \\
                 CORBA and Sockets \\
                 Systems Similar to CORBA \\
                 DCOM or COM+ \\
                 Java Remote Method Invocation (RMI) \\
                 Enterprise JavaBeans \\
                 IBM MQSeries \\
                 SOAP \\
                 IDL: Defining Interfaces \\
                 Modules \\
                 Interfaces \\
                 Basic Data Types \\
                 Template Types \\
                 Example DVD Application \\
                 Language Mappings \\
                 Language Mapping Components \\
                 C Mappings \\
                 Introductory Example: A Simple Messaging System \\
                 Simple Messaging \\
                 Using ORBit with the IDL \\
                 Message Client \\
                 Message Server \\
                 Compiling the ORBit Application \\
                 Running The Message Application \\
                 21: Implementing CORBA with ORBit \\
                 Using CORBA for the DVD Store Application \\
                 DVD Client \\
                 DVD Server \\
                 Logging Server \\
                 Validation Server \\
                 Client Code \\
                 Log Server \\
                 DVD Server \\
                 Using libgnorba \\
                 Configuring ORBit for Multi Host Use \\
                 GOAD \\
                 GNOME Object Activation Directory \\
                 Use of CORBA in GNOME \\
                 Advanced CORBA Functionality \\
                 Dynamic Interface Invocation \\
                 CORBAServices \\
                 CORBAFacilities \\
                 Designing and Running Scalable CORBA Services \\
                 22: Diskless Systems \\
                 Little History \\
                 What, No Disk? \\
                 Why Go Diskless? \\
                 How Does It Work? \\
                 Starting a Diskless System \\
                 Network Identification for Diskless Systems \\
                 Running an Operating System \\
                 Server Configuration \\
                 Boot Image Creation \\
                 Diskless Linux Kernel \\
                 Root File Systems \\
                 Client Applications \\
                 23: XML and libxml \\
                 XML Document Structure \\
                 XML Syntax \\
                 Well-formed XML \\
                 Valid XML \\
                 XML Parsing \\
                 DOM \\
                 SAX \\
                 libXML a.k.a. gnome-xml \\
                 Complete Parser \\
                 24: Beowulf Clusters \\
                 Hardware Setup \\
                 Software Configuration \\
                 Programming a Beowulf Cluster \\
                 Programming Using MPI \\
                 Basic Functionality of an MPI Program \\
                 Compiling and Executing a Simple MPI Program \\
                 Distributed MP3 Encoder \\
                 Communication Performance of a Beowulf Cluster \\
                 Review of Advanced Features of MPI \\
                 Some MPI Programming Examples \\
                 Programming with PVM \\
                 Comparison with MPI \\
                 Obtaining and Installing PVM \\
                 Review of PVM Library Routines \\
                 Sample PVM Program \\
                 25: Documentation \\
                 Defining the Audience \\
                 End User Documentation: GUIs \\
                 Documenting GUIs Running on the Local Machine \\
                 Documenting Web GUIs \\
                 Power User/System Administrator Documentation \\
                 Command-line Options: Providing-help \\
                 Manual Pages \\
                 Keeping Things Manageable \\
                 Fonts \\
                 Paragraphs \\
                 Writing Manual Pages for APIs \\
                 Next Generation Manpages \\
                 info Files \\
                 It's All About Structure: From Single Program to
                 Distributed Systems \\
                 Documentation Tools \\
                 Old, But Still Going Strong: TeX, LaTeX \\
                 New Breed: HTML, XML, and DocBook \\
                 Painting the Big Picture: HOWTO and FAQ Files \\
                 Developer Documentation \\
                 Perl's `pod' Method \\
                 Literary Programming \\
                 Lightweight Literary Programming \\
                 Document Interchange \\
                 PDF Files \\
                 26: Device Drivers \\
                 Execution Context \\
                 Module and Initialization Code \\
                 Linker Sections \\
                 Example Module Code \\
                 PCI Devices and Drivers \\
                 struct pci{\"o}dev \\
                 Finding PCI Devices \\
                 PCI Drivers \\
                 PCI Access Functions \\
                 Resource Allocation \\
                 Interrupt Handlers \\
                 Access to User Space Memory \\
                 kiobuf Architecture \\
                 Locking Primitives \\
                 Scheduling and Wait Queues \\
                 Module Use Counts \\
                 Making It Build \\
                 What to Do with Your New Driver \\
                 Submitting a New Driver \\
                 27: Distributing the Application \\
                 RPM Packages \\
                 RPM User \\
                 What Do I Have Installed? \\
                 RPM Database \\
                 Anatomy of an RPM Package \\
                 Source Packages \\
                 configure, autoconf and automake \\
                 Source RPM Packages \\
                 Building an RPM Package \\
                 Patches \\
                 Making a Patch \\
                 Applying a Patch \\
                 GNATS \\
                 28: Internationalization \\
                 I18N Terminology \\
                 Isn't Unicode the Answer? \\
                 Unicode \\
                 Character Encoding Problem \\
                 ISO 2022: Extension Techniques for Coded Character Sets
                 \\
                 Programming with Unicode \\
                 I18N Models and the System Environment \\
                 POSIX Locale Model \\
                 X/Open Portability Guide (XPG) \\
                 Output Formatting and Input Processing \\
                 X Window System \\
                 Practical Considerations of I18N Programming \\
                 I18N and Internal Text Processing \\
                 Programming with Locales \\
                 I18N and Xlib Programming \\
                 I18N and Linux GUIs \\
                 Status of I18N for Linux Software Development \\
                 I18N in Real Software Development Projects \\
                 Object Oriented Programming and I18N \\
                 Application Builders and I18N \\
                 Where Next for Linux I18N? \\
                 Appendix A: GTK+/GNOME Object Reference \\
                 GTK+ Widgets and Functions \\
                 GtkButton \\
                 GtkCheckButton \\
                 GtkCList \\
                 GtkCombo \\
                 GtkEntry \\
                 GtkFrame \\
                 GtkHBox \\
                 GtkHButtonBox \\
                 GtkHSeparator \\
                 GtkLabel \\
                 GtkMenu \\
                 GtkMenuBar \\
                 GtkMenultem \\
                 GtkNotebook \\
                 GtkOptionMenu \\
                 GtkPixmapMenultem \\
                 GtkScrolledWindow \\
                 GtkSpinButton \\
                 GtkTable \\
                 GtkText \\
                 GtkVBox \\
                 GtkWindow \\
                 GNOME Widgets and Functions \\
                 GnomeAbout \\
                 GnomeApp \\
                 GnomeAppBar \\
                 GnomeDateEdit \\
                 GnomeDialog \\
                 GnomeDock \\
                 GnomeDockItem \\
                 GnomeEntry \\
                 GnomePropertyBox \\
                 Appendix B: DVD Store RPC Protocol Definition \\
                 Appendix C: Open Source Licenses \\
                 Appendix D: Support, Errata, and P2P.Wrox.Com",
}

@Book{McGrath:2000:XPP,
  author =       "Sean McGrath",
  title =        "{XML} processing with {Python}",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xxiv + 527",
  year =         "2000",
  ISBN =         "0-13-021119-2",
  ISBN-13 =      "978-0-13-021119-4",
  LCCN =         "QA76.76.H94 M3885 2000",
  bibdate =      "Tue Nov 07 06:37:21 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sgml2000.bib",
  note =         "Includes CD-ROM.",
  price =        "US\$44.99",
  series =       "The Charles F. Goldfarb series on open information
                 management",
  URL =          "http://www.phptr.com/ptrbooks/ptr_0130211192.html",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language); XML (document
                 markup language)",
  subject =      "XML (Document markup language); Python (Computer
                 program language); Python (Computer program language);
                 XML (Document markup language); XML.; Python
                 (programmeertaal); Python (Programmiersprache); XML.;
                 Python (Programmiersprache); XML.",
  tableofcontents = "1: Introduction \\
                 2: Installing Python \\
                 3: Installing the XML Package \\
                 4: Tools of the Trade \\
                 5: Just Enough Python \\
                 6: Some Important Details \\
                 7: Processing XML with Regular Expressions \\
                 8: Event-driven XML Processing \\
                 9: Tree-driven XML Processing \\
                 10: Just Enough SAX \\
                 11: Just Enough DOM \\
                 12: Pyxie: An Open Source XML-Processing Library for
                 Python \\
                 13: xFS: Filesystem Information in XML \\
                 14: xMail: E-mail as XML \\
                 15: xMySQL: Relational Database Harvesting with Python
                 SAX \\
                 16: xTract: A Query-By-Example XML Retrieval System \\
                 17: The C3 XML Editor/Viewer \\
                 App. A: An Overview of Python for Java Programmers",
}

@Book{Mitchell:2000:DAS,
  author =       "Scott Mitchell",
  title =        "Designing {Active Server Pages}: {Scott Mitchell}'s
                 Guide to Writing Reusable Code",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xii + 348",
  month =        sep,
  year =         "2000",
  ISBN =         "0-596-00044-8",
  ISBN-13 =      "978-0-596-00044-8",
  LCCN =         "TK5105.8885.A26 M58 2000",
  bibdate =      "Mon Apr 18 15:02:00 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$29.95",
  URL =          "http://catdir.loc.gov/catdir/enhancements/fy0715/00062331-d.html;
                 http://catdir.loc.gov/catdir/enhancements/fy0912/00062331-b.html;
                 http://catdir.loc.gov/catdir/enhancements/fy1008/00062331-t.html;
                 http://www.oreilly.com/catalog/9780596000448;
                 http://www.oreilly.com/catalog/designasp",
  acknowledgement = ack-nhfb,
  subject =      "Active server pages; Web sites; Design; Web
                 publishing",
  tableofcontents = "What Is Application Design? \\
                 What's Wrong with ASP Design? \\
                 Why Hasn't ASP Design Advanced? \\
                 What Can Be Done to Improve ASP Design? \\
                 Choosing a Server-Side Scripting Language \\
                 The Popularity of VBScript \\
                 Specifying the Scripting Language \\
                 Creating ASP Pages with JScript \\
                 Creating ASP Pages with PerlScript \\
                 Creating ASP Pages with Python \\
                 Exception Handling \\
                 A Bit of Terminology \\
                 Detecting When Exceptions Occur \\
                 Responding to Exceptions \\
                 Creating Custom HTTP Error Pages \\
                 Regular Expressions, Classes, and Dynamic Evaluation
                 and Execution \\
                 Using the RegExp Object \\
                 Using Object-Oriented Programming with VBScript \\
                 Using Dynamic Evaluation and Execution \\
                 Form Reuse \\
                 The Importance of Code Reuse \\
                 A Primer on Form Use \\
                 Form Validation \\
                 Creating Reusable Server-Side Form Validation Routines
                 \\
                 Developing Reusable Form Creation Routines \\
                 The Practicality of Reuse \\
                 Database Reuse \\
                 Examining Database Usage \\
                 The Building Blocks for Creating Reusable
                 Administration Pages \\
                 Creating Reusable Administration Pages \\
                 Using Components \\
                 COM--A Quick Overview \\
                 Lesser-Known Microsoft COM Components \\
                 Enhancing Microsoft's COM Components \\
                 Building Components \\
                 Enhancing Your Web Site with Third-Party Components \\
                 Executing DOS and Windows Applications on the Web
                 Server with ASPExec \\
                 Obtaining Detailed Information About Your Users's
                 Browsers \\
                 Grabbing Information from Other Web Servers \\
                 Encrypting Information \\
                 Uploading Files from the Browser to the Web Server",
}

@Article{Prechelt:2000:ECS,
  author =       "Lutz Prechelt",
  title =        "An Empirical Comparison of Seven Programming
                 Languages",
  journal =      j-COMPUTER,
  volume =       "33",
  number =       "10",
  pages =        "23--29",
  month =        oct,
  year =         "2000",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Mon Oct 30 17:20:21 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://dlib.computer.org/co/books/co2000/pdf/rx023.pdf;
                 http://www.computer.org/computer/co2000/rx023abs.htm",
  abstract =     "The author takes a first step toward providing hard
                 data about the relative effectiveness of the C, C++,
                 Java, Perl, Python, Rexx and Tcl programming
                 languages",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Pulleyn:2000:EPM,
  author =       "Ivan Pulleyn",
  title =        "Embedding {Python} in Multi-Threaded {C\slash C++}
                 Applications",
  journal =      j-LINUX-J,
  volume =       "73",
  pages =        "??--??",
  month =        may,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 07:44:12 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue73/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Python provides a clean intuitive interface to
                 complex,threaded applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Ramu:2000:CCP,
  author =       "Chenna Ramu and Christina Gemuend",
  title =        "cgimodel: {CGI} Programming Made Easy with {Python}",
  journal =      j-LINUX-J,
  volume =       "75",
  pages =        "??--??",
  month =        jul,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 07:44:13 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue75/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Scherer:2000:SPV,
  author =       "David Scherer and Paul Dubois and Bruce Sherwood",
  title =        "Scientific Programming: {VPython}: {$3$D} Interactive
                 Scientific Graphics for Students",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "2",
  number =       "5",
  pages =        "56--62",
  month =        sep # "\slash " # oct,
  year =         "2000",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Oct 13 14:31:09 2000",
  bibsource =    "http://www.computer.org/cse/cs1999;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://dlib.computer.org/cs/books/cs2000/pdf/c5056.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Talbot:2000:WGT,
  author =       "Hugues Talbot",
  title =        "{wxPython}, a {GUI} Toolkit",
  journal =      j-LINUX-J,
  volume =       "74",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 07:44:13 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue74/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Wilson:2000:PBP,
  author =       "Gregory V. Wilson",
  title =        "Programmer's Bookshelf: {Python}, {C++}, and Other
                 Religions",
  journal =      j-DDJ,
  volume =       "25",
  number =       "8",
  pages =        "145--147",
  month =        aug,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:16 MST 2000",
  bibsource =    "http://www.ddj.com/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Python, C++, and a lot more are on Greg's mind this
                 month, as he examines The Quick Python Book, by Daryl
                 Harms and Kenneth McDonald; Python Annotated Archives,
                 by Martin C. Brown; Python Essential Reference, by
                 David M. Beazley; Python Programming on Win32, by Mark
                 Hammond and Andy Robinson; Efficient C++: Performance
                 Programming Techniques by Dov Bulka and David Mayhew;
                 Exceptional C++, by Herb Sutter; Core Jini, by W. Keith
                 Edwards; Designing Web Usability, by Jakob Nielsen;
                 Understanding Search Engines, by Michael W. Berry and
                 Murray Browne; Toward Zero-Defect Programming, by Allan
                 M. Stavely; and Game Architecture and Design, by Andrew
                 Rollings and Dave Morris.",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Agoren:2001:KKL,
  author =       "Izzet Agoren",
  title =        "Kernel Korner: {Linux} Teleconferencing: Improving the
                 Wireless Network",
  journal =      j-LINUX-J,
  volume =       "85",
  pages =        "24, 26, 28, 30",
  month =        may,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Aug 30 10:41:31 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue85/index.html;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "See erratum \cite{Anonymous:2001:EIA}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:2001:EIA,
  author =       "Anonymous",
  title =        "Errata: {Izzet Agoren's Kernel Corner, May 2001},
                 {Mitch Chapman's ``Create User Interfaces with Glade''
                 (July 2001)}",
  journal =      j-LINUX-J,
  volume =       "89",
  pages =        "6--6",
  month =        sep,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Aug 30 06:06:53 MDT 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue89/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "See \cite{Agoren:2001:KKL,Chapman:2001:CUI}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:2001:PPS,
  author =       "Anonymous",
  title =        "Products: {ProxySource}'s Software Design and
                 Collaboration Application; {YesSoftware}'s Code
                 Generation Application; {Persistence Software}'s
                 Transactional Application Server; {Instantiation}'s
                 {Java} Productivity Tools; {JCanvas} Visual Rapid
                 Application {IDE}; {theKompany.com}'s {Python}
                 Development Environment; {NeuVis} Updates {E}-Business
                 Visual Modeling Tools; {LegacyJ}'s {Java}-Compliant
                 {Cobol} Compiler",
  journal =      j-COMPUTER,
  volume =       "34",
  number =       "3",
  pages =        "108--109",
  month =        mar,
  year =         "2001",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Wed Mar 14 07:01:26 MST 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://dlib.computer.org/co/books/co2001/pdf/r3108.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Baxter:2001:BRC,
  author =       "Michael Baxter",
  title =        "Book Reviews: {{\em Core Python Programming}}",
  journal =      j-LINUX-J,
  volume =       "85",
  pages =        "100--101",
  month =        may,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Wed May 23 15:20:33 MDT 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue85/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue85/4564.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Beazley:2001:PER,
  author =       "David M. Beazley",
  title =        "{Python} essential reference",
  publisher =    pub-NRP,
  address =      pub-NRP:adr,
  edition =      "Second",
  pages =        "xviii + 398",
  year =         "2001",
  ISBN =         "0-7357-1091-0",
  ISBN-13 =      "978-0-7357-1091-7",
  LCCN =         "QA76.73.P98 B43 2001",
  bibdate =      "Tue Mar 12 07:20:53 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
}

@Article{Bisca:2001:UPQ,
  author =       "Mihai Bisca",
  title =        "Using {Python} to Query {MySQL} over the Net",
  journal =      j-LINUX-J,
  volume =       "85",
  pages =        "104--106, 108",
  month =        may,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Wed May 23 15:20:33 MDT 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue85/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Use Python to upgrade your site's search.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Chapman:2001:CUI,
  author =       "Mitch Chapman",
  title =        "Create User Interfaces with {Glade}",
  journal =      j-LINUX-J,
  volume =       "87",
  pages =        "88, 90--92, 94",
  month =        jul,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Aug 30 10:40:31 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue87/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "See erratum \cite{Anonymous:2001:EIA}.",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue87/4702.html",
  abstract =     "Discover the joys of creating GUI apps with Glade and
                 Python--Chapman shows us how.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Chun:2001:CPP,
  author =       "Wesley Chun",
  title =        "Core {Python} programming",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "xxix + 771",
  year =         "2001",
  ISBN =         "0-13-026036-3",
  ISBN-13 =      "978-0-13-026036-9",
  LCCN =         "QA76.73.P98 C48 2001",
  bibdate =      "Tue Mar 12 07:20:53 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Prentice Hall PTR core series",
  URL =          "http://www.phptr.com/ptrbooks/ptr_0130260363.html",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
}

@Article{Dalke:2001:MCE,
  author =       "Andrew Dalke",
  title =        "Making {C} Extensions More {Pythonic}",
  journal =      j-DDJ,
  volume =       "26",
  number =       "1",
  pages =        "68, 70, 72, 74, 76",
  month =        jan,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Feb 15 12:14:40 MST 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2001/2001_01/cpython.txt;
                 http://www.ddj.com/ftp/2001/2001_01/cpython.zip",
  abstract =     "Andrew presents PyDaylight, an object-oriented wrapper
                 for Python that provides the low-level interface to the
                 underlying C libraries. Additional resources include
                 cpython.txt (listings) and cpython.zip (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Book{dosSantosLessa:2001:PDH,
  author =       "Andr{\'e} {dos Santos Lessa}",
  title =        "{Python} Developer's Handbook",
  publisher =    pub-SAMS,
  address =      pub-SAMS:adr,
  pages =        "xxv + 929",
  year =         "2001",
  ISBN =         "0-672-31994-2",
  ISBN-13 =      "978-0-672-31994-5",
  LCCN =         "QA76.73.P98 L47 2001",
  bibdate =      "Tue Mar 12 07:27:34 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  price =        "US\$44.99",
  abstract =     "The \booktitle{Python Developer's Handbook} is
                 designed to expose experienced developers to Python and
                 its uses. Beginning with a brief introduction to the
                 language and its syntax, the book moves quickly into
                 more advanced programming topics.",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science); Object-oriented
                 programming (Computer science); Python (Computer
                 program language); Python (programmeertaal)",
  tableofcontents = "Part I : Basic Programming \\
                 Main Technical Features / 13 \\
                 Python Distribution / 16 \\
                 Installing and Configuring Python / 18 \\
                 Python and Other Languages / 22 \\
                 Patches and Bugs List / 25 \\
                 PSA and the Python Consortium / 26 \\
                 2 : Language Review / 31 \\
                 The Shell Environment / 32 \\
                 Programs / 35 \\
                 Built-In Data Types / 40 \\
                 Operators / 47 \\
                 Expressions / 49 \\
                 Control Statements / 59 \\
                 Data Structures / 62 \\
                 Functions and Procedures / 71 \\
                 Modules and Packages / 77 \\
                 Input and Output / 82 \\
                 File Handling / 86 \\
                 3 : Python Libraries / 97 \\
                 Python Services / 99 \\
                 The String Group / 110 \\
                 Generic Operational System / 119 \\
                 Optional Operational System / 127 \\
                 Debugger / 130 \\
                 Profiler / 131 \\
                 Internet Protocol and Support / 131 \\
                 Internet Data Handling / 134 \\
                 Restricted Execution / 137 \\
                 Multimedia / 137 \\
                 Cryptographic / 139 \\
                 UNIX Specific / 140 \\
                 SGI IRIX Specific / 143 \\
                 Sun OS Specific / 145 \\
                 MS Windows Specific / 145 \\
                 Macintosh Specific / 145 \\
                 Undocumented Modules / 146 \\
                 4 : Exception Handling / 153 \\
                 Exception Handling / 153 \\
                 Standard Exceptions (Getting Help from Other Modules) /
                 157 \\
                 Raising Exceptions / 159 \\
                 Catching Exceptions / 165 \\
                 try/finally / 167 \\
                 Creating User-defined Exceptions / 168 \\
                 The Standard Exception Hierarchy / 169 \\
                 5 : Object-Oriented Programming / 179 \\
                 An Introduction to Python OOP / 180 \\
                 Python Classes and Instances / 183 \\
                 Methods Handling / 190 \\
                 Special Methods / 192 \\
                 Inheritance / 198 \\
                 Polymorphism / 201 \\
                 Encapsulation / 204 \\
                 Metaclasses / 206 \\
                 Part II : Advanced Programming \\
                 6 : Extending and Embedding Python / 221 \\
                 Extending and Embedding Python / 221 \\
                 The Python/C API / 223 \\
                 Extending / 223 \\
                 Compiling and Linking Extension Modules / 237 \\
                 SWIG \\
                 The Simple Wrapper Interface Generator / 243 \\
                 Other Wrappers / 245 \\
                 Embedding / 246 \\
                 7 : Objects Interfacing and Distribution / 259 \\
                 Interfacing Objects / 260 \\
                 Introduction to COM Objects / 261 \\
                 Implementing COM Objects in Python / 266 \\
                 Distributing Objects with Python / 285 \\
                 8 : Working with Databases / 305 \\
                 Working with Databases / 305 \\
                 Flat Databases / 306 \\
                 DBM (Database Managers) Databases / 309 \\
                 Object Serialization and Persistent Storage / 315 \\
                 The ODBC Module / 322 \\
                 ADO (ActiveX Data Objects) / 325 \\
                 Using SQL / 327 \\
                 Python DB API / 335 \\
                 9 : Other Advanced Topics / 351 \\
                 Manipulating Images / 352 \\
                 Working with Sounds / 355 \\
                 Restricted Execution Mode / 360 \\
                 Scientific Computing / 363 \\
                 Regular Expressions / 369 \\
                 Threads / 376 \\
                 Part III : Network Programming \\
                 10 : Basic Network Background / 391 \\
                 Networking / 391 \\
                 HTTP / 405 \\
                 Accessing URLs / 414 \\
                 FTP / 417 \\
                 SMTP/POP3/IMAP / 418 \\
                 Newsgroups \\
                 Telnet and Gopher / 421 \\
                 11 : Web Development / 427 \\
                 Web Development / 427 \\
                 Configuring Web Servers for Python/CGI Scripts / 428
                 \\
                 Third-Party Internet Applications / 433 \\
                 Other Applications / 439 \\
                 Site Management Tools / 442 \\
                 12 : Scripting Programming / 451 \\
                 Web Programming / 451 \\
                 An Introduction to CGI / 452 \\
                 The CGI Module / 454 \\
                 Creating, Installing, and Running Your Script / 456 \\
                 Python Active Scripting / 481 \\
                 13 : Data Manipulation / 491 \\
                 Parsing and Manipulating Data / 491 \\
                 XML Processing / 492 \\
                 XML-RPC / 510 \\
                 XDR Data Exchange Format / 512 \\
                 Handling Other Markup Languages / 517 \\
                 MIME Parsing and Manipulation / 530 \\
                 Generic Conversion Functions / 544 \\
                 Part IV : Graphical Interfaces \\
                 14 : Python and GUIs / 555 \\
                 Python GUI Toolkits / 555 \\
                 The Tkinter Module / 557 \\
                 Overview of Other GUI Modules / 558 \\
                 Designing a Good Interface / 571 \\
                 15 : Tkinter / 575 \\
                 Introduction to Tcl/Tk / 575 \\
                 Geometry Management / 580 \\
                 Handling Tkinter Events / 585 \\
                 Tkinter Widgets / 590 \\
                 Designing Applications / 624 \\
                 PMW \\
                 Python Mega Widgets / 630 \\
                 Part V : Developing with Python \\
                 16 : Development Environment / 635 \\
                 Building Python Applications / 635 \\
                 Development Strategy / 636 \\
                 Integrated Development Environments / 647 \\
                 IDLE / 647 \\
                 Pythonwin / 661 \\
                 17 : Development Tools / 673 \\
                 The Development Process of Python Programs / 673 \\
                 Compiling Python / 674 \\
                 Editing Code / 678 \\
                 Emacs / 679 \\
                 Python Scripts / 681 \\
                 Generating an Executable Python Bytecode / 685 \\
                 Interpreter / 686 \\
                 Debugging the Application / 689 \\
                 Profiling Python / 697 \\
                 Distributing Python Applications / 708 \\
                 Part VI : Python and Java \\
                 18 : JPython / 717 \\
                 Welcome to JPython / 717 \\
                 Java Integration / 722 \\
                 Downloading and Installing JPython / 723 \\
                 The Interpreter / 727 \\
                 The JPython Registry / 729 \\
                 Creating Graphical Interfaces / 731 \\
                 Embedding / 732 \\
                 jpythonc / 734 \\
                 Running JPython Applets / 736 \\
                 A Python/C API / 741 \\
                 Python/C API / 741 \\
                 The Very High Level Layer / 751 \\
                 Reference Counting / 753 \\
                 Exception Handling / 754 \\
                 Standard Exceptions / 757 \\
                 Utilities / 759 \\
                 Abstract Objects Layer / 762 \\
                 Concrete Objects Layer / 771 \\
                 Initialization, Finalization, and Threads / 789 \\
                 Memory Management / 800 \\
                 Defining New Object Types / 804 \\
                 B : Running Python on Specific Platforms / 807 \\
                 Python on Win32 Systems / 807 \\
                 Python on MacOS Systems / 810 \\
                 Python on UNIX Systems / 814 \\
                 Other Platforms / 815 \\
                 Python 1.6 or Python 2.0. Which One to Choose? / 828
                 \\
                 New Development Process / 828 \\
                 Enhancements / 828 \\
                 Expected Code Breaking / 831",
}

@Article{Esterbrook:2001:UMI,
  author =       "Chuck Esterbrook",
  title =        "Using Mix-ins with {Python}",
  journal =      j-LINUX-J,
  volume =       "84",
  pages =        "114, 116, 118, 120--121",
  month =        apr,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Apr 13 06:26:46 MDT 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue84/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue84/4540.html",
  abstract =     "Python provides an ideal language for mix-in
                 development.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Hughes:2001:BRP,
  author =       "Phil Hughes",
  title =        "Book Reviews: {{\em Python Developer's Handbook}}",
  journal =      j-LINUX-J,
  volume =       "82",
  pages =        "180--180",
  month =        feb,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Feb 15 08:04:55 MST 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue82/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Lundh:2001:PSL,
  author =       "Fredrik Lundh",
  title =        "{Python} Standard Library",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xvi + 281",
  month =        may,
  year =         "2001",
  ISBN =         "0-596-00096-0",
  ISBN-13 =      "978-0-596-00096-7",
  LCCN =         "QA76.73.P98 L86 2001",
  bibdate =      "Tue Mar 12 07:28:12 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/",
  price =        "US\$29.95",
  series =       "Nutshell handbook",
  URL =          "http://www.oreilly.com/catalog/pythonsl",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
}

@Book{Lutz:2001:PPO,
  author =       "Mark Lutz",
  title =        "Programming {Python}: Object-Oriented Scripting",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xxxvii + 1255",
  month =        mar,
  year =         "2001",
  ISBN =         "0-596-00085-5",
  ISBN-13 =      "978-0-596-00085-1",
  LCCN =         "QA76.73.P98 L88 2001",
  bibdate =      "Mon Apr 18 15:02:28 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/;
                 z3950.loc.gov:7090/Voyager",
  note =         "Includes CD-ROM.",
  price =        "US\$54.95",
  URL =          "http://www.oreilly.com/catalog/9780596000851;
                 http://www.oreilly.com/catalog/python2",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Misc{Pelletier:2001:Z,
  author =       "Michel Pelletier",
  title =        "{Zope}",
  year =         "2001",
  bibdate =      "Tue Oct 15 15:38:06 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Unpublished invited talk, LISA 2001: 15th Systems
                 Administration Conference, December 2--7, 2001, Town
                 and Country Resort Hotel, San Diego, CA.",
  URL =          "http://db.usenix.org/publications/library/proceedings/lisa2001/tech/",
  abstract =     "Zope is an open-source Web application server written
                 in Python and C and published by Digital Creations.
                 Michel is a software developer and documentation writer
                 for DC who has worked with Zope for over two years and
                 is co-author of the New Riders publication {\em The
                 Zope Book}. He will be presenting some of the cooler
                 features Zope has to offer to the presentation
                 designer, content manager, programmer, and system
                 administrator.",
  acknowledgement = ack-nhfb,
}

@Article{Rempt:2001:PPT,
  author =       "Boudewijn Rempt",
  title =        "{Python}'s {PyQt} Toolkit",
  journal =      j-DDJ,
  volume =       "26",
  number =       "1",
  pages =        "88, 90, 92, 94",
  month =        jan,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Feb 15 12:14:40 MST 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2001/2001_01/pyqt.txt",
  abstract =     "Boudewijn examines PyQt, one of the most advanced
                 Python GUI libraries, focusing on the innovative
                 signals-and-slots paradigm it offers you. Additional
                 resources include pyqt.txt (listings).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Rempt:2001:SJP,
  author =       "Boudewijn Rempt",
  title =        "Scripting With {Java} and {Python}: Building a
                 {Python} console window in a {Java} application",
  journal =      j-DDJ,
  volume =       "26",
  number =       "10",
  pages =        "56, 60--61",
  month =        oct,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Feb 12 05:21:40 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2001/2001_10/pyconsol.txt;
                 http://www.ddj.com/ftp/2001/2001_10/pyconsol.zip",
  abstract =     "Boudewijn shows how you can embed a standard language
                 such as Python into a Java application. Additional
                 resources include {\tt pyconsol.txt} (listings) and
                 {\tt pyconsol.zip} (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Richardson:2001:LEO,
  author =       "Bruce Richardson and Anonymous and Nathan Hokanson and
                 Ken O. Burtch and Jim V. and Jerel Crosland and Paul
                 Taylor and Sheldon Dubrowin and Paul Dale Roberts and
                 Dean Provins and Kathy Lynn and Andre Lessa",
  title =        "Letters to the Editor: Offended; {A} Real Bastard;
                 Common Misconception; {Ada} Boy!; Wacky Names;
                 Penultimate {Linux} Box?; {SuSe} Too Loosa; {LJ}
                 Interactive; Sold on {{\em Soldier}}; {\tt groff} is
                 Great; What's up with {Ogg}?; Changes to the {{\em
                 Python Developer's Handook}}",
  journal =      j-LINUX-J,
  volume =       "83",
  pages =        "6, 141--142",
  month =        mar,
  year =         "2001",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Feb 20 11:49:34 2001",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue83/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Tan:2001:JWP,
  author =       "C. K. Tan",
  title =        "A {JDBC} Wrapper --- In {Python}!",
  journal =      j-DDJ,
  volume =       "26",
  number =       "8",
  pages =        "50, 52, 54",
  month =        aug,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Wed Jul 11 06:31:35 MDT 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2001/2001_08/jdbcpy.txt;
                 http://www.ddj.com/ftp/2001/2001_08/jdbcpy.zip",
  abstract =     "Database access via JDBC can be less than
                 straightforward. To simplify the process, C.K. presents
                 a Python-based framework that wraps around JDBC.
                 Additional resources include jdbcpy.txt (listings) and
                 jdbcpy.zip (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Wilson:2001:PBT,
  author =       "Gregory V. Wilson",
  title =        "Programmer's Bookshelf: Time Warps",
  journal =      j-DDJ,
  volume =       "26",
  number =       "2",
  pages =        "159--160",
  month =        feb,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Feb 15 12:14:41 MST 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/",
  abstract =     "Greg looks at a bunch of books, including Programming
                 Ruby, Program Development in Java, The Interpretation
                 of Object-Oriented Programming Languages, MMIXware: A
                 RISC Computer for the Third Millennium, Essential XML,
                 XML Processing with Python, Presenting C\#, and Women
                 in Computer Sciences: Closing the Gap in Higher
                 Education.",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Anonymous:2002:CPF,
  author =       "Anonymous",
  title =        "Correction: {``Python and Finite Elements''}",
  journal =      j-DDJ,
  volume =       "27",
  number =       "4--4",
  pages =        "10--10",
  month =        apr,
  year =         "2002",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Mar 5 07:08:41 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "See \cite{Pletzer:2002:PFE}.",
  URL =          "http://www.ddj.com/",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Baumgartner:2002:DIP,
  author =       "Florian Baumgartner and Torsten Braun and Bharat
                 Bhargava",
  title =        "Design and Implementation of a Python-Based Active
                 Network Platform for Network Management and Control",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2546",
  pages =        "177--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:58:13 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2546.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2546/25460177.htm;
                 http://link.springer.de/link/service/series/0558/papers/2546/25460177.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Book{Blaess:2002:LSS,
  author =       "Christophe Blaess",
  title =        "Langages de scripts sous {Linux}: {Shell Bash}, {Sed},
                 {Awk}, {Perl}, {Tcl}, {Tk}, {Python}, {Ruby}",
  publisher =    pub-EYROLLES,
  address =      pub-EYROLLES:adr,
  pages =        "xx + 733",
  year =         "2002",
  ISBN =         "2-212-11028-6",
  ISBN-13 =      "978-2-212-11028-9",
  LCCN =         "QA76.7 B4 2002",
  bibdate =      "Fri Jul 01 14:51:40 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Brinkmann:2002:GGG,
  author =       "Peter Brinkmann",
  title =        "{Gumbie}: a {GUI} Generator For {Jython}",
  journal =      j-DDJ,
  volume =       "27",
  number =       "4",
  pages =        "46--50",
  month =        apr,
  year =         "2002",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Mar 5 07:08:41 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/ftp/2002/2002_04/gumbie.txt;
                 http://www.ddj.com/ftp/2002/2002_04/gumbie.zip",
  abstract =     "Jython is a 100 percent pure Java implementation of
                 Python that makes Java scriptable. Peter uses it to
                 build his Gumbie GUI tool. Additional resources include
                 gumbie.txt (listings) and gumbie.zip (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Book{Christopher:2002:PPP,
  author =       "Thomas W. Christopher",
  title =        "{Python} programming patterns",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "xix + 538",
  year =         "2002",
  ISBN =         "0-13-040956-1",
  ISBN-13 =      "978-0-13-040956-0",
  LCCN =         "QA76.73.P98 C47 2002",
  bibdate =      "Tue Mar 12 07:20:53 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.phptr.com/ptrbooks/ptr_0130409561.html",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
  subject =      "Python (Computer program language); Python
                 (Programmiersprache)",
  tableofcontents = "1: Getting Started \\
                 2: Statements \\
                 3: Modules and Packages \\
                 4: Objects and Classes \\
                 5: Object-Oriented Patterns \\
                 6: Functions \\
                 7: Input/Output \\
                 8: Sequences \\
                 9: Strings \\
                 10: Dictionaries \\
                 11: Exceptions \\
                 12: Types \\
                 13: Programs and Run-Time Compilation \\
                 14: Abstract Data Types and Special Methods \\
                 15: Abstract Container Data Types \\
                 16: Priority Queues \\
                 17: Sets \\
                 18: Concurrency \\
                 19: Transactions \\
                 20: Run Queues \\
                 21: Regular Expressions \\
                 22: Parser \\
                 23: Wrap-Up",
}

@Article{Chun:2002:KPR,
  author =       "Wesley J. Chun",
  title =        "Keeping Up with {Python}: the 2.2 Release",
  journal =      j-LINUX-J,
  volume =       "99",
  pages =        "??--??",
  month =        jul,
  year =         "2002",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Apr 12 06:59:06 MDT 2003",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue99/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.linuxjournal.com/article/5597",
  abstract =     "Unification, iterators and more--the improvements to
                 the Python 2.2 release series.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Chun:2002:PQG,
  author =       "Wesley J. Chun",
  title =        "{Python 2.2} {Q\&A} with {Guido van Rossum}, Creator
                 of {Python}",
  journal =      j-LINUX-J,
  volume =       "98",
  pages =        "??--??",
  month =        jun,
  year =         "2002",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Apr 12 06:59:06 MDT 2003",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue98/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.linuxjournal.com/article.php?sid=5948",
  abstract =     "No full monty, just Guido's honest opinions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Deitel:2002:PHP,
  author =       "Harvey M. Deitel and Paul Deitel and Jonathan Liperi
                 and Ben Wiedermann",
  title =        "{Python} How To Program",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "lviii + 1292 + 6",
  year =         "2002",
  ISBN =         "0-13-092361-3 (paperback), 0-13-092557-8 (CD-ROM)",
  ISBN-13 =      "978-0-13-092361-5 (paperback), 978-0-13-092557-2
                 (CD-ROM)",
  LCCN =         "QA76.73.P98 P98 2002",
  bibdate =      "Thu Oct 31 18:16:58 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  price =        "US\$74.00",
  URL =          "http://www.phptr.com/ptrbooks/ptr_0130923613.html",
  acknowledgement = ack-nhfb,
  remark =       "CD-ROM contents: Alice 99 interactive 3D graphics
                 programming system -- Python 2.2 (Windows/Linux) --
                 Apache web server 1.3.22 / from the Apache Software
                 Foundation -- Webware 0.6 for Python (Windows/Linux) --
                 Pixo Internet microbrowser 2.1 -- IBM WebSphere voice
                 server SDK 2.0 for Windows 2000 for evaluation.",
  remark-2 =     "System requirements for accompanying CD-ROM: Pentium
                 166 MHz or faster processor (366 MHz (or higher)
                 required for WebSphere Voice Server for Windows 2000);
                 64 MHz RAM (128 MHz for NT/2000); Windows 9x, Windows
                 NT (or later) (some software packages require
                 particular versions of Windows), or Red Hat Linux 6.2
                 (or later); 32 MB (48 MB recommended); CD-ROM drive;
                 Internet connection.",
  subject =      "Python (Computer program language)",
}

@Article{Farrell:2002:MP,
  author =       "Doug Farrell",
  title =        "Mediator\slash {Python}",
  journal =      j-LINUX-J,
  volume =       "98",
  pages =        "??--??",
  month =        jun,
  year =         "2002",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Apr 12 06:59:06 MDT 2003",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue98/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.linuxjournal.com/article.php?sid=5858",
  abstract =     "Sure it's no system for a basis of government, but
                 Python can help build smart dialog boxes.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Fehily:2002:VQG,
  author =       "Chris Fehily",
  title =        "Visual quickstart guide: {Python}",
  publisher =    pub-PEACHPIT,
  address =      pub-PEACHPIT:adr,
  pages =        "xxvi + 410",
  year =         "2002",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "A76.73.P98 F44 2002",
  bibdate =      "Thu Apr 16 11:52:32 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/0201748843",
  acknowledgement = ack-nhfb,
}

@Book{Hetland:2002:PP,
  author =       "Magnus Lie Hetland",
  title =        "Practical {Python}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxi + 619",
  year =         "2002",
  ISBN =         "1-59059-006-6",
  ISBN-13 =      "978-1-59059-006-5",
  LCCN =         "QA76.73.P98 H47 2002",
  bibdate =      "Fri Nov 07 05:28:22 2003",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Hinsen:2002:HLS,
  author =       "K. Hinsen",
  title =        "High-Level Scientific Programming with {Python}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2331",
  pages =        "691--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:36 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2331.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2331/23310691.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2331/23310691.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Jackson:2002:PPI,
  author =       "Keith R. Jackson",
  title =        "{pyGlobus}: a {Python} interface to the {Globus
                 Toolkit TM}",
  journal =      j-CCPE,
  volume =       "14",
  number =       "13--15",
  pages =        "1075--1083",
  month =        nov # "\slash " # dec,
  year =         "2002",
  CODEN =        "CCPEBO",
  DOI =          "http://dx.doi.org/10.1002/cpe.683",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Tue Jan 13 09:28:02 MST 2004",
  bibsource =    "http://www.interscience.wiley.com/jpages/1532-0626;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency and Computation: Prac\-tice and
                 Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
  onlinedate =   "8 Jan 2003",
}

@Book{Jones:2002:PX,
  author =       "Christopher A. Jones and Fred L. Drake",
  title =        "{Python} and {XML}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xvi + 360",
  year =         "2002",
  ISBN =         "0-596-00128-2",
  ISBN-13 =      "978-0-596-00128-5",
  LCCN =         "QA76.73.P98 J66 2002",
  bibdate =      "Tue Mar 12 07:20:53 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language); XML (document
                 markup language)",
}

@Book{Lutz:2002:PPR,
  author =       "Mark Lutz",
  title =        "{Python} Pocket Reference",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "iv + 124",
  year =         "2002",
  ISBN =         "0-596-00189-4",
  ISBN-13 =      "978-0-596-00189-6",
  LCCN =         "QA76.73.P98 L89 2002",
  bibdate =      "Mon Apr 18 15:03:38 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/prdindex.html;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$11.95",
  URL =          "http://safari.oreilly.com/0596001894;
                 http://www.oreilly.com/catalog/9780596001896;
                 http://www.oreilly.com/catalog/pythonpr2",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
  publishersummary = "The Python Pocket Reference, 2nd Edition covers
                 the latest Python release 2.2. It is a short, concise
                 reference for the Python programming language, and its
                 most commonly used libraries and tools. Designed to be
                 a quick and easy to use resource for developers, this
                 book serves as a natural companion to O'Reilly's
                 Learning Python and Programming Python, 2nd Edition.
                 This edition includes new summary material for Python's
                 GUI, Internet, and database programming tools.",
  subject =      "Python (Computer program language)",
}

@Book{Martelli:2002:PC,
  editor =       "David Ascher Alex Martelli",
  title =        "{Python} Cookbook",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxix + 574",
  year =         "2002",
  ISBN =         "0-596-00167-3",
  ISBN-13 =      "978-0-596-00167-4",
  LCCN =         "QA76.73.P98 P983 2002 Stacks",
  bibdate =      "Wed Oct 30 16:15:17 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/prdindex.html",
  price =        "US\$39.95",
  URL =          "http://safari.oreilly.com/0596001673;
                 http://www.oreilly.com/catalog/pythoncook",
  acknowledgement = ack-nhfb,
  keywords =     "Python (computer program language)",
  publishersummary = "The Python Cookbook is a collection of problems,
                 solutions, and practical examples for Python
                 programmers, written by Python programmers. It contains
                 over two hundred recipes for text manipulation, object
                 oriented programming, XML processing, system
                 administration, and much more. This book is a treasure
                 trove of useful code for both novices and advanced
                 practitioners, with contributions from such Python
                 luminaries as Guido van Rossum, Tim Peters, Paul
                 Prescod, and Mark Hammond.",
}

@Article{Maurer:2002:CPL,
  author =       "W. Douglas Maurer",
  title =        "The comparative programming languages course: a new
                 chain of development",
  journal =      j-SIGCSE,
  volume =       "34",
  number =       "1",
  pages =        "336--340",
  month =        mar,
  year =         "2002",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/563517.563472",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:52 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Inroads: paving the way towards excellence in
                 computing education.",
  abstract =     "The programming language concepts which ought to be
                 presented in the comparative programming languages
                 course (either graduate or undergraduate) are all
                 covered by choosing C++, Java, Perl, and Python as the
                 languages to be compared. These include dynamic typing,
                 object orientation, multiple inheritance, interpreters
                 and compilers, keyword and default parameters,
                 generics, operator overloading, complex numbers,
                 universal hierarchies, exceptions, and garbage
                 collection. We describe such a course, which we have
                 given.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Pedroni:2002:JE,
  author =       "Samuele Pedroni and Noel Rappin",
  title =        "Jython Essentials",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xx + 277",
  year =         "2002",
  ISBN =         "0-596-00247-5",
  ISBN-13 =      "978-0-596-00247-3",
  LCCN =         "QA76.73.J38 P43 2002 Stacks",
  bibdate =      "Wed Oct 30 16:15:17 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.oreilly.com/catalog/prdindex.html",
  price =        "US\$24.95",
  URL =          "http://www.oreilly.com/catalog/jythoness",
  acknowledgement = ack-nhfb,
  keywords =     "Java (computer program language); Python (computer
                 program language)",
  publishersummary = "Jython is an implementation of the Python
                 programming language written in Java, allowing Python
                 programs to integrate seamlessly with any Java code.
                 The secret to Jython's popularity lies in the
                 combination of Java's libraries and tools with Python's
                 rapid development capabilities. Jython Essentials
                 provides a solid introduction to the language, numerous
                 examples of Jython/Java interaction, and valuable
                 reference material on modules and libraries of use to
                 Jython programmers.",
}

@Article{Petrone:2002:DPP,
  author =       "Jason Petrone",
  title =        "{$3$-D} Programming with {Python}",
  journal =      j-LINUX-J,
  volume =       "94",
  pages =        "89--94",
  month =        feb,
  year =         "2002",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Feb 8 16:59:02 MST 2002",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue94/index.html;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Accessing PyOpenGL for faster 3-D programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Pletzer:2002:PFE,
  author =       "Alexander Pletzer",
  title =        "{Python} and Finite Elements",
  journal =      j-DDJ,
  volume =       "27",
  number =       "3",
  pages =        "36, 38--40",
  month =        mar,
  year =         "2002",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Feb 12 05:21:42 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "See correction \cite{Anonymous:2002:CPF}.",
  URL =          "http://www.ddj.com/ftp/2002/2002_03/ellipt2d.txt;
                 http://www.ddj.com/ftp/2002/2002_03/ellipt2d.zip",
  abstract =     "ELLIPT2D is a finite element package written in Python
                 that's designed to solve elliptic equations in two
                 dimensions. Additional resources include {\tt
                 ellipt2d.txt} (listings) and {\tt ellipt2d.zip} (source
                 code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Sitaker:2002:PPW,
  author =       "Kragen Sitaker",
  title =        "{Python} or {Perl}: Which is Better?",
  journal =      j-LOGIN,
  volume =       "27",
  number =       "3",
  pages =        "??--??",
  month =        jun,
  year =         "2002",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Tue Apr 11 10:52:16 MDT 2006",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.usenix.org/publications/login/2002-06/index.html",
  URL =          "http://www.usenix.org/publications/login/2002-06/pdfs/sitaker.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Book{Thiruvathukal:2002:WPT,
  author =       "George K. (George Kuriakose) Thiruvathukal and John P.
                 Shafaee and Thomas W. Christopher",
  title =        "{Web} programming: techniques for integrating
                 {Python}, {Linux}, {Apache}, and {MySQL}",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "xviii + 745",
  year =         "2002",
  ISBN =         "0-13-041065-9",
  ISBN-13 =      "978-0-13-041065-8",
  LCCN =         "QA76.625 .T48 2002",
  bibdate =      "Tue Mar 12 07:20:53 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.phptr.com/ptrbooks/ptr_0130410659.html",
  acknowledgement = ack-nhfb,
  keywords =     "Internet programming; Web sites -- design",
}

@Article{Wilson:2002:PBS,
  author =       "Gregory V. Wilson",
  title =        "Programmer's Bookshelf: Sometimes You Get What You
                 Want",
  journal =      j-DDJ,
  volume =       "27",
  number =       "2",
  pages =        "107--170",
  month =        feb,
  year =         "2002",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Feb 12 05:21:41 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/",
  abstract =     "The books Greg examines this month include C++
                 Footprint and Performance Optimization; Python Standard
                 Library; Applying Use Case Driven Object Modeling with
                 UML; and Structure and Interpretation of Classical
                 Mechanics.",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Blank:2003:PPB,
  author =       "Douglas Blank and Deepak Kumar and Lisa Meeden and
                 Holly Yanco",
  title =        "{Pyro}: a {Python}-based versatile programming
                 environment for teaching robotics",
  journal =      j-JERIC,
  volume =       "3",
  number =       "4",
  pages =        "1--15",
  month =        dec,
  year =         "2003",
  CODEN =        "????",
  ISSN =         "1531-4278",
  bibdate =      "Tue Apr 26 17:40:41 MDT 2005",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jeric/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Journal on Educational Resources in Computing
                 (JERIC)",
}

@Article{Blank:2003:PRE,
  author =       "Douglas Blank and Lisa Meeden and Deepak Kumar",
  title =        "{Python} robotics: an environment for exploring
                 robotics beyond {LEGOs}",
  journal =      j-SIGCSE,
  volume =       "35",
  number =       "1",
  pages =        "317--321",
  month =        jan,
  year =         "2003",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/792548.611996",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:59 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  abstract =     "This paper describes Pyro, a robotics programming
                 environment designed to allow inexperienced
                 undergraduates to explore topics in advanced robotics.
                 Pyro, which stands for Python Robotics, runs on a
                 number of advanced robotics platforms. In addition,
                 programs in Pyro can abstract away low-level details
                 such that individual programs can work unchanged across
                 very different robotics hardware. Results of using Pyro
                 in an undergraduate course are discussed.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Cottom:2003:USB,
  author =       "Teresa L. Cottom",
  title =        "Using {SWIG} to Bind {C++} to {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "5",
  number =       "2",
  pages =        "88--96, c3",
  month =        mar # "\slash " # apr,
  year =         "2003",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Jan 3 18:25:05 MST 2004",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2003/02/c2toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://csdl.computer.org/comp/mags/cs/2003/02/c2088abs.htm;
                 http://csdl.computer.org/dl/mags/cs/2003/02/c2088.htm;
                 http://csdl.computer.org/dl/mags/cs/2003/02/c2088.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Dawson:2003:PPA,
  author =       "Michael Dawson",
  title =        "{Python} programming for the absolute beginner",
  publisher =    "Premier Press Inc.",
  address =      "Boston, MA, USA",
  pages =        "xviii + 452",
  year =         "2003",
  ISBN =         "1-59200-073-8 (paperback), 1-59200-073-8,
                 1-59200-269-2 (e-book)",
  ISBN-13 =      "978-1-59200-073-9 (paperback), 978-1-59200-073-9,
                 978-1-59200-269-6 (e-book)",
  LCCN =         "QA76.73.P98 D387 2003",
  bibdate =      "Thu Apr 16 12:30:41 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/1592000738",
  acknowledgement = ack-nhfb,
}

@Article{Guzdial:2003:MCC,
  author =       "Mark Guzdial",
  title =        "A media computation course for non-majors",
  journal =      j-SIGCSE,
  volume =       "35",
  number =       "3",
  pages =        "104--108",
  month =        sep,
  year =         "2003",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/961290.961542",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:03 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  abstract =     "Computing may well become considered an essential part
                 of a liberal education, but introductory programming
                 courses will not look like the way that they do today.
                 Current CSI course are failing dramatically. We are
                 developing a new course, to be taught starting in
                 Spring 2003, which uses computation for communication
                 as a guiding principle. Students learn to program by
                 writing Python programs for manipulating sound, images,
                 and movies. This paper describes the course development
                 and the tools developed for the course. The talk will
                 include the first round of assessment results.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Hightower:2003:PPJ,
  author =       "Richard Hightower",
  title =        "{Python} programming with the {Java} class libraries:
                 a tutorial for building {Web} and Enterprise
                 applications with {Jython}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xii + 620",
  year =         "2003",
  ISBN =         "0-201-61616-5",
  ISBN-13 =      "978-0-201-61616-3",
  LCCN =         "QA76.73.P98 H54 2003",
  bibdate =      "Tue May 6 05:26:58 MDT 2003",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This tutorial begins with coverage of some of the
                 basics of Python programming. Using plenty of
                 skill-building exercises and interactive programming
                 sessions, this book will help those new to programming
                 develop an understanding of concepts and practical
                 techniques. For experienced programmers, the book
                 demonstrates Python's breadth of capabilities and shows
                 the ways that Python interfaces with Java APIs for
                 professional application development.'' ``In addition,
                 the book contains instructions for downloading and
                 installing the Python language and the Java Development
                 Kit (JDK). Terminology, definitions, explanations, and
                 numerous code samples make this book a useful learning
                 experience.'' ``Whether you are sophisticated computer
                 user new to programming or a serious application
                 developer, Python Programming with the Java Class
                 Libraries will give you insight into the power of
                 Python and the know-how to put it to work.",
  acknowledgement = ack-nhfb,
  keywords =     "application software -- development; Java (computer
                 program language); Python (computer program language)",
  tableofcontents = "1: Jython Overview \\
                 2: Statements and Expressions \\
                 3: Operators and String Formatting \\
                 4: Control Flow \\
                 5: Organizing Your Code \\
                 6: Object-Oriented Programming \\
                 7: Errors and Exceptions \\
                 8: Working with Files \\
                 9: Built-In Functions \\
                 10: Working with Strings \\
                 11: Interfacing with Java \\
                 12: Working with Java Streams \\
                 13: JFC Fundamentals \\
                 14: First Swing Application, Layout, and Menus \\
                 15: Graphics and Events \\
                 16: Advanced Swing \\
                 17: SQL and JDBC \\
                 18: Applets \\
                 App. A: Installing Jython on Windows \\
                 App. B: Installing Jython on Linux / Jaysen Lorenzen
                 \\
                 App. C: The Power of Scripting \\
                 App. D: Java and Python: A Comparison \\
                 App. E: Regular Expressions / Jaysen Lorenzen",
}

@Article{Hinsen:2003:HLP,
  author =       "Konrad Hinsen",
  title =        "High-Level Parallel Software Development with {Python}
                 and {BSP}",
  journal =      j-PARALLEL-PROCESS-LETT,
  volume =       "13",
  number =       "3",
  pages =        "473--??",
  month =        sep,
  year =         "2003",
  CODEN =        "PPLTEE",
  ISSN =         "0129-6264 (print), 1793-642X (electronic)",
  bibdate =      "Sat Nov 6 18:06:31 MST 2004",
  bibsource =    "http://ejournals.wspc.com.sg/ppl/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Processing Letters",
  journal-URL =  "http://www.worldscientific.com/loi/ppl",
}

@InProceedings{Langtangen:2003:UDP,
  author =       "H. P. Langtangen and K.-A. Mardal",
  title =        "Using {Diffpack} from {Python} Scripts",
  crossref =     "Langtangen:2003:ATC",
  volume =       "33",
  pages =        "321--360",
  year =         "2003",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-18237-2_8",
  bibdate =      "Fri Dec 21 16:04:02 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/978-3-642-18237-2_8",
  acknowledgement = ack-nhfb,
  book-DOI =     "http://dx.doi.org/10.1007/978-3-642-18237-2",
  book-URL =     "http://www.springerlink.com/content/978-3-642-18237-2",
}

@Book{Martelli:2003:PN,
  author =       "Alex Martelli",
  title =        "{Python} in a nutshell",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xv + 636",
  year =         "2003",
  ISBN =         "0-596-00188-6",
  ISBN-13 =      "978-0-596-00188-9",
  LCCN =         "QA76.73.P98 M37 2003",
  bibdate =      "Mon Apr 18 15:03:37 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.oreilly.com/catalog/9780596001889",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
  tableofcontents = "Part I: Getting Started with Python \\
                 1: Introduction to Python \\
                 2: Installation \\
                 3: The Python Interpreter \\
                 Part II: Core Python Language and Built-ins \\
                 4: The Python Language \\
                 5: Object-Oriented Python \\
                 6: Exceptions \\
                 7: Modules \\
                 8: Core Built-ins \\
                 9: Strings and Regular Expressions \\
                 Part III: Python Library and Extension Modules \\
                 10: File and Text Operations \\
                 11: Persistence and Databases \\
                 12: Time Operations \\
                 13: Controlling Execution \\
                 14: Threads and Processes \\
                 15: Numeric Processing \\
                 16: Tkinter GUIs \\
                 17: Testing, Debugging, and Optimizing \\
                 Part IV: Network and Web Programming \\
                 18: Client-Side Network Protocol Modules",
}

@Book{Mertz:2003:TPP,
  author =       "David Mertz",
  title =        "Text processing in {Python}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xix + 520",
  year =         "2003",
  ISBN =         "0-321-11254-7",
  ISBN-13 =      "978-0-321-11254-5",
  LCCN =         "QA76.9.T48 M47 2003",
  bibdate =      "Wed Oct 14 08:00:43 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "\booktitle{Text Processing in Python} is an
                 example-driven, hands-on tutorial that carefully
                 teaches programmers how to accomplish numerous text
                 processing tasks using the Python language. Filled with
                 concrete examples, this book provides efficient and
                 effective solutions to specific text processing
                 problems and practical strategies for dealing with all
                 types of text processing challenges.",
  acknowledgement = ack-nhfb,
  subject =      "Text processing (Computer science); Python (Computer
                 program language); Python (Computer program language);
                 Text processing (Computer science); Python
                 (programmeertaal); Tekstverwerking.; Programming
                 Languages",
  tableofcontents = "1: Python Basics \\
                 2: Basic String Operations \\
                 3: Regular Expressions \\
                 4: Parsers and State Machines \\
                 5: Internet Tools and Techniques \\
                 App. A: Selective and Impressionistic Short Review of
                 Python \\
                 App. B: Data Compression Primer \\
                 App. C: Understanding Unicode \\
                 App. D: A State Machine for Adding Markup to Text",
}

@Article{Miller:2003:OCP,
  author =       "W. W. Miller and C. Sontag and J. F. Rose",
  title =        "{OPUS}: a {CORBA} Pipeline for {Java}, {Python}, and
                 {Perl} Applications",
  journal =      "Astronomical Society of the Pacific Conference
                 Series",
  volume =       "295",
  pages =        "261--264",
  year =         "2003",
  CODEN =        "????",
  ISSN =         "1050-3390",
  bibdate =      "Tue Sep 2 06:25:03 MDT 2003",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 Ingenta database",
  acknowledgement = ack-nhfb,
}

@Article{Porter:2003:MDX,
  author =       "Brett Porter",
  title =        "Managing Devices with {XML-RPC}",
  journal =      j-DDJ,
  volume =       "28",
  number =       "4",
  pages =        "66, 68--70",
  month =        apr,
  year =         "2003",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Jun 12 05:46:22 MDT 2003",
  bibsource =    "http://www.ddj.com/articles/2003/0304/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.ddj.com/documents/s=7827/ddj0304h/",
  abstract =     "Brett presents a client-side monitor application
                 (written in Python) that uses XML-RPC to monitor the
                 state of a simulated device.",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Prechelt:2003:SLG,
  author =       "L. Prechelt",
  title =        "Are Scripting Languages Any Good? {A} Validation of
                 {Perl}, {Python}, {Rexx}, and {Tcl} against {C}, {C}++,
                 and {Java}",
  journal =      "Advances in Computers",
  volume =       "57",
  publisher =    "Academic Press, Inc.",
  pages =        "207--271",
  year =         "2003",
  CODEN =        "????",
  ISSN =         "0065-2458",
  bibdate =      "Tue Aug 5 06:56:44 MDT 2003",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 Ingenta database",
  acknowledgement = ack-nhfb,
}

@Article{Shannon:2003:ABF,
  author =       "Christine Shannon",
  title =        "Another breadth-first approach to {CS I} using
                 {Python}",
  journal =      j-SIGCSE,
  volume =       "35",
  number =       "1",
  pages =        "248--251",
  month =        jan,
  year =         "2003",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/792548.611980",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:59 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  abstract =     "In an effort to serve the needs of both majors and
                 non-majors, the Computer Science Department at Centre
                 College has restructured the CS I course so that it
                 uses the language Python, devotes more attention to the
                 Internet and the World Wide Web, addresses ethical and
                 societal issues, and introduces students to
                 programmable robots and an SQL database. This diverse
                 course has been attractive to the students while still
                 maintaining a strong emphasis on programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Stubblebine:2003:REP,
  author =       "Tony Stubblebine",
  title =        "Regular expression pocket reference",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "vi + 93",
  year =         "2003",
  ISBN =         "0-596-00415-X",
  ISBN-13 =      "978-0-596-00415-6",
  LCCN =         "QA76.9.T48 S78 2003",
  bibdate =      "Mon Apr 18 15:06:11 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.oreilly.com/catalog/9780596004156",
  acknowledgement = ack-nhfb,
  remark =       "``Regular expressions for Perl, C, PHP, Python, Java,
                 and .NET'' --- cover.",
  subject =      "Text processing (Computer science); Programming
                 languages (Electronic computers); Syntax",
}

@Book{vanRossum:2003:IPR,
  editor =       "Guido van Rossum and Fred L. {Drake, Jr.}",
  title =        "An introduction to {Python}: release 2.2.2",
  publisher =    pub-NETWORK-THEORY,
  address =      pub-NETWORK-THEORY:adr,
  pages =        "ii + 115",
  year =         "2003",
  ISBN =         "0-9541617-6-9",
  ISBN-13 =      "978-0-9541617-6-7",
  LCCN =         "????",
  bibdate =      "Mon Jul 4 16:13:06 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.ox.ac.uk:210/ADVANCE",
  acknowledgement = ack-nhfb,
  remark =       "Reissued in 2006 as release 2.6, but with same ISBN.",
  subject =      "Python (Computer program language)",
}

@Book{Blaess:2004:SSL,
  author =       "Christophe Blaess",
  title =        "Scripts sous {Linux}: {Shell Bash}, {Sed}, {Awk},
                 {Perl}, {TCL}, {Tk}, {Python}, {Ruby}",
  publisher =    pub-EYROLLES,
  address =      pub-EYROLLES:adr,
  edition =      "Second",
  pages =        "xxi + 761",
  year =         "2004",
  ISBN =         "2-212-11405-2",
  ISBN-13 =      "978-2-212-11405-8",
  LCCN =         "QA76.76O63; QA76.7",
  bibdate =      "Fri Jul 01 14:51:40 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Blank:2004:PPB,
  author =       "Douglas Blank and Deepak Kumar and Lisa Meeden and
                 Holly Yanco",
  title =        "{Pyro}: a python-based versatile programming
                 environment for teaching robotics",
  journal =      j-JERIC,
  volume =       "4",
  number =       "3",
  pages =        "1--15",
  month =        sep,
  year =         "2004",
  CODEN =        "????",
  ISSN =         "1531-4278",
  bibdate =      "Sat Sep 17 14:21:54 MDT 2005",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jeric/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Journal on Educational Resources in Computing
                 (JERIC)",
}

@Article{Decaluwe:2004:MPB,
  author =       "Jan Decaluwe",
  title =        "{MyHDL}: a {Python}-based hardware description
                 language",
  journal =      j-LINUX-J,
  volume =       "2004",
  number =       "127",
  pages =        "??--??",
  month =        nov,
  year =         "2004",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Dec 24 17:46:02 MST 2005",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Gutschmidt:2004:GPP,
  author =       "Tom Gutschmidt",
  title =        "Game programming with {Python}, {Lua}, and {Ruby}",
  publisher =    "Premier Press",
  address =      "Boston, MA, USA",
  pages =        "xxvi + 437",
  year =         "2004",
  ISBN =         "1-59200-077-0, 1-59200-408-3 (e-book)",
  ISBN-13 =      "978-1-59200-077-7, 978-1-59200-408-9 (e-book)",
  LCCN =         "QA76.76.C672 G88 2004b",
  bibdate =      "Thu Apr 16 12:29:09 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/1592000770",
  acknowledgement = ack-nhfb,
}

@Article{Kirby:2004:AFN,
  author =       "Robert C. Kirby",
  title =        "{Algorithm 839}: {FIAT}, a new paradigm for computing
                 finite element basis functions",
  journal =      j-TOMS,
  volume =       "30",
  number =       "4",
  pages =        "502--516",
  month =        dec,
  year =         "2004",
  CODEN =        "ACMSCU",
  DOI =          "http://doi.acm.org/10.1145/1039813.1039820",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Apr 12 06:34:31 MDT 2005",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Much of finite element computation is constrained by
                 the difficulty of evaluating high-order nodal basis
                 functions. While most codes rely on explicit formulae
                 for these basis functions, we present a new approach
                 that allows us to construct a general class of finite
                 element basis functions from orthonormal polynomials
                 and evaluate and differentiate them at any points. This
                 approach relies on fundamental ideas from linear
                 algebra and is implemented in Python using several
                 object-oriented and functional programming
                 techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Mathematical Software",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
}

@Book{Lutz:2004:LP,
  author =       "Mark Lutz and David Ascher",
  title =        "Learning {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xxvi + 591",
  year =         "2004",
  ISBN =         "0-596-00281-5",
  ISBN-13 =      "978-0-596-00281-7",
  LCCN =         "QA76.73.P98 L877 2004",
  bibdate =      "Mon Apr 18 15:04:41 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.oreilly.com/catalog/9780596002817",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Pilgrim:2004:DP,
  author =       "Mark Pilgrim",
  title =        "Dive into {Python}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xviii + 413",
  year =         "2004",
  ISBN =         "1-59059-356-1 (paperback)",
  ISBN-13 =      "978-1-59059-356-1 (paperback)",
  LCCN =         "QA76.73.P98 P55 2004",
  bibdate =      "Tue Mar 10 17:27:28 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "The expert's voice in open source.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
  tableofcontents = "Installing Python \\
                 Your first Python program \\
                 Native datatypes \\
                 The power of introspection \\
                 Objects and object-orientation \\
                 Exceptions and file handling \\
                 Regular expressions \\
                 HTML processing \\
                 XML processing \\
                 Scripts and streams \\
                 HTTP web services \\
                 SOAP web services \\
                 Unit testing \\
                 Test-first programming \\
                 Refactoring \\
                 Functional programming \\
                 Dynamic functions \\
                 Performance tuning",
}

@Article{Reed:2004:RAD,
  author =       "David Reed",
  title =        "Rapid application development with {Python} and
                 {Glade}",
  journal =      j-LINUX-J,
  volume =       "2004",
  number =       "123",
  pages =        "??--??",
  month =        jul,
  year =         "2004",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Dec 24 17:45:58 MST 2005",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Stubblebine:2004:SHD,
  author =       "Tony Stubblebine and Junko Mishima",
  title =        "Seiki hyogen desukutoppu rifarensu: regular
                 expressions for {Perl}, {C}, {PHP}, {Python}, {Java},
                 and {.NET}",
  publisher =    "Orairi Japan",
  address =      "Tokyo, Japan",
  pages =        "vi + 96",
  year =         "2004",
  ISBN =         "4-87311-170-6",
  ISBN-13 =      "978-4-87311-170-4",
  LCCN =         "????",
  bibdate =      "Wed Oct 14 08:00:43 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Broker:2005:UPL,
  author =       "Oliver Br{\"o}ker and Oscar Chinellato and Roman
                 Geus",
  title =        "Using {Python} for large scale linear algebra
                 applications",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "21",
  number =       "6",
  pages =        "969--979",
  month =        jun,
  year =         "2005",
  CODEN =        "FGSEVI",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Fri Jul 15 08:00:46 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/0167739X",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@Article{Cai:2005:PPP,
  author =       "Xing Cai and Hans Petter Langtangen and Halvard Moe",
  title =        "On the performance of the {Python} programming
                 language for serial and parallel scientific
                 computations",
  journal =      j-SCI-PROG,
  volume =       "13",
  number =       "1",
  pages =        "31--56",
  month =        "????",
  year =         "2005",
  CODEN =        "SCIPEV",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Wed Sep 1 14:50:28 MDT 2010",
  bibsource =    "http://www.iospress.nl/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "http://iospress.metapress.com/content/1058-9244",
}

@Article{Dalcin:2005:MP,
  author =       "Lisandro Dalc{\'\i}n and Rodrigo Paz and Mario
                 Storti",
  title =        "{MPI} for {Python}",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "65",
  number =       "9",
  pages =        "1108--1115",
  month =        sep,
  year =         "2005",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Fri Jul 11 20:32:33 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/07437315",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Dubois:2005:NP,
  author =       "Paul F. Dubois",
  title =        "A Nest of {Pythons}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "7",
  number =       "6",
  pages =        "81--84",
  month =        nov # "\slash " # dec,
  year =         "2005",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2005.108",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Mon Apr 3 09:37:32 MDT 2006",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2005/06/c6toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Hetland:2005:BPN,
  author =       "Magnus Lie Hetland",
  title =        "Beginning {Python}: from novice to professional",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxx + 604",
  year =         "2005",
  ISBN =         "1-59059-519-X",
  ISBN-13 =      "978-1-59059-519-0",
  LCCN =         "QA76.73.P98 H48 2005",
  bibdate =      "Mon Jun 26 17:17:50 MDT 2006",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  remark =       "The expert's voice in Open Source.",
  subject =      "Python (Computer program language)",
}

@Article{Kinder:2005:EDP,
  author =       "Ken Kinder",
  title =        "Event-driven programming with {Twisted} and {Python}",
  journal =      j-LINUX-J,
  volume =       "2005",
  number =       "131",
  pages =        "??--??",
  month =        mar,
  year =         "2005",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Dec 24 17:46:05 MST 2005",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Lutz:2005:PPR,
  author =       "Mark Lutz",
  title =        "{Python} pocket reference",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  edition =      "Third",
  pages =        "ix + 148",
  year =         "2005",
  ISBN =         "0-596-00940-2 (paperback)",
  ISBN-13 =      "978-0-596-00940-3 (paperback)",
  LCCN =         "QA76.73.P98 L89 2005",
  bibdate =      "Thu Sep 22 19:02:42 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.oreilly.com/catalog/9780596009403",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Martelli:2005:PC,
  editor =       "Alex Martelli and Anna {Martelli Ravenscroft} and
                 David Ascher",
  title =        "{Python} cookbook",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  edition =      "Second",
  pages =        "xxxiii + 807",
  year =         "2005",
  ISBN =         "0-596-00797-3",
  ISBN-13 =      "978-0-596-00797-3",
  LCCN =         "QA76.73.P98 P983 2005",
  bibdate =      "Thu Oct 6 07:23:24 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  acknowledgement = ack-nhfb,
  remark =       "Recipes from the Python community. Covers Python 2.3
                 and 2.4---Cover.",
  subject =      "Python (Computer program language)",
}

@Article{Orr:2005:RDP,
  author =       "Mike Orr",
  title =        "Review: {{\em Dive into Python}}",
  journal =      j-LINUX-J,
  volume =       "2005",
  number =       "130",
  pages =        "??--??",
  month =        feb,
  year =         "2005",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Dec 24 17:46:04 MST 2005",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{vanRossum:2005:PLR,
  author =       "Guido van Rossum and Fred L. {Drake, Jr.}",
  title =        "{Python} Language Reference Manual",
  publisher =    pub-NETWORK-THEORY,
  address =      pub-NETWORK-THEORY:adr,
  pages =        "ii + 112",
  year =         "2005",
  ISBN =         "0-9541617-8-5",
  ISBN-13 =      "978-0-9541617-8-1",
  LCCN =         "QA76.73.P98",
  bibdate =      "Mon Jul 04 16:02:34 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.ox.ac.uk:210/ADVANCE",
  URL =          "http://www.network-theory.co.uk/python/language/",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{vanRossum:2005:PTI,
  author =       "Guido van Rossum and Fred L. {Drake, Jr.}",
  title =        "The {Python} Tutorial --- An Introduction to
                 {Python}",
  publisher =    pub-NETWORK-THEORY,
  address =      pub-NETWORK-THEORY:adr,
  pages =        "124 (est.)",
  year =         "2005",
  ISBN =         "0-9541617-6-9",
  ISBN-13 =      "978-0-9541617-6-7",
  LCCN =         "????",
  bibdate =      "Mon Jul 04 16:04:19 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Book{Wilson:2005:DCS,
  author =       "Greg Wilson",
  title =        "Data crunching: solve everyday problems using {Java},
                 {Python} and more",
  publisher =    "Pragmatic Bookshelf",
  address =      "Raleigh, NC, USA",
  pages =        "viii + 193",
  year =         "2005",
  ISBN =         "0-9745140-7-1",
  ISBN-13 =      "978-0-9745140-7-9",
  LCCN =         "QA63 .W55 2005",
  bibdate =      "Thu Oct 6 07:25:06 MDT 2005",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  series =       "The pragmatic programmers",
  acknowledgement = ack-nhfb,
  subject =      "Problem solving; Data processing; Java (Computer
                 program language); Python (Computer program language)",
}

@Book{Andersson:2006:PSN,
  author =       "Mats Andersson and Robert Wedin",
  title =        "{Python} scripting for network management:
                 {PyMIP--TeMIP} made simple",
  howpublished = "Examensarbete, ,",
  publisher =    "Lule{\aa} tekniska universitet",
  address =      "Skellefte{\aa}, Sweden",
  year =         "2006",
  ISSN =         "1404-5494",
  bibdate =      "Thu Apr 16 08:24:40 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Examensarbete, H{\"o}gskoleingenj{\"o}rsprogrammet",
  URL =          "http://epubl.ltu.se/1404-5494/2006/043/;
                 http://epubl.ltu.se/1404-5494/2006/043/LTU-HIP-EX-06043-SE.pdf",
  acknowledgement = ack-nhfb,
  language =     "Swedish",
}

@Book{Beazley:2006:PER,
  author =       "David M. Beazley",
  title =        "{Python} essential reference",
  publisher =    pub-SAMS,
  address =      pub-SAMS:adr,
  edition =      "Third",
  pages =        "xiii + 625",
  year =         "2006",
  ISBN =         "0-672-32862-3 (paperback)",
  ISBN-13 =      "978-0-672-32862-6 (paperback)",
  LCCN =         "QA76.73.P98 B43 2006",
  bibdate =      "Thu Apr 16 08:47:14 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  remark =       "Previous ed.: Indianapolis, Ind.: New Riders, 2001.",
  subject =      "Python (Computer program language)",
}

@Article{Briggs:2006:IER,
  author =       "Keith Briggs",
  title =        "Implementing exact real arithmetic in {python}, {C++}
                 and {C}",
  journal =      j-THEOR-COMP-SCI,
  volume =       "351",
  number =       "1",
  pages =        "74--81",
  day =          "14",
  month =        feb,
  year =         "2006",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Mar 29 06:48:55 MDT 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/03043975",
  abstract =     "I discuss the design and performance issues arising in
                 the efficient implementation of the scaled-integer
                 exact real arithmetic model introduced by Boehm and
                 others. This system represents a real number with a
                 automatically controlled level of precision by a
                 rational with implicit denominator. I describe three
                 practical codes, in python, C++ and C. These allow the
                 convenient use of this computational paradigm in
                 commonly used imperative languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Book{Browning:2006:DLP,
  author =       "James Burton Browning",
  title =        "Design, logic, and programming with {Python}: a
                 hands-on approach",
  publisher =    "iUniverse",
  address =      "New York, NY, USA",
  pages =        "xii + 214",
  year =         "2006",
  ISBN =         "0-595-40810-9",
  ISBN-13 =      "978-0-595-40810-8",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:29:02 2009",
  bibsource =    "http://copac.ac.uk/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  remark =       "Edited by C. Anne Joyner.",
}

@InProceedings{Cai:2006:PPS,
  author =       "Xing Cai and Hans Petter Langtangen",
  title =        "Parallelizing {PDE} Solvers Using the {Python}
                 Programming Language",
  crossref =     "Bruaset:2006:NSP",
  volume =       "51",
  pages =        "295--325",
  year =         "2006",
  DOI =          "http://dx.doi.org/10.1007/3-540-31619-1_9",
  bibdate =      "Fri Dec 21 16:46:42 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/3-540-31619-1_9",
  acknowledgement = ack-nhfb,
  book-DOI =     "http://dx.doi.org/10.1007/3-540-31619-1",
  book-URL =     "http://www.springerlink.com/content/978-3-540-31619-0",
}

@Book{Dawson:2006:PPA,
  author =       "Mike Dawson",
  title =        "{Python} programming for the absolute beginner",
  publisher =    "Thomson Course Technology",
  address =      "Boston, MA, USA",
  edition =      "Second",
  pages =        "xxiv + 447",
  year =         "2006",
  ISBN =         "1-59863-112-8",
  ISBN-13 =      "978-1-59863-112-8",
  LCCN =         "QA76.73.P98 D39 2006",
  bibdate =      "Thu Apr 16 08:48:00 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Fettig:2006:TNP,
  author =       "Abe Fettig and Glyph Lefkowitz",
  title =        "Twisted network programming essentials",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xix + 213",
  year =         "2006",
  ISBN =         "0-596-10032-9",
  ISBN-13 =      "978-0-596-10032-2",
  LCCN =         "QA76.73.P98 F48 2005eb; QA76.73.P98",
  bibdate =      "Tue Aug 5 17:47:55 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596100322",
  acknowledgement = ack-nhfb,
  remark =       "Foreword by Glyph Lefkowitz, creator of Twisted",
  subject =      "Python (Computer program language); Internet
                 programming; Computer networks; Design and
                 construction; Open source software",
}

@Book{Goebel:2006:BPT,
  author =       "John A. Goebel and Adil Hasan and Francesco Safai
                 Tehran",
  title =        "The book of {Python}: from the tip of the tongue to
                 the end of the tale",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "1000",
  year =         "2006",
  ISBN =         "1-59327-103-4 (paperback)",
  ISBN-13 =      "978-1-59327-103-9 (paperback)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Thu Apr 16 09:18:13 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.tcd.ie:210/advance; z3950.gbv.de:20011/gvk",
  URL =          "http://www.loc.gov/catdir/toc/ecip064/2005034382.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Harrison:2006:MSP,
  author =       "Guy Harrison and Steven Feuerstein",
  title =        "{MySQL} stored procedure programming: building
                 high-performance web applications with {PHP}, {Perl},
                 {Python}, {Java} \& {.NET}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxiii + 609",
  year =         "2006",
  ISBN =         "0-596-10089-2",
  ISBN-13 =      "978-0-596-10089-6",
  LCCN =         "QA76.73.S67 H377 2006eb; QA76.73.S67",
  bibdate =      "Tue Aug 5 17:49:10 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596100896",
  acknowledgement = ack-nhfb,
  subject =      "SQL (Computer program language); Database management",
}

@Article{Hinsen:2006:UBP,
  author =       "Konrad Hinsen and Hans Petter Langtangen and Ola
                 Skavhaug and {\AA}smund {\O}deg{\aa}rd",
  title =        "Using {BSP} and {Python} to simplify parallel
                 programming",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "22",
  number =       "1--2",
  pages =        "123--157",
  month =        jan,
  year =         "2006",
  CODEN =        "FGSEVI",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Sat Sep 11 13:08:05 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/0167739X",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@Article{Holt:2006:IPF,
  author =       "Alexander Holt and Sarah Rauchas and Ian Sanders",
  title =        "Introducing {Python} into the first year curriculum at
                 {Wits}",
  journal =      j-SIGCSE,
  volume =       "38",
  number =       "3",
  pages =        "335--335",
  month =        sep,
  year =         "2006",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1140123.1140243",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:28 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  abstract =     "Since 1999 the School of Computer Science (CS) at the
                 University of Witwatersrand (Wits) has been using
                 Scheme as the first programming language our students
                 encounter [2]. We chose Scheme because it is a language
                 unfamiliar to most of the first year students, so that
                 the students with imperative programming experience
                 from school would not have an advantage over those who
                 did not. Also, it has a simple syntax which we felt
                 that students without prior programming experience
                 could easily learn. Finally, the functional paradigm
                 allows a more direct mapping of mathematical concepts
                 to programs, which fits with the mathematical emphasis
                 in our curriculum.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Howard:2006:MYS,
  author =       "Mike Howard",
  title =        "Maybe You Should Use {Python}",
  journal =      j-LOGIN,
  volume =       "31",
  number =       "5",
  pages =        "??--??",
  month =        oct,
  year =         "2006",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  ISSN-L =       "1044-6397",
  bibdate =      "Fri Dec 7 11:34:26 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/usenix2000.bib;
                 https://www.usenix.org/publications/login",
  URL =          "https://www.usenix.org/publications/login/october-2006-volume-31-number-5/maybe-you-should-use-python",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@MastersThesis{Lacheiner:2006:EPB,
  author =       "Hermann Lacheiner",
  title =        "{Entwicklung einer auf Python basierenden Rich Client
                 Platform f{\"u}r Linux}. ({German}) [{Development} of a
                 {Python}-based {Rich Client Platform} for {Linux}]",
  type =         "{Diplome-Arbeit}",
  school =       "Universit{\"a}t Linz",
  address =      "Linz, Austria",
  pages =        "v + 86",
  year =         "2006",
  bibdate =      "Thu Apr 16 09:12:12 2009",
  bibsource =    "http://meteor.bibvb.ac.at/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Book{Langtangen:2006:PSC,
  author =       "Hans Petter Langtangen",
  title =        "{Python} scripting for computational science",
  volume =       "3",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  edition =      "Second",
  pages =        "xxiv + 736",
  year =         "2006",
  DOI =          "http://dx.doi.org/10.1007/3-540-31269-2",
  ISBN =         "3-540-29415-5",
  ISBN-13 =      "978-3-540-29415-3",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 08:29:23 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  series =       "Texts in computational science and engineering",
  acknowledgement = ack-nhfb,
  subject =      "Python",
}

@Book{Lindblad:2006:PP,
  author =       "Erik Lindblad",
  title =        "Programmering i {Python}",
  publisher =    pub-STUDENTLITTERATUR,
  address =      pub-STUDENTLITTERATUR:adr,
  pages =        "406",
  year =         "2006",
  ISBN =         "91-44-04520-4",
  ISBN-13 =      "978-91-44-04520-7",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 08:22:02 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  acknowledgement = ack-nhfb,
  language =     "Swedish",
  subject =      "Python",
}

@Book{Lingl:2006:PKC,
  author =       "Gregor Lingl",
  title =        "{Python f{\"u}r Kids: [mit CD ; auf CD: aktuelles
                 Python 2.5, das Grafik-Modul xturtle und alle
                 Programmbeispiele]}",
  publisher =    "bhv, Redline",
  address =      "Heidelberg, Germany",
  edition =      "Second",
  pages =        "416",
  year =         "2006",
  ISBN =         "3-8266-8622-5",
  ISBN-13 =      "978-3-8266-8622-1",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:07:47 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 19.95",
  acknowledgement = ack-nhfb,
  language =     "German",
  subject =      "Python (Programmiersprache); Kindersachbuch; CD-ROM
                 f{\"u}r Kinder",
}

@Book{Lutz:2006:PP,
  author =       "Mark Lutz",
  title =        "Programming {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Third",
  pages =        "xlii + 1552",
  year =         "2006",
  ISBN =         "0-596-00925-9",
  ISBN-13 =      "978-0-596-00925-0",
  LCCN =         "QA76.73.P98 L88 2006eb; QA76.73.P98 L88 2006;
                 QA76.73.P98",
  bibdate =      "Tue Aug 5 17:45:53 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596009250",
  abstract =     "This third edition has been updated to reflect current
                 best practices and the abundance of changes introduced
                 by the latest version of the language, Python 2.5.
                 Whether you're a novice or an advanced practitioner,
                 you'll find this refreshed book more than lives up to
                 its reputation. Programming Python, 3rd Edition,
                 teaches you the right way to code. It explains Python
                 language syntax and programming techniques in a clear
                 and concise manner, with numerous examples that
                 illustrate both correct usage and common idioms. By
                 reading this comprehensive guide, you'll learn how to
                 apply Python in real-world problem domains such as: GUI
                 programming, Internet scripting, parallel processing,
                 database management, networked applications. You'll
                 also learn how to use the Python language in
                 realistically scaled programs--concepts such as
                 Object-Oriented Programming (OOP) and code reuse are
                 recurring side themes throughout this text.",
  acknowledgement = ack-nhfb,
  remark =       "Previous edition 2001.",
  subject =      "Python (Computer program language)",
  tableofcontents = "Part I: The Beginning \\
                 1: Introducing Python / 3 \\
                 ``And Now for Something Completely Different'' / 3 \\
                 Python Philosophy 101 / 3 \\
                 The Life of Python / 8 \\
                 Signs of the Python Times / 9 \\
                 The Compulsory Features List / 15 \\
                 What's Python Good For? / 17 \\
                 What's Python Not Good For? / 20 \\
                 Truth in Advertising / 22 \\
                 2: A Sneak Preview / 24 \\
                 ``Programming Python: The Short Story'' / 24 \\
                 The Task / 24 \\
                 Step 1: Representing Records / 25 \\
                 Step 2: Storing Records Persistently / 35 \\
                 Step 3: Stepping Up to OOP / 47 \\
                 Step 4: Adding Console Interaction / 57 \\
                 Step 5: Adding a GUI / 60 \\
                 Step 6: Adding a Web Interface / 70 \\
                 The End of the Demo / 86 \\
                 Part II: System Programming \\
                 3: System Tools / 89 \\
                 ``The os.path to Knowledge'' / 89 \\
                 System Scripting Overview / 90 \\
                 Introducing the sys Module / 100 \\
                 Introducing the os Module / 104 \\
                 Script Execution Context / 113 \\
                 Current Working Directory / 114 \\
                 Command-Line Arguments / 117 \\
                 Shell Environment Variables / 119 \\
                 Standard Streams / 123 \\
                 4: File and Directory Tools / 142 \\
                 ``Erase Your Hard Drive in Five Easy Steps!'' / 142 \\
                 File Tools / 142 \\
                 Directory Tools / 159 \\
                 5: Parallel System Tools / 175 \\
                 ``Telling the Monkeys What to Do'' / 175 \\
                 Forking Processes / 176 \\
                 Threads / 183 \\
                 Program Exits / 201 \\
                 Interprocess Communication / 208 \\
                 Pipes / 209 \\
                 Signals / 218 \\
                 Other Ways to Start Programs / 221 \\
                 A Portable Program-Launch Framework / 230 \\
                 Other System Tools / 235 \\
                 6: System Examples: Utilities / 236 \\
                 ``Splits and Joins and Alien Invasions'' / 236 \\
                 Splitting and Joining Files / 237 \\
                 Generating Forward-Link Web Pages / 247 \\
                 A Regression Test Script / 251 \\
                 Packing and Unpacking Files / 254 \\
                 Automated Program Launchers / 265 \\
                 7: System Examples: Directories / 294 \\
                 ``The Greps of Wrath'' / 294 \\
                 Fixing DOS Line Ends / 294 \\
                 Fixing DOS Filenames / 307 \\
                 Searching Directory Trees / 311 \\
                 Visitor: Walking Trees Generically / 317 \\
                 Copying Directory Trees / 339 \\
                 Deleting Directory Trees / 345 \\
                 Comparing Directory Trees / 349 \\
                 Part III: GUI Programming \\
                 8: Graphical User Interfaces / 365 \\
                 ``Here's Looking at You, Kid'' / 365 \\
                 Python GUI Development Options / 367 \\
                 Tkinter Overview / 371 \\
                 Climbing the GUI Learning Curve / 375 \\
                 Tkinter Coding Basics / 377 \\
                 Tkinter Coding Alternatives / 380 \\
                 Adding Buttons and Callbacks / 386 \\
                 Adding User-Defined Callback Handlers / 389 \\
                 Adding Multiple Widgets / 401 \\
                 Customizing Widgets with Classes / 406 \\
                 Reusable GUI Components with Classes / 408 \\
                 The End of the Tutorial / 414 \\
                 Python/Tkinter for Tcl/Tk Converts / 416 \\
                 9: A Tkinter Tour, Part 1 / 418 \\
                 ``Widgets and Gadgets and GUIs, Oh My!'' / 418 \\
                 Configuring Widget Appearance / 419 \\
                 Top-Level Windows / 422 \\
                 Dialogs / 427 \\
                 Binding Events / 443 \\
                 Message and Entry / 448 \\
                 Checkbutton, Radiobutton, and Scale / 456 \\
                 Running GUI Code Three Ways / 468 \\
                 Images / 478 \\
                 Viewing and Processing Images with PIL / 483 \\
                 10: A Tkinter Tour, Part 2 / 499 \\
                 ``On Today's Menu: Spam, Spam, and Spam'' / 499 \\
                 Menus / 499 \\
                 Listboxes and Scrollbars / 511 \\
                 Text / 517 \\
                 Canvas / 529 \\
                 Grids / 543 \\
                 Time Tools, Threads, and Animation / 559 \\
                 The End of the Tour / 570 \\
                 The PyDemos and PyGadgets Launchers / 571 \\
                 11: GUI Coding Techniques / 583 \\
                 ``Building a Better Mouse Trap'' / 583 \\
                 GuiMixin: Common Tool Mixin Classes / 584 \\
                 GuiMaker: Automating Menus and Toolbars / 586 \\
                 ShellGui: GUIs for Command-Line Tools / 597 \\
                 GuiStreams: Redirecting Streams to Widgets / 605 \\
                 Reloading Callback Handlers Dynamically / 609 \\
                 Wrapping Up Top-Level Window Interfaces / 611 \\
                 GUIs, Threads, and Queues / 616 \\
                 More Ways to Add GUIs to Non-GUI Code / 624 \\
                 12: Complete GUI Programs / 636 \\
                 ``Python, Open Source, and Camaros'' / 636 \\
                 PyEdit: A Text Editor Program/Object / 638 \\
                 PyPhoto: An Image Viewer and Resizer / 657 \\
                 PyView: An Image and Notes Slideshow / 668 \\
                 PyDraw: Painting and Moving Graphics / 676 \\
                 PyClock: An Analog/Digital Clock Widget / 685 \\
                 PyToe: A Tic-Tac-Toe Game Widget / 700 \\
                 Where to Go from Here / 704 \\
                 Part IV: Internet Programming \\
                 13: Network Scripting / 709 \\
                 ``Tune In, Log On, and Drop Out'' / 709 \\
                 Plumbing the Internet / 713 \\
                 Socket Programming / 720 \\
                 Handling Multiple Clients / 732 \\
                 A Simple Python File Server / 753 \\
                 14: Client-Side Scripting / 766 \\
                 ``Socket to Me!'' / 766 \\
                 FTP: Transferring Files over the Net / 767 \\
                 Processing Internet Email / 808 \\
                 POP: Fetching Email / 809 \\
                 SMTP: Sending Email / 817 \\
                 email: Parsing and Composing Mails / 826 \\
                 pymail: A Console-Based Email Client / 831 \\
                 The mailtools Utility Package / 839 \\
                 NNTP: Accessing Newsgroups / 862 \\
                 HTTP: Accessing Web Sites / 866 \\
                 Module urllib Revisited / 869 \\
                 Other Client-Side Scripting Options / 874 \\
                 15: The PyMailGUI Client / 876 \\
                 ``Use the Source, Luke'' / 876 \\
                 A PyMailGUI Demo / 883 \\
                 PyMailGUI Implementation / 911 \\
                 16: Server-Side Scripting / 962 \\
                 ``Oh What a Tangled Web We Weave'' / 962 \\
                 What's a Server-Side CGI Script? / 962 \\
                 Running Server-Side Examples / 966 \\
                 Climbing the CGI Learning Curve / 971 \\
                 Saving State Information in CGI Scripts / 1011 \\
                 The Hello World Selector / 1020 \\
                 Refactoring Code for Maintainability / 1029 \\
                 More on HTML and URL Escapes / 1038 \\
                 Transferring Files to Clients and Servers / 1046 \\
                 17: The PyMailCGI Server / 1063 \\
                 ``Things to Do When Visiting Chicago'' / 1063 \\
                 The PyMailCGI Web Site / 1064 \\
                 The Root Page / 1070 \\
                 Sending Mail by SMTP / 1073 \\
                 Reading POP Email / 1080 \\
                 Processing Fetched Mail / 1097 \\
                 Utility Modules / 1106 \\
                 CGI Script Trade-Offs / 1121 \\
                 18: Advanced Internet Topics / 1129 \\
                 ``Surfing on the Shoulders of Giants'' / 1129 \\
                 Zope: A Web Application Framework / 1130 \\
                 HTMLgen: Web Pages from Objects / 1145 \\
                 Jython: Python for Java / 1150 \\
                 Grail: A Python-Based Web Browser / 1161 \\
                 XML Processing Tools / 1164 \\
                 Windows Web Scripting Extensions / 1169 \\
                 Python Server Pages / 1186 \\
                 Rolling Your Own Servers in Python / 1189 \\
                 And Other Cool Stuff / 1190 \\
                 Part V: Tools and Techniques \\
                 19: Databases and Persistence / 1197 \\
                 ``Give Me an Order of Persistence, but Hold the
                 Pickles'' / 1197 \\
                 Persistence Options in Python / 1197 \\
                 DBM Files / 1198 \\
                 Pickled Objects / 1201 \\
                 Shelve Files / 1207 \\
                 The ZODB Object-Oriented Database / 1216 \\
                 SQL Database Interfaces / 1227 \\
                 PyForm: A Persistent Object Viewer / 1254 \\
                 20: Data Structures / 1280 \\
                 ``Roses Are Red, Violets Are Blue; Lists Are Mutable,
                 and So Is Set Foo'' / 1280 \\
                 Implementing Stacks / 1281 \\
                 Implementing Sets / 1293 \\
                 Subclassing Built-In Types / 1304 \\
                 Binary Search Trees / 1307 \\
                 Graph Searching / 1312 \\
                 Reversing Sequences / 1316 \\
                 Permuting Sequences / 1318 \\
                 Sorting Sequences / 1320 \\
                 Data Structures Versus Python Built-Ins / 1322 \\
                 PyTree: A Generic Tree Object Viewer / 1323 \\
                 21: Text and Language / 1336 \\
                 ``See Jack Hack. Hack, Jack, Hack'' / 1336 \\
                 Strategies for Parsing Text in Python / 1336 \\
                 String Method Utilities / 1337 \\
                 Regular Expression Pattern Matching / 1346 \\
                 Advanced Language Tools / 1357 \\
                 Handcoded Parsers / 1359 \\
                 PyCalc: A Calculator Program/Object / 1377 \\
                 Part VI: Integration \\
                 22: Extending Python / 1405 \\
                 ``I Am Lost at C'' / 1405 \\
                 Integration Modes / 1406 \\
                 C Extensions Overview / 1408 \\
                 A Simple C Extension Module / 1409 \\
                 Extension Module Details / 1412 \\
                 The SWIG Integration Code Generator / 1422 \\
                 Wrapping C Environment Calls / 1428 \\
                 A C Extension Module String Stack / 1434 \\
                 A C Extension Type String Stack / 1439 \\
                 Wrapping C++ Classes with SWIG / 1451 \\
                 Other Extending Tools / 1460 \\
                 23: Embedding Python / 1463 \\
                 ``Add Python. Mix Well. Repeat.'' / 1463 \\
                 C Embedding API Overview / 1463 \\
                 Basic Embedding Techniques / 1466 \\
                 Registering Callback Handler Objects / 1478 \\
                 Using Python Classes in C / 1483 \\
                 A High-Level Embedding API: ppembed / 1486 \\
                 Other Integration Topics / 1499 \\
                 24: Conclusion: Python and the Development Cycle / 1507
                 \\
                 ``That's the End of the Book, Now Here's the Meaning of
                 Life'' / 1507 \\
                 ``Something's Wrong with the Way We Program Computers''
                 / 1507 \\
                 The ``Gilligan Factor'' / 1508 \\
                 Doing the Right Thing / 1509 \\
                 Enter Python / 1510 \\
                 But What About That Bottleneck? / 1512 \\
                 On Sinking the Titanic / 1516 \\
                 So What's ``Python: The Sequel''? / 1518 \\
                 In the Final Analysis / 1519",
}

@Book{Martelli:2006:PN,
  author =       "Alex Martelli",
  title =        "{Python} in a nutshell",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xiv + 695",
  year =         "2006",
  ISBN =         "0-596-10046-9",
  ISBN-13 =      "978-0-596-10046-9",
  LCCN =         "QA76.73.P98 M37 2006eb; QA76.73.P98 M37 2006;
                 QA76.73.P98",
  bibdate =      "Tue Aug 5 17:48:02 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596100469",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Martelli:2006:PPE,
  author =       "Alex Martelli and Anna Martelli Ravensroft and David
                 Ascher",
  title =        "{Python} par l'exemple",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxv + 525",
  year =         "2006",
  ISBN =         "2-84177-379-5",
  ISBN-13 =      "978-2-84177-379-4",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 08:54:26 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "French translation by {\'E}ric Jacoboni.",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Book{Maruch:2006:PD,
  author =       "Stef Maruch and Aahz Maruch",
  title =        "{Python} for dummies",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xx + 410",
  year =         "2006",
  ISBN =         "0-471-77864-8 (paperback)",
  ISBN-13 =      "978-0-471-77864-6 (paperback)",
  LCCN =         "QA76.73.P98 M374 2006",
  bibdate =      "Thu Apr 16 08:38:44 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0741/2006924031-b.html;
                 http://www.loc.gov/catdir/enhancements/fy0741/2006924031-d.html;
                 http://www.loc.gov/catdir/toc/fy0713/2006924031.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Article{Nagel:2006:EPY,
  author =       "William Nagel",
  title =        "Embedding {Python} in your {C} programs",
  journal =      j-LINUX-J,
  volume =       "2006",
  number =       "142",
  pages =        "8--8",
  month =        feb,
  year =         "2006",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Mar 9 06:03:10 MST 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Radenski:2006:PFL,
  author =       "Atanas Radenski",
  title =        "``{Python} first'': a lab-based digital introduction
                 to computer science",
  journal =      j-SIGCSE,
  volume =       "38",
  number =       "3",
  pages =        "197--201",
  month =        sep,
  year =         "2006",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1140123.1140177",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:28 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  abstract =     "The emphasis on Java and other commercial languages in
                 CS1 has established the perception of computer science
                 as a dry and technically difficult discipline among
                 undecided students who are still seeking careers. This
                 may not be a big problem during an enrolment boom, but
                 in times of decreased enrolment such negative
                 perception may have a devastating effect on computer
                 science programs and therefore should not be ignored.
                 We have made our CS1 course offerings more attractive
                 to students (1) by introducing an easy to learn yet
                 effective scripting language --- Python, (2) by making
                 all course resources available in a comprehensive
                 online study pack, and (3) by offering an extensive set
                 of detailed and easy to follow self-guided labs. Our
                 custom-designed online study pack comprises a wealth of
                 new, original learning modules: extensive e-texts,
                 detailed self-guided labs, numerous sample programs,
                 quizzes, and slides. Our recent student survey
                 demonstrates that students like and prefer Python as a
                 first language and that they also perceive the online
                 study pack as very beneficial. Our ``Python First''
                 course, originally required for computer science
                 majors, has been so well received that it has been
                 recently approved as a general education science
                 elective, thus opening new recruitment opportunities
                 for the computer science major. Our ``Python First''
                 digital pack is published online at
                 http://studypack.com.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Ranum:2006:SAT,
  author =       "David Ranum and Bradley Miller and John Zelle and Mark
                 Guzdial",
  title =        "Successful approaches to teaching introductory
                 computer science courses with {Python}",
  journal =      j-SIGCSE,
  volume =       "38",
  number =       "1",
  pages =        "396--397",
  month =        mar,
  year =         "2006",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1124706.1121465",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Rickett:2006:RPF,
  author =       "Christopher D. Rickett and Sung-Eun Choi and Craig E.
                 Rasmussen and Matthew J. Sottile",
  title =        "Rapid prototyping frameworks for developing scientific
                 applications: a case study",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "36",
  number =       "2",
  pages =        "123--134",
  month =        may,
  year =         "2006",
  CODEN =        "JOSUED",
  DOI =          "http://dx.doi.org/10.1007/s11227-006-7953-6",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Wed Jul 9 17:32:28 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=36&issue=2&spage=123",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
  keywords =     "CCA; Components; Python",
}

@Book{Schroeder:2006:VTO,
  author =       "Will Schroeder and Ken Martin and Bill Lorensen",
  title =        "The visualization toolkit: an object-oriented approach
                 to {3D} graphics [visualize data in {3D} --- medical,
                 engineering or scientific; build your own applications
                 with {C}++, Tcl, Java or Python; includes source code
                 for {VTK} (supports {UNIX}, Windows and Mac)]",
  publisher =    "Kitware",
  address =      "Clifton Park, NY",
  edition =      "Fourth",
  pages =        "xvi + 512",
  year =         "2006",
  ISBN =         "1-930934-19-X",
  ISBN-13 =      "978-1-930934-19-1",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:20:47 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  acknowledgement = ack-nhfb,
  subject =      "Visualisering; Datamaskinassistert presentasjon;
                 Python",
}

@Article{Stelter:2006:BHA,
  author =       "Fred Stelter",
  title =        "Building a home automation and security system with
                 {Python}",
  journal =      j-LINUX-J,
  volume =       "2006",
  number =       "142",
  pages =        "4--4",
  month =        feb,
  year =         "2006",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Mar 9 06:03:10 MST 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Tanimoto:2006:IPA,
  author =       "Steven L. Tanimoto",
  title =        "Introduction to {Python} for Artificial Intelligence",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "????",
  year =         "2006",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Tue Mar 07 16:44:55 2006",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  price =        "US\$19.00",
  URL =          "http://www.computer.org/portal/pages/ieeecs/ReadyNotes/tanimotoabstract.html",
  acknowledgement = ack-nhfb,
}

@Book{Telles:2006:PPC,
  author =       "Matthew A. Telles",
  title =        "{Python} power!: the comprehensive guide",
  publisher =    "Thomson Course Technology PTR",
  address =      "Boston, MA, USA",
  pages =        "xx + 508",
  year =         "2006",
  ISBN =         "1-59863-158-6",
  ISBN-13 =      "978-1-59863-158-6",
  LCCN =         "QA76.73.P98 T45 2006",
  bibdate =      "Thu Apr 16 08:20:41 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  remark =       "Reissued in 2008 with same ISBN.",
  subject =      "Python (Computer program language)",
}

@Book{Weigend:2006:OPP,
  author =       "Michael Weigend",
  title =        "{Objektorientierte Programmierung mit Python:
                 [Klassen, Objekte, Vererbung und Polymorphie praktisch
                 angewendet; XML, GUI-Programmierung, Threads und
                 CGI-Scripting; {\"U}bungen mit Musterl{\"o}sungen zu
                 jedem Kapitel]}",
  publisher =    "mitp",
  address =      "Bonn, Germany",
  edition =      "Third",
  pages =        "700",
  year =         "2006",
  ISBN =         "3-8266-1660-X",
  ISBN-13 =      "978-3-8266-1660-0",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:07:41 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 36.95",
  series =       "Programmierung",
  URL =          "http://www.gbv.de/dms/ilmenau/toc/510475221.PDF",
  acknowledgement = ack-nhfb,
  subject =      "Python <Programmiersprache>",
}

@Book{Weigend:2006:PGP,
  author =       "Michael Weigend",
  title =        "{Python Ge-Packt: [schneller Zugriff auf Module,
                 Klassen und Funktionen; XML, Tkinter, Datenbanken,
                 Internet-Programmierung; objektorientierte
                 Programmierung und New-Style-Klassen]}",
  publisher =    "mitp",
  address =      "Heidelberg, Germany",
  edition =      "Third",
  pages =        "618",
  year =         "2006",
  ISBN =         "3-8266-1659-6",
  ISBN-13 =      "978-3-8266-1659-4",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:01:14 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 17.95",
  series =       "Ge-Packte Referenz",
  URL =          "http://www.gbv.de/dms/bsz/toc/bsz254799760inh.pdf",
  acknowledgement = ack-nhfb,
  language =     "German",
  subject =      "Python 2.5",
}

@Book{Ziade:2006:PP,
  author =       "Tarek Ziad{\'e}",
  title =        "Programmation {Python}",
  publisher =    pub-EYROLLES,
  address =      pub-EYROLLES:adr,
  pages =        "xxxviii + 537",
  year =         "2006",
  ISBN =         "2-212-11677-2",
  ISBN-13 =      "978-2-212-11677-9",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 08:48:15 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Article{Backer:2007:CPE,
  author =       "Arnd B{\"a}cker",
  title =        "Computational Physics Education with {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "30--33",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.48",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Bienstman:2007:PNR,
  author =       "Peter Bienstman and Lieven Vanholme and Wim Bogaerts
                 and Pieter Dumon and Peter Vandersteegen",
  title =        "{Python} in Nanophotonics Research",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "46--47",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.59",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Borcherds:2007:PLC,
  author =       "P. H. Borcherds",
  title =        "{Python}: a language for computational physics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "177",
  number =       "1--2",
  pages =        "199--201",
  month =        jul,
  year =         "2007",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2007.02.019",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 13 23:42:20 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465507000732",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Book{Chun:2007:ACPa,
  author =       "Wesley J. Chun",
  title =        "Au coeur de {Python}: Notions fondamentales.
                 ({French}) [{Core Python}: Fundamental ideas]",
  publisher =    "CampusPress",
  address =      "Paris, France",
  pages =        "xxviii + 645",
  year =         "2007",
  ISBN =         "2-7440-2148-2",
  ISBN-13 =      "978-2-7440-2148-0",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:56:12 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Book{Chun:2007:ACPb,
  author =       "Wesley J. Chun",
  title =        "Au coeur de {Python}: Notions avanc{\'e}es. ({French})
                 [{Core Python}: Advanced ideas]",
  publisher =    "CampusPress",
  address =      "Paris, France",
  pages =        "xxii + 337",
  year =         "2007",
  ISBN =         "2-7440-2195-4",
  ISBN-13 =      "978-2-7440-2195-4",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:56:12 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Book{Chun:2007:CPP,
  author =       "Wesley J. Chun",
  title =        "Core {Python} programming",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  edition =      "Second",
  pages =        "xxxvii + 1077",
  year =         "2007",
  ISBN =         "0-13-226993-7 (paperback)",
  ISBN-13 =      "978-0-13-226993-3 (paperback)",
  LCCN =         "QA76.73.P98 C48 2007",
  bibdate =      "Thu Apr 16 10:01:59 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Prentice Hall core series",
  URL =          "http://www.loc.gov/catdir/toc/ecip0615/2006019559.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
  tableofcontents = "1: Welcome to Python! \\
                 2: Getting started \\
                 3: Python basics \\
                 4: Python objects \\
                 5: Numbers \\
                 6: Sequences : strings, lists, and tuples \\
                 7: Mapping and set types \\
                 8: Conditionals and loops \\
                 9: Files and input/output \\
                 10: Errors and exceptions \\
                 11: Functions and functional programming \\
                 12: Modules \\
                 13: Object-oriented programming \\
                 14: Execution environment \\
                 15: Regular expressions \\
                 16: Network programming \\
                 17: Internet client programming \\
                 18: Multithreaded programming \\
                 19: GUI programming \\
                 20: Web programming \\
                 21: Database programming \\
                 22: Extending Python \\
                 23: Miscellaneous",
}

@Article{Cooper:2007:ERH,
  author =       "Jonathan Cooper and Steve McKeever",
  title =        "Experience report: a {Haskell} interpreter for
                 {cellML}",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "247--250",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1291151.1291190",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "In this paper we present our use of functional
                 programming (FP), specifically Haskell, to provide an
                 operational semantics for a domain-specific language,
                 CellML, that describes mathematical models of
                 biological processes. We analyse the benefits and
                 shortcomings of this approach, in comparison with other
                 semantic definitions for CellML.\par

                 It is our claim that using FP for our semantics results
                 in a more concise and useful artifact for describing
                 what such a model means. The use of lazy evaluation
                 removes the need to explicitly determine an evaluation
                 order for the model, resulting in a more elegant
                 interpreter. Crucially, using FP enables us to prove
                 the correctness of optimisation techniques for such
                 models. This gives us more confidence in scientific
                 deductions from simulation results. We compare the
                 Python implementation of these optimisation techniques
                 with our use of Haskell in proving their correctness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "cellML; Haskell",
}

@Book{Daly:2007:NGW,
  author =       "Liza Daly",
  title =        "Next-generation web frameworks in {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  year =         "2007",
  ISBN =         "0-596-51371-2",
  ISBN-13 =      "978-0-596-51371-9",
  LCCN =         "QA76.73.P98 L59 2007eb; QA76.73.P98",
  bibdate =      "Tue Aug 5 17:55:28 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596513719",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Dayley:2007:PPE,
  author =       "Brad Dayley",
  title =        "{Python} phrasebook: essential code and commands",
  publisher =    pub-SAMS,
  address =      pub-SAMS:adr,
  pages =        "v + 275",
  year =         "2007",
  ISBN =         "0-672-32910-7 (paperback)",
  ISBN-13 =      "978-0-672-32910-4 (paperback)",
  LCCN =         "QA76.73.P98 D395 2007",
  bibdate =      "Thu Apr 16 08:47:38 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Developer's library",
  URL =          "http://www.loc.gov/catdir/toc/fy0706/2006922308.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Terminology",
}

@Book{Dayley:2007:PTC,
  author =       "Brad Dayley",
  title =        "{Python} in tasca: codice e commandi in tasca",
  publisher =    "Pearson Education",
  address =      "Milano, Italy",
  pages =        "vi + 277",
  year =         "2007",
  ISBN =         "88-7192-405-3",
  ISBN-13 =      "978-88-7192-405-2",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:29:01 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "Italian",
}

@Article{Dubois:2007:GEI,
  author =       "Paul F. Dubois",
  title =        "{Guest Editor}'s Introduction: {Python}: Batteries
                 Included",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "7--9",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.51",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://csdl.computer.org/comp/mags/cs/2007/03/c3007.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Goldwasser:2007:INP,
  author =       "Michael H. Goldwasser and David Letscher",
  title =        "Introducing network programming into a {CS1} course",
  journal =      j-SIGCSE,
  volume =       "39",
  number =       "3",
  pages =        "19--22",
  month =        sep,
  year =         "2007",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1269900.1268793",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of the 12th Annual SIGCSE Conference on
                 Innovation and Technology in Computer Science Education
                 (ITiCSE'07).",
  abstract =     "Incorporating advanced programming concepts into an
                 introductory programming course has to be done
                 carefully to avoid overwhelming the students. We
                 describe our experiences doing network programming in a
                 CS1 course taught in Python. The simplicity of the
                 built-in libraries allowed a fair amount of networking
                 to be introduced in a week-long module of the course.
                 In this short time we had the students writing both
                 multithreaded clients and servers.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Goldwasser:2007:TOO,
  author =       "Michael H. Goldwasser and David Letscher",
  title =        "Teaching object-oriented programming in {Python}",
  journal =      j-SIGCSE,
  volume =       "39",
  number =       "3",
  pages =        "365--366",
  month =        sep,
  year =         "2007",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1269900.1268937",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of the 12th Annual SIGCSE Conference on
                 Innovation and Technology in Computer Science Education
                 (ITiCSE'07).",
  abstract =     "Python's use in education has grown rapidly, due to
                 its elegantly simple syntax. Though often viewed as a
                 ``scripting language,'' Python is a fully
                 object-oriented language with an extremely consistent
                 object model and a rich set of built-in classes. In
                 this tutorial, we share our experiences using Python in
                 the context of an object-oriented CS1 course. We will
                 begin with an overview of the language, with particular
                 emphasis on the object-orientation. We then present
                 several coherent teaching strategies and a variety of
                 graphical and non-graphical projects. Both new and
                 experienced Python users are welcome.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Greenfield:2007:RSP,
  author =       "Perry Greenfield",
  title =        "Reaching for the Stars with {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "38--40",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.62",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Harris:2007:GPL,
  author =       "Andy Harris",
  title =        "Game programming: the {L Line}: the express line to
                 learning",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxv + 570",
  year =         "2007",
  ISBN =         "0-470-06822-1 (paperback)",
  ISBN-13 =      "978-0-470-06822-9 (paperback)",
  LCCN =         "QA76.76.C672",
  bibdate =      "Thu Apr 16 10:36:13 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0741/2006936755-b.html;
                 http://www.loc.gov/catdir/enhancements/fy0741/2006936755-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0741/2006936755-t.html",
  acknowledgement = ack-nhfb,
  subject =      "Computer games; Programming; Python",
}

@Article{Hinsen:2007:PSP,
  author =       "Konrad Hinsen",
  title =        "Parallel Scripting with {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "6",
  pages =        "82--89",
  month =        nov # "\slash " # dec,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.117",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:40 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/0000/00/c0toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Krauss:2007:PMM,
  author =       "Ryan W. Krauss and Wayne J. Book",
  title =        "A {Python} Module for Modeling and Control Design of
                 Flexible Robots",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "41--45",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.44",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Langtangen:2007:PSC,
  author =       "Hans Petter Langtangen",
  title =        "{Python} scripting for computational science",
  volume =       "3",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  edition =      "Third",
  pages =        "????",
  year =         "2007",
  ISBN =         "3-540-73915-7",
  ISBN-13 =      "978-3-540-73915-9",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:03:45 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Texts in computational science and engineering",
  acknowledgement = ack-nhfb,
}

@Article{Luszczek:2007:HPD,
  author =       "Piotr Luszczek and Jack Dongarra",
  title =        "High Performance Development for High End Computing
                 With {Python Language Wrapper (PLW)}",
  journal =      j-IJHPCA,
  volume =       "21",
  number =       "3",
  pages =        "360--369",
  month =        aug,
  year =         "2007",
  CODEN =        "IHPCFL",
  DOI =          "http://dx.doi.org/10.1177/1094342007078444",
  ISSN =         "1094-3420 (print), 1741-2846 (electronic)",
  ISSN-L =       "1094-3420",
  bibdate =      "Tue Aug 31 09:59:45 MDT 2010",
  bibsource =    "http://hpc.sagepub.com/content/21/3.toc;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://hpc.sagepub.com/content/21/3/360.full.pdf+html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://hpc.sagepub.com/content/by/year",
}

@Book{Lutz:2007:EPM,
  author =       "Mark Lutz and David Ascher and Dinu C.. Gherman",
  title =        "{Einf{\"u}hrung in Python: [moderne OO-Programmierung;
                 behandelt Python 2.5]}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xxvii + 624",
  year =         "2007",
  ISBN =         "3-89721-488-1",
  ISBN-13 =      "978-3-89721-488-0",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:09:57 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 39.90",
  URL =          "http://www.gbv.de/dms/ilmenau/toc/527924601.PDF",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Article{Mardal:2007:UPS,
  author =       "Kent-Andre Mardal and Ola Skavhaug and Glenn T. Lines
                 and Gunnar A. Staff and {\AA}smund {\O}deg{\aa}rd",
  title =        "Using {Python} to Solve Partial Differential
                 Equations",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "48--51",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.64",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Martelli:2007:PC,
  author =       "Alex Martelli",
  title =        "{Python} en concentr{\'e}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xvi + 802",
  year =         "2007",
  ISBN =         "2-84177-452-X",
  ISBN-13 =      "978-2-84177-452-4",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 09:49:46 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "French translation by {\'E}ric Jacoboni and Yann
                 Serra.",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Book{McGugan:2007:BGD,
  author =       "Will McGugan",
  title =        "Beginning game development with {Python} and {Pygame}:
                 from novice to professional",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxiii + 316",
  year =         "2007",
  DOI =          "http://dx.doi.org/10.1007/978-1-4302-0325-4",
  ISBN =         "1-59059-872-5",
  ISBN-13 =      "978-1-59059-872-6",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:36:14 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  series =       "The expert's voice in open source",
  acknowledgement = ack-nhfb,
}

@Book{McGuire:2007:GSP,
  author =       "Paul McGuire",
  title =        "Getting started with {{\tt pyparsing}}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  year =         "2007",
  ISBN =         "0-596-51423-9",
  ISBN-13 =      "978-0-596-51423-5",
  LCCN =         "QA76.76.A65 M33 2007eb; QA76.76.A65",
  bibdate =      "Tue Aug 5 17:57:21 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  series =       "O'Reilly shortcuts",
  URL =          "http://www.oreilly.com/catalog/9780596514235",
  acknowledgement = ack-nhfb,
  subject =      "Application software; Python (Computer program
                 language)",
}

@Book{Miller:2007:CSP,
  author =       "Bradley N. Miller and David L. Ranum",
  title =        "Computer science: the {Python} programming language",
  publisher =    "Jones and Bartlett Publishers",
  address =      "Sudbury, MA, USA",
  pages =        "59",
  year =         "2007",
  ISBN =         "0-7637-4316-X",
  ISBN-13 =      "978-0-7637-4316-1",
  LCCN =         "QA76.73.P98 M537 2007",
  bibdate =      "Thu Apr 16 10:04:41 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Article{Millman:2007:AFM,
  author =       "K. Jarrod Millman and Matthew Brett",
  title =        "Analysis of Functional Magnetic Resonance Imaging in
                 {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "52--55",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.46",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Moore:2007:PPF,
  author =       "Dana Moore and Raymond Budd and William Wright",
  title =        "Professional {Python} frameworks: {Web 2.0}
                 programming with {Django} and {TurboGears}",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxvii + 420",
  year =         "2007",
  ISBN =         "0-470-13809-2 (paperback)",
  ISBN-13 =      "978-0-470-13809-0 (paperback)",
  LCCN =         "TK5105.888 .M663 2007",
  bibdate =      "Thu Apr 16 09:37:39 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Wrox professional guides",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0741/2007032138-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0741/2007032138-t.html;
                 http://www.loc.gov/catdir/enhancements/fy0804/2007032138-b.html",
  acknowledgement = ack-nhfb,
  subject =      "Web site development; Python (Computer program
                 language)",
}

@Article{Myers:2007:PEC,
  author =       "Christopher R. Myers and James P. Sethna",
  title =        "{Python} for Education: Computational Methods for
                 Nonlinear Systems",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "75--79",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.56",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Myers:2007:PUS,
  author =       "Christopher R. Myers and Ryan N. Gutenkunst and James
                 P. Sethna",
  title =        "{Python} Unleashed on Systems Biology",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "34--37",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.60",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Nilsen:2007:MIQ,
  author =       "Jon Kristian Nilsen",
  title =        "{MontePython}: Implementing Quantum {Monte Carlo}
                 using {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "177",
  number =       "10",
  pages =        "799--814",
  day =          "15",
  month =        nov,
  year =         "2007",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2007.06.013",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 13 23:42:26 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465507003141",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Nilsen:2007:PSC,
  author =       "Jon K. Nilsen",
  title =        "{Python} in scientific computing: Applications to
                 {Bose--Einstein} condensates",
  journal =      j-COMP-PHYS-COMM,
  volume =       "177",
  number =       "1--2",
  pages =        "45--45",
  month =        jul,
  year =         "2007",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2007.02.093",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 13 23:42:20 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465507001312",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Oliphant:2007:PSC,
  author =       "Travis E. Oliphant",
  title =        "{Python} for Scientific Computing",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "10--20",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.58",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Perez:2007:ISI,
  author =       "Fernando P{\'e}rez and Brian E. Granger",
  title =        "{IPython}: a System for Interactive Scientific
                 Computing",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "21--29",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.53",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Ramm:2007:RWA,
  author =       "Mark Ramm and Kevin Dangoor and Gigi Sayfan",
  title =        "Rapid {Web} applications with {TurboGears}: using
                 {Python} to create {Ajax}-powered sites",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xxvii + 472",
  year =         "2007",
  ISBN =         "0-13-243388-5 (paperback)",
  ISBN-13 =      "978-0-13-243388-4 (paperback)",
  LCCN =         "TK5105.888 .R355 2007",
  bibdate =      "Thu Apr 16 10:13:01 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Prentice Hall open source software development
                 series",
  acknowledgement = ack-nhfb,
  subject =      "Web site development; Python (Computer program
                 language); TurboGears (Computer file); Ajax (Web site
                 development technology)",
  tableofcontents = "Preface xxiii \\
                 Acknowledgments xxv \\
                 Part I: TurboGears Fundamentals \\
                 Chapter 1: Introduction to TurboGears / 3 \\
                 Chapter 2 Getting Started with TurboGears / 13 \\
                 Chapter 3: The Architecture of a TurboGears Application
                 / 25 \\
                 Part II: Building a Simple TurboGears Application \\
                 Chapter 4: Creating a Simple Application / 43 \\
                 Chapter 5: Enhancing Our Bookmark Application / 59 \\
                 Part III: Exploring a Real World TurboGears Application
                 \\
                 Chapter 6: Exploring More Complex Models in WhatWhat
                 Status / 83 \\
                 Chapter 7: Controllers, Views, and JavaScript in the
                 WhatWhat Status / 97 \\
                 Chapter 8: RSS, Cookies, and Dynamic Views in WhatWhat
                 Status / 115 \\
                 Chapter 9: Ajax and WhatWhat Status Projects / 133 \\
                 Part IV: SQLObject and TurboGears Models \\
                 Chapter 10: SQLObject Basics / 151 \\
                 Chapter 11: Mastering SQLObject / 165 \\
                 Chapter 12: Customizing SQLObject Behavior / 183 \\
                 Part V: TurboGears View Technologies \\
                 Chapter 13: Dynamic Templates with Kid / 209 \\
                 Chapter 14: Creating Better JavaScript with MochiKit /
                 225 \\
                 Chapter 15: Effective Ajax with MochiKit / 273 \\
                 Chapter 16: TurboGears Widgets: Bringing CSS, XHTML,
                 and JavaScript Together in Reusable Components 309 Part
                 VI: CherryPy and TurboGears Controller Technologies \\
                 Chapter 17: CherryPy and TurboGears Decorators / 335
                 \\
                 Chapter 18: TurboGears Deployment 355 Part VII:
                 TurboGears Extras \\
                 Chapter 19 The TurboGears Toolbox and Other Tools / 371
                 \\
                 Chapter 20: Internationalization / 383 \\
                 Chapter 21: Testing a TurboGears Application / 397 \\
                 Chapter 22: TurboGears Identity and Security / 417 \\
                 Part VIII: Appendix \\
                 Appendix: SQLAlchemy / 431 \\
                 Index / 449",
}

@Article{Sanders:2007:SMM,
  author =       "Ian Douglas Sanders and Vashti C. Galpin",
  title =        "Students' mental models of recursion at wits",
  journal =      j-SIGCSE,
  volume =       "39",
  number =       "3",
  pages =        "317--317",
  month =        sep,
  year =         "2007",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1269900.1268883",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of the 12th Annual SIGCSE Conference on
                 Innovation and Technology in Computer Science Education
                 (ITiCSE'07).",
  abstract =     "Recursion is a concept which all computer scientists
                 should understand and be able to use but novices find
                 it difficult to master. In the School of Computer
                 Science at the University of the Witwatersrand (Wits)
                 we have for a long time been concerned about how we can
                 assist our students with recursion [4, 1, 3]. One
                 thrust of our research is the study of the mental
                 models of recursion (c.f. Kahney [2]) which our first
                 year students develop. Most of our students encounter
                 recursion for the first time in our Fundamental
                 Algorithmic Concepts (FAC) course. When we originally
                 investigated the mental models of our students we noted
                 that although many of them seem to develop the viable
                 copies model there are still many that develop models
                 which are non-viable (i.e., that cannot be relied on to
                 lead to a correct result) [1]. Thus we adapted the way
                 in which recursion was introduced in FAC in 2003, 2004
                 and 2005 by introducing more complex recursive
                 algorithms earlier to help in the development of the
                 copies mental model. We then compared the mental models
                 developed by the 2003, 2004 and 2005 students to those
                 developed by the earlier group [3]. The results
                 indicate that more of the students were developing
                 viable mental models of recursion and thus that the
                 changes to our teaching were benefitting our students.
                 In 2006 we changed the programming language in which
                 our students implement algorithms to Python (from
                 Scheme). In essence the programming language was the
                 only change made as the course was still taught in a
                 ``functional'' style to emphasize the link between the
                 formal specification of a problem, the solution to the
                 problem and the program. We did, however, feel it was
                 important to assess the impact of the change on our
                 students' mental models of recursion. We thus did a
                 similar study on the 2006 students to that on earlier
                 cohorts. The students' traces from two recursive
                 algorithms were categorised into the mental models
                 previously observed [1,3] by identifying how the
                 student deals with the active flow, base case and
                 passive flow in their trace and then by combining this
                 information into an overall categorisation of the trace
                 for that algorithm. Overall the results are in line
                 with our previous results which showed that the copies
                 model is the dominant model for a recurrence relation
                 type of recursive function but that for list
                 manipulation problems some students showed an active or
                 looping model. These results indicate that our teaching
                 approach, even with the switch to Python, is assisting
                 our students in developing a viable copies mental model
                 of recursion. Such a mental model is more likely to
                 lead to correct traces of recursive algorithms. An
                 interesting new result was the emergence of a passive
                 mental model. Here the students recognised that the
                 recursive algorithm would somehow get to the base case
                 and then used the base case plus the implicit
                 definition of the function in the algorithm to build up
                 the required solution. This model may have arisen
                 because the students were given a recurrence in
                 Tutorial 1 and asked to calculate what value would be
                 returned. Solving the recurrence essentially meant
                 working up from the value where the result is defined
                 directly until the desired answer is found. Some
                 students may have adopted this as their model of
                 recursion.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Scheible:2007:MPR,
  author =       "J{\"u}rgen Scheible and Ville Tuulos and others",
  title =        "Mobile {Python}: rapid prototyping of applications on
                 the mobile platform",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xx + 327",
  year =         "2007",
  ISBN =         "0-470-51505-8 (paperback)",
  ISBN-13 =      "978-0-470-51505-1 (paperback)",
  LCCN =         "QA76.73.P98 S34 2007",
  bibdate =      "Thu Apr 16 09:39:06 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0739/2007029113-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0833/2007029113-b.html;
                 http://www.loc.gov/catdir/enhancements/fy0833/2007029113-t.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Nokia smartphones;
                 Symbian OS (Computer file); Cellular telephones;
                 Programming",
}

@Book{Segaran:2007:PCI,
  author =       "Toby Segaran",
  title =        "Programming collective intelligence: building {Smart
                 Web 2.0} applications",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxi + 334",
  year =         "2007",
  ISBN =         "0-596-52932-5, 0-596-55068-5",
  ISBN-13 =      "978-0-596-52932-1, 978-0-596-55068-4",
  LCCN =         "T58.5 .S43 2007",
  bibdate =      "Tue Aug 5 18:11:14 MDT 2008",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596529321",
  abstract =     "Want to tap the power behind search rankings, product
                 recommendations, social bookmarking, and online
                 matchmaking? This fascinating book demonstrates how you
                 can build Web 2.0 applications to mine the enormous
                 amount of data created by people on the Internet. With
                 the sophisticated algorithms in this book, you can
                 write smart programs to access interesting datasets
                 from other web sites, collect data from users of your
                 own applications, and analyze and understand the data
                 once you've found it.Programming Collective
                 Intelligence takes you into the world of machine
                 learning and statistics, and ex.",
  acknowledgement = ack-nhfb,
  remark =       "Description based upon print version of record.",
  subject =      "Computer science; Information technology; Social
                 aspects; Programming; Internet programming",
  tableofcontents = "Programming Collective Intelligence \\
                 preface \\
                 Style of Examples \\
                 Why Python? \\
                 Significant Whitespace \\
                 List comprehensions \\
                 Open Apis \\
                 Overview of the Chapters \\
                 Conventions \\
                 Using Code Examples \\
                 How to Contact Us \\
                 Safari\? Books Online \\
                 Acknowledgments \\
                 1. Introduction to Collective Intelligence \\
                 What Is Machine Learning? \\
                 Limits of Machine Learning \\
                 Real-Life Examples \\
                 Other Uses for Learning Algorithms \\
                 2. Making Recommendations \\
                 Collecting Preferences \\
                 Finding Similar Users \\
                 Pearson Correlation Score \\
                 Which Similarity Metric Should You Use? \\
                 Ranking the Critics \\
                 Recommending Items \\
                 Matching Products \\
                 Building a del.icio.us Link Recommender \\
                 Building the Dataset \\
                 Recommending Neighbors and Links \\
                 Item-Based Filtering \\
                 Getting Recommendations \\
                 Using the MovieLens Dataset \\
                 User-Based or Item-Based Filtering? \\
                 Exercises \\
                 3. Discovering Groups \\
                 Word Vectors \\
                 Counting the Words in a Feed \\
                 Hierarchical Clustering \\
                 Drawing the Dendrogram \\
                 Column Clustering \\
                 K-Means Clustering \\
                 Clusters of Preferences \\
                 Beautiful Soup \\
                 Scraping the Zebo Results \\
                 Defining a Distance Metric \\
                 Clustering Results \\
                 Viewing Data in Two Dimensions \\
                 Other Things to Cluster \\
                 Exercises \\
                 4. Searching and Ranking \\
                 A Simple Crawler \\
                 Crawler Code \\
                 Building the Index \\
                 Finding the Words on a Page \\
                 Adding to the Index \\
                 Querying \\
                 Content-Based Ranking \\
                 Word Frequency \\
                 Document Location \\
                 Word Distance \\
                 Using Inbound Links \\
                 The PageRank Algorithm \\
                 Using the Link Text \\
                 Learning from Clicks \\
                 Setting Up the Database \\
                 Feeding Forward \\
                 Training with Backpropagation \\
                 Training Test \\
                 Connecting to the Search Engine \\
                 Exercises \\
                 5. Optimization \\
                 Representing Solutions \\
                 The Cost Function \\
                 Random Searching \\
                 Hill Climbing \\
                 Simulated Annealing \\
                 Genetic Algorithms \\
                 Real Flight Searches \\
                 The minidom PackageFlight Searches \\
                 Optimizing for Preferences \\
                 The Cost Function \\
                 Running the Optimization \\
                 Network Visualization \\
                 Counting Crossed Lines \\
                 Drawing the Network \\
                 Other Possibilities \\
                 Exercises \\
                 6. Document Filtering \\
                 Documents and Words \\
                 Training the Classifier \\
                 Calculating Probabilities \\
                 A Na{\~A}ve Classifier \\
                 A Quick Introduction to Bayes and Theorem \\
                 Choosing a Category \\
                 The Fisher Method \\
                 Combining the Probabilities \\
                 Classifying Items \\
                 Persisting the Trained Classifiers \\
                 Filtering Blog Feeds \\
                 Improving Feature Detection \\
                 Using Akismet \\
                 Alternative Methods \\
                 Exercises \\
                 7. Modeling with Decision Trees\\
                 Introducing Decision Trees \\
                 Training the Tree \\
                 Choosing the Best Split \\
                 Entropy \\
                 Recursive Tree Building \\
                 Displaying the Tree \\
                 Classifying New Observations \\
                 Pruning the Tree \\
                 Dealing with Missing Data \\
                 Dealing with Numerical Outcomes \\
                 Modeling Home Prices \\
                 Modeling ``Hotness'' \\
                 When to Use Decision Trees \\
                 Exercises \\
                 8. Building Price Models \\
                 k-Nearest Neighbors \\
                 Defining Similarity \\
                 Code for k-Nearest Neighbors \\
                 Weighted Neighbors \\
                 Subtraction Function \\
                 Gaussian Function \\
                 Weighted kNn \\
                 Cross-Validation \\
                 Heterogeneous Variables \\
                 Scaling Dimensions \\
                 Optimizing the Scale",
}

@Article{Shi:2007:PIG,
  author =       "Xuan Shi",
  title =        "{Python} for {Internet} {GIS} Applications",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "9",
  number =       "3",
  pages =        "56--59",
  month =        may # "\slash " # jun,
  year =         "2007",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2007.57",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:16:39 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2007/03/c3toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Stubblebine:2007:REP,
  author =       "Tony Stubblebine",
  title =        "Regular expression pocket reference: Regular
                 expressions for {Perl}, {Ruby}, {PHP}, {Python}, {C},
                 {Java}, and {.NET}.",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "vii + 117",
  year =         "2007",
  ISBN =         "0-596-51427-1 (paperback)",
  ISBN-13 =      "978-0-596-51427-3 (paperback)",
  LCCN =         "QA76.9.T48 S78 2007",
  bibdate =      "Thu Apr 16 10:31:52 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://proquest.safaribooksonline.com/9780596514273;
                 http://www.loc.gov/catdir/toc/fy0802/2007281074.html",
  acknowledgement = ack-nhfb,
  subject =      "Text processing (Computer science); Programming
                 languages (Electronic computers); Syntax",
}

@Book{Tidwell:2007:XMX,
  author =       "Doug Tidwell",
  title =        "{XSLT}: mastering {XML} transformations",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xviii + 965",
  year =         "2007",
  ISBN =         "0-596-52721-7 (paperback)",
  ISBN-13 =      "978-0-596-52721-1 (paperback)",
  LCCN =         "QA76.73.X58 T53 2008",
  bibdate =      "Mon Oct 13 15:15:17 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.tcd.ie:210/advance",
  price =        "US\$31.99",
  acknowledgement = ack-nhfb,
  keywords =     "Extensible Markup Language; Extensible Style sheet
                 Language for Transformation (XSLT); HTM Web pages; HTML
                 CSS markup language; HTML home pages; HTML hypertext;
                 HTML markup language; XHTML; XML hypertext markup
                 language; XML Python; XML SVG markup language",
  subject =      "XSLT (Computer program language)",
}

@Book{Walerowski:2007:PSV,
  editor =       "Peter Walerowski",
  title =        "{Python: 5 Stunden Video-Training: PC, Mac und TV}",
  volume =       "6080",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  year =         "2007",
  ISBN =         "3-8273-6080-3",
  ISBN-13 =      "978-3-8273-6080-9",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:10:11 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  note =         "One DVD.",
  price =        "EUR 49.95",
  series =       "Video2Brain; Addison-Wesley; Open source library",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Book{Bailly:2008:IPA,
  author =       "Yves Bailly",
  title =        "Initiation {\`a} la programmation avec {Python} et
                 {C++}",
  publisher =    "Pearson Education France",
  address =      "Paris, France",
  pages =        "xi + 255",
  year =         "2008",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:04:16 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Book{Bassi:2008:PB,
  author =       "Sebastian Bassi",
  title =        "{Python} for bioinformatics",
  publisher =    pub-CHAPMAN-HALL-CRC,
  address =      pub-CHAPMAN-HALL-CRC:adr,
  pages =        "????",
  year =         "2008",
  ISBN =         "1-58488-929-2 (paperback)",
  ISBN-13 =      "978-1-58488-929-8 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:46:17 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.tcd.ie:210/advance",
  series =       "Chapman and Hall/CRC mathematical and computational
                 biology series",
  acknowledgement = ack-nhfb,
  remark =       "Includes CD-ROM.",
  subject =      "Python (Computer program language); Bioinformatics",
}

@Book{Bennett:2008:PDP,
  author =       "James Bennett",
  title =        "Practical {Django} projects",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xvii + 237",
  year =         "2008",
  ISBN =         "1-59059-996-9",
  ISBN-13 =      "978-1-59059-996-9",
  LCCN =         "TK5105.888.B4512; TK5105.888.B4512 2008",
  bibdate =      "Thu Apr 16 11:21:25 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.mit.edu:9909/mit01",
  series =       "The expert's voice in Web development",
  acknowledgement = ack-nhfb,
  keywords =     "Python",
  subject =      "Django (Electronic resource); Web site development",
  tableofcontents = "Ch. 1. Welcome to Django \\
                 Ch. 2. Your First Django Site: A Simple CMS \\
                 Ch. 3. Customizing the Simple CMS \\
                 Ch. 4. A Django-Powered Weblog \\
                 Ch. 5. Expanding the Weblog \\
                 Ch. 6. Templates for the Weblog \\
                 Ch. 7. Finishing the Weblog \\
                 Ch. 8. A Social Code-Sharing Site \\
                 Ch. 9. Form Processing in the Code-Sharing Application
                 \\
                 Ch. 10. Finishing the Code-Sharing Application \\
                 Ch. 11. Writing Reusable Django Applications",
}

@Book{Chun:2008:PF,
  author =       "Wesley Chun",
  title =        "{Python} fundamentals",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "vi + 94",
  year =         "2008",
  ISBN =         "0-13-714341-9 (paperback)",
  ISBN-13 =      "978-0-13-714341-2 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:00:33 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.ox.ac.uk:210/ADVANCE",
  acknowledgement = ack-nhfb,
  remark =       "Based on Core Python Programming, Second Edition. 7+
                 Hours of Video Instruction.",
  subject =      "Python (Computer program language)",
}

@Book{Copeland:2008:ES,
  author =       "Rick Copeland",
  title =        "Essential {SQLAlchemy}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xi + 215",
  year =         "2008",
  ISBN =         "0-596-51614-2",
  ISBN-13 =      "978-0-596-51614-7",
  LCCN =         "QA76.9.W43 C67 2008",
  bibdate =      "Sat Nov 13 10:17:02 MST 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90;
                 prodorbis.library.yale.edu:7090/voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); SQL (Computer
                 program language); Web databases",
}

@Article{Dalcin:2008:MPP,
  author =       "Lisandro Dalc{\'\i}n and Rodrigo Paz and Mario Storti
                 and Jorge D'El{\'\i}a",
  title =        "{MPI} for {Python}: Performance improvements and
                 {MPI-2} extensions",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "68",
  number =       "5",
  pages =        "655--662",
  month =        may,
  year =         "2008",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Fri Jul 11 20:32:36 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/07437315",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Doring:2008:ESL,
  author =       "Holger D{\"o}ring",
  title =        "Evaluating Scripting Languages: How {Python} Can Help
                 Political Methodologists",
  journal =      "The Political Methodologist",
  volume =       "16",
  number =       "1",
  institution =  "Bibliothek der Universit{\"a}t Konstanz",
  pages =        "8--12",
  year =         "2008",
  bibdate =      "Thu Apr 16 11:32:19 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Book{Ernesti:2008:PUH,
  author =       "Johannes Ernesti and Peter Kaiser",
  title =        "{Python: das umfassende Handbuch; [aktuell zu Python
                 2.5; Einf{\"u}hrung, Praxis, Referenz;
                 Sprachgrundlagen, Objektorientierung, Modularisierung;
                 Web-Programmierung mit Django, GUIs,
                 Netzwerkkommunikation u.v.m.] }",
  publisher =    "Galileo Press",
  address =      "Bonn, Germany",
  pages =        "????",
  year =         "2008",
  ISBN =         "3-8362-1110-6",
  ISBN-13 =      "978-3-8362-1110-9",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:34:36 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Book{Flaig:2008:BPP,
  author =       "Ruediger-Marcus Flaig",
  title =        "Bioinformatics programming in {Python}: a practical
                 course for beginners",
  publisher =    "Wiley-VCH",
  address =      "Weinheim, Germany",
  pages =        "ix + 418",
  year =         "2008",
  ISBN =         "3-527-32094-6 (paperback)",
  ISBN-13 =      "978-3-527-32094-3 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:45:12 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.tcd.ie:210/advance",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Bioinformatics",
  usmarc-003 =   "003 IeDuTC",
}

@Book{Gift:2008:PUL,
  author =       "Noah Gift and Jeremy M. Jones",
  title =        "{Python} for {Unix} and {Linux} system
                 administration",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xix + 433",
  year =         "2008",
  ISBN =         "0-596-51582-0",
  ISBN-13 =      "978-0-596-51582-9",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:53:11 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  acknowledgement = ack-nhfb,
}

@Book{Goebel:2008:BPR,
  author =       "John A. Goebel and Adil Hasan and Francesco Safai
                 Tehrani",
  title =        "The book of {Python}: a real-world reference",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "????",
  year =         "2008",
  ISBN =         "1-59327-103-4",
  ISBN-13 =      "978-1-59327-103-9",
  LCCN =         "QA76.73.P98 G62 2008",
  bibdate =      "Thu Apr 16 11:26:33 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/toc/ecip064/2005034382.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Goldwasser:2008:OOP,
  author =       "Michael H. Goldwasser and David Letscher",
  title =        "Object-oriented programming in {Python}",
  publisher =    "Pearson Prentice Hall",
  address =      "Upper Saddle River, NJ, USA",
  pages =        "xxii + 666",
  year =         "2008",
  ISBN =         "0-13-615031-4",
  ISBN-13 =      "978-0-13-615031-2",
  LCCN =         "QA76.73.P98.G65; QA76.73.P98.G65 2008",
  bibdate =      "Thu Apr 16 10:06:48 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.mit.edu:9909/mit01",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science); Object-oriented
                 programming languages",
  tableofcontents = "I. Fundamental Topics \\
                 1. Cornerstones of Computing \\
                 2. Getting Started in Python \\
                 3. Getting Started with Graphics \\
                 4. Elementary Control Structures \\
                 5. Additional Control Structures \\
                 6. Defining Our Own Classes \\
                 7. Good Software Practices \\
                 8. Input, Output, and Files \\
                 9. Inheritance \\
                 II. Advanced Topics \\
                 10. Deeper Understanding of the Management of Objects
                 \\
                 11. Recursion \\
                 12. More Python Containers \\
                 13. Implementing Data Structures \\
                 14. Sorting Algorithms \\
                 15. Event-Driven Programming \\
                 16. Network Programming \\
                 App. A. Using IDLE \\
                 App. B. Python, Java, and C++: a Transition Guide \\
                 App. C. Solutions to Practice Exercises \\
                 App. D. Glossary",
}

@Article{Goldwasser:2008:PGP,
  author =       "Michael H. Goldwasser and David Letscher",
  title =        "A {Python} graphics package for the first day and
                 beyond",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "3",
  pages =        "326--326",
  month =        sep,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1597849.1384369",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '08.",
  abstract =     "We demonstrate the use of a new Python graphics
                 package named cs1graphics, while discussing its impact
                 on pedagogy and showcasing the recent work of our
                 students. Our package was originally developed with two
                 goals in mind. First, we insisted that it be intuitive
                 enough that students can sit down and make use of it
                 from the very first day of an introductory class.
                 Second, we wanted to provide seamless support for
                 intermediate and advanced lessons as students progress.
                 The resulting package is freely available at
                 www.cs1graphics.org. We find its combination of
                 simplicity and functionality unmatched by existing
                 packages.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Goldwasser:2008:TOO,
  author =       "Michael H. Goldwasser and David Letscher",
  title =        "Teaching an object-oriented {CS1} -: with {Python}",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "3",
  pages =        "42--46",
  month =        sep,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1597849.1384285",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '08.",
  abstract =     "There is an ongoing debate regarding the role of
                 object orientation in the introductory programming
                 sequence. While the pendulum swings to and fro between
                 the ``objects first'' and ``back to basics'' extremes,
                 there is general agreement that object-oriented
                 programming is central to modern software development
                 and therefore integral to a computer science
                 curriculum. Developing effective approaches to teach
                 these principles raises challenges that have been
                 exacerbated by the use of Java or C++ as the first
                 instructional language. In this paper, we recommend
                 Python as an excellent choice for teaching an
                 object-oriented CS1. Although often viewed as a
                 ``scripting'' language, Python is a fully
                 object-oriented language with a consistent object model
                 and a rich set of built-in classes. Based upon our
                 experiences, we describe aspects of the language that
                 help support a balanced introduction to object
                 orientation in CS1. We also discuss the downstream
                 effects on our students' transition to Java and C++ in
                 subsequent courses.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Hajji:2008:PPE,
  author =       "Farid Hajji",
  title =        "{Das Python Praxisbuch --- eBook: Der gro{\ss}e
                 Profi-Leitfaden f{\"u}r Programmierer}",
  publisher =    "Addison Wesley in Pearson Education Deutschland",
  address =      "M{\"u}nchen, Germany",
  pages =        "1328 (est.)",
  year =         "2008",
  ISBN =         "3-8273-6182-6",
  ISBN-13 =      "978-3-8273-6182-0",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:54:01 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Henderson:2008:AMC,
  author =       "Peter B. Henderson",
  title =        "Abstraction, model checking and software correctness",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "2",
  pages =        "23--24",
  month =        jun,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1383602.1383624",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:13 MST 2012",
  bibsource =    "DBLP;
                 http://dblp.uni-trier.de/db/journals/sigcse/sigcse40.html#Henderson08;
                 http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  URL =          "ftp://ftp.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Misc/DBLP/2008.bib",
  abstract =     "I hope you were able to read the contribution from
                 Maria and Gary Litvin, Pre-college Math Concepts vs
                 Skills --- Preparation for Computing Studies, in my
                 last column. This article addressed one of the most
                 important issues our discipline faces, the preparation
                 and motivation of young people to pursue a career in
                 computing. To repeat, here is a quote from the back
                 cover of their book for high school students
                 Mathematics for the Digital Age and Programming in
                 Python: ``The vision behind this book is that math and
                 computer science should help each other. A programmer
                 needs to be comfortable with abstractions, and that is
                 precisely what math teaches. Computer science
                 reciprocates by providing models and hands-on exercises
                 that help clarify and illustrate more abstract math.''
                 This columns contribution ``Reflections on Teaching
                 Abstraction and Other Soft Ideas'' by Orit Hazzan,
                 which can be found on page?? of this issue of Inroads,
                 further reinforces the relevance of abstraction for
                 software developers.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Hetland:2008:BPN,
  author =       "Magnus Lie Hetland",
  title =        "Beginning {Python}: from novice to professional",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  pages =        "xxx + 656",
  year =         "2008",
  ISBN =         "1-59059-982-9",
  ISBN-13 =      "978-1-59059-982-2",
  LCCN =         "A76.73.P98 H48 2008eb",
  bibdate =      "Thu Apr 16 10:25:57 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Book{Holovaty:2008:DGD,
  author =       "Adrian Holovaty and Jacob Kaplan-Moss",
  title =        "The Definitive Guide to {Django}: {Web} Development
                 Done Right",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxxii + 447",
  year =         "2008",
  DOI =          "http://dx.doi.org/10.1007/978-1-4302-0331-5",
  ISBN =         "1-59059-725-7",
  ISBN-13 =      "978-1-59059-725-5",
  LCCN =         "TK5105.888",
  bibdate =      "Thu Apr 16 11:18:13 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  series =       "Springer eBook Collection Professional and Applied
                 Computing [Dig. Serial]; Springer-12059 [Dig. Serial]",
  abstract =     "Provides information on using the Python-based
                 framework to create Web sites.",
  acknowledgement = ack-nhfb,
  subject =      "software engineering; computer science; special
                 purpose and application-based systems",
}

@Book{Johnson:2008:EPC,
  author =       "Mark Johnson",
  title =        "Essential {Python} for corpus linguistics",
  publisher =    "Blackwell",
  address =      "Oxford, UK",
  pages =        "208",
  year =         "2008",
  ISBN =         "1-4051-4563-3 (hardcover), 1-4051-4564-1 (paperback)",
  ISBN-13 =      "978-1-4051-4563-3 (hardcover), 978-1-4051-4564-0
                 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 08:40:14 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.ox.ac.uk:210/ADVANCE",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computational
                 linguistics",
}

@Book{Kak:2008:SOC,
  author =       "Avinash C. Kak",
  title =        "Scripting with objects: a comparative presentation of
                 object-oriented scripting with {Perl} and {Python}",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxxiv + 1279",
  year =         "2008",
  ISBN =         "0-470-17923-6 (paperback)",
  ISBN-13 =      "978-0-470-17923-9 (paperback)",
  LCCN =         "QA76.64.K3555; QA76.64.K3555 2008",
  bibdate =      "Thu Apr 16 10:56:33 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.mit.edu:9909/mit01",
  price =        "US\$89.95",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0743/2007035480-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0808/2007035480-b.html;
                 http://www.loc.gov/catdir/enhancements/fy0835/2007035480-t.html",
  acknowledgement = ack-nhfb,
  subject =      "Object-oriented programming (Computer science);
                 Scripting languages (Computer science); Perl (Computer
                 program language); Python (Computer program language)",
}

@Book{Knowlton:2008:PCM,
  author =       "Jim Knowlton",
  title =        "{Python}: create-modify-reuse",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxv + 261",
  year =         "2008",
  ISBN =         "0-470-25932-9",
  ISBN-13 =      "978-0-470-25932-0",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 10:53:44 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  series =       "Wrox programmer to programmer",
  acknowledgement = ack-nhfb,
  subject =      "Python; Multimedia; {\AA}pen-Kildekode?",
}

@Book{Langtangen:2008:PSC,
  author =       "Hans Petter Langtangen",
  title =        "{Python} Scripting for Computational Science",
  volume =       "3",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  edition =      "Third",
  pages =        "xxiv + 750",
  year =         "2008",
  DOI =          "http://dx.doi.org/10.1007/978-3-540-73916-6",
  ISBN =         "3-540-73915-7, 3-540-73916-5",
  ISBN-13 =      "978-3-540-73915-9, 978-3-540-73916-6",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:07:58 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  series =       "Springer eBook Collection Mathematics and Statistics
                 [Dig. Serial]; Springer-11649 [Dig. Serial]; Texts in
                 Computational Science and Engineering",
  acknowledgement = ack-nhfb,
  subject =      "Computer science; Engineering; Physics; Software
                 engineering; Mathematics; Computational Science and
                 Engineering; Numerical and Computational Methods;
                 Numerical and Computational Methods in Engineering;
                 Software Engineering/Programming and Operating
                 Systems",
}

@Book{Litvin:2008:MDA,
  author =       "Maria Litvin and Gary Litvin",
  title =        "Mathematics for the digital age and programming in
                 {Python}",
  publisher =    "Skylight Pub.",
  address =      "Andover, MA, USA",
  pages =        "????",
  year =         "2008",
  ISBN =         "0-9727055-8-9",
  ISBN-13 =      "978-0-9727055-8-5",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:20:57 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://lccn.loc.gov/2007930214",
  acknowledgement = ack-nhfb,
}

@Article{Long:2008:SAR,
  author =       "Philip D. Long",
  title =        "Scalable apprenticeships: reconnecting students
                 through technology",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "3",
  pages =        "3--4",
  month =        sep,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1597849.1384273",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '08.",
  abstract =     "Today's students are typically over scheduled and
                 hyper-connected, yet increasingly disconnected with
                 their education. The classroom into which they step for
                 core science, technology and engineering subjects is
                 often removed from both the practice of the disciplines
                 being taught and the technology tools which pervade
                 other aspects of their life. A significant challenge is
                 to reconnect the excitement and discovery that drew
                 faculty into their disciplines back to the learning
                 environments of STEM and CSE students they teach. Peer
                 Instruction (inserting discussion and formative
                 assessment into lecture) and project-based learning are
                 two promising attempts at recapturing the process of
                 science and engineering in introductory courses. Recent
                 experiments in freshman project-based seminars such as
                 nanoscale engineering and a major redesign of the
                 introductory Course 6 (Computer Science and Electrical
                 Engineering) at MIT are exploring ways to bring
                 apprenticeship back to both small and large classes.
                 Through Python-based tutoring tools, layered mentoring
                 that includes just-in-time ``guest laboratory
                 assistants'' to achieve 1:4 instructor-student ratios
                 in large courses, and careful attention to learning
                 space design new strategies for scaled apprenticeships
                 are being forged.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Lutz:2008:LP,
  author =       "Mark Lutz",
  title =        "Learning {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Third",
  pages =        "xliv + 700",
  year =         "2008",
  ISBN =         "0-596-51398-4, 0-596-51398-4",
  ISBN-13 =      "978-0-596-51398-6, 978-0-596-51398-6",
  LCCN =         "QA76.73.P98 L877 2008; QA76.73.P98 L877 2008eb;
                 QA76.73.P98 L8798 2008; QA76.73.P98",
  bibdate =      "Tue Aug 5 17:56:24 MDT 2008",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596513986",
  abstract =     "Describes the features of the Python 2.5 programming
                 language, covering such topics as types and operations,
                 statements and syntax, functions, modules, classes and
                 OOP, and exceptions and tools.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
  tableofcontents = "1. A Python Q and A Session \\
                 2. How Python Runs Programs \\
                 3. How You Run Programs \\
                 4. Introducing Python Object Types \\
                 5. Numbers \\
                 6. The Dynamic Typing Interlude \\
                 7. Strings \\
                 8. Lists and Dictionaries \\
                 9. Tuples, Files, and Everything Else \\
                 10. Introducing Python Statements \\
                 11. Assignment, Expressions, and print \\
                 12. If Tests \\
                 13. While and for Loops \\
                 14. The Documentation Interlude \\
                 15. Function Basics \\
                 16. Scopes and Arguments \\
                 17. Advanced Function Topics \\
                 18. Modules: The Big Picture \\
                 19. Module Coding Basics \\
                 20. Module Packages \\
                 21. Advanced Module Topics \\
                 22. OOP: The Big Picture \\
                 23. Class Coding Basics \\
                 24. Class Coding Details \\
                 25. Designing with Classes \\
                 26. Advanced Class Topics \\
                 27. Exception Basics \\
                 28. Exception Objects \\
                 29. Designing with Exceptions",
}

@Article{Meinke:2008:SVS,
  author =       "Jan H. Meinke and Sandipan Mohanty and Frank
                 Eisenmenger and Ulrich H. E. Hansmann",
  title =        "{SMMP v. 3.0} --- Simulating proteins and protein
                 interactions in {Python} and {Fortran}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "178",
  number =       "6",
  pages =        "459--470",
  day =          "15",
  month =        mar,
  year =         "2008",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2007.11.004",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 13 23:42:29 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 http://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465507004614",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Book{Mount:2008:PRF,
  author =       "Sarah Mount and James Shuttleworth and Russel
                 Winder",
  title =        "{Python} for Rookies: a first course in programming",
  publisher =    "Thomson Learning (EMEA)",
  address =      "London, UK",
  pages =        "xxi + 454",
  year =         "2008",
  ISBN =         "1-84480-701-0",
  ISBN-13 =      "978-1-84480-701-7",
  LCCN =         "QA76.73.P98 M68 2008",
  bibdate =      "Thu Apr 16 11:37:01 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.libris.kb.se:210/libr",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 programming; Python (programspr{\aa}k)",
}

@Book{Nguyen:2008:CSL,
  author =       "Quan Nguyen",
  title =        "{CAD} scripting language: a collection of {Perl},
                 {Ruby}, {Python}, {TCL} and {Skill} scripts",
  publisher =    "Ramacad",
  address =      "San Jose, CA, USA",
  pages =        "????",
  year =         "2008",
  ISBN =         "0-9777812-2-4",
  ISBN-13 =      "978-0-9777812-2-5",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:25:24 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
}

@TechReport{Nguyen:2008:IPCa,
  author =       "Binh Q. Nguyen",
  title =        "The Implementation of a {Python} Class for Structuring
                 Network Data Collected in a Test Bed",
  type =         "Technical report",
  number =       "D-arl-tr-4423, AD-a479 698",
  institution =  "United States Army Research Lab",
  address =      "Adelphi, MD, USA",
  pages =        "30",
  year =         "2008",
  LCCN =         "T1 U59 AD-a479 698",
  bibdate =      "Thu Apr 16 11:11:19 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This report documents an internally developed Python
                 class that takes in a set of data files and organizes
                 them into effective data structures that are suitable
                 for the subsequent extraction, processing, and
                 analysis. The report includes usage examples by
                 describing Python snippets that perform statistical
                 calculations and that transform the data into
                 comma-separated values. Sample input and output data
                 are appended to the report.",
  acknowledgement = ack-nhfb,
}

@TechReport{Nguyen:2008:IPCb,
  author =       "Binh Q. Nguyen",
  title =        "An Introduction to {Python} (a One-Hour Tour)",
  type =         "Technical report",
  number =       "AD-arl-tn-0328, AD-a484 316",
  institution =  "United States Army Research Lab",
  address =      "Adelphi, MD, USA",
  pages =        "20",
  year =         "2008",
  LCCN =         "T1 U59 AD-a484 316",
  bibdate =      "Thu Apr 16 11:11:19 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This tutorial highlights and goes over essential
                 features of the Python programming language while it is
                 still evolving, but sufficiently stable and mature for
                 the development of diverse solutions to computational,
                 networking, and visualization problems. Although the
                 technical details are kept to a minimum to fit diverse
                 background and interests of the audience, they can be
                 used as review materials for experienced and occasional
                 developers of Python applications. The tutorial was
                 presented to a team of engineers, scientists, and
                 summer students on Wednesday 18 June 2008 at the U.S.
                 Army Research Laboratory in Adelphi, MD.",
  acknowledgement = ack-nhfb,
}

@TechReport{Nguyen:2008:PPE,
  author =       "Binh Q. Nguyen",
  title =        "{pyGFC} --- a {Python} Extension to the {C++ Geodesy
                 Foundation Classes}",
  type =         "Technical report",
  number =       "AD-arl-tr-4623, AD-a488 020",
  institution =  "United States Army Research Lab",
  address =      "Adelphi, MD, USA",
  year =         "2008",
  bibdate =      "Thu Apr 16 11:14:47 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This report describes the results of the development
                 of the pyGFC module, including the multi-step procedure
                 and the implemented computer code. The pyGFC module is
                 a Python extension to the C++ Geodesy Foundation Class,
                 which has been used in the range model of the Mobile
                 Ad-hoc Network (MANET) Emulation (MANE) software system
                 that enables the dynamic connectivity of a MANET system
                 in the Wireless Emulation Laboratory of the U.S. Army
                 Research Laboratory (ARL). The pyGFC module was created
                 to support the visualization of network topologies
                 using the ARL Topodef tool, a graphical design and
                 animation tool for custom-designing and editing a
                 mobility scenario to create specific network
                 topologies.",
  acknowledgement = ack-nhfb,
}

@Book{Nguyen:2008:SLC,
  editor =       "Quan Nguyen",
  title =        "Scripting languages: a collection of {Perl}, {Ruby},
                 {Python}, {TCL} and {Unix}",
  publisher =    "Ramacad",
  address =      "San Jose, CA, USA",
  pages =        "????",
  year =         "2008",
  ISBN =         "0-9777812-3-2",
  ISBN-13 =      "978-0-9777812-3-2",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:25:48 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
}

@Article{Radenski:2008:DCS,
  author =       "Atanas Radenski",
  title =        "Digital {CS1} study pack based on {Moodle} and
                 {Python}",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "3",
  pages =        "325--325",
  month =        sep,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1597849.1384368",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '08.",
  abstract =     "We believe that CS1 courses can be made more
                 attractive to students: by teaching a highly
                 interactive scripting language --- Python by using an
                 open source course management system --- such as Moodle
                 --- to make all course resources available in a
                 comprehensive digital study pack, and by offering
                 detailed self-guided online labs . We have used Moodle
                 [1] and Python [2] to develop a ``Python First''
                 digital study pack [3] which comprises a wealth of new,
                 original learning modules: extensive e-texts, detailed
                 self-guided labs, numerous sample programs, quizzes,
                 and slides. Our digital study pack pedagogy is
                 described in recent ITiCSE and SIGCSE papers [4, 5].
                 ``Python First'' digital packs instances have already
                 been adopted by instructors at several universities.
                 This demonstration reveals instructor and student
                 perspectives to the ``Python First'' digital pack. In
                 particular, we demonstrate how instructors can use
                 standard Moodle functionality to customize and manage
                 digital packs. We also demonstrate several
                 Moodle-supported, Python-based self-guided labs.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Rosenberg:2008:DCT,
  author =       "Scott Rosenberg",
  title =        "Dreaming in code: Two dozen Programmers, three years,
                 4,732 bugs, and one quest for transcendent software",
  publisher =    "Three Rivers Press",
  address =      "New York, NY, USA",
  pages =        "403",
  year =         "2008",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:19:24 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Python",
}

@Article{Sala:2008:PHP,
  author =       "Marzio Sala and W. F. Spotz and M. A. Heroux",
  title =        "{PyTrilinos}: {High-performance} distributed-memory
                 solvers for {Python}",
  journal =      j-TOMS,
  volume =       "34",
  number =       "2",
  pages =        "7:1--7:33",
  month =        mar,
  year =         "2008",
  CODEN =        "ACMSCU",
  DOI =          "http://doi.acm.org/10.1145/1326548.1326549",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Thu Jun 12 12:47:31 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/bibnet/subjects/domain-decomp.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "PyTrilinos is a collection of Python modules that are
                 useful for serial and parallel scientific computing.
                 This collection contains modules that cover serial and
                 parallel dense linear algebra, serial and parallel
                 sparse linear algebra, direct and iterative linear
                 solution techniques, domain decomposition and
                 multilevel preconditioners, nonlinear solvers, and
                 continuation algorithms. Also included are a variety of
                 related utility functions and classes, including
                 distributed I/O, coloring algorithms, and matrix
                 generation. PyTrilinos vector objects are integrated
                 with the popular NumPy Python module, gathering
                 together a variety of high-level distributed computing
                 operations with serial vector
                 operations.\par

                 PyTrilinos is a set of interfaces to existing, compiled
                 libraries. This hybrid framework uses Python as
                 front-end, and efficient precompiled libraries for all
                 computationally expensive tasks. Thus, we take
                 advantage of both the flexibility and ease of use of
                 Python, and the efficiency of the underlying C++, C,
                 and FORTRAN numerical kernels. Out numerical results
                 show that, for many important problem classes, the
                 overhead required by the Python interpreter is
                 negligible.\par

                 To run in parallel, PyTrilinos simply requires a
                 standard Python interpreter. The fundamental MPI calls
                 are encapsulated under an abstract layer that manages
                 all interprocessor communications. This makes serial
                 and parallel scripts using PyTrilinos virtually
                 identical.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Mathematical Software",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
  keywords =     "direct solvers; multilevel preconditioners; nonlinear
                 solvers; object-oriented programming; script
                 languages",
}

@Article{Sanders:2008:SPP,
  author =       "Ian D. Sanders and Sasha Langford",
  title =        "Students' perceptions of {Python} as a first
                 programming language at {Wits}",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "3",
  pages =        "365--365",
  month =        sep,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1597849.1384407",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '08.",
  abstract =     "The first year curriculum at the University of the
                 Witwatersrand (Wits) is a breadth-first curriculum
                 where students are introduced to a variety of topics in
                 Computer Science (see Sanders and Mueller [5] for
                 details). As part of the course the students are
                 expected to come to terms with a number of basic
                 algorithms and data structures which they are required
                 to implement. When the curriculum was designed we chose
                 Scheme as the implementation language. One reason for
                 doing so was because the main entrance requirement for
                 our course is a solid mathematics background as
                 evidenced by good marks at school level. Our students
                 thus have a good understanding of functions and we felt
                 that Scheme?s functional style would make it accessible
                 to all of our students. Another reason for choosing
                 Scheme was because it is a language which would be new
                 to all of our students. Scheme was well received by
                 those students who had never programmed before and
                 proved to be a good language for meeting our teaching
                 objectives but there was resistance to the language
                 from the students who could already program as they
                 considered it a waste of time to learn a language which
                 was not (as they believed) used in the real world [3].
                 In addition, the use of Scheme did not really reduce
                 the performance gap between the students with and
                 without prior programming experience [2]. Python has
                 been found to be a good first language for both
                 experienced and inexperienced users [4] and its simple
                 syntax and support of different programming paradigms
                 seemed to make it an attractive option for our first
                 year course. We believed that using Python would still
                 allow us to meet our educational objectives ? it would
                 be easily accessible to those students who had never
                 programmed before and would support our approach of
                 formulating algorithms Python has been found to be a
                 good first language for both experienced and
                 inexperienced users [4] and its simple syntax and
                 support of different programming paradigms seemed to
                 make it an attractive option for our first year course.
                 We believed that using Python would still allow us to
                 meet our educational objectives ? it would be easily
                 accessible to those students who had never programmed
                 before and would support our approach of formulating
                 algorithms In late 2007 we did a survey to assess the
                 first year students? impressions of Python. The
                 students were asked to indicate agreement, disagreement
                 or neutrality to a number of questions about the use of
                 Python. 55 students completed the survey ? 27 of these
                 had no prior programming experience and 28 had
                 programmed before. The Wilcoxon signed rank test was
                 used to test the hypotheses that both groups believed
                 that Python was a good first year language. The results
                 show strong evidence that the students feel that Python
                 is a suitable language. There are. however, still some
                 students with prior programming experience who are
                 resistant to new languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Stubblebine:2008:RAK,
  author =       "Toni Stubblebine and Peter Klicman and Lars
                 Schulten",
  title =        "{Regul{\"a}re Ausdr{\"u}cke --- kurz and gut [f{\"u}r
                 Perl, Ruby, PHP, C\#, Python, Java and .NET]}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "131",
  year =         "2008",
  ISBN =         "3-89721-535-7",
  ISBN-13 =      "978-3-89721-535-1",
  LCCN =         "????",
  bibdate =      "Thu Jul 15 18:31:10 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 9.90",
  series =       "O'Reillys Taschenbibliothek",
  acknowledgement = ack-nhfb,
}

@Book{Summerfield:2008:RGP,
  author =       "Mark Summerfield",
  title =        "Rapid {GUI} programming with {Python} and {Qt}: the
                 definitive guide to {PyQt} programming",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xiv + 625",
  year =         "2008",
  ISBN =         "0-13-235418-7 (hardcover)",
  ISBN-13 =      "978-0-13-235418-9 (hardcover)",
  LCCN =         "QA76.9.U83 S89 2008",
  bibdate =      "Thu Apr 16 10:48:43 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Prentice Hall open source software development
                 series",
  acknowledgement = ack-nhfb,
  subject =      "Qt (Electronic resource); Graphical user interfaces
                 (Computer systems); Python (Computer program
                 language)",
}

@Article{Vallisneri:2008:PXA,
  author =       "Michele Vallisneri and Stanislav Babak",
  title =        "{Python} and {XML} for Agile Scientific Computing",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "10",
  number =       "1",
  pages =        "80--87",
  month =        jan # "\slash " # feb,
  year =         "2008",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2008.20",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 3 11:24:18 MDT 2008",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2008/01/c1toc.htm;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{VanHensbergen:2008:HAR,
  author =       "Eric {Van Hensbergen} and Charles Forsyth and Jim
                 McKie and Ron Minnich",
  title =        "Holistic aggregate resource environment",
  journal =      j-OPER-SYS-REV,
  volume =       "42",
  number =       "1",
  pages =        "85--91",
  month =        jan,
  year =         "2008",
  CODEN =        "OSRED8",
  DOI =          "http://doi.acm.org/10.1145/1341312.1341327",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Fri Jun 20 17:19:29 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Within a few short years, we can expect to be dealing
                 with multi-million-thread programs running on
                 million-core systems [16]. This will no doubt stress
                 the contemporary HPC software model which was developed
                 in a time when 512 cores was a large number. Historical
                 approaches have been further challenged by the
                 increased desire of developers and end users for
                 supercomputer light weight kernels (LWKs) to support
                 the same environment, libraries, and tools as their
                 desktops. As a result, the emerging workloads of today
                 are far more sophisticated than those of the last two
                 decades when much of the HPC infrastructure was
                 developed, and feature the use of scripting
                 environments such as Python, dynamic libraries, and
                 complex multi-scale physics frameworks. Complicating
                 this picture is the overwhelming management, monitoring
                 and reliability problem created by the huge number of
                 nodes in a system of that magnitude.\par

                 We believe that a re-evaluation and exploration of
                 distributed system principals is called for in order to
                 address the challenges of ultrascale. To that end we
                 will be evaluating and extending the Plan 9 [21]
                 distributed system on the largest machines available to
                 us, namely the BG/L [28] and BG/P [10] supercomputers.
                 We have chosen Plan 9 based on our previous experiences
                 with it in combination with previous research [17]
                 which determined Plan 9 was a `right weight kernel',
                 balancing trade offs between LWKs and more general
                 purpose operating systems such as Linux. To deal with
                 issues of scale, we plan on leveraging the use of the
                 high-performance interconnects by system services as
                 well as exploring aggregation as more of a first-class
                 system construct -- providing dynamic hierarchical
                 organization and management of all resources. Our plan
                 is to evaluate the viability of these concepts at scale
                 as well as create an alternative development and
                 execution environment which compliments the features
                 and capabilities of the existing system software and
                 run time options. Our intent is to broaden the
                 application base as well as make the system as a whole
                 more approachable to a larger class of developers and
                 end-users.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
}

@Book{Younker:2008:FAP,
  author =       "Jeff Younker",
  title =        "Foundations of agile {Python} development: [{Python},
                 agile project methods, and a comprehensive open source
                 tool chain!]",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxi + 393",
  year =         "2008",
  ISBN =         "1-59059-981-0",
  ISBN-13 =      "978-1-59059-981-5",
  LCCN =         "QA76.73.P98",
  bibdate =      "Thu Apr 16 11:22:52 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  series =       "The expert's voice in open source",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Ziade:2008:EPP,
  author =       "Tarek Ziad{\'e} and Paul Kennedy and Shannon Behrens
                 and Wendy Langer and Siddharth Mangarole",
  title =        "Expert {Python} programming: learn best practices to
                 designing, coding, and distributing your {Python}
                 software",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2008",
  ISBN =         "1-84719-494-X, 1-84719-495-8 (e-book)",
  ISBN-13 =      "978-1-84719-494-7, 978-1-84719-495-4 (e-book)",
  LCCN =         "A76.73.P98 Z53 2008",
  bibdate =      "Thu Apr 16 10:17:37 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9781847194947",
  acknowledgement = ack-nhfb,
}

@Book{Alchin:2009:PD,
  author =       "Marty Alchin",
  title =        "Pro {Django}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "????",
  year =         "2009",
  DOI =          "http://dx.doi.org/10.1007/978-1-4302-1048-1",
  ISBN =         "1-4302-1048-6",
  ISBN-13 =      "978-1-4302-1048-1",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 12:30:58 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  series =       "Springer eBook Collection Professional and Applied
                 Computing [Dig. Serial]; Springer-12059 [Dig. Serial]",
  acknowledgement = ack-nhfb,
  keywords =     "Python",
  subject =      "Computer science",
}

@Book{Beazley:2009:PER,
  author =       "David M. Beazley",
  title =        "{Python} essential reference",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Fourth",
  pages =        "xxi + 717",
  year =         "2009",
  ISBN =         "0-672-32978-6",
  ISBN-13 =      "978-0-672-32978-4",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 13:03:27 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "\booktitle{Python Essential Reference} is the
                 definitive reference guide to the Python programming
                 language --- the one authoritative handbook that
                 reliably untangles and explains both the core Python
                 library. Designed for the practicing programmer, the
                 book is concise, to the point, and highly accessible.
                 It also includes detailed information on the Python
                 library and many advanced subjects that is not
                 available in either the official Python documentation
                 or any other single reference source. Thoroughly
                 updated to reflect the significant new programming
                 language features and library modules that have been
                 introduced in Python 2.6 and Python 3, the fourth
                 edition of Python Essential Reference is the complete
                 guide for programmers who need to modernize existing
                 Python code or who are planning an eventual migration
                 to Python 3.",
  acknowledgement = ack-nhfb,
  tableofcontents = "A tutorial introduction \\
                 Lexical conventions and syntax \\
                 Types and objects \\
                 OPerators and expressions \\
                 Program structure and control flow \\
                 Functions and functional programming \\
                 Classes and object-oriented programming \\
                 Modules, packages, and distribution \\
                 Input and output \\
                 Execution environment \\
                 Testing, debugging, profiling, and tuning \\
                 Built-in functions \\
                 Python runtime services \\
                 Mathematics \\
                 Data structures, algorithms, and code simplification
                 \\
                 String and text handling \\
                 Python database access \\
                 File and directory handling \\
                 Operating system services \\
                 Threads and concurrency \\
                 Network programming and sockets \\
                 Internet application programming \\
                 Web programming \\
                 Internet data handling and encoding \\
                 Miscellaneous library modules \\
                 Extending and embedding python",
}

@Article{Beazley:2009:PGB,
  author =       "David Beazley",
  title =        "{Python 3}: The Good, the Bad, and the Ugly",
  journal =      j-LOGIN,
  volume =       "34",
  number =       "2",
  pages =        "??--??",
  month =        apr,
  year =         "2009",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  ISSN-L =       "1044-6397",
  bibdate =      "Fri Dec 7 11:34:39 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/usenix2000.bib;
                 https://www.usenix.org/publications/login",
  URL =          "https://www.usenix.org/publications/login/april-2009-volume-34-number-2/python-3-good-bad-and-ugly",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Book{Bird:2009:NLP,
  author =       "Steven Bird and Ewan Klein and Edward Loper",
  title =        "Natural Language Processing with {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "500 (est)",
  year =         "2009",
  ISBN =         "0-596-51649-5",
  ISBN-13 =      "978-0-596-51649-9",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 13:05:00 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Boland:2009:IPD,
  author =       "Michael G. Boland and Curtis Clifton",
  title =        "Introducing {PyLighter}: dynamic code highlighter",
  journal =      j-SIGCSE,
  volume =       "41",
  number =       "1",
  pages =        "489--493",
  month =        mar,
  year =         "2009",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1539024.1509037",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of SIGCSE '09.",
  abstract =     "Like a screenplay, a program is both a static artifact
                 and instructions for a dynamic performance. This
                 duality can keep laypeople from appreciating the
                 complexity of software systems and can be a stumbling
                 block for novice programmers. PyLighter lets laypeople
                 and novice programmers perceive the relationship
                 between static Python code and its execution. PyLighter
                 works with everything from simple console applications
                 to arcade-style games, and because PyLighter is easy to
                 adopt and use, instructors can integrate it into any
                 Python-based introductory course without changing the
                 rest of their syllabus.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Brune:2009:PUR,
  author =       "Corey Brune",
  title =        "{Python}: An Untapped Resource in System
                 Administration",
  journal =      j-LOGIN,
  volume =       "34",
  number =       "1",
  pages =        "??--??",
  month =        feb,
  year =         "2009",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  ISSN-L =       "1044-6397",
  bibdate =      "Fri Dec 7 11:34:38 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/usenix2000.bib;
                 https://www.usenix.org/publications/login",
  URL =          "https://www.usenix.org/publications/login/february-2009-volume-34-number-1/python-untapped-resource-system-administration",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Book{Donaldson:2009:P,
  author =       "Toby Donaldson",
  title =        "{Python}",
  publisher =    pub-PEACHPIT,
  address =      pub-PEACHPIT:adr,
  edition =      "Second",
  pages =        "vi + 185",
  year =         "2009",
  ISBN =         "0-321-58544-5 (paperback)",
  ISBN-13 =      "978-0-321-58544-8 (paperback)",
  LCCN =         "X09.F00872",
  bibdate =      "Thu Apr 16 10:54:00 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.ox.ac.uk:210/ADVANCE",
  series =       "Visual quickstart guide",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Book{Downey:2009:PSD,
  author =       "Allen Downey",
  title =        "{Python} for software design: how to think like a
                 computer scientist",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "????",
  year =         "2009",
  ISBN =         "0-521-89811-0, 0-521-72596-8",
  ISBN-13 =      "978-0-521-89811-9, 978-0-521-72596-5",
  LCCN =         "QA76.73.P98 D693 2009",
  bibdate =      "Thu Apr 16 12:09:42 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Article{Drummond:2009:PPB,
  author =       "L. Anthony Drummond and Vicente Galiano and Violeta
                 Migall{\'o}n and Jose Penad{\'e}s",
  title =        "{PyACTS}: a {Python} Based Interface to {ACTS} Tools
                 and Parallel Scientific Applications",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "37",
  number =       "1",
  pages =        "58--77",
  month =        feb,
  year =         "2009",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Wed Sep 1 16:06:47 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0885-7458&volume=37&issue=1&spage=58",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/10766",
}

@Article{Enbody:2009:PCP,
  author =       "Richard J. Enbody and William F. Punch and Mark
                 McCullen",
  title =        "{Python CS1} as preparation for {C++ CS2}",
  journal =      j-SIGCSE,
  volume =       "41",
  number =       "1",
  pages =        "116--120",
  month =        mar,
  year =         "2009",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1539024.1508907",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of SIGCSE '09.",
  abstract =     "How suitable is a Python-based CS1 course as
                 preparation for a C++-based CS2 course? After fifteen
                 years of using C++ for both CS1 and CS2, the Computer
                 Science Department at Michigan State University changed
                 the CS1 course to Python. This paper examines the
                 impact of that change on the second course in the
                 sequence, CS2, which kept C++ as its primary language.
                 We report results on a CS2 class which had a mixture of
                 students who had used either C++ or Python from our CS1
                 course. The CS2 class covered the same topics as
                 previously, though with some changes, and even gave the
                 same final exam as a previous offering. Independent
                 samples t-tests were used to compare students from the
                 Python group with students from the non-Python group on
                 three outcomes: final exam grade, programming projects
                 scores, and final grade for the course. The main result
                 was that there were no significant differences between
                 the groups for all three outcomes. In addition,
                 multiple regression analysis showed that students' past
                 performance (overall GPA) in the University predicted
                 final grades, final exam scores, and programming
                 project scores for the course, but there was no effect
                 of the programming language feature: Python or
                 non-Python. We feel this shows that the Python-based
                 CS1 course prepared students for the C++-based CS2
                 course as well as the C++-based CS1 course did---while
                 exposing them to a different, powerful and useful
                 language.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Ernesti:2009:PUH,
  author =       "Johannes Ernesti and Peter Kaiser",
  title =        "{Python 3: Das umfassende Handbuch}",
  publisher =    "Galileo Press GmbH",
  address =      "Bonn, Germany",
  edition =      "Second",
  pages =        "870 (est.)",
  year =         "2009",
  ISBN =         "3-8362-1412-1",
  ISBN-13 =      "978-3-8362-1412-4",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 12:01:42 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 39.90",
  series =       "Galileo Computing",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Book{Forcier:2009:PWD,
  author =       "Jeff Forcier and Paul Bissex and Wesley Chun",
  title =        "{Python Web} development with {Django}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "377",
  year =         "2009",
  ISBN =         "0-13-235613-9 (paperback)",
  ISBN-13 =      "978-0-13-235613-8 (paperback)",
  LCCN =         "TK5105.8885.D54 F68 2009",
  bibdate =      "Thu Apr 16 12:09:18 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Developer's library",
  acknowledgement = ack-nhfb,
  subject =      "Web site development; Django (Electronic resource);
                 Python (Computer program language); Web sites;
                 Authoring programs",
  tableofcontents = "Introduction / 1 \\
                 Part I: Getting Started \\
                 1: Practical Python for Django / 7 \\
                 \\
                 2: Django for the Impatient: Building a Blog / 57 \\
                 3: Starting Out / 77 \\
                 Part II: Django in Depth \\
                 4: Defining and Using Models / 89 \\
                 5: URLs, HTTP Mechanisms, and Views / 117 \\
                 6: Templates and Form Processing / 135 \\
                 Part III: Django Applications by Example \\
                 7: Photo Gallery / 159 \\
                 8: Content Management System / 181 \\
                 9: Liveblog / 205 \\
                 10: Pastebin / 221 \\
                 Part IV: Advanced Django Techniques and Features \\
                 11: Advanced Django Programming / 235 \\
                 12: Advanced Django Deployment / 261 \\
                 Part V: Appendices \\
                 Appendix A: Command Line Basics / 285 \\
                 Appendix B: Installing and Running Django / 295 \\
                 Appendix C: Tools for Practical Django Development /
                 313 \\
                 Appendix D: Finding, Evaluating, and Using Django
                 Applications / 321 \\
                 Appendix E: Django on the Google App Engine / 325 \\
                 Appendix F: Getting Involved in the Django Project /
                 337 \\
                 Index / 339 \\
                 Colophon / 375",
}

@Article{Furr:2009:PGS,
  author =       "Michael Furr and Jong-hoon (David) An and Jeffrey S.
                 Foster",
  title =        "Profile-guided static typing for dynamic scripting
                 languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "283--300",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1640089.1640110",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Many popular scripting languages such as Ruby, Python,
                 and Perl include highly dynamic language constructs,
                 such as an eval method that evaluates a string as
                 program text. While these constructs allow terse and
                 expressive code, they have traditionally obstructed
                 static analysis. In this paper we present PRuby, an
                 extension to Diamondback Ruby (DRuby), a static type
                 inference system for Ruby. PRuby augments DRuby with a
                 novel dynamic analysis and transformation that allows
                 us to precisely type uses of highly dynamic constructs.
                 PRuby's analysis proceeds in three steps. First, we use
                 run-time instrumentation to gather per-application
                 profiles of dynamic feature usage. Next, we replace
                 dynamic features with statically analyzable
                 alternatives based on the profile. We also add
                 instrumentation to safely handle cases when subsequent
                 runs do not match the profile. Finally, we run DRuby's
                 static type inference on the transformed code to
                 enforce type safety.\par

                 We used PRuby to gather profiles for a benchmark suite
                 of sample Ruby programs. We found that dynamic features
                 are pervasive throughout the benchmarks and the
                 libraries they include, but that most uses of these
                 features are highly constrained and hence can be
                 effectively profiled. Using the profiles to guide type
                 inference, we found that DRuby can generally statically
                 type our benchmarks modulo some refactoring, and we
                 discovered several previously unknown type errors.
                 These results suggest that profiling and transformation
                 is a lightweight but highly effective approach to bring
                 static typing to highly dynamic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "profile guided analysis; RIL; ruby; scripting
                 languages",
}

@Book{Gaddis:2009:SP,
  author =       "Tony Gaddis",
  title =        "Starting out with {Python}",
  publisher =    "Pearson Addison Wesley",
  address =      "Boston, MA, USA",
  pages =        "xv + 482",
  year =         "2009",
  ISBN =         "0-321-53711-4",
  ISBN-13 =      "978-0-321-53711-9",
  LCCN =         "QA76.73.P98 G34 2009",
  bibdate =      "Thu Apr 16 08:59:10 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/toc/fy0804/2008001684.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
  tableofcontents = "Introduction to computers and programming \\
                 Input, processing, and output \\
                 Simple functions \\
                 Decision structures and Boolean logic \\
                 Repetition structures \\
                 Value-returning functions and modules \\
                 Files and exceptions \\
                 Working with sequences: strings and lists \\
                 Classes and object-oriented programming \\
                 Inheritance \\
                 Recursion \\
                 GUI programming \\
                 Appendix A: Installing Python \\
                 Appendix B: Introduction to IDLE \\
                 Appendix C: The ASCII character set",
}

@Book{Gardner:2009:DGP,
  author =       "James Gardner",
  title =        "The definitive guide to {Pylons}: [{Pylons} is a
                 lightweight web framework emphasizing flexibility and
                 rapid development using standard tools from the
                 {Python} community; includes {SQLAlchemy},
                 {JavaScript}, and {WSG}!]",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxv + 536",
  year =         "2009",
  ISBN =         "1-59059-934-9 (paperback)",
  ISBN-13 =      "978-1-59059-934-1 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 12:30:45 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "US\$46,99",
  series =       "The expert's voice in web development; Books for
                 professionals by professionals",
  acknowledgement = ack-nhfb,
}

@Article{Goldwasser:2009:GPF,
  author =       "Michael H. Goldwasser and David Letscher",
  title =        "A graphics package for the first day and beyond",
  journal =      j-SIGCSE,
  volume =       "41",
  number =       "1",
  pages =        "206--210",
  month =        mar,
  year =         "2009",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1539024.1508945",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of SIGCSE '09.",
  abstract =     "We describe cs1graphics, a new Python drawing package
                 designed with pedagogy in mind. The package is simple
                 enough that students can sit down and make use of it
                 from the first day of an introductory class. Yet it
                 provides seamless support for intermediate and advanced
                 lessons as students progress. In this paper, we discuss
                 its versatility in the context of an introductory
                 course. The package is available at
                 www.cs1graphics.org.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Guyer:2009:FPD,
  author =       "Jonathan E. Guyer and Daniel Wheeler and James A.
                 Warren",
  title =        "{FiPy}: Partial Differential Equations with {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "11",
  number =       "3",
  pages =        "6--15",
  month =        may # "\slash " # jun,
  year =         "2009",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2009.52",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu May 13 11:08:14 2010",
  bibsource =    "http://www.computer.org/portal/web/csdl/magazines/cise;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Hambrusch:2009:MAT,
  author =       "Susanne Hambrusch and Christoph Hoffmann and John T.
                 Korb and Mark Haugan and Antony L. Hosking",
  title =        "A multidisciplinary approach towards computational
                 thinking for science majors",
  journal =      j-SIGCSE,
  volume =       "41",
  number =       "1",
  pages =        "183--187",
  month =        mar,
  year =         "2009",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1539024.1508931",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of SIGCSE '09.",
  abstract =     "This paper describes the development and initial
                 evaluation of a new course ``Introduction to
                 Computational Thinking'' taken by science majors to
                 fulfill a college computing requirement. The course was
                 developed by computer science faculty in collaboration
                 with science faculty and it focuses on the role of
                 computing and computational principles in scientific
                 inquiry. It uses Python and Python libraries to teach
                 computational thinking via basic programming concepts,
                 data management concepts, simulation, and
                 visualization. Problems with a computational aspect are
                 drawn from different scientific disciplines and are
                 complemented with lectures from faculty in those areas.
                 Our initial evaluation indicates that the
                 problem-driven approach focused on scientific discovery
                 and computational principles increases the student's
                 interest in computing.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Kinser:2009:PB,
  author =       "Jason M. Kinser",
  title =        "{Python} for bioinformatics",
  publisher =    "Jones and Bartlett Publishers",
  address =      "Sudbury, MA, USA",
  pages =        "xvii + 417",
  year =         "2009",
  ISBN =         "0-7637-5186-3",
  ISBN-13 =      "978-0-7637-5186-9",
  LCCN =         "QH324.2.K55; QH324.2.K55 2009",
  bibdate =      "Thu Apr 16 12:32:38 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.mit.edu:9909/mit01",
  series =       "Jones and Bartlett series in biomedical informatics",
  acknowledgement = ack-nhfb,
  remark =       "Ch. 1. Introduction \\
                 Ch. 2. NumPy and SciPy \\
                 Ch. 3. Image Manipulation \\
                 Ch. 4. The Akando and Dancer Modules \\
                 Ch. 5. Statistics \\
                 Ch. 6. Parsing DNA Data Files \\
                 Ch. 7. Sequence Alignment \\
                 Ch. 8. Dynamic Programming \\
                 Ch. 9. Tandem Repeats \\
                 Ch. 10. Hidden Markov Models \\
                 Ch. 11. Genetic Algorithms \\
                 Ch. 12. Multiple Sequence Alignment \\
                 Ch. 13. Gapped Alignments \\
                 Ch. 14. Trees \\
                 Ch. 15. Text Mining \\
                 Ch. 16. Measuring Complexity \\
                 Ch. 17. Clustering \\
                 Ch. 18. Self-Organizing Maps \\
                 Ch. 19. Principal Component Analysis \\
                 Ch. 20. Species Identification \\
                 Ch. 21. Fourier Transforms \\
                 Ch. 22. Correlations \\
                 Ch. 23. Numerical Sequence Alignment \\
                 Ch. 24. Gene Expression Array Files \\
                 Ch. 25. Spot Finding and Measurement \\
                 Ch. 26. Spreadsheet Arrays and Data Displays \\
                 Ch. 27. Applications with Expression Arrays",
  subject =      "Bioinformatics",
}

@Book{Langtangen:2009:PSP,
  author =       "Hans Petter Langtangen",
  title =        "A primer on scientific programming with {Python}",
  volume =       "6",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xxvii + 693",
  year =         "2009",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-02475-7",
  ISBN =         "3-642-02475-0, 3-642-02474-2",
  ISBN-13 =      "978-3-642-02475-7, 978-3-642-02474-0",
  ISSN =         "1611-0994",
  LCCN =         "QA76.73.P98 L286 2009",
  bibdate =      "Mon Jul 12 16:17:14 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.mit.edu:9909/mit01",
  series =       "Texts in computational science and engineering",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); mathematics;
                 computer science; software engineering; physics",
}

@Article{LeVeque:2009:PTR,
  author =       "Randall J. LeVeque",
  title =        "{Python} Tools for Reproducible Research on Hyperbolic
                 Problems",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "11",
  number =       "1",
  pages =        "19--27",
  month =        jan # "\slash " # feb,
  year =         "2009",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2009.13",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu May 13 11:08:14 2010",
  bibsource =    "http://www.computer.org/portal/web/csdl/magazines/cise;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Lewis:2009:HPP,
  author =       "Andrew Lewis",
  title =        "High performance {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "????",
  year =         "2009",
  ISBN =         "0-596-15996-X",
  ISBN-13 =      "978-0-596-15996-2",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 13:02:33 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Article{Lister:2009:FER,
  author =       "Raymond Lister and Colin Fidge and Donna Teague",
  title =        "Further evidence of a relationship between explaining,
                 tracing and writing skills in introductory
                 programming",
  journal =      j-SIGCSE,
  volume =       "41",
  number =       "3",
  pages =        "161--165",
  month =        sep,
  year =         "2009",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1595496.1562930",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '09.",
  abstract =     "This paper reports on a replication of earlier studies
                 into a possible hierarchy of programming skills. In
                 this study, the students from whom data was collected
                 were at a university that had not provided data for
                 earlier studies. Also, the students were taught the
                 programming language ``Python'', which had not been
                 used in earlier studies. Thus this study serves as a
                 test of whether the findings in the earlier studies
                 were specific to certain institutions, student cohorts,
                 and programming languages. Also, we used a
                 non-parametric approach to the analysis, rather than
                 the linear approach of earlier studies. Our results are
                 consistent with the earlier studies. We found that
                 students who cannot trace code usually cannot explain
                 code, and also that students who tend to perform
                 reasonably well at code writing tasks have also usually
                 acquired the ability to both trace code and explain
                 code.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Lutz:2009:LPa,
  author =       "Mark Lutz",
  title =        "Learning {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Fourth",
  pages =        "xlix + 1160",
  year =         "2009",
  ISBN =         "0-596-15806-8 (paperback)",
  ISBN-13 =      "978-0-596-15806-4 (paperback)",
  LCCN =         "QA76.73.P98 L877 2009",
  bibdate =      "Sat Nov 13 10:06:19 MST 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  acknowledgement = ack-nhfb,
  remark =       "Covers Python 2.6 and 3.x.",
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
}

@Book{Lutz:2009:LPb,
  author =       "Mark Lutz",
  title =        "Learning {Python}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  edition =      "Fourth",
  pages =        "????",
  year =         "2009",
  ISBN =         "0-596-80539-X",
  ISBN-13 =      "978-0-596-80539-5",
  LCCN =         "QA76.73.P98 L877 2009",
  bibdate =      "Sat Nov 13 10:06:19 MST 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90;
                 prodorbis.library.yale.edu:7090/voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
}

@Article{Martins:2009:POO,
  author =       "Joaquim R. R. A. Martins and Christopher Marriage and
                 Nathan Tedford",
  title =        "{pyMDO}: An Object-Oriented Framework for
                 Multidisciplinary Design Optimization",
  journal =      j-TOMS,
  volume =       "36",
  number =       "4",
  pages =        "20:1--20:25",
  month =        aug,
  year =         "2009",
  CODEN =        "ACMSCU",
  DOI =          "http://doi.acm.org/10.1145/1555386.1555389",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Mon Aug 31 15:04:00 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "We present pyMDO, an object-oriented framework that
                 facilitates the usage and development of algorithms for
                 multidisciplinary optimization (MDO). The resulting
                 implementation of the MDO methods is efficient and
                 portable. The main advantage of the proposed framework
                 is that it is flexible, with a strong emphasis on
                 object-oriented classes and operator overloading, and
                 it is therefore useful for the rapid development and
                 evaluation of new MDO methods. The top layer interface
                 is programmed in Python and it allows for the layers
                 below the interface to be programmed in C, C++,
                 Fortran, and other languages. We describe an
                 implementation of pyMDO and demonstrate that we can
                 take advantage of object-oriented programming to obtain
                 intuitive, easy-to-read, and easy-to-develop codes that
                 are at the same time efficient. This allows developers
                 to focus on the new algorithms they are developing and
                 testing, rather than on implementation details.
                 Examples demonstrate the user interface and the
                 corresponding results show that the various MDO methods
                 yield the correct solutions.",
  acknowledgement = ack-nhfb,
  articleno =    "20",
  fjournal =     "ACM Transactions on Mathematical Software",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
}

@Article{Mentis:2009:RAD,
  author =       "Alexander S. Mentis",
  title =        "A robotics {API} dialect for type-safe robots:
                 translating {Myro} to {Ada}",
  journal =      j-SIGADA-LETTERS,
  volume =       "29",
  number =       "3",
  pages =        "91--102",
  month =        dec,
  year =         "2009",
  CODEN =        "AALEE5",
  DOI =          "http://doi.acm.org/10.1145/1653616.1647442",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Mon Jun 21 14:04:37 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "In this paper, we present an Ada robotics API designed
                 to be used in teaching undergraduate-level computer
                 science. Our API is inspired by Myro, a Python-based
                 API, but we improve upon Myro's usability, readability,
                 modularity, and documentation by using features of the
                 Ada programming language and the GNAT Programming
                 Studio's documentation generation tool. The
                 encapsulation, abstraction, and data hiding provided by
                 Ada's packages make it easy for beginning programmers
                 to use the API for advanced tasks, while Ada's syntax
                 and readability allow educators to use the underlying
                 code later in a course or curriculum to illustrate more
                 advanced concepts to the same students as their
                 knowledge and experience grow.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGAda Ada Letters",
  keywords =     "Myro; scribbler; undergraduate computer science
                 education",
}

@Book{Miller:2009:PPC,
  author =       "Bradley N. Miller and David L. Ranum",
  title =        "{Python} programming in context",
  publisher =    "Jones and Bartlett Publishers",
  address =      "Sudbury, MA, USA",
  pages =        "xxv + 492",
  year =         "2009",
  ISBN =         "0-7637-4602-9 (paperback)",
  ISBN-13 =      "978-0-7637-4602-5 (paperback)",
  LCCN =         "QA76.73.P98 M544 2009",
  bibdate =      "Thu Apr 16 10:46:48 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
}

@Article{Misra:2009:MCT,
  author =       "Ananya Misra and Douglas Blank and Deepak Kumar",
  title =        "A music context for teaching introductory computing",
  journal =      j-SIGCSE,
  volume =       "41",
  number =       "3",
  pages =        "248--252",
  month =        sep,
  year =         "2009",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/1595496.1562955",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  note =         "Proceedings of ITiCSE '09.",
  abstract =     "We describe myro.chuck, a Python module for
                 controlling music synthesis, and its applications to
                 teaching introductory computer science. The module was
                 built within the Myro framework using the ChucK
                 programming language, and was used in an introductory
                 computer science course combining robots, graphics and
                 music. The results supported the value of music in
                 engaging students and broadening their view of computer
                 science.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Ochem:2009:MLP,
  author =       "Quentin Ochem",
  title =        "Multi-language programming with {Ada}",
  journal =      j-SIGADA-LETTERS,
  volume =       "29",
  number =       "3",
  pages =        "19--20",
  month =        dec,
  year =         "2009",
  CODEN =        "AALEE5",
  DOI =          "http://doi.acm.org/10.1145/1647420.1647431",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Mon Jun 21 14:04:37 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Building complex applications often requires putting
                 together pieces of software or requirements that have
                 not been made to work together in the first place.
                 Thinking of a project with a high integrity kernel
                 written in Ada, using a set of low level libraries and
                 drivers written in C or C++, with a graphical interface
                 done in Java and unit tests driven by python is not
                 thinking of science fiction anymore. It's actual
                 concrete and day-to-day work. Unfortunately, having all
                 of these technologies talking to each other is not
                 straightforward, and often requires a deep knowledge of
                 both sides of the technology and extensive manual
                 work.\par

                 In this tutorial, we'll first study how to interface
                 directly Ada with native languages, such as C or C++.
                 We'll then have a deep look at communications with
                 languages running on virtual machines, such as Java,
                 Python and the .NET framework. Finally, we'll see how
                 Ada can be interfaced with an arbitrary language using
                 a middleware solution, such as SOAP or CORBA We?ll see
                 how the communication can be manually done using low
                 level features and APIs, and how a substantial part of
                 this process can be automated using high level binding
                 generators.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGAda Ada Letters",
  keywords =     "Ada; APIs; communication; interfacing; languages;
                 middleware; programming; software; systems",
}

@Book{Pilgrim:2009:DP,
  author =       "Mark Pilgrim",
  title =        "Dive into {Python 3}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xlix + 360",
  year =         "2009",
  ISBN =         "1-4302-2415-0",
  ISBN-13 =      "978-1-4302-2415-0",
  LCCN =         "QA76.73.P98 P57 2009",
  bibdate =      "Tue Mar 10 17:27:24 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "The expert's voice in open source",
  URL =          "http://www.loc.gov/catdir/enhancements/fy1502/2011377607-b.html;
                 http://www.loc.gov/catdir/enhancements/fy1502/2011377607-d.html;
                 http://www.loc.gov/catdir/enhancements/fy1502/2011377607-t.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
  tableofcontents = "Your first Python program \\
                 Native datatypes \\
                 Comprehensions \\
                 Strings \\
                 Regular expressions \\
                 Closures and generators \\
                 Classes and iterators \\
                 Advanced iterators \\
                 Unit Testing \\
                 Refactoring \\
                 Files \\
                 XML \\
                 Serializing Python objects \\
                 HTTP web services \\
                 Case study : porting chardet to Python 3 \\
                 Packaging Python libraries",
}

@Article{Pradal:2009:PPB,
  author =       "C. Pradal and F. Boudon and C. Nouguier and J. Chopard
                 and C. Godin",
  title =        "{PlantGL}: a {Python}-based geometric library for
                 {$3$D} plant modelling at different scales",
  journal =      j-GRAPH-MODELS,
  volume =       "71",
  number =       "1",
  pages =        "1--21",
  month =        jan,
  year =         "2009",
  CODEN =        "GRMOFM",
  DOI =          "http://dx.doi.org/10.1016/j.gmod.2008.10.001",
  ISSN =         "1524-0703 (print), 1524-0711 (electronic)",
  ISSN-L =       "1524-0703",
  bibdate =      "Sat Dec 10 08:38:11 MST 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/15240703",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1524070308000143",
  acknowledgement = ack-nhfb,
  fjournal =     "Graphical Models",
  journal-URL =  "http://www.sciencedirect.com/science/journal/15240703",
}

@Article{Ravitch:2009:AGL,
  author =       "Tristan Ravitch and Steve Jackson and Eric Aderhold
                 and Ben Liblit",
  title =        "Automatic generation of library bindings using static
                 analysis",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "352--362",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1543135.1542516",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "High-level languages are growing in popularity.
                 However, decades of C software development have
                 produced large libraries of fast, time-tested,
                 meritorious code that are impractical to recreate from
                 scratch. Cross-language bindings can expose low-level C
                 code to high-level languages. Unfortunately, writing
                 bindings by hand is tedious and error-prone, while
                 mainstream binding generators require extensive manual
                 annotation or fail to offer the language features that
                 users of modern languages have come to expect.\par

                 We present an improved binding-generation strategy
                 based on static analysis of unannotated library source
                 code. We characterize three high-level idioms that are
                 not uniquely expressible in C's low-level type system:
                 array parameters, resource managers, and multiple
                 return values. We describe a suite of interprocedural
                 analyses that recover this high-level information, and
                 we show how the results can be used in a binding
                 generator for the Python programming language. In
                 experiments with four large C libraries, we find that
                 our approach avoids the mistakes characteristic of
                 hand-written bindings while offering a level of Python
                 integration unmatched by prior automated approaches.
                 Among the thousands of functions in the public
                 interfaces of these libraries, roughly 40\% exhibit the
                 behaviors detected by our static analyses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "bindings; dataflow analysis; FFI; foreign function
                 interfaces; multi-language code reuse; static library
                 analysis",
}

@Book{Reed:2009:DSA,
  author =       "David M. Reed and John M. Zelle",
  title =        "Data structures and algorithms using {Python} and
                 {C++}",
  publisher =    "Franklin, Beedle and Associates, Inc.",
  address =      "Wilsonville, OR, USA",
  pages =        "????",
  year =         "2009",
  ISBN =         "1-59028-233-7",
  ISBN-13 =      "978-1-59028-233-5",
  LCCN =         "QA76.73.P98 R44 2009",
  bibdate =      "Thu Apr 16 12:10:06 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  remark =       "Builds on knowledge from a first course in computer
                 programming using Python. Makes a transition from
                 programming in Python to a data structures course and
                 programming in C++",
  subject =      "Python (Computer program language); C++ (Computer
                 program language); Data structures (Computer science);
                 Computer algorithms",
}

@Article{Riehl:2009:LEO,
  author =       "Jonathan Riehl",
  title =        "Language embedding and optimization in {Mython}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "12",
  pages =        "39--48",
  month =        dec,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1640134.1640141",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:04:07 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Mython is an extensible variant of the Python
                 programming language. Mython achieves extensibility by
                 adding a quotation mechanism that accepts an additional
                 parameter as well as the code being quoted. The
                 additional quotation parameter takes the form of a
                 Mython expression. Unlike other user code, Mython
                 evaluates the quotation parameter at compile-time. The
                 result of the compile-time expression is a function
                 that is used to both parse the quoted code, and extend
                 the compile-time environment. By explicitly passing the
                 compilation environment to compile-time quotation
                 functions, Mython's parameterized quotation allows
                 users to inject code into the language compiler.
                 Injected code can extend the language by modifying the
                 compilation phases, which are visible to the
                 compilation environment. The Mython language is
                 realized by the MyFront compiler, a tool for
                 translating Mython into Python byte-code modules. This
                 paper introduces the Mython language, describes the
                 implementation and usage of the MyFront tool, and shows
                 how MyFront can be used to implement domain-specific
                 optimizations using a little rewrite language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "compile-time metaprogramming; extensible languages;
                 open compilers",
}

@Book{Scott:2009:PLP,
  author =       "Michael L. Scott",
  title =        "Programming Language Pragmatics",
  publisher =    pub-MORGAN-KAUFMANN,
  address =      pub-MORGAN-KAUFMANN:adr,
  edition =      "Third",
  pages =        "xxx + 910",
  year =         "2009",
  ISBN =         "0-12-374514-4",
  ISBN-13 =      "978-0-12-374514-9",
  LCCN =         "????",
  bibdate =      "Thu May 21 16:07:05 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  note =         "Many sections of the book are relegated to the
                 accompanying CD-ROM.",
  acknowledgement = ack-nhfb,
  keywords =     "awk; perl; python; ruby; sed; sh; tcl",
}

@Book{Seitz:2009:GPP,
  author =       "Justin Seitz",
  title =        "{Gray Hat Python}: {Python} programming for hackers
                 and reverse engineers",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "????",
  year =         "2009",
  ISBN =         "1-59327-192-1, 1-59327-224-3 (e-book)",
  ISBN-13 =      "978-1-59327-192-3, 978-1-59327-224-1 (e-book)",
  LCCN =         "QA76.9.A25 S457 2009",
  bibdate =      "Thu Apr 16 12:07:47 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://proquest.safaribooksonline.com/9781593271923",
  abstract =     "Python is the high-level language of choice for
                 hacking, vulnerability discovery, and security
                 research. 'Gray Hat Python' explains the intricacies of
                 using Python to assist in a range of security analysis
                 tasks.",
  acknowledgement = ack-nhfb,
  subject =      "Computer security; Python (Computer program
                 language)",
  tableofcontents = "Setting up your development environment \\
                 Debuggers and debugger design \\
                 Building a Windows debugger \\
                 PyDbg : a pure Python Windows debugger \\
                 Immunity debugger : the best of both worlds \\
                 Hooking \\
                 DLL and code injection \\
                 Fuzzing \\
                 Sulley \\
                 Fuzzing Windows drivers \\
                 DAPython -Scripting IDA Pro \\
                 PyEmu --- The scriptable emulator",
}

@Article{Shacham:2009:CAS,
  author =       "Ohad Shacham and Martin Vechev and Eran Yahav",
  title =        "{Chameleon}: adaptive selection of collections",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "408--418",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1542476.1542522",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Languages such as Java and C\#, as well as scripting
                 languages like Python, and Ruby, make extensive use of
                 Collection classes. A collection implementation
                 represents a fixed choice in the dimensions of
                 operation time, space utilization, and synchronization.
                 Using the collection in a manner not consistent with
                 this fixed choice can cause significant performance
                 degradation. In this paper, we present CHAMELEON, a
                 low-overhead automatic tool that assists the programmer
                 in choosing the appropriate collection implementation
                 for her application. During program execution,
                 CHAMELEON computes elaborate trace and heap-based
                 metrics on collection behavior. These metrics are
                 consumed on-the-fly by a rules engine which outputs a
                 list of suggested collection adaptation strategies. The
                 tool can apply these corrective strategies
                 automatically or present them to the programmer. We
                 have implemented CHAMELEON on top of a IBM's J9
                 production JVM, and evaluated it over a small set of
                 benchmarks. We show that for some applications, using
                 CHAMELEON leads to a significant improvement of the
                 memory footprint of the application.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "bloat; collections; Java; semantic profiler",
}

@Book{Summerfield:2009:PPC,
  author =       "Mark Summerfield",
  title =        "Programming in {Python 3}: a complete introduction to
                 the {Python} language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xiv + 525",
  year =         "2009",
  ISBN =         "0-13-712929-7 (paperback)",
  ISBN-13 =      "978-0-13-712929-4 (paperback)",
  LCCN =         "QA76.73.P98 S86 2009",
  bibdate =      "Thu Apr 16 08:04:00 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Developer's library",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
  tableofcontents = "Introduction / 1 \\
                 1: Rapid Introduction to Procedural Programming / 7 \\
                 Creating and Running Python Programs / 7 \\
                 Python's ``Beautiful Heart'' / 12 \\
                 Example / 36 \\
                 Summary / 42 \\
                 Exercises / 44 \\
                 2:Data Types / 47 \\
                 Identifiers and Keywords / 47 \\
                 Integral Types / 50 \\
                 Floating-Point Types / 54 \\
                 Strings / 61 \\
                 Examples / 88 \\
                 Summary / 95 \\
                 Exercises / 97 \\
                 3: Collection Data Types / 99 \\
                 Sequence Types / 9 \\
                 Set Types / 112 \\
                 Mapping Types / 117 \\
                 Iterating and Copying Collections / 127 \\
                 Examples / 138 \\
                 Summary / 146 \\
                 Exercises / 147 \\
                 4: Control Structures and Functions / 149 \\
                 Control Structures / 149 \\
                 Exception Handling / 153 \\
                 Custom Functions / 161 \\
                 Example: make\_html\_skeleton.py / 175 \\
                 Summary / 181 \\
                 Exercise / 182 \\
                 5: Modules / 185 \\
                 Modules and Packages / 185 \\
                 Overview of Python's Standard Library / 20 \\
                 Summary / 219 \\
                 Exercise / 220 \\
                 6: Object-Oriented Programming / 223 \\
                 The Object-Oriented Approach / 224 \\
                 Custom Classes / 228 \\
                 Custom Collection Classes / 25 \\
                 Summary / 272 \\
                 Exercises / 274 \\
                 7: File Handling / 277 \\
                 Writing and Reading Binary Data / 282 \\
                 Writing and Parsing Text Files / 294 \\
                 Writing and Parsing XML Files / 302 \\
                 Random Access Binary Files / 313 \\
                 Summary / 326 \\
                 Exercises / 327 \\
                 8: Advanced Programming Techniques / 329 \\
                 Further Procedural Programming / 330 \\
                 Further Object-Oriented Programming / 353 \\
                 Functional-Style Programming / 384 \\
                 Example: Valid.py / 388 \\
                 Summary / 390 \\
                 Exercises / 392 \\
                 9: Processes and Threading / 395 \\
                 Delegating Work to Processes / 396 \\
                 Delegating Work to Threads / 400 \\
                 Summary / 409 \\
                 Exercises / 410 \\
                 10: Networking / 413 \\
                 Creating a TCP Client / 414 \\
                 Creating a TCP Server / 420 \\
                 Summary / 427 \\
                 Exercises / 427 \\
                 11: Database Programming / 431 \\
                 DBM Databases / 432 \\
                 SQL Databases / 436 \\
                 Summary / 443 \\
                 Exercise / 444 \\
                 12: Regular Expressions / 445 \\
                 Python's Regular Expression Language / 446 \\
                 The Regular Expression Module / 455 \\
                 Summary / 464 \\
                 Exercises / 465 \\
                 13: Introduction to GUI Programming \\
                 Dialog-Style Programs \\
                 Main-Window-Style Programs \\
                 Summary \\
                 Exercises \\
                 Epilogue \\
                 About the Author \\
                 Production \\
                 Index",
}

@Book{Sweigart:2009:PPL,
  author =       "Albert Sweigart",
  title =        "Playing with {Python}: learn to program by making
                 games",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "????",
  year =         "2009",
  ISBN =         "1-59327-198-0 (paperback)",
  ISBN-13 =      "978-1-59327-198-5 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 13:05:01 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.tcd.ie:210/advance",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer games;
                 Programming",
}

@Book{Swinnen:2009:APA,
  author =       "G{\'e}rard Swinnen",
  title =        "Apprendre {\'a} programmer avec Python: objet,
                 multithreading, {\'e}v{\'e}nements, bases de
                 donn{\'e}es, programmation web, programmation
                 r{\'e}seau, Unicode",
  publisher =    pub-EYROLLES,
  address =      pub-EYROLLES:adr,
  pages =        "xviii + 341",
  year =         "2009",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 12:00:29 MDT 2009",
  bibsource =    "carmin.sudoc.abes.fr:210/ABES-Z39-PUBLIC;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  language =     "French",
}

@Book{Theis:2009:EPC,
  author =       "Thomas Theis",
  title =        "{Einstieg in Python 3: [auf CD: Python 3 und alle
                 Code-Beispiele des Buchs ; f{\"u}r Programmanf{\"a}nger
                 und Umsteiger ; mit vielen Beispielen und
                 {\`e}Ubungsaufgaben ; inkl. objektorientierter
                 Programmierung, Datenbanken, Internet u.v.m.]}",
  publisher =    "Galileo Press",
  address =      "Bonn, Germany",
  edition =      "Second",
  pages =        "399",
  year =         "2009",
  ISBN =         "3-8362-1406-7",
  ISBN-13 =      "978-3-8362-1406-3",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 12:02:26 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 24.90",
  series =       "Galileo computing",
  acknowledgement = ack-nhfb,
  language =     "German",
  remark =       "Mit Online-Aktualisierung unter
                 www.galileocomputing.de.",
}

@Article{Tohline:2009:CPM,
  author =       "Joel E. Tohline and Jinghya Ge and Wesley Even and
                 Erik Anderson",
  title =        "A Customized {Python} Module for {CFD} Flow Analysis
                 within {VisTrails}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "11",
  number =       "3",
  pages =        "68--73",
  month =        may # "\slash " # jun,
  year =         "2009",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2009.44",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu May 13 11:08:14 2010",
  bibsource =    "http://www.computer.org/portal/web/csdl/magazines/cise;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Tosi:2009:MPD,
  author =       "Sandro Tosi",
  title =        "{Matplotlib} for {Python} developers: build remarkable
                 publication quality plots the easy way",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "iv + 293",
  year =         "2009",
  ISBN =         "1-84719-790-6",
  ISBN-13 =      "978-1-84719-790-0",
  LCCN =         "QA76.73.P48 T67 2009",
  bibdate =      "Mon Jul 12 16:23:13 MDT 2010",
  bibsource =    "aubrey.tamu.edu:7090/voyager;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  series =       "From technologies to solutions",
  acknowledgement = ack-nhfb,
}

@Book{Vaingast:2009:BPV,
  author =       "Shai Vaingast",
  title =        "Beginning {Python} visualization: crafting visual
                 transformation scripts",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xx + 363",
  year =         "2009",
  ISBN =         "1-4302-1843-6 (paperback)",
  ISBN-13 =      "978-1-4302-1843-2 (paperback)",
  LCCN =         "QA76.73.P98 V35 2009",
  bibdate =      "Mon Jul 12 15:08:11 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
}

@Book{Weigend:2009:OPP,
  author =       "Michael Weigend",
  title =        "{Objektorientierte Programmierung mit Python 3.0}",
  publisher =    "REDLINE",
  address =      "Heidelberg, Neckar, Germany",
  edition =      "Fourth",
  pages =        "752",
  year =         "2009",
  ISBN =         "3-8266-1750-9",
  ISBN-13 =      "978-3-8266-1750-8",
  LCCN =         "????",
  bibdate =      "Thu Apr 16 11:58:18 MDT 2009",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.gbv.de:20011/gvk",
  price =        "EUR 39.95",
  series =       "mitp bei Redline",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Article{Alnaes:2010:ESC,
  author =       "Martin Sandve Aln{\ae}s and Kent-Andr{\'e} Mardal",
  title =        "On the efficiency of symbolic computations combined
                 with code generation for finite element methods",
  journal =      j-TOMS,
  volume =       "37",
  number =       "1",
  pages =        "6:1--6:26",
  month =        jan,
  year =         "2010",
  CODEN =        "ACMSCU",
  DOI =          "http://doi.acm.org/10.1145/1644001.1644007",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Mon Mar 15 10:45:33 MDT 2010",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Efficient and easy implementation of variational forms
                 for finite element discretization can be accomplished
                 with metaprogramming. Using a high-level language like
                 Python and symbolic mathematics makes an abstract
                 problem definition possible, but the use of a low-level
                 compiled language is vital for run-time efficiency. By
                 generating low-level C++ code based on symbolic
                 expressions for the discrete weak form, it is possible
                 to accomplish a high degree of abstraction in the
                 problem definition while surpassing the run-time
                 efficiency of traditional hand written C++ codes. We
                 provide several examples where we demonstrate orders of
                 magnitude in speedup.",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Mathematical Software",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
  keywords =     "automation; code generation; compiler; finite element;
                 metaprogramming; Variational forms",
}

@Article{Anderson:2010:UPS,
  author =       "Erik W. Anderson and Gilbert A. Preston and Claudio T.
                 Silva",
  title =        "Using {Python} for Signal Processing and
                 Visualization",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "12",
  number =       "4",
  pages =        "90--95",
  month =        jul # "\slash " # aug,
  year =         "2010",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2010.91",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Tue Jul 27 16:37:11 2010",
  bibsource =    "http://www.computer.org/portal/web/csdl/magazines/cise;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Bassi:2010:PB,
  author =       "Sebastian Bassi",
  title =        "{Python} for bioinformatics",
  publisher =    pub-CRC,
  address =      pub-CRC:adr,
  pages =        "xxv + 584",
  year =         "2010",
  ISBN =         "1-58488-929-2 (paperback)",
  ISBN-13 =      "978-1-58488-929-8 (paperback)",
  LCCN =         "QH324.2 .B387 2010",
  bibdate =      "Thu Nov 15 17:15:53 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Chapman and Hall/CRC mathematical and computational
                 biology series",
  acknowledgement = ack-nhfb,
  subject =      "Bioinformatics; Python (Computer program language)",
}

@Article{Blundell:2010:RTR,
  author =       "Colin Blundell and Arun Raghavan and Milo M. K.
                 Martin",
  title =        "{RETCON}: transactional repair without replay",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "38",
  number =       "3",
  pages =        "258--269",
  month =        jun,
  year =         "2010",
  CODEN =        "CANED2",
  DOI =          "http://doi.acm.org/10.1145/1815961.1815995",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Tue Jul 6 14:11:46 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Over the past decade there has been a surge of
                 academic and industrial interest in optimistic
                 concurrency, {\em i.e.\/} the speculative parallel
                 execution of code regions that have the semantics of
                 isolation. This work analyzes scalability bottlenecks
                 of workloads that use optimistic concurrency. We find
                 that one common bottleneck is updates to auxiliary
                 program data in otherwise non-conflicting operations,
                 {\em e.g.\/} reference count updates and hashtable
                 occupancy field increments.\par

                 To eliminate the performance impact of conflicts on
                 such auxiliary data, this work proposes RETCON, a
                 hardware mechanism that tracks the relationship between
                 input and output values symbolically and uses this
                 symbolic information to transparently repair the output
                 state of a transaction at commit. RETCON is inspired by
                 instruction replay-based mechanisms but exploits
                 simplifying properties of the nature of computations on
                 auxiliary data to perform repair {\em without\/}
                 replay. Our experiments show that RETCON provides
                 significant speedups for workloads that exhibit
                 conflicts on auxiliary data, including transforming a
                 transactionalized version of the Python interpreter
                 from a workload that exhibits no scaling to one that
                 exhibits near-linear scaling on 32 cores.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  keywords =     "parallel programming; transactional memory",
}

@Book{Dawson:2010:PPA,
  author =       "Mike Dawson",
  title =        "{Python} programming for the absolute beginner",
  publisher =    "Course Technology Cengage Learning",
  address =      "Boston, MA, USA",
  edition =      "Third",
  pages =        "xxiii + 455",
  year =         "2010",
  ISBN =         "1-4354-5500-2",
  ISBN-13 =      "978-1-4354-5500-9",
  LCCN =         "QA76.73.P98 D39 2010",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "For the absolute beginner",
  URL =          "http://catdir.loc.gov/catdir/enhancements/fy1105/2009933304-b.html;
                 http://catdir.loc.gov/catdir/enhancements/fy1105/2009933304-d.html;
                 http://catdir.loc.gov/catdir/enhancements/fy1105/2009933304-t.html;
                 http://www.courseptr.com/downloads",
  abstract =     "Teaches readers the basics of Python programming
                 through simple game creation and describes how the
                 skills learned can be used for more practical Python
                 programming applications and real-world scenarios.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "Getting started: the game over program \\
                 Types, variables, and simple I/O: the useless trivia
                 program \\
                 Branching, while loops, and program planning: the guess
                 my number game \\
                 For loops, strings, and tuples: the word jumble game
                 \\
                 Lists and dictionaries: the hangman gmae \\
                 Functions: the tic-tac-toe game \\
                 Files and exceptions: the trivia challenge game \\
                 Software objects: the critter caretaker program \\
                 Object-oriented programming: the blackjack game \\
                 GUI development: the mad lib program \\
                 Graphics: the pizza panic game \\
                 Sound, animation, and program development: the
                 astrocrash game",
}

@Article{Gorbovitski:2010:AAO,
  author =       "Michael Gorbovitski and Yanhong A. Liu and Scott D.
                 Stoller and Tom Rothamel and Tuncay K. Tekle",
  title =        "Alias analysis for optimization of dynamic languages",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "12",
  pages =        "27--42",
  month =        dec,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/1899661.1869635",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Dec 15 10:25:15 MST 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Dynamic languages such as Python allow programs to be
                 written more easily using high-level constructs such as
                 comprehensions for queries and using generic code.
                 Efficient execution of programs then requires powerful
                 optimizations - incrementalization of expensive queries
                 and specialization of generic code. Effective
                 incrementalization and specialization of dynamic
                 languages require precise and scalable alias analysis.
                 This paper describes the development and experimental
                 evaluation of a may-alias analysis for a full dynamic
                 object-oriented language, for program optimization by
                 incrementalization and specialization. The analysis is
                 flow-sensitive; we show that this is necessary for
                 effective optimization of dynamic languages. It uses
                 precise type analysis and a powerful form of context
                 sensitivity, called trace sensitivity, to further
                 improve analysis precision.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Book{Hetland:2010:PAM,
  author =       "Magnus Lie Hetland",
  title =        "{Python} Algorithms: mastering basic algorithms in the
                 {Python} Language",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xvi + 316",
  year =         "2010",
  DOI =          "http://dx.doi.org/10.1007/978-1-4302-3238-4",
  ISBN =         "1-4302-3237-4",
  ISBN-13 =      "978-1-4302-3237-7",
  LCCN =         "QA76.73.P98 H485 2010",
  bibdate =      "Fri Oct 23 15:26:47 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Expert's voice in open source",
  URL =          "http://www.loc.gov/catdir/enhancements/fy1502/2011287235-b.html;
                 http://www.loc.gov/catdir/enhancements/fy1502/2011287235-d.html;
                 http://www.loc.gov/catdir/toc/fy11pdf04/2011287235.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 algorithms",
  tableofcontents = "About the Author \\
                 About the Technical Reviewer \\
                 Acknowledgments \\
                 Preface \\
                 1: Introduction \\
                 What's All This, Then? \\
                 Why Are You Here? \\
                 Some Prerequisites \\
                 What's in This Book \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 2: The Basics \\
                 Some Core Ideas in Computing \\
                 Asymptotic Notation \\
                 It's Greek to Me! \\
                 Rules of the Road \\
                 Taking the Asymptotics for a Spin \\
                 Three Important Cases \\
                 Empirical Evaluation of Algorithms \\
                 Implementing Graphs and Trees \\
                 Adjacency Lists and the LikeAdjacency
                 MatricesImplementing Trees \\
                 A Multitude of Representations \\
                 Beware of Black Boxes \\
                 Hidden Squares \\
                 The Trouble with Floats \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 3: Counting 101 \\
                 The Skinny on Sums \\
                 More Greek \\
                 Working with Sums \\
                 A Tale of Two Tournaments \\
                 Shaking Hands \\
                 The Hare and the Tortoise \\
                 Subsets, Permutations, and Combinations \\
                 Recursion and Recurrences \\
                 Doing It by Hand \\
                 A Few Important Examples \\
                 Guessing and Checking \\
                 The Master Theorem: A Cookie-Cutter Solution \\
                 So What Was All That About? \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 4: Induction and Recursion \ldots{} and Reduction Oh,
                 That's Easy! \\
                 One, Two, Many \\
                 Mirror, Mirror \\
                 Designing with Induction (and Recursion) \\
                 Finding a Maximum Permutation \\
                 The Celebrity Problem \\
                 Topological Sorting \\
                 Stronger Assumptions \\
                 Invariants and Correctness \\
                 Relaxation and Gradual Improvement \\
                 Reduction + Contraposition = Hardness Proof \\
                 Problem Solving Advice \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 5: Traversal: The Skeleton Key of Algorithmics \\
                 A Walk in the Park \\
                 No Cycles Allowed \\
                 How to Stop Walking in Circles \\
                 Go Deep!Depth-First Timestamps and Topological Sorting
                 (Again)Infinite Mazes and Shortest (Unweighted) Paths
                 \\
                 Strongly Connected Components \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 6: Divide, Combine, and Conquer \\
                 Tree-Shaped Problems: All About the Balance \\
                 The Canonical D and C Algorithm \\
                 Searching by Halves \\
                 Traversing Search Trees \ldots{} with Pruning \\
                 Selection \\
                 Sorting by Halves \\
                 How Fast Can We Sort? \\
                 Three More Examples \\
                 Closest Pair \\
                 Convex Hull \\
                 Greatest Slice \\
                 Tree Balance \ldots{} and Balancing? \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 7: Greed Is Good? Prove It! Staying Safe, Step by Step
                 \\
                 The Knapsack Problem \\
                 Fractional Knapsack \\
                 Integer Knapsack \\
                 Huffman's Algorithm \\
                 The Algorithm \\
                 The First Greedy Choice \\
                 Going the Rest of the Way \\
                 Optimal Merging \\
                 Minimum spanning trees \\
                 The Shortest Edge \\
                 What About the Rest? \\
                 Kruskal's Algorithm \\
                 Prim's Algorithm \\
                 Greed Works. But When? \\
                 Keeping Up with the Best \\
                 No Worse Than Perfect \\
                 Staying Safe \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 8: Tangled Dependencies and Memoization \\
                 Don't Repeat Yourself \\
                 Shortest Paths in Directed Acyclic Graphs",
}

@Article{Jankowski:2010:BRBa,
  author =       "Richard Jankowski",
  title =        "Book Review: {{\booktitle{Data Structures and
                 Algorithms Using Python and C++}}, by David M. Reed and
                 John Zelle Franklin, Beedle and Associates 2009}",
  journal =      j-SIGACT,
  volume =       "41",
  number =       "1",
  pages =        "13--15",
  month =        mar,
  year =         "2010",
  CODEN =        "SIGNDM",
  DOI =          "http://dx.doi.org/10.1145/1753171.1753174",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Tue Mar 20 14:39:00 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigact.bib",
  note =         "See \cite{Reed:2009:DSA}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Book{Kiusalaas:2010:NME,
  author =       "Jaan Kiusalaas",
  title =        "Numerical methods in engineering with {Python}",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  edition =      "Second",
  pages =        "x + 422",
  year =         "2010",
  ISBN =         "0-521-19132-7 (hardcover)",
  ISBN-13 =      "978-0-521-19132-6 (hardcover)",
  LCCN =         "TA345 .K584 2010",
  bibdate =      "Mon Jan 31 15:16:50 MST 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (computer program language); MATLAB;
                 engineering mathematics; data processing; numerical
                 analysis",
}

@Article{Lee:2010:JSD,
  author =       "Byeongcheol Lee and Ben Wiedermann and Martin Hirzel
                 and Robert Grimm and Kathryn S. McKinley",
  title =        "{Jinn}: synthesizing dynamic bug detectors for foreign
                 language interfaces",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "6",
  pages =        "36--49",
  month =        jun,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1809028.1806601",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 8 17:53:18 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Programming language specifications mandate static and
                 dynamic analyses to preclude syntactic and semantic
                 errors. Although individual languages are usually
                 well-specified, composing languages is not, and this
                 poor specification is a source of many errors in {\em
                 multilingual\/} programs. For example, virtually all
                 Java programs compose Java and C using the Java Native
                 Interface (JNI). Since JNI is informally specified,
                 developers have difficulty using it correctly, and
                 current Java compilers and virtual machines (VMs)
                 inconsistently check only a subset of JNI
                 constraints.\par

                 This paper's most significant contribution is to show
                 how to synthesize dynamic analyses from state machines
                 to detect foreign function interface (FFI) violations.
                 We identify three classes of FFI constraints encoded by
                 eleven state machines that capture thousands of JNI and
                 Python/C FFI rules. We use a mapping function to
                 specify which state machines, transitions, and program
                 entities (threads, objects, references) to check at
                 each FFI call and return. From this function, we
                 synthesize a context-specific dynamic analysis to find
                 FFI bugs. We build bug detection tools for JNI and
                 Python/C using this approach. For JNI, we dynamically
                 and transparently interpose the analysis on Java and C
                 language transitions through the JVM tools interface.
                 The resulting tool, called Jinn, is compiler and
                 virtual machine {\em independent}. It detects and
                 diagnoses a wide variety of FFI bugs that other tools
                 miss. This approach greatly reduces the annotation
                 burden by exploiting common FFI constraints: whereas
                 the generated Jinn code is 22,000+ lines, we wrote only
                 1,400 lines of state machine and mapping code. Overall,
                 this paper lays the foundation for a more principled
                 approach to developing correct multilingual software
                 and a more concise and automated approach to FFI
                 specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "dynamic analysis; ffi bugs; foreign function
                 interfaces (FFI); java native interface (jni);
                 multilingual programs; python/C; specification;
                 specification generation",
}

@Article{Liu:2010:LFI,
  author =       "Yanhong A. Liu and Michael Gorbovitski and Scott D.
                 Stoller",
  title =        "A language and framework for invariant-driven
                 transformations",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "2",
  pages =        "55--64",
  month =        feb,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1837852.1621617",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:37:56 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This paper describes a language and framework that
                 allow coordinated transformations driven by invariants
                 to be specified declaratively, as invariant rules, and
                 applied automatically. The framework supports
                 incremental maintenance of invariants for program
                 design and optimization, as well as general
                 transformations for instrumentation, refactoring, and
                 other purposes. This paper also describes our
                 implementations for transforming Python and C programs
                 and experiments with successful applications of the
                 systems in generating efficient implementations from
                 clear and modular specifications, in instrumenting
                 programs for runtime verification, profiling, and
                 debugging, and in code refactoring.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "incremental maintenance; invariants; program
                 optimization; program transformation; runtime invariant
                 checking",
}

@Article{Logg:2010:DAF,
  author =       "Anders Logg and Garth N. Wells",
  title =        "{DOLFIN}: {Automated} finite element computing",
  journal =      j-TOMS,
  volume =       "37",
  number =       "2",
  pages =        "20:1--20:28",
  month =        apr,
  year =         "2010",
  CODEN =        "ACMSCU",
  DOI =          "http://doi.acm.org/10.1145/1731022.1731030",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Apr 21 11:39:57 MDT 2010",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "We describe here a library aimed at automating the
                 solution of partial differential equations using the
                 finite element method. By employing novel techniques
                 for automated code generation, the library combines a
                 high level of expressiveness with efficient
                 computation. Finite element variational forms may be
                 expressed in near mathematical notation, from which
                 low-level code is automatically generated, compiled,
                 and seamlessly integrated with efficient
                 implementations of computational meshes and
                 high-performance linear algebra. Easy-to-use
                 object-oriented interfaces to the library are provided
                 in the form of a C++ library and a Python module. This
                 article discusses the mathematical abstractions and
                 methods used in the design of the library and its
                 implementation. A number of examples are presented to
                 demonstrate the use of the library in application
                 code.",
  acknowledgement = ack-nhfb,
  articleno =    "20",
  fjournal =     "ACM Transactions on Mathematical Software",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
  keywords =     "code generation; DOLFIN; FEniCS project; form
                 compiler",
}

@Article{Patil:2010:PBS,
  author =       "Anand Patil and David Huard and Christopher J.
                 Fonnesbeck",
  title =        "{{\tt PyMC}}: {Bayesian} Stochastic Modelling in
                 {Python}",
  journal =      j-J-STAT-SOFT,
  volume =       "35",
  number =       "4",
  pages =        "??--??",
  month =        jul,
  year =         "2010",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  bibdate =      "Wed Aug 25 09:57:41 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v35/i04",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Statistical Software",
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2008-12-22; Accepted 2010-01-22",
}

@Book{Phillips:2010:POO,
  author =       "Dusty Phillips",
  title =        "{Python 3} object oriented programming",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "v + 388",
  year =         "2010",
  ISBN =         "1-84951-126-8, 1-84951-127-6 (e-book)",
  ISBN-13 =      "978-1-84951-126-1, 978-1-84951-127-8 (e-book)",
  LCCN =         "QA76.73.P98 P45 2010eb",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science); Computers; Programming;
                 Object Oriented.",
}

@Article{Pop:2010:ERH,
  author =       "Iustin Pop",
  title =        "Experience report: {Haskell} as a reagent: results and
                 observations on the use of {Haskell} in a {Python}
                 project",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "9",
  pages =        "369--374",
  month =        sep,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/1932681.1863595",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 26 15:13:43 MST 2011",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Book{Rhodes:2010:FPN,
  author =       "Brandon Rhodes and John Goerzen",
  title =        "Foundations of {Python} network programming: the
                 comprehensive guide to building network applications
                 with {Python}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  pages =        "xx + 345",
  year =         "2010",
  DOI =          "http://dx.doi.org/10.1007/978-1-4302-3004-5",
  ISBN =         "1-4302-3003-7 (paperback), 1-4302-3004-5 (e-book)",
  ISBN-13 =      "978-1-4302-3003-8 (paperback), 978-1-4302-3004-5
                 (e-book)",
  LCCN =         "QA76.73.P98 G64 2010eb",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "The expert's voice in open source",
  URL =          "http://proquest.safaribooksonline.com/9781430230038",
  abstract =     "This second edition of Foundations of Python Network
                 Programming targets Python 2.5 through Python 2.7, the
                 most popular production versions of the language.
                 Python has made great strides since Apress released the
                 first edition of this book back in the days of Python
                 2.3. The advances required new chapters to be written
                 from the ground up, and others to be extensively
                 revised. You will learn fundamentals like IP, TCP, DNS
                 and SSL by using working Python programs; you will also
                 be able to familiarize yourself with infrastructure
                 components like memcached and message queues. You can
                 also delve into network server designs, and compare
                 threaded approaches with asynchronous event-based
                 solutions. But the biggest change is this edition's
                 expanded treatment of the web. The HTTP protocol is
                 covered in extensive detail, with each feature
                 accompanied by sample Python code. You can use your
                 HTTP protocol expertise by studying an entire chapter
                 on screen scraping and you can then test lxml and
                 BeautifulSoup against a real-world web site. The
                 chapter on web application programming now covers both
                 the WSGI standard for component interoperability, as
                 well as modern web frameworks like Django. Finally, all
                 of the old favorites from the first edition are back:
                 E-mail protocols like SMTP, POP, and IMAP get full
                 treatment, as does XML-RPC. You can still learn how to
                 code Python network programs using the Telnet and FTP
                 protocols, but you are likely to appreciate the power
                 of more modern alternatives like the paramiko SSH2
                 library. If you are a Python programmer who needs to
                 learn the network, this is the book that you want by
                 your side.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); COMPUTERS;
                 Programming Languages; C{\"A}; Java.; Pascal.; Python
                 (Computer program language)",
  tableofcontents = "1 Introduction to Client/Server Networking \\
                 2 UDP \\
                 3 TCP \\
                 4 Socket Names and DNS \\
                 5 Network Data and Network Errors \\
                 6 TLS and SSL \\
                 7 Server Architecture \\
                 8 Caches, Message Queues, and Map-Reduce \\
                 9 HTTP \\
                 10 Screen Scraping \\
                 11 Web Applications \\
                 12 E-mail Composition and Decoding \\
                 14 SMTP \\
                 14 POP \\
                 15 IMAP \\
                 16 Telnet and SSH \\
                 17 FTP \\
                 18 RPC",
}

@Book{Summerfield:2010:PPC,
  author =       "Mark Summerfield",
  title =        "Programming in {Python 3}: a complete introduction to
                 the {Python} language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xvi + 630",
  year =         "2010",
  ISBN =         "0-321-68056-1 (paperback)",
  ISBN-13 =      "978-0-321-68056-3 (paperback)",
  LCCN =         "QA76.73.P98 S86 2010",
  bibdate =      "Thu Mar 25 12:43:08 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Developer's library",
  acknowledgement = ack-nhfb,
  subject =      "Python (computer program language); object-oriented
                 programming (computer science)",
}

@Article{Tabba:2010:ACP,
  author =       "Fuad Tabba",
  title =        "Adding concurrency in {Python} using a commercial
                 processor's hardware transactional memory support",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "38",
  number =       "5",
  pages =        "12--19",
  month =        dec,
  year =         "2010",
  CODEN =        "CANED2",
  DOI =          "http://dx.doi.org/10.1145/1978907.1978911",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 13 11:25:46 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This paper reports on our experiences of using a
                 commercial processor's best-effort hardware
                 transactional memory to improve concurrency in CPython,
                 the reference Python implementation. CPython protects
                 its data structures using a single global lock, which
                 inhibits parallelism when running multiple
                 threads.\par

                 We modified the CPython interpreter to use best-effort
                 hardware transactions available in Sun's Rock
                 processor, and fall back on the single global lock when
                 unable to commit in hardware. The modifications were
                 minimal; however, we had to restructure some of
                 CPython's shared data structures to handle false
                 conflicts arising from CPython's management of the
                 shared data. Our results show that the modified CPython
                 interpreter can run small, simple, workloads and scale
                 almost linearly, while improving the concurrency of
                 more complex workloads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Tatsubori:2010:EJT,
  author =       "Michiaki Tatsubori and Akihiko Tozawa and Toyotaro
                 Suzumura and Scott Trent and Tamiya Onodera",
  title =        "Evaluation of a just-in-time compiler retrofitted for
                 {PHP}",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "7",
  pages =        "121--132",
  month =        jul,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "http://doi.acm.org/10.1145/1735997.1736015",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 8 17:55:01 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Programmers who develop Web applications often use
                 dynamic scripting languages such as Perl, PHP, Python,
                 and Ruby. For general purpose scripting language usage,
                 interpreter-based implementations are efficient and
                 popular but the server-side usage for Web application
                 development implies an opportunity to significantly
                 enhance Web server throughput. This paper summarizes a
                 study of the optimization of PHP script processing. We
                 developed a PHP processor, P9, by adapting an existing
                 production-quality just-in-time (JIT) compiler for a
                 Java virtual machine, for which optimization
                 technologies have been well-established, especially for
                 server-side application. This paper describes and
                 contrasts microbenchmarks and SPECweb2005 benchmark
                 results for a well-tuned configuration of a traditional
                 PHP interpreter and our JIT compiler-based
                 implementation, P9. Experimental results with the
                 microbenchmarks show 2.5-9.5x advantage with P9, and
                 the SPECweb2005 measurements show about 20-30\%
                 improvements. These results show that the acceleration
                 of dynamic scripting language processing does matter in
                 a realistic Web application server environment. CPU
                 usage profiling shows our simple JIT compiler
                 introduction reduces the PHP core runtime overhead from
                 45\% to 13\% for a SPECweb2005 scenario, implying that
                 further improvements of dynamic compilers would provide
                 little additional return unless other major overheads
                 such as heavy memory copy between the language runtime
                 and Web server frontend are reduced.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "dynamic scripting languages; just-in-time compiler;
                 php",
}

@Article{Xia:2010:CSP,
  author =       "Xiao-Qin Xia and Michael McClelland and Yipeng Wang",
  title =        "Code Snippet: {{\tt PypeR}}, a {Python} Package for
                 Using {R} in {Python}",
  journal =      j-J-STAT-SOFT,
  volume =       "35",
  number =       "CS-2",
  pages =        "??--??",
  month =        jul,
  year =         "2010",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  bibdate =      "Wed Aug 25 09:57:41 MDT 2010",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v35/c02",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Statistical Software",
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2009-10-23; Accepted 2010-03-23",
}

@Article{Barry:2011:PA,
  author =       "Paul Barry",
  title =        "{Python} for {Android}",
  journal =      j-LINUX-J,
  volume =       "2011",
  number =       "203",
  pages =        "1:1--1:??",
  month =        mar,
  year =         "2011",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Mar 18 09:08:58 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Catanzaro:2011:CCE,
  author =       "Bryan Catanzaro and Michael Garland and Kurt
                 Keutzer",
  title =        "{Copperhead}: compiling an embedded data parallel
                 language",
  journal =      j-SIGPLAN,
  volume =       "46",
  number =       "8",
  pages =        "47--56",
  month =        aug,
  year =         "2011",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2038037.1941562",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Aug 26 14:04:45 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  note =         "PPoPP '11 Conference proceedings.",
  abstract =     "Modern parallel microprocessors deliver high
                 performance on applications that expose substantial
                 fine-grained data parallelism. Although data
                 parallelism is widely available in many computations,
                 implementing data parallel algorithms in low-level
                 languages is often an unnecessarily difficult task. The
                 characteristics of parallel microprocessors and the
                 limitations of current programming methodologies
                 motivate our design of Copperhead, a high-level data
                 parallel language embedded in Python. The Copperhead
                 programmer describes parallel computations via
                 composition of familiar data parallel primitives
                 supporting both flat and nested data parallel
                 computation on arrays of data. Copperhead programs are
                 expressed in a subset of the widely used Python
                 programming language and interoperate with standard
                 Python modules, including libraries for numeric
                 computation, data visualization, and analysis. In this
                 paper, we discuss the language, compiler, and runtime
                 features that enable Copperhead to efficiently execute
                 data parallel code. We define the restricted subset of
                 Python which Copperhead supports and introduce the
                 program analysis techniques necessary for compiling
                 Copperhead code into efficient low-level
                 implementations. We also outline the runtime support by
                 which Copperhead programs interoperate with standard
                 Python modules. We demonstrate the effectiveness of our
                 techniques with several examples targeting the CUDA
                 platform for parallel programming on GPUs. Copperhead
                 code is concise, on average requiring 3.6 times fewer
                 lines of code than CUDA, and the compiler generates
                 efficient code, yielding 45-100\% of the performance of
                 hand-crafted, well optimized CUDA code.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Joyner:2011:OSC,
  author =       "David Joyner and Ond{\v{r}}ej {\v{C}}ert{\'\i}k and
                 Aaron Meurer and Brian E. Granger",
  title =        "Open source computer algebra systems: {SymPy}",
  journal =      j-ACM-COMM-COMP-ALGEBRA,
  volume =       "45",
  number =       "3--4",
  pages =        "225--234",
  month =        sep,
  year =         "2011",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/2110170.2110185",
  ISSN =         "1932-2232 (print), 1932-2240 (electronic)",
  ISSN-L =       "1932-2232",
  bibdate =      "Thu Jan 26 16:43:28 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigsam.bib",
  abstract =     "This survey will look at SymPy, a free and open source
                 computer algebra system started in 2005 by the second
                 author (O.{\v{C}}.). It is written entirely in Python,
                 available from http://sympy.org. SymPy is licensed
                 under the ``modified BSD'' license, as is its beautiful
                 logo designed by Fredrik Johansson.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Communications in Computer Algebra",
  issue =        "177",
}

@Article{Klaver:2011:PC,
  author =       "Adrian Klaver",
  title =        "{Python} in the cloud",
  journal =      j-LINUX-J,
  volume =       "2011",
  number =       "210",
  pages =        "7:1--7:??",
  month =        oct,
  year =         "2011",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sun Nov 6 07:06:26 MST 2011",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Kormanyos:2011:APC,
  author =       "Christopher Kormanyos",
  title =        "{Algorithm 910}: a Portable {C++} Multiple-Precision
                 System for Special-Function Calculations",
  journal =      j-TOMS,
  volume =       "37",
  number =       "4",
  pages =        "45:1--45:??",
  month =        feb,
  year =         "2011",
  CODEN =        "ACMSCU",
  DOI =          "http://dx.doi.org/10.1145/1916461.1916469",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Mar 1 16:05:18 MST 2011",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This article presents a portable C++ system for
                 multiple precision calculations of special functions
                 called {\tt e\_float}. It has an extendible
                 architecture with a uniform C++ layer which can be used
                 with any suitably prepared MP type. The system
                 implements many high-precision special functions and
                 extends some of these to very large parameter ranges.
                 It supports calculations with 30 \ldots{} 300 decimal
                 digits of precision. Interoperabilities with
                 Microsoft's CLR, Python, and Mathematica{\reg} are
                 supported. The {\tt e\_float} system and its usage are
                 described in detail. Implementation notes, testing
                 results, and performance measurements are provided.",
  acknowledgement = ack-nhfb,
  articleno =    "45",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
}

@Article{Lambert:2011:PBO,
  author =       "Emmanuel Lambert and Martin Fiers and Shavkat Nizamov
                 and Martijn Tassaert and Steven G. Johnson and Peter
                 Bienstman and Wim Bogaerts",
  title =        "{Python} Bindings for the {Open Source Electromagnetic
                 Simulator Meep}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "13",
  number =       "3",
  pages =        "53--65",
  month =        may # "\slash " # jun,
  year =         "2011",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2010.98",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Apr 1 22:44:30 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Langtangen:2011:PSP,
  author =       "Hans Petter Langtangen",
  title =        "A primer on scientific programming with {Python}",
  volume =       "6",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  edition =      "Second",
  pages =        "xxix + 699",
  year =         "2011",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-18366-9",
  ISBN =         "3-642-18365-4, 3-642-18366-2 (e-book)",
  ISBN-13 =      "978-3-642-18365-2, 978-3-642-18366-9 (e-book)",
  LCCN =         "QA76.73.P98 L36 2011",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Texts in computational science and engineering",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 programming",
}

@Book{Lee:2011:PPF,
  author =       "Kent D. Lee",
  title =        "{Python} programming fundamentals",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xii + 241",
  year =         "2011",
  DOI =          "http://dx.doi.org/10.1007/978-1-84996-537-8",
  ISBN =         "1-84996-536-6, 1-84996-537-4 (e-book)",
  ISBN-13 =      "978-1-84996-536-1, 978-1-84996-537-8 (e-book)",
  LCCN =         "QA76.73.P98 L44 2011",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Undergraduate topics in computer science",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python
                 (programmeertaal)",
}

@Article{List:2011:FUT,
  author =       "Michael List and David Car",
  title =        "A {Fortran} unit-testing framework utilizing
                 templating and the {PyF95++} toolset",
  journal =      j-FORTRAN-FORUM,
  volume =       "30",
  number =       "1",
  pages =        "3--15",
  month =        apr,
  year =         "2011",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/1961363.1961364",
  ISSN =         "1061-7264 (print), 1931-1311 (electronic)",
  ISSN-L =       "1061-7264",
  bibdate =      "Mon Mar 21 16:45:38 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "A simple unit testing framework has been developed
                 utilizing a templating capability and Python based
                 preprocessor for Fortran. The implementation of this
                 framework and its use for testing serial and parallel
                 components is discussed. The capability was
                 successfully applied to the development of a Fortran
                 Standard Template Library and associated toolsets.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Fortran Forum",
}

@Article{Migallon:2011:PPL,
  author =       "H{\'e}ctor Migall{\'o}n and Violeta Migall{\'o}n and
                 Jos{\'e} Penad{\'e}s",
  title =        "A {Parallel Python} library for nonlinear systems",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "58",
  number =       "3",
  pages =        "438--448",
  month =        dec,
  year =         "2011",
  CODEN =        "JOSUED",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Tue Dec 13 15:25:17 MST 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=58&issue=3&spage=438",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Millman:2011:PSE,
  author =       "K. Jarrod Millman and Michael Aivazis",
  title =        "{Python} for Scientists and Engineers",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "13",
  number =       "2",
  pages =        "9--12",
  month =        mar # "\slash " # apr,
  year =         "2011",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2011.36",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Apr 1 22:44:30 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Parkin:2011:DEL,
  author =       "Tom Parkin",
  title =        "Debugging embedded {Linux} platforms with {DGB} and
                 {Python}",
  journal =      j-LINUX-J,
  volume =       "2011",
  number =       "206",
  pages =        "2:1--2:??",
  month =        jun,
  year =         "2011",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Jun 7 18:47:07 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Payne:2011:BPU,
  author =       "James Payne",
  title =        "Beginning {Python}: using {Python 2.6} and {Python
                 3.1}",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxxiv + 588",
  year =         "2011",
  ISBN =         "0-470-41463-4",
  ISBN-13 =      "978-0-470-41463-7",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 15:15:41 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Wrox programmer to programmer",
  abstract =     "\booktitle{Beginning Python: Using Python 2.6 and
                 Python 3.1} introduces this open source, portable,
                 interpreted, object-oriented programming language that
                 combines remarkable power with clear syntax. This book
                 enables you to quickly create robust, reliable, and
                 reusable Python applications by teaching the basics so
                 you can quickly develop Web and scientific
                 applications, incorporate databases, and master systems
                 tasks on various operating systems, including Linux,
                 MAC OS, and Windows. You'll get a comprehensive
                 tutorial that guides you from writing simple, basic
                 Python scripts all the way through complex concepts,
                 and also features a reference of the standard modules
                 with examples illustrating how to implement features in
                 the various modules. Plus, the book covers using Python
                 in specific program development domains, such as XML,
                 databases, scientific applications, network
                 programming, and Web development.",
  acknowledgement = ack-nhfb,
  subject =      "programmeringssprog; programmering; objektorienteret
                 programmering; vejledninger",
  tableofcontents = "Part I. Dipping Your Toe into Python \\
                 Part II. Python Language and the Standard Library \\
                 Part III. Putting Python to Work \\
                 Part IV. Appendices",
}

@Article{Perez:2011:PES,
  author =       "Fernando Perez and Brian E. Granger and John D.
                 Hunter",
  title =        "{Python}: An Ecosystem for Scientific Computing",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "13",
  number =       "2",
  pages =        "13--21",
  month =        mar # "\slash " # apr,
  year =         "2011",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2010.119",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Apr 1 22:44:30 2011",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Russell:2011:MSW,
  author =       "Matthew A. (Computer scientist) Russell",
  title =        "Mining the social web",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xx + 332",
  year =         "2011",
  ISBN =         "1-4493-8834-5 (paperback), 1-4493-0416-8 (e-book),
                 1-4493-0393-5 (e-book), 1-4493-9475-2",
  ISBN-13 =      "978-1-4493-8834-8 (paperback), 978-1-4493-0416-4
                 (e-book), 978-1-4493-0393-8 (e-book),
                 978-1-4493-9475-2",
  LCCN =         "QA76.9.D343 R87 2011",
  bibdate =      "Sat Mar 21 07:10:21 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://twitter.com/\#!/SocialWebMining",
  abstract =     "Facebook, Twitter, and LinkedIn generate a tremendous
                 amount of valuable social data, but how can you find
                 out who's making connections with social media, what
                 they're talking about, or where they're located? This
                 book shows you how to answer these questions and more.
                 Each chapter introduces techniques for mining data in
                 different areas of the social web, including blogs and
                 email.",
  acknowledgement = ack-nhfb,
  subject =      "Data mining; Online social networks; Artificial
                 intelligence; Social networking",
  tableofcontents = "Introduction: hacking on Twitter data \\
                 Microformats: semantic markup and common sense collide
                 \\
                 Mailboxes: oldies but goodies \\
                 Twitter: friends, followers, and setwise operations \\
                 Twitter: the tweet, the whole tweet, and nothing but
                 the tweet \\
                 LinkedIn: clustering your professional network for fun
                 (and profit?) \\
                 Google buzz: TF-IDF, cosine similarity, and
                 collocations \\
                 Blogs et al.: natural language processing (and beyond)
                 \\
                 Facebook: the all-in-one wonder \\
                 The semantic web: a cocktail discussion",
}

@Article{Anonymous:2012:PSR,
  author =       "Anonymous",
  title =        "{Python} scripts as a replacement for {\tt bash}
                 utility scripts",
  journal =      j-LINUX-J,
  volume =       "2012",
  number =       "223",
  pages =        "1:1--1:??",
  month =        nov,
  year =         "2012",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Dec 11 07:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Learn how to use Python and existing UNIX tools to
                 improve your productivity in the shell.",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Autin:2012:UUC,
  author =       "Ludovic Autin and Graham Johnson and Johan Hake and
                 Arthur Olson and Michel Sanner",
  title =        "{uPy}: a Ubiquitous {CG Python API} with
                 Biological-Modeling Applications",
  journal =      j-IEEE-CGA,
  volume =       "32",
  number =       "5",
  pages =        "50--61",
  month =        sep # "\slash " # oct,
  year =         "2012",
  CODEN =        "ICGADZ",
  DOI =          "http://dx.doi.org/10.1109/MCG.2012.93",
  ISSN =         "0272-1716 (print), 1558-1756 (electronic)",
  ISSN-L =       "0272-1716",
  bibdate =      "Mon Oct 22 06:56:23 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ieeecga.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computer Graphics and Applications",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/cga",
}

@Article{Baldwin:2012:SPG,
  author =       "Doug Baldwin",
  title =        "Special projects grants awarded",
  journal =      j-SIGCSE,
  volume =       "44",
  number =       "3",
  pages =        "6--6",
  month =        jul,
  year =         "2012",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/2350216.2350222",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:30 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2010.bib",
  abstract =     "SIGCSE received 15 Special Projects grant proposals
                 for the May 2012 funding cycle. The Special Projects
                 Committee is pleased to announce that the following
                 four grants have been awarded: Anthony Allevato and
                 Steve Edwards, Virginia Tech, ``Pythy---A Cloud-Based
                 IDE for Novice Python Programmers''
                 (http://pythy.cs.vt.edu/). This project will develop a
                 Web-based environment in which novice programmers can
                 write and run Python programs and access documentation
                 and tutorials. This environment reduces the barriers
                 students often face if they have to install development
                 tools on their own computers.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Beazley:2012:TYP,
  author =       "David Beazley",
  title =        "Three Years of {Python 3}",
  journal =      j-LOGIN,
  volume =       "37",
  number =       "1",
  pages =        "??--??",
  month =        feb,
  year =         "2012",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  ISSN-L =       "1044-6397",
  bibdate =      "Fri Dec 7 10:42:18 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/usenix2010.bib;
                 https://www.usenix.org/publications/login",
  URL =          "https://www.usenix.org/publications/login/february-2012/three-years-python-3",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Article{Bell:2012:PSA,
  author =       "Nathan Bell and Anil N. Hirani",
  title =        "{PyDEC}: Software and Algorithms for Discretization of
                 Exterior Calculus",
  journal =      j-TOMS,
  volume =       "39",
  number =       "1",
  pages =        "3:1--3:??",
  month =        nov,
  year =         "2012",
  CODEN =        "ACMSCU",
  DOI =          "http://dx.doi.org/10.1145/2382585.2382588",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Thu Dec 6 07:36:30 MST 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "This article describes the algorithms, features, and
                 implementation of PyDEC, a Python library for
                 computations related to the discretization of exterior
                 calculus. PyDEC facilitates inquiry into both physical
                 problems on manifolds as well as purely topological
                 problems on abstract complexes. We describe efficient
                 algorithms for constructing the operators and objects
                 that arise in discrete exterior calculus, lowest-order
                 finite element exterior calculus, and in related
                 topological problems. Our algorithms are formulated in
                 terms of high-level matrix operations which extend to
                 arbitrary dimension. As a result, our implementations
                 map well to the facilities of numerical libraries such
                 as NumPy and SciPy. The availability of such libraries
                 makes Python suitable for prototyping numerical
                 methods. We demonstrate how PyDEC is used to solve
                 physical and topological problems through several
                 concise examples.",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
}

@Article{Briot:2012:GLAa,
  author =       "Emmanuel Briot",
  title =        "Gem \#105: {Lady Ada} kisses {Python} --- part 1",
  journal =      j-SIGADA-LETTERS,
  volume =       "32",
  number =       "2",
  pages =        "45--46",
  month =        aug,
  year =         "2012",
  CODEN =        "AALEE5",
  DOI =          "http://dx.doi.org/10.1145/2429574.2429587",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Wed Jan 30 16:10:15 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigada.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
}

@Article{Briot:2012:GLAb,
  author =       "Emmanuel Briot",
  title =        "Gem \#106: {Lady Ada} kisses {Python} --- part 2",
  journal =      j-SIGADA-LETTERS,
  volume =       "32",
  number =       "2",
  pages =        "47--49",
  month =        aug,
  year =         "2012",
  CODEN =        "AALEE5",
  DOI =          "http://dx.doi.org/10.1145/2429574.2429588",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Wed Jan 30 16:10:15 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigada.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
}

@Article{Castanos:2012:BPE,
  author =       "Jose Castanos and David Edelsohn and Kazuaki Ishizaki
                 and Priya Nagpurkar and Toshio Nakatani and Takeshi
                 Ogasawara and Peng Wu",
  title =        "On the benefits and pitfalls of extending a statically
                 typed language {JIT} compiler for dynamic scripting
                 languages",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "10",
  pages =        "195--212",
  month =        oct,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2398857.2384631",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Nov 15 16:40:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Whenever the need to compile a new dynamically typed
                 language arises, an appealing option is to repurpose an
                 existing statically typed language Just-In-Time (JIT)
                 compiler (repurposed JIT compiler). Existing repurposed
                 JIT compilers (RJIT compilers), however, have not yet
                 delivered the hoped-for performance boosts. The
                 performance of JVM languages, for instance, often lags
                 behind standard interpreter implementations. Even more
                 customized solutions that extend the internals of a JIT
                 compiler for the target language compete poorly with
                 those designed specifically for dynamically typed
                 languages. Our own Fiorano JIT compiler is an example
                 of this problem. As a state-of-the-art, RJIT compiler
                 for Python, the Fiorano JIT compiler outperforms two
                 other RJIT compilers (Unladen Swallow and Jython), but
                 still shows a noticeable performance gap compared to
                 PyPy, today's best performing Python JIT compiler. In
                 this paper, we discuss techniques that have proved
                 effective in the Fiorano JIT compiler as well as
                 limitations of our current implementation. More
                 importantly, this work offers the first in-depth look
                 at benefits and limitations of the repurposed JIT
                 compiler approach. We believe the most common pitfall
                 of existing RJIT compilers is not focusing sufficiently
                 on specialization, an abundant optimization opportunity
                 unique to dynamically typed languages. Unfortunately,
                 the lack of specialization cannot be overcome by
                 applying traditional optimizations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "OOPSLA '12 conference proceedings.",
}

@Article{Conti:2012:TMP,
  author =       "Juan Jos{\'e} Conti and Alejandro Russo",
  title =        "A {Taint} Mode for {Python} via a Library",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7127",
  pages =        "210--222",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-27937-9_15",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:24:40 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-27937-9_15/",
  acknowledgement = ack-nhfb,
  book-DOI =     "http://dx.doi.org/10.1007/978-3-642-27937-9",
  book-URL =     "http://www.springerlink.com/content/978-3-642-27937-9",
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Darcy:2012:EGP,
  author =       "Jeff Darcy",
  title =        "Extending {GlusterFS} with {Python}",
  journal =      j-LINUX-J,
  volume =       "2012",
  number =       "223",
  pages =        "2:1--2:??",
  month =        nov,
  year =         "2012",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Dec 11 07:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "GlusterFS is a distributed filesystem with a strong
                 emphasis on extensibility. Now extensions can be
                 written in Python, bringing significant performance and
                 other improvements within reach of even more
                 programmers.",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Ettienne:2012:IMA,
  author =       "Mikko Berggren Ettienne and Steen Vester and J{\o}rgen
                 Villadsen",
  title =        "Implementing a Multi-Agent System in {Python} with an
                 Auction-Based Agreement Approach",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7217",
  pages =        "185--196",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-31915-0_11",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:17:50 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs2012c.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31915-0_11/",
  acknowledgement = ack-nhfb,
  book-DOI =     "http://dx.doi.org/10.1007/978-3-642-31915-0",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31915-0",
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Gasiorek:2012:OPP,
  author =       "Marcin Ga{\c{s}}iorek and Daniel Simson",
  title =        "One-peak posets with positive quadratic {Tits} form,
                 their mesh translation quivers of roots, and
                 programming in {Maple} and {Python}",
  journal =      j-LINEAR-ALGEBRA-APPL,
  volume =       "436",
  number =       "7",
  pages =        "2240--2272",
  day =          "1",
  month =        apr,
  year =         "2012",
  CODEN =        "LAAPAW",
  DOI =          "http://dx.doi.org/10.1016/j.laa.2011.10.045",
  ISSN =         "0024-3795 (print), 1873-1856 (electronic)",
  ISSN-L =       "0024-3795",
  bibdate =      "Tue Feb 7 16:11:50 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/linala2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/maple-extract.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.sciencedirect.com/science/journal/00243795",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0024379511007555",
  acknowledgement = ack-nhfb,
  fjournal =     "Linear Algebra and its Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00243795",
}

@Book{Harwani:2012:IPP,
  author =       "B. M. Harwani",
  title =        "Introduction to {Python} programming and developing
                 {GUI} applications with {PyQT}",
  publisher =    "Cengage Learning",
  address =      "Boston, MA, USA",
  pages =        "xv + 393",
  year =         "2012",
  ISBN =         "1-4354-6097-9, 1-4354-6098-7 (e-book)",
  ISBN-13 =      "978-1-4354-6097-3, 978-1-4354-6098-0 (e-book)",
  LCCN =         "QA76.73.P98 H37 2012aeb",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Qt (Electronic resource); Python (Computer program
                 language); Graphical user interfaces (Computer
                 systems); COMPUTERS; Programming Languages; C{\"A};
                 Java.; Pascal.",
}

@Article{Hirschfeld:2012:EUC,
  author =       "Robert Hirschfeld and Michael Perscheid and Michael
                 Haupt",
  title =        "Explicit use-case representation in object-oriented
                 programming languages",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "2",
  pages =        "51--60",
  month =        feb,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2168696.2047856",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Apr 20 17:34:09 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Use-cases are considered an integral part of most
                 contemporary development processes since they describe
                 a software system's expected behavior from the
                 perspective of its prospective users. However, the
                 presence of and traceability to use-cases is
                 increasingly lost in later more code-centric
                 development activities. Use-cases, being
                 well-encapsulated at the level of requirements
                 descriptions, eventually lead to crosscutting concerns
                 in system design and source code. Tracing which parts
                 of the system contribute to which use-cases is
                 therefore hard and so limits understandability. In this
                 paper, we propose an approach to making use-cases
                 first-class entities in both the programming language
                 and the runtime environment. Having use-cases present
                 in the code and the running system will allow
                 developers, maintainers, and operators to easily
                 associate their units of work with what matters to the
                 users. We suggest the combination of use-cases,
                 acceptance tests, and dynamic analysis to automatically
                 associate source code with use-cases. We present
                 UseCasePy, an implementation of our approach to
                 use-case-centered development in Python, and its
                 application to the Django Web framework.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DSL '11 conference proceedings.",
}

@Article{Homescu:2012:HTJ,
  author =       "Andrei Homescu and Alex Suhan",
  title =        "{HappyJIT}: a tracing {JIT} compiler for {PHP}",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "2",
  pages =        "25--36",
  month =        feb,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2168696.2047854",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Apr 20 17:34:09 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Current websites are a combination of server-generated
                 dynamic content with client-side interactive programs.
                 Dynamically --- typed languages have gained a lot of
                 ground in both of these domains. The growth of Web 2.0
                 has introduced a myriad of websites which contain
                 personalized content, which is specific to the user.
                 PHP or Python programs generate the actual HTML page
                 after querying a database and processing the results,
                 which are then presented by the browser. It is becoming
                 more and more vital to accelerate the execution of
                 these programs, as this is a significant part of the
                 total time needed to present the page to the user. This
                 paper presents a novel interpreter for the PHP language
                 written in RPython, which the PyPy translator then
                 translates into C. The translator integrates into the
                 interpreter a tracing just-in-time compiler which
                 optimizes the hottest loops in the interpreted
                 programs. We also describe a data model that supports
                 all the data types in the PHP language, such as
                 references and iterators. We evaluate the performance
                 of this interpreter, showing that speedups up to a
                 factor of 8 are observed using this approach.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DSL '11 conference proceedings.",
}

@Article{Hosmer:2012:GSS,
  author =       "Ben Hosmer",
  title =        "Getting started with {Salt Stack} --- the other
                 configuration management system built with {Python}",
  journal =      j-LINUX-J,
  volume =       "2012",
  number =       "223",
  pages =        "3:1--3:??",
  month =        nov,
  year =         "2012",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Tue Dec 11 07:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Install and configure software on multiple servers at
                 once.",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Ishizaki:2012:ADT,
  author =       "Kazuaki Ishizaki and Takeshi Ogasawara and Jose
                 Castanos and Priya Nagpurkar and David Edelsohn and
                 Toshio Nakatani",
  title =        "Adding dynamically-typed language support to a
                 statically-typed language compiler: performance
                 evaluation, analysis, and tradeoffs",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "7",
  pages =        "169--180",
  month =        jul,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2365864.2151047",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Sep 6 10:01:03 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "VEE '12 conference proceedings.",
  abstract =     "Applications written in dynamically typed scripting
                 languages are increasingly popular for Web software
                 development. Even on the server side, programmers are
                 using dynamically typed scripting languages such as
                 Ruby and Python to build complex applications quickly.
                 As the number and complexity of dynamically typed
                 scripting language applications grows, optimizing their
                 performance is becoming important. Some of the best
                 performing compilers and optimizers for dynamically
                 typed scripting languages are developed entirely from
                 scratch and target a specific language. This approach
                 is not scalable, given the variety of dynamically typed
                 scripting languages, and the effort involved in
                 developing and maintaining separate infrastructures for
                 each. In this paper, we evaluate the feasibility of
                 adapting and extending an existing production-quality
                 method-based Just-In-Time (JIT) compiler for a language
                 with dynamic types. Our goal is to identify the
                 challenges and shortcomings with the current
                 infrastructure, and to propose and evaluate runtime
                 techniques and optimizations that can be incorporated
                 into a common optimization infrastructure for static
                 and dynamic languages. We discuss three extensions to
                 the compiler to support dynamically typed languages:
                 (1) simplification of control flow graphs, (2) mapping
                 of memory locations to stack-allocated variables, and
                 (3) reduction of runtime overhead using language
                 semantics. We also propose four new optimizations for
                 Python in (2) and (3). These extensions are effective
                 in reduction of compiler working memory and improvement
                 of runtime performance. We present a detailed
                 performance evaluation of our approach for Python,
                 finding an overall improvement of 1.69x on average (up
                 to 2.74x) over our JIT compiler without any
                 optimization for dynamically typed languages and
                 Python.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Johansson:2012:QOS,
  author =       "J. R. Johansson and P. D. Nation and Franco Nori",
  title =        "{QuTiP}: an open-source {Python} framework for the
                 dynamics of open quantum systems",
  journal =      j-COMP-PHYS-COMM,
  volume =       "183",
  number =       "8",
  pages =        "1760--1772",
  month =        aug,
  year =         "2012",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2012.02.021",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Apr 24 06:33:31 MDT 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465512000835",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Book{Johnson:2012:CIP,
  author =       "Mark J. (Mark James) Johnson",
  title =        "A concise introduction to programming in {Python}",
  publisher =    pub-CRC,
  address =      pub-CRC:adr,
  pages =        "xi + 205",
  year =         "2012",
  ISBN =         "1-4398-9694-1 (paperback)",
  ISBN-13 =      "978-1-4398-9694-5 (paperback)",
  LCCN =         "QA76.73.P98 J64 2012",
  bibdate =      "Fri Nov 16 06:29:01 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Chapman and Hall/CRC textbooks in computing",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 programming",
}

@Article{Klarner:2012:TSD,
  author =       "Hannes Klarner and Heike Siebert and Alexander
                 Bockmayr",
  title =        "Time Series Dependent Analysis of Unparametrized
                 {Thomas} Networks",
  journal =      j-TCBB,
  volume =       "9",
  number =       "5",
  pages =        "1338--1351",
  month =        sep,
  year =         "2012",
  CODEN =        "ITCBCY",
  DOI =          "http://dx.doi.org/10.1109/TCBB.2012.61",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Tue Aug 28 17:31:04 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "This paper is concerned with the analysis of labeled
                 Thomas networks using discrete time series. It focuses
                 on refining the given edge labels and on assessing the
                 data quality. The results are aimed at being
                 exploitable for experimental design and include the
                 prediction of new activatory or inhibitory effects of
                 given interactions and yet unobserved oscillations of
                 specific components in between specific sampling
                 intervals. On the formal side, we generalize the
                 concept of edge labels and introduce a discrete time
                 series interpretation. This interpretation features two
                 original concepts: (1) Incomplete measurements are
                 admissible, and (2) it allows qualitative assumptions
                 about the changes in gene expression by means of
                 monotonicity. On the computational side, we provide a
                 Python script, erda.py, that automates the suggested
                 workflow by model checking and constraint satisfaction.
                 We illustrate the workflow by investigating the yeast
                 network IRMA.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Book{Langtangen:2012:PSP,
  author =       "Hans Petter Langtangen",
  title =        "A primer on scientific programming with {Python}",
  volume =       "6",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  edition =      "Third",
  year =         "2012",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-30293-0",
  ISBN =         "3-642-30292-0, 3-642-30293-9 (e-book)",
  ISBN-13 =      "978-3-642-30292-3, 978-3-642-30293-0 (e-book)",
  ISSN =         "1611-0994",
  LCCN =         "QA76.73.P98 L36 2012",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Texts in computational science and engineering",
  abstract =     "The book serves as a first introduction to computer
                 programming of scientific applications, using the
                 high-level Python language. The exposition is example-
                 and problem-oriented, where the applications are taken
                 from mathematics, numerical calculus, statistics,
                 physics, biology, and finance. The book teaches
                 ``Matlab-style'' and procedural programming as well as
                 object-oriented programming. High school mathematics is
                 a required background, and it is advantageous to study
                 classical and numerical one-variable calculus in
                 parallel with reading this book. Besides learning how
                 to program computers.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 programming; Science; Data processing",
  tableofcontents = "Computing with Formulas \\
                 Loops and Lists \\
                 Functions and Branching \\
                 Input Data and Error Handling \\
                 Array Computing and Curve Plotting \\
                 Files, Strings, and Dictionaries \\
                 Introduction to Classes \\
                 Random Numbers and Simple Games \\
                 Object-Oriented Programming",
}

@InProceedings{Logg:2012:DCP,
  author =       "Anders Logg and Garth N. Wells and Johan Hake",
  title =        "{DOLFIN}: a {C++\slash Python} finite element
                 library",
  crossref =     "Logg:2012:ASD",
  volume =       "84",
  pages =        "173--225",
  year =         "2012",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-23099-8_10",
  bibdate =      "Fri Dec 21 16:04:32 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/978-3-642-23099-8_10",
  acknowledgement = ack-nhfb,
  book-DOI =     "http://dx.doi.org/10.1007/978-3-642-23099-8",
  book-URL =     "http://www.springerlink.com/content/978-3-642-23099-8",
}

@Book{McKinney:2012:PDA,
  author =       "Wes McKinney",
  title =        "{Python} for Data Analysis",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "400",
  year =         "2012",
  ISBN =         "1-4493-1979-3 (paperback)",
  ISBN-13 =      "978-1-4493-1979-3 (paperback)",
  LCCN =         "????",
  bibdate =      "Wed Nov 21 15:43:30 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ora.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.ox.ac.uk:210/ADVANCE; z3950.gbv.de:20011/gvk",
  price =        "EUR 32.00; UK \pounds 30.99",
  acknowledgement = ack-nhfb,
  subject =      "Data mining; Python (Computer program language)",
}

@Article{Pool:2012:SNU,
  author =       "Ren{\'e} Pool and Jaap Heringa and Martin Hoefling and
                 Roland Schulz and Jeremy C. Smith and K. Anton Feenstra",
  title =        "Software News and Updates: Enabling grand-canonical
                 {Monte Carlo}: {Extending} the flexibility of {GROMACS}
                 through the {GromPy} {Python} interface module",
  journal =      j-J-COMPUT-CHEM,
  volume =       "33",
  number =       "12",
  pages =        "1207--1214",
  day =          "5",
  month =        may,
  year =         "2012",
  CODEN =        "JCCHDD",
  DOI =          "http://dx.doi.org/10.1002/jcc.22947",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Sat Dec 1 12:11:06 MST 2012",
  bibsource =    "http://www.interscience.wiley.com/jpages/0192-8651;
                 http://www.math.utah.edu/pub/tex/bib/python.bibhttp://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1096-987X",
  onlinedate =   "28 Feb 2012",
}

@Article{Saha:2012:PPC,
  author =       "Amit Saha",
  title =        "Parallel programming in {C} and {Python}",
  journal =      j-LINUX-J,
  volume =       "2012",
  number =       "217",
  pages =        "4:1--4:??",
  month =        may,
  year =         "2012",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Mon Jun 4 16:52:28 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "How to get started with parallel programming",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Serang:2012:FMS,
  author =       "Oliver Serang and William Stratford Noble",
  title =        "Faster Mass Spectrometry-Based Protein Inference:
                 Junction Trees Are More Efficient than Sampling and
                 Marginalization by Enumeration",
  journal =      j-TCBB,
  volume =       "9",
  number =       "3",
  pages =        "809--817",
  month =        may,
  year =         "2012",
  CODEN =        "ITCBCY",
  DOI =          "http://dx.doi.org/10.1109/TCBB.2012.26",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Apr 19 17:58:10 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "The problem of identifying the proteins in a complex
                 mixture using tandem mass spectrometry can be framed as
                 an inference problem on a graph that connects peptides
                 to proteins. Several existing protein identification
                 methods make use of statistical inference methods for
                 graphical models, including expectation maximization,
                 Markov chain Monte Carlo, and full marginalization
                 coupled with approximation heuristics. We show that,
                 for this problem, the majority of the cost of inference
                 usually comes from a few highly connected subgraphs.
                 Furthermore, we evaluate three different statistical
                 inference methods using a common graphical model, and
                 we demonstrate that junction tree inference
                 substantially improves rates of convergence compared to
                 existing methods. The python code used for this paper
                 is available at
                 http://noble.gs.washington.edu/proj/fido.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Small:2012:SPB,
  author =       "Alex Small",
  title =        "Scientific {Python} for Both Expert and Novice
                 Programmers",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "14",
  number =       "2",
  pages =        "6--7",
  month =        mar # "\slash " # apr,
  year =         "2012",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2012.30",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Mar 17 08:29:33 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Spotz:2012:PRA,
  author =       "William F. Spotz",
  title =        "{PyTrilinos}: Recent advances in the {Python}
                 interface to {Trilinos}",
  journal =      j-SCI-PROG,
  volume =       "20",
  number =       "3",
  pages =        "311--325",
  month =        "????",
  year =         "2012",
  CODEN =        "SCIPEV",
  DOI =          "http://dx.doi.org/10.3233/SPR-2012-0346",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Sat Mar 8 14:10:43 MST 2014",
  bibsource =    "http://www.iospress.nl/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sciprogram.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "http://iospress.metapress.com/content/1058-9244",
}

@Article{Takikawa:2012:GTF,
  author =       "Asumu Takikawa and T. Stephen Strickland and Christos
                 Dimoulas and Sam Tobin-Hochstadt and Matthias Felleisen",
  title =        "Gradual typing for first-class classes",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "10",
  pages =        "793--810",
  month =        oct,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2398857.2384674",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Nov 15 16:40:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Dynamic type-checking and object-oriented programming
                 often go hand-in-hand; scripting languages such as
                 Python, Ruby, and JavaScript all embrace
                 object-oriented (OO) programming. When scripts written
                 in such languages grow and evolve into large programs,
                 the lack of a static type discipline reduces
                 maintainability. A programmer may thus wish to migrate
                 parts of such scripts to a sister language with a
                 static type system. Unfortunately, existing type
                 systems neither support the flexible OO composition
                 mechanisms found in scripting languages nor accommodate
                 sound interoperation with untyped code. In this paper,
                 we present the design of a gradual typing system that
                 supports sound interaction between statically- and
                 dynamically-typed units of class-based code. The type
                 system uses row polymorphism for classes and thus
                 supports mixin-based OO composition. To protect
                 migration of mixins from typed to untyped components,
                 the system employs a novel form of contracts that
                 partially seal classes. The design comes with a theorem
                 that guarantees the soundness of the type system even
                 in the presence of untyped components.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "OOPSLA '12 conference proceedings.",
}

@Book{Ucoluk:2012:IPC,
  author =       "G{\"o}kt{\"u}rk {\"U}{\c{c}}oluk and Sinan Kalkan",
  title =        "Introduction to programming concepts with case studies
                 in {Python}",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  year =         "2012",
  DOI =          "http://dx.doi.org/10.1007/978-3-7091-1343-1",
  ISBN =         "3-7091-1342-3, 3-7091-1343-1 (e-book)",
  ISBN-13 =      "978-3-7091-1342-4, 978-3-7091-1343-1 (e-book)",
  LCCN =         "QA76.6 .U26 2012",
  bibdate =      "Fri Nov 29 07:00:01 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "The current text provides a clear introduction to
                 Computer Science concepts in a programming environment.
                 It is designed as suitable use in freshman- or
                 introductory-level coursework in CS and provides the
                 fundamental concepts as well as abstract theorems for
                 solving computational problems. The Python language
                 serves as a medium for illustrating and demonstrating
                 the concepts.",
  acknowledgement = ack-nhfb,
  subject =      "Computer programming; Python (Computer program
                 language)",
  tableofcontents = "The World of Programming \\
                 Data: The First Ingredient of a Program \\
                 Actions: The Second Ingredient of a Program \\
                 Managing the Size of a Problem \\
                 A Measure for 'Solution Hardness': Complexity \\
                 Organizing Data \\
                 Objects: Reunion of Data and Action",
}

@InProceedings{Wilbers:2012:IJT,
  author =       "Ilmar M. Wilbers and Kent-Andre Mardal and Martin S.
                 Aln{\ae}s",
  title =        "Instant: just-in-time compilation of {C\slash C++} in
                 {Python}",
  crossref =     "Logg:2012:ASD",
  volume =       "84",
  pages =        "257--272",
  year =         "2012",
  DOI =          "http://dx.doi.org/10.1007/978-3-642-23099-8_14",
  bibdate =      "Fri Dec 21 16:04:32 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/978-3-642-23099-8_14",
  acknowledgement = ack-nhfb,
  book-DOI =     "http://dx.doi.org/10.1007/978-3-642-23099-8",
  book-URL =     "http://www.springerlink.com/content/978-3-642-23099-8",
}

@Article{Wimmer:2012:AEN,
  author =       "M. Wimmer",
  title =        "{Algorithm 923}: Efficient Numerical Computation of
                 the {Pfaffian} for Dense and Banded Skew-Symmetric
                 Matrices",
  journal =      j-TOMS,
  volume =       "38",
  number =       "4",
  pages =        "30:1--30:??",
  month =        aug,
  year =         "2012",
  CODEN =        "ACMSCU",
  DOI =          "http://dx.doi.org/10.1145/2331130.2331138",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Thu Aug 30 18:55:10 MDT 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "Computing the Pfaffian of a skew-symmetric matrix is a
                 problem that arises in various fields of physics. Both
                 computing the Pfaffian and a related problem, computing
                 the canonical form of a skew-symmetric matrix under
                 unitary congruence, can be solved easily once the
                 skew-symmetric matrix has been reduced to
                 skew-symmetric tridiagonal form. We develop efficient
                 numerical methods for computing this tridiagonal form
                 based on Gaussian elimination, using a skew-symmetric,
                 blocked form of the Parlett-Reid algorithm, or based on
                 unitary transformations, using block Householder
                 transformations and Givens rotations, that are
                 applicable to dense and banded matrices, respectively.
                 We also give a complete and fully optimized
                 implementation of these algorithms in Fortran
                 (including a C interface), and also provide Python,
                 Matlab and Mathematica implementations for convenience.
                 Finally, we apply these methods to compute the
                 topological charge of a class D nanowire, and show
                 numerically the equivalence of definitions based on the
                 Hamiltonian and the scattering matrix.",
  acknowledgement = ack-nhfb,
  articleno =    "30",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
}

@Article{Ardo:2013:LAO,
  author =       "H{\aa}kan Ard{\"o} and Carl Friedrich Bolz and Maciej
                 Fija{\l}kowski",
  title =        "Loop-aware optimizations in {PyPy}'s tracing {JIT}",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "2",
  pages =        "63--72",
  month =        feb,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2480360.2384586",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:12 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "One of the nice properties of a tracing just-in-time
                 compiler (JIT) is that many of its optimizations are
                 simple, requiring one forward pass only. This is not
                 true for loop-invariant code motion which is a very
                 important optimization for code with tight kernels.
                 Especially for dynamic languages that typically perform
                 quite a lot of loop invariant type checking, boxed
                 value unwrapping and virtual method lookups. In this
                 paper we explain a scheme pioneered within the context
                 of the LuaJIT project for making basic optimizations
                 loop-aware by using a simple pre-processing step on the
                 trace without changing the optimizations themselves. We
                 have implemented the scheme in RPython's tracing JIT
                 compiler. PyPy's Python JIT executing simple numerical
                 kernels can become up to two times faster, bringing the
                 performance into the ballpark of static language
                 compilers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '12 conference proceedings.",
}

@Article{Bernard:2013:RSC,
  author =       "Joey Bernard",
  title =        "Running scientific code using {IPython} and {SciPy}",
  journal =      j-LINUX-J,
  volume =       "2013",
  number =       "228",
  pages =        "3:1--3:??",
  month =        apr,
  year =         "2013",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Mon Jun 10 06:37:59 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "IPython provides a great environment for HPC
                 programming with Python and SciPy.",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Bolz:2013:SSC,
  author =       "Carl Friedrich Bolz and Lukas Diekmann and Laurence
                 Tratt",
  title =        "Storage strategies for collections in dynamically
                 typed languages",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "10",
  pages =        "167--182",
  month =        oct,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2544173.2509531",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 9 09:19:33 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "OOPSLA '13 conference proceedings.",
  abstract =     "Dynamically typed language implementations often use
                 more memory and execute slower than their statically
                 typed cousins, in part because operations on
                 collections of elements are unoptimised. This paper
                 describes storage strategies, which dynamically
                 optimise collections whose elements are instances of
                 the same primitive type. We implement storage
                 strategies in the PyPy virtual machine, giving a
                 performance increase of 18\% on wide-ranging benchmarks
                 of real Python programs. We show that storage
                 strategies are simple to implement, needing only
                 1500LoC in PyPy, and have applicability to a wide range
                 of virtual machines.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Braun:2013:DAN,
  author =       "Moritz Braun",
  title =        "Different approaches to the numerical solution of the
                 {$3$D} {Poisson} equation implemented in {Python}",
  journal =      j-COMPUTING,
  volume =       "95",
  number =       "1s",
  pages =        "49--60",
  month =        may,
  year =         "2013",
  CODEN =        "CMPTA2",
  DOI =          "http://dx.doi.org/10.1007/s00607-013-0300-x",
  ISSN =         "0010-485X (print), 1436-5057 (electronic)",
  ISSN-L =       "0010-485X",
  bibdate =      "Wed Jan 29 10:09:58 MST 2014",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0010-485X&volume=95&issue=1;
                 http://www.math.utah.edu/pub/tex/bib/computing.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/article/10.1007/s00607-013-0300-x",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing",
  journal-URL =  "http://link.springer.com/journal/607",
  remark =       "Special Issue on ESCO2012.",
}

@Article{Chudoba:2013:UPS,
  author =       "R. Chudoba and V. Sad{\'\i}lek and R. Rypl and M.
                 Vorechovsk{\'y}",
  title =        "Using {Python} for scientific computing: Efficient and
                 flexible evaluation of the statistical characteristics
                 of functions with multivariate random inputs",
  journal =      j-COMP-PHYS-COMM,
  volume =       "184",
  number =       "2",
  pages =        "414--427",
  month =        feb,
  year =         "2013",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2012.08.021",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Nov 2 11:55:56 MDT 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465512003086",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Chun:2013:GPP,
  author =       "Kyungwon Chun and Huioon Kim and Hyounggyu Kim and Kil
                 Su Jung and Youngjoo Chung",
  title =        "{GMES}: a {Python} package for solving {Maxwell}'s
                 equations using the {FDTD} method",
  journal =      j-COMP-PHYS-COMM,
  volume =       "184",
  number =       "4",
  pages =        "1272--1279",
  month =        apr,
  year =         "2013",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2012.12.011",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 4 10:51:11 MST 2013",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465512004079",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Book{Cuesta:2013:PDA,
  author =       "Hector Cuesta",
  title =        "Practical data analysis",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "360",
  year =         "2013",
  ISBN =         "1-78328-099-9 (print), 1-68015-361-7 (e-book),
                 1-78328-100-6",
  ISBN-13 =      "978-1-78328-099-5 (print), 978-1-68015-361-3 (e-book),
                 978-1-78328-100-8",
  LCCN =         "QA76.9.S88 D683 2013eb",
  bibdate =      "Wed Oct 14 07:37:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9781783280995",
  abstract =     "Each chapter of the book quickly introduces a key
                 'theme' of Data Analysis, before immersing you in the
                 practical aspects of each theme. You'll learn quickly
                 how to perform all aspects of Data Analysis. Practical
                 Data Analysis is a book ideal for home and small
                 business users who want to slice and dice the data they
                 have on hand with minimum hassle.",
  acknowledgement = ack-nhfb,
  subject =      "System design; System analysis; Data structures
                 (Computer science); Databases; Data structures
                 (Computer science); Databases.; System analysis.;
                 System design.",
  tableofcontents = "Credits \\
                 Foreword \\
                 About the Author \\
                 Acknowledgments \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Table of Contents \\
                 Preface \\
                 1: Getting Started \\
                 Computer science \\
                 Artificial intelligence (AI) \\
                 Machine Learning (ML) \\
                 Statistics \\
                 Mathematics \\
                 Knowledge domain \\
                 Data, information, and knowledge \\
                 The nature of data \\
                 The data analysis process \\
                 The problem \\
                 Data preparation \\
                 Data exploration \\
                 Predictive modeling \\
                 Visualization of results \\
                 Quantitative versus qualitative data analysis \\
                 Importance of data visualization \\
                 What about big data? \\
                 Sensors and cameras \\
                 Social networks analysis \\
                 Tools and toys for this book \\
                 Why Python? \\
                 Why mlpy? \\
                 Why D3.js? \\
                 Why MongoDB? \\
                 Summary \\
                 2: Working with Data \\
                 Data sources \\
                 Open data \\
                 Text files \\
                 Excel files \\
                 SQL databases \\
                 NoSQL databases \\
                 Multimedia \\
                 Web scraping \\
                 Data scrubbing \\
                 Statistical methods \\
                 Text parsing \\
                 Data transformation \\
                 Data formats \\
                 CSV \\
                 Parsing a CSV file with the csv module \\
                 Parsing a CSV file using NumPy \\
                 JSON \\
                 Parsing a JSON file using json module \\
                 XML \\
                 Parsing an XML file in Python using xml module \\
                 YAML \\
                 Getting started with OpenRefine \\
                 Text facet \\
                 Clustering \\
                 Text filters \\
                 Numeric facets \\
                 Transforming data \\
                 Exporting data \\
                 Operation history \\
                 Summary \\
                 3: Data Visualization \\
                 Data-Driven Documents (D3) \\
                 HTML \\
                 DOM \\
                 CSS \\
                 JavaScript \\
                 SVG \\
                 Getting started with D3.js \\
                 Bar chart \\
                 Pie chart \\
                 Scatter plot \\
                 Single line chart \\
                 Multi-line chart \\
                 Interaction and animation \\
                 Summary \\
                 4: Text Classification \\
                 Learning and classification \\
                 Bayesian classification \\
                 Na{\"i}ve Bayes algorithm \\
                 E-mail subject line tester \\
                 The algorithm \\
                 Classifier accuracy \\
                 Summary \\
                 5: Similarity-based Image Retrieval \\
                 Image similarity search \\
                 Dynamic time warping (DTW) \\
                 Processing the image dataset \\
                 Implementing DTW \\
                 Analyzing the results \\
                 Summary \\
                 6: Simulation of Stock Prices \\
                 Financial time series \\
                 Random walk simulation \\
                 Monte Carlo methods \\
                 Generating random numbers \\
                 Implementation in D3.js \\
                 Summary \\
                 7: Predicting Gold Prices \\
                 Working with the time series data \\
                 Components of a time series \\
                 Smoothing the time series \\
                 The data \\
                 historical gold prices \\
                 Nonlinear regression \\
                 Kernel ridge regression \\
                 Smoothing the gold prices time series \\
                 Predicting in the smoothed time series \\
                 Contrasting the predicted value \\
                 Summary \\
                 8: Working with Support Vector Machines \\
                 Understanding the multivariate dataset \\
                 Dimensionality reduction \\
                 Linear Discriminant Analysis \\
                 Principal Component Analysis \\
                 Getting started with support vector machine \\
                 Kernel functions \\
                 Double spiral problem \\
                 SVM implemented on mlpy \\
                 Summary \\
                 9: Modeling Infectious Disease with Cellular Automata
                 \\
                 Introduction to epidemiology \\
                 The epidemiology triangle \\
                 The epidemic models \\
                 The SIR model \\
                 Solving ordinary differential equation for the SIR
                 model with SciPy \\
                 The SIRS model \\
                 Modelling with cellular automata cell, state, grid, and
                 neighborhood",
}

@Book{DiPierro:2013:AAP,
  author =       "Massimo {Di Pierro}",
  title =        "Annotated algorithms in {Python}: with applications in
                 physics, biology, and finance",
  publisher =    "Experts4Solutions",
  address =      "Lexington, KY, USA",
  pages =        "388",
  year =         "2013",
  ISBN =         "0-9911604-0-1 (paperback)",
  ISBN-13 =      "978-0-9911604-0-2 (paperback)",
  LCCN =         "QA76.73.P98 D57 2013",
  bibdate =      "Mon Feb 16 11:12:03 MST 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 algorithms; Computer algorithms; Python (Computer
                 program language)",
  tableofcontents = "Introduction \\
                 Overview of the Python language \\
                 Theory of algorithms \\
                 Numerical algorithms \\
                 Probability and statistics \\
                 Random numbers and distributions \\
                 Monte Carlo simulations \\
                 Parallel algorithms",
}

@Article{Hu:2013:UPH,
  author =       "Helen H. Hu and Tricia D. Shepherd",
  title =        "Using {POGIL} to help students learn to program",
  journal =      j-TOCE,
  volume =       "13",
  number =       "3",
  pages =        "13:1--13:??",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/2499947.2499950",
  ISSN =         "1946-6226",
  bibdate =      "Fri Aug 16 07:53:11 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/toce;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toce.bib",
  abstract =     "POGIL has been successfully implemented in a
                 scientific computing course to teach science students
                 how to program in Python. Following POGIL guidelines,
                 the authors have developed guided inquiry activities
                 that lead student teams to discover and understand
                 programming concepts. With each iteration of the
                 scientific computing course, the authors have refined
                 the activities and learned how to better adapt POGIL
                 for the computer science classroom. This article
                 details how POGIL activities differ from both
                 traditional computer science labs and other
                 active-learning pedagogies. Background is provided on
                 POGIL's effectiveness. The article then includes a full
                 description of how POGIL activities were used in the
                 scientific computing course, as well as an example
                 POGIL activity on recursion. Discussion is provided on
                 how to facilitate and develop POGIL activities. Quotes
                 from student evaluations and an assessment on how well
                 students learned to program are provided.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "ACM Transactions on Computing Education",
}

@Article{Johansson:2013:QPF,
  author =       "J. R. Johansson and P. D. Nation and Franco Nori",
  title =        "{QuTiP 2}: a {Python} framework for the dynamics of
                 open quantum systems",
  journal =      j-COMP-PHYS-COMM,
  volume =       "184",
  number =       "4",
  pages =        "1234--1240",
  month =        apr,
  year =         "2013",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/j.cpc.2012.11.019",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 4 10:51:11 MST 2013",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465512003955",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Book{Kiusalaas:2013:NME,
  author =       "Jaan Kiusalaas",
  title =        "Numerical methods in engineering with {Python 3}",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "xi + 423",
  year =         "2013",
  ISBN =         "1-107-03385-3",
  ISBN-13 =      "978-1-107-03385-6",
  LCCN =         "TA345 .K584 2013",
  MRclass =      "65-01",
  MRnumber =     "3026375",
  bibdate =      "Tue May 27 12:31:32 MDT 2014",
  bibsource =    "clas.caltech.edu:210/INNOPAC;
                 http://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This book is an introduction to numerical methods for
                 students in engineering. It covers solution of
                 equations, interpolation and data fitting, solution of
                 differential equations, eigenvalue problems and
                 optimisation. The algorithms are implemented in Python
                 3, a high-level programming language that rivals MATLAB
                 in readability and ease of use. All methods include
                 programs showing how the computer code is utilised in
                 the solution of problems. The book is based on
                 Numerical Methods in Engineering with Python, which
                 used Python 2. This new edition demonstrates the use of
                 Python 3 and includes an introduction to the Python
                 plotting package Matplotlib. This comprehensive book is
                 enhanced by the addition of numerous examples and
                 problems throughout.",
  acknowledgement = ack-nhfb,
  subject =      "Engineering mathematics; Data processing; Python
                 (Computer program language)",
  tableofcontents = "1. Introduction to Python \\
                 2. Systems of linear algebraic equations \\
                 3. Interpolation and curve fitting \\
                 4. Roots of equations \\
                 5. Numerical differentiation \\
                 6. Numerical integration \\
                 7. Initial value problems \\
                 8. Two-point boundary value problems \\
                 9. Symmetric matrix eigenvalue problems \\
                 10. Introduction to optimization",
}

@Book{Lanaro:2013:PHP,
  author =       "Gabriele Lanaro",
  title =        "{Python} high performance programming: boost the
                 performance of your {Python} programs using advanced
                 techniques",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "95",
  year =         "2013",
  ISBN =         "1-78328-845-0 (paperback), 1-306-25426-4 (e-book)",
  ISBN-13 =      "978-1-78328-845-8 (paperback), 978-1-306-25426-7
                 (e-book)",
  LCCN =         "QA76.73 .P98",
  bibdate =      "Sat Oct 24 07:05:54 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.tech.safaribooksonline.de/9781783288458",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Benchmarking and Profiling \\
                 Designing your application \\
                 Writing tests and benchmarks \\
                 Timing your benchmark \\
                 Finding bottlenecks with cProfile \\
                 Profile line by line with line_profiler \\
                 Optimizing our code \\
                 The dis module \\
                 Profiling memory usage with memory_profiler \\
                 Performance tuning tips for pure Python code \\
                 Summary \\
                 2. Fast Array Operations with NumPy \\
                 Getting started with NumPy \\
                 Creating arrays \\
                 Accessing arrays \\
                 Broadcasting \\
                 Mathematical operations \\
                 Calculating the Norm \\
                 Rewriting the particle simulator in NumPy \\
                 Reaching optimal performance with numexpr \\
                 Summary \\
                 3. C Performance with Cython \\
                 Compiling Cython extensions \\
                 Adding static types \\
                 Variables \\
                 Functions \\
                 Classes \\
                 Sharing declarations \\
                 Working with arrays \\
                 C arrays and pointers \\
                 NumPy arrays \\
                 Typed memoryviews \\
                 Particle simulator in Cython \\
                 Profiling Cython \\
                 Summary \\
                 4. Parallel Processing \\
                 Introduction to parallel programming \\
                 The multiprocessing module \\
                 The Process and Pool classes \\
                 Monte Carlo approximation of pi \\
                 Synchronization and locks \\
                 IPython parallel \\
                 Direct interface \\
                 Task-based interface \\
                 Parallel Cython with OpenMP \\
                 Summary \\
                 Index",
}

@Book{Lutz:2013:LP,
  author =       "Mark Lutz",
  title =        "Learning {Python}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  edition =      "Fifth",
  pages =        "l + 1540",
  year =         "2013",
  ISBN =         "1-4493-5573-0",
  ISBN-13 =      "978-1-4493-5573-9",
  LCCN =         "QA76.73.P98 L877 2013",
  bibdate =      "Fri Nov 29 06:32:23 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquestcombo.safaribooksonline.com/9781449355722",
  abstract =     "Describes the features of the Python programming
                 language, covering such topics as types and operations,
                 statements and syntax, functions, modules, classes and
                 OOP, and exceptions and tools. - Publisher.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
  tableofcontents = "A Python Q and A session \\
                 How Python runs programs \\
                 How you run programs \\
                 Introducing Python object types \\
                 Numeric types \\
                 The dynamic typing interlude \\
                 String fundamentals \\
                 Lists and dictionaries \\
                 Tuples, files, and everything else \\
                 Introducing Python statements \\
                 Assignments, expressions, and prints \\
                 if tests and syntax rules \\
                 while and for loops \\
                 Iterations and comprehensions \\
                 The documentation interlude \\
                 Function basics \\
                 Scopes \\
                 Arguments \\
                 Advanced function topics \\
                 Comprehensions and generations \\
                 The benchmarking interlude \\
                 Modules : the big picture \\
                 Module coding basics \\
                 Module packages \\
                 Advanced module topics \\
                 OOP : the big picture \\
                 Class coding basics \\
                 A more realistic example \\
                 Class coding details \\
                 Operator overloading \\
                 Designing with classes \\
                 Advanced class topics \\
                 Exception basics \\
                 Exception coding details \\
                 Exception objects \\
                 Designing with exceptions \\
                 Unicode and byte strings \\
                 Managed attributes \\
                 Decorators \\
                 Metaclasses \\
                 All good things",
}

@Article{Mertz:2013:GIP,
  author =       "Andrew Mertz and William Slough",
  title =        "A gentle introduction to {Python\TeX}",
  journal =      j-TUGboat,
  volume =       "34",
  number =       "3",
  pages =        "302--312",
  year =         "2013",
  ISSN =         "0896-3207",
  ISSN-L =       "0896-3207",
  bibdate =      "Sat May 23 10:53:04 MDT 2015",
  bibsource =    "http://tug.org/tug2013/;
                 http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib
                 http://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  URL =          "http://www.tug.org/TUGboat/tb34-3/tb108mertz.pdf",
  acknowledgement = ack-bnb # " and " # ack-nhfb,
  issue =        "108",
  journal-URL =  "http://www.tug.org/TUGboat/",
  remark =       "TUG 2013 Proceedings.",
}

@Article{Mullner:2013:FFH,
  author =       "Daniel M{\"u}llner",
  title =        "{\tt fastcluster}: Fast Hierarchical, Agglomerative
                 Clustering Routines for {R} and {Python}",
  journal =      j-J-STAT-SOFT,
  volume =       "53",
  number =       "9",
  pages =        "??--??",
  month =        may,
  year =         "2013",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  bibdate =      "Wed Mar 5 10:15:54 MST 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v53/i09",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Statistical Software",
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2011-10-01; Accepted 2012-12-05",
}

@Book{OConnor:2013:VPC,
  author =       "T. J. O'Connor",
  title =        "Violent {Python}: a cookbook for hackers, forensic
                 analysts, penetration testers and security engineers",
  publisher =    pub-SYNGRESS,
  address =      pub-SYNGRESS:adr,
  pages =        "xxv + 262",
  year =         "2013",
  ISBN =         "1-59749-957-9 (paperback)",
  ISBN-13 =      "978-1-59749-957-6 (paperback)",
  LCCN =         "QA76.73.P98 O26 2013",
  bibdate =      "Wed Oct 14 07:37:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Python is a hacker's language. With its decreased
                 complexity, increased efficiency, limitless third-party
                 libraries, and low bar to entry, Python provides an
                 excellent development platform to build your own
                 offensive tools. If you are running Mac OS X or Linux,
                 odds are it is already installed on your system. While
                 a wealth of offensive tools already exist, learning
                 Python can help you with the difficult cases where
                 those tools fail.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "1: Introduction \\
                 Introduction: A Penetration Test with Python \\
                 Setting Up Your Development Environment \\
                 Installing Third Party Libraries \\
                 Interpreted Python Versus Interactive Python \\
                 The Python Language \\
                 Variables \\
                 Strings \\
                 Lists \\
                 Dictionaries \\
                 Networking \\
                 Selection \\
                 Exception Handling \\
                 Functions \\
                 Iteration \\
                 File I/O \\
                 Sys Module \\
                 OS Module \\
                 Your First Python Programs \\
                 Setting the Stage for Your First Python Program: The
                 Cuckoo's Egg \\
                 Your First Program, a UNIX Password Cracker \\
                 Setting the Stage for Your Second Program: Using Evil
                 for Good \\
                 Your Second Program, a Zip-File Password Cracker \\
                 Chapter Wrap-Up \\
                 References \\
                 2: Penetration Testing with Python \\
                 Introduction: The Morris Worm---Would it Work Today?
                 \\
                 Building a Port Scanner \\
                 TCP Full Connect Scan \\
                 Application Banner Grabbing \\
                 Threading the Scan \\
                 Integrating the Nmap Port Scanner \\
                 Building an SSH BotNet with Python \\
                 Interacting with SSH Through Pexpect \\
                 Brute Forcing SSH Passwords with Pxssh \\
                 Exploiting SSH Through Weak Private Keys \\
                 Constructing the SSH Botnet \\
                 Mass Compromise by Bridging FTP and Web \\
                 Building an Anonymous FTP Scanner with Python \\
                 Using Ftplib to Brute Force FTP User Credentials \\
                 Searching for Web Pages on the FTP Server \\
                 Adding a Malicious Inject to Web Pages \\
                 Bringing the Entire Attack Together \\
                 Conflicker, Why Trying Hard is Always Good Enough \\
                 Attacking the Windows SMB Service with Metasploit \\
                 Writing Python to Interact with Metasploit \\
                 Remote Process Execution Brute Force \\
                 Putting it Back Together to Build Our Own Conflicker
                 \\
                 Writing Your Own Zero-Day Proof of Concept Code \\
                 Stack-Based Buffer Overflow Attacks \\
                 Adding the Key Elements of the Attack \\
                 Sending the Exploit \\
                 Assembling the Entire Exploit Script \\
                 Chapter Wrap-Up \\
                 References \\
                 3: Forensic Investigations with Python \\
                 Introduction: How Forensics Solved the BTK Murders \\
                 Where Have You Been? Analysis of Wireless Access Points
                 in the Registry \\
                 Using WinReg to Read the Windows Registry \\
                 Using Mechanize to Submit the MAC Address to Wigle \\
                 Using Python to Recover Deleted Items in the Recycle
                 Bin \\
                 Using the OS Module to Find Deleted Items \\
                 Python to Correlate SID to User \\
                 Metadata \\
                 Using PyPDF to Parse PDF Metadata \\
                 Understanding Exif Metadata \\
                 Downloading Images with BeautifulSoup \\
                 Reading Exif Metadata from Images with the Python
                 Imaging Library \\
                 Investigating Application Artifacts with Python \\
                 Understanding the Skype Sqlite3 Database \\
                 Using Python and Sqlite3 to Automate Skype Database
                 Queries \\
                 Parsing Firefox Sqlite3 Databases with Python \\
                 Investigating iTunes Mobile Backups with Python \\
                 Chapter Wrap-Up \\
                 References \\
                 4: Network Traffic Analysis with Python \\
                 Introduction: Operation Aurora and How the Obvious was
                 Missed \\
                 Where is that IP Traffic Headed?---A Python Answer \\
                 Using PyGeoIP to Correlate IP to Physical Locations \\
                 Using Dpkt to Parse Packets \\
                 Using Python to Build a Google Map \\
                 Is Anonymous Really Anonymous? Analyzing LOIC Traffic
                 \\
                 Using Dpkt to Find the LOIC Download \\
                 Parsing IRC Commands to the Hive \\
                 Identifying the DDoS Attack in Progress \\
                 How H. D. Moore Solved the Pentagon's Dilemma \\
                 Understanding the TTL Field \\
                 Parsing TTL Fields with Scapy \\
                 Storm's Fast-Flux and Conficker's Domain-Flux \\
                 Does Your DNS Know Something You Don't? \\
                 Using Scapy to Parse DNS Traffic \\
                 Detecting Fast Flux Traffic with Scapy \\
                 Detecting Domain Flux Traffic with Scapy \\
                 Kevin Mitnick and TCP Sequence Prediction \\
                 Your Very Own TCP Sequence Prediction \\
                 Crafting a SYN Flood with Scapy \\
                 Calculating TCP Sequence Numbers \\
                 Spoofing the TCP Connection \\
                 Foiling Intrusion Detection Systems with Scapy \\
                 Chapter Wrap-Up \\
                 References \\
                 ch. 5: Wireless Mayhem with Python \\
                 Introduction: Wireless (IN)Security and the Iceman \\
                 Setting up Your Wireless Attack Environment \\
                 Testing Wireless Capture with Scapy \\
                 Installing Python Bluetooth Packages \\
                 The Wall of Sheep---Passively Listening to Wireless
                 Secrets \\
                 Using Python Regular Expressions to Sniff Credit Cards
                 \\
                 Sniffing Hotel Guests \\
                 Building a Wireless Google Key Logger \\
                 Sniffing FTP Credentials \\
                 Where Has Your Laptop Been? Python Answers \\
                 Listening for 802.11 Probe Requests \\
                 Finding Hidden Network 802.11 Beacons \\
                 De-cloaking Hidden 802.11 Networks \\
                 Intercepting and Spying on UAVs with Python \\
                 Intercepting the Traffic, Dissecting the Protocol \\
                 Crafting 802.11 Frames with Scapy \\
                 Finalizing the Attack, Emergency Landing The UAV \\
                 Detecting FireSheep \\
                 Understanding Wordpress Session Cookies \\
                 Herd the Sheep---Catching Wordpress Cookie Reuse \\
                 Stalking with Bluetooth and Python \\
                 Intercepting Wireless Traffic to Find Bluetooth
                 Addresses \\
                 Scanning Bluetooth RFCOMM Channels \\
                 Using the Bluetooth Service Discovery Protocol \\
                 Taking Over a Printer with Python ObexFTP \\
                 BlueBugging a Phone with Python \\
                 Chapter Wrap-Up \\
                 References \\
                 6: Web Recon with Python \\
                 Introduction: Social Engineering Today \\
                 Recon Prior to Attack \\
                 Using the Mechanize Library to Browse the Internet \\
                 Anonymity \\
                 Adding Proxies, User-Agents, Cookies \\
                 Finalizing Our AnonBrowser into a Python Class \\
                 Scraping Web Pages with AnonBrowser \\
                 Parsing HREF Links with Beautiful Soup \\
                 Mirroring Images with Beautiful Soup \\
                 Research, Investigate, Discovery \\
                 Interacting with the Google API in Python \\
                 Parsing Tweets with Python \\
                 Pulling Location Data Out of Tweets \\
                 Parsing Interests from Twitter Using Regular
                 Expressions \\
                 Anonymous Email \\
                 Mass Social Engineering \\
                 Using Smtplib to Email Targets \\
                 Spear Phishing with Smtplib \\
                 Chapter Wrap-Up \\
                 References \\
                 7: Antivirus Evasion with Python \\
                 Introduction: Flame On! \\
                 Evading Antivirus Programs \\
                 Verifying Evasion \\
                 Wrap Up \\
                 References",
}

@Article{Politz:2013:PFM,
  author =       "Joe Gibbs Politz and Alejandro Martinez and Matthew
                 Milano and Sumner Warren and Daniel Patterson and
                 Junsong Li and Anand Chitipothu and Shriram
                 Krishnamurthi",
  title =        "{Python}: the full monty",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "10",
  pages =        "217--232",
  month =        oct,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2544173.2509536",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 9 09:19:33 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  note =         "OOPSLA '13 conference proceedings.",
  abstract =     "We present a small-step operational semantics for the
                 Python programming language. We present both a core
                 language for Python, suitable for tools and proofs, and
                 a translation process for converting Python source to
                 this core. We have tested the composition of
                 translation and evaluation of the core for conformance
                 with the primary Python implementation, thereby giving
                 confidence in the fidelity of the semantics. We briefly
                 report on the engineering of these components. Finally,
                 we examine subtle aspects of the language, identifying
                 scope as a pervasive concern that even impacts features
                 that might be considered orthogonal.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Book{Richardson:2013:GSB,
  author =       "Matt Richardson",
  title =        "Getting started with {BeagleBone}",
  publisher =    "Maker Media",
  address =      "Sebastopol, CA",
  pages =        "xiii + 126",
  year =         "2013",
  ISBN =         "1-4493-4537-9 (paperback), 1-4493-4536-0,
                 1-4493-4535-2 (e-book), 1-4493-4533-6 (e-book)",
  ISBN-13 =      "978-1-4493-4537-2 (paperback), 978-1-4493-4536-5,
                 978-1-4493-4535-8 (e-book), 978-1-4493-4533-4
                 (e-book)",
  LCCN =         "TK7895.E42 R43 2013",
  bibdate =      "Thu Feb 26 14:08:28 MST 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/linux.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  remark =       "At head of title on cover: Make: the magazine for
                 makers.",
  subject =      "BeagleBone (Computer); Embedded computer systems;
                 Electronics; Amateurs' manuals; Linux; Python (Computer
                 program language); JavaScript (Computer program
                 language)",
}

@Book{Rossant:2013:LII,
  author =       "Cyrille Rossant",
  title =        "Learning {IPython} for interactive computing and data
                 visualization: Learn {IPython} for interactive {Python}
                 programming, high-performance numerical computing, and
                 data visualization",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "iv + 123",
  year =         "2013",
  ISBN =         "1-78216-993-8 (paperback), 1-78216-994-6 (e-book),
                 1-299-54508-4 (e-book)",
  ISBN-13 =      "978-1-78216-993-2 (paperback), 978-1-78216-994-9
                 (e-book), 978-1-299-54508-3 (e-book)",
  LCCN =         "QA76.73.P98 .R677 2013",
  bibdate =      "Sat Mar 21 07:03:35 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Open source: community experience distilled",
  acknowledgement = ack-nhfb,
  author-dates = "1985--",
  subject =      "Python (langage de programmation).; Python (Computer
                 program language); Python (Computer program language)",
}

@Book{Sander:2013:ESP,
  author =       "Leonard M. (Leonard Michael) Sander",
  title =        "Equilibrium statistical physics: with computer
                 simulations in {Python}",
  publisher =    "CreateSpace Independent Publishing",
  address =      "North Charleston, SC, USA",
  pages =        "xii + 321",
  year =         "2013",
  ISBN =         "1-4910-6651-2",
  ISBN-13 =      "978-1-4910-6651-5",
  LCCN =         "QC174.8 .S36 2013",
  bibdate =      "Sat Aug 30 09:09:15 MDT 2014",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/jstatphys2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Statistical physics; Statistical physics.",
}

@Book{Severance:2013:PIE,
  author =       "Charles Severance",
  title =        "{Python} for informatics: exploring information",
  publisher =    "CreateSpace Independent Publishing",
  address =      "North Charleston, SC, USA",
  pages =        "xii + 224 + 12",
  year =         "2013",
  ISBN =         "1-4923-3924-5",
  ISBN-13 =      "978-1-4923-3924-3",
  LCCN =         "QA76.73.P98 S48 2013b",
  bibdate =      "Wed Oct 14 08:00:43 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "Why should you learn to write programs \\
                 Variables, expressions and statements \\
                 Conditional execution \\
                 Functions \\
                 Iteration \\
                 Strings \\
                 Files \\
                 Lists \\
                 Dictionaries \\
                 Tuples \\
                 Regular expressions \\
                 Networked programs \\
                 Using Web Services \\
                 Using databases and Structured Query Language (SQL) \\
                 Visualizing data \\
                 Automating common tasks on your computer \\
                 Python programming on Windows \\
                 Python programming on Macintosh",
}

@Article{Stefik:2013:EIP,
  author =       "Andreas Stefik and Susanna Siebert",
  title =        "An Empirical Investigation into Programming Language
                 Syntax",
  journal =      j-TOCE,
  volume =       "13",
  number =       "4",
  pages =        "19:1--19:??",
  month =        nov,
  year =         "2013",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/2534973",
  ISSN =         "1946-6226",
  bibdate =      "Wed Nov 13 17:27:51 MST 2013",
  bibsource =    "http://www.acm.org/pubs/toce;
                 http://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toce.bib",
  abstract =     "Recent studies in the literature have shown that
                 syntax remains a significant barrier to novice computer
                 science students in the field. While this syntax
                 barrier is known to exist, whether and how it varies
                 across programming languages has not been carefully
                 investigated. For this article, we conducted four
                 empirical studies on programming language syntax as
                 part of a larger analysis into the, so called,
                 programming language wars. We first present two surveys
                 conducted with students on the intuitiveness of syntax,
                 which we used to garner formative clues on what words
                 and symbols might be easy for novices to understand. We
                 followed up with two studies on the accuracy rates of
                 novices using a total of six programming languages:
                 Ruby, Java, Perl, Python, Randomo, and Quorum. Randomo
                 was designed by randomly choosing some keywords from
                 the ASCII table (a metaphorical placebo). To our
                 surprise, we found that languages using a more
                 traditional C-style syntax (both Perl and Java) did not
                 afford accuracy rates significantly higher than a
                 language with randomly generated keywords, but that
                 languages which deviate (Quorum, Python, and Ruby) did.
                 These results, including the specifics of syntax that
                 are particularly problematic for novices, may help
                 teachers of introductory programming courses in
                 choosing appropriate first languages and in helping
                 students to overcome the challenges they face with
                 syntax.",
  acknowledgement = ack-nhfb,
  articleno =    "19",
  fjournal =     "ACM Transactions on Computing Education",
}

@Book{Stone:2013:BRT,
  author =       "James V. Stone",
  title =        "{Bayes}' rule: a tutorial introduction to {Bayesian}
                 analysis",
  publisher =    "Sebtel Press",
  address =      "Lexington, KY, USA",
  pages =        "170",
  year =         "2013",
  ISBN =         "0-9563728-4-8 (paperback)",
  ISBN-13 =      "978-0-9563728-4-0 (paperback)",
  LCCN =         "QA279.5 .S766 2013",
  bibdate =      "Mon Sep 28 09:15:25 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/jrss-a-2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Discovered by an 18th century mathematician and
                 preacher, Bayes' rule is a cornerstone of modern
                 probability theory. In this richly illustrated book, a
                 range of accessible examples is used to show how Bayes'
                 rule is actually a natural consequence of commonsense
                 reasoning. Bayes' rule is derived using intuitive
                 graphical representations of probability, and Bayesian
                 analysis is applied to parameter estimation using the
                 Matlab and online Python programs provided. The
                 tutorial style of writing, combined with a
                 comprehensive glossary, makes this an ideal primer for
                 the novice who wishes to become familiar with the basic
                 principles of Bayesian analysis.",
  acknowledgement = ack-nhfb,
  subject =      "Bayesian statistical decision theory; Bayesian
                 statistical decision theory.",
  tableofcontents = "An introduction to Bayes' rule \\
                 Bayes' rule in pictures \\
                 Discrete parameter values \\
                 Continuous parameter values \\
                 Gaussian parameter estimation \\
                 A bird's eye view of Bayes' rule \\
                 Bayesian wars \\
                 Appendices. A. Glossary \\
                 B. Mathematical symbols \\
                 C. The rules of probability \\
                 D. Probability density functions \\
                 E. The binomial distribution \\
                 F. The Gaussian distribution \\
                 G. Least-squares estimation \\
                 H. Reference priors \\
                 I. Matlab code",
}

@Article{Suchojad:2013:ZAE,
  author =       "Dariusz Suchojad",
  title =        "{Zato} --- Agile {ESB}, {SOA}, {REST} and Cloud
                 integrations in {Python}",
  journal =      j-LINUX-J,
  volume =       "2013",
  number =       "235",
  pages =        "2:1--2:??",
  month =        nov,
  year =         "2013",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Mon Dec 9 07:55:16 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Integrate applications in an elegant and agile
                 manner.",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Book{Sweigart:2013:HSC,
  author =       "Al Sweigart",
  title =        "Hacking Secret Ciphers with {Python}: [a beginner's
                 guide to cryptography and computer programming with
                 {Python}]",
  publisher =    "CreateSpace Independent Publishing",
  address =      "North Charleston, SC, USA",
  pages =        "436",
  year =         "2013",
  ISBN =         "1-4826-1437-5",
  ISBN-13 =      "978-1-4826-1437-4",
  LCCN =         "????",
  bibdate =      "Wed Oct 14 08:40:05 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://swbplus.bsz-bw.de/bsz40205301Xinh.htm",
  acknowledgement = ack-nhfb,
  tableofcontents = "Making paper cryptography tools \\
                 Installing Python \\
                 The interactive shell \\
                 Strings and writing programs \\
                 The reverse cipher \\
                 The Caesar cipher \\
                 Hacking the Caesar cipher with the brute-force
                 technique \\
                 Encrypting with the transposition cipher \\
                 Decrypting with the transposition cipher \\
                 Programming a program to test our program \\
                 Encrypting and decrypting files \\
                 Detecting English programmatically \\
                 Hacking the transposition cipher \\
                 Modular arithmetic with the multiplicative and affine
                 ciphers \\
                 The affine cipher \\
                 Hacking the affine cipher \\
                 The simple substitution cipher \\
                 Hacking the simple substitution cipher \\
                 The vigenere cipher \\
                 Frequency analysis \\
                 Hacking the vigenere cipher \\
                 The one-time pad cipher \\
                 Finding prime numbers \\
                 Public key cryptography adn the RSA cipher",
}

@Article{Wu:2013:HSC,
  author =       "Youfeng Wu",
  title =        "{HW\slash SW} co-designed acceleration of dynamic
                 languages",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "5",
  pages =        "1--2",
  month =        may,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145/2499369.2465555",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:32 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Dynamic Programming Languages, such as Java,
                 JavaScript, PHP, Perl, Python, Ruby, etc., are
                 dominating languages for programming the web. HW/SW
                 co-designed virtual machine can significantly
                 accelerate their executions by transparently leveraging
                 internal HW features via an internal compiler. We also
                 argue for a common API to interface dynamic languages
                 with the HW/SW co-designed virtual machine, so that a
                 single internal compiler can accelerate all major
                 dynamic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "GPCE '12 conference proceedings.",
}

@Book{Adams:2014:LPD,
  author =       "Chad Adams",
  title =        "Learning {Python} data visualization: master how to
                 build dynamic {HTML5}-ready {SVG} charts using {Python}
                 and the {\tt pygal} library",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "iii + 195",
  year =         "2014",
  ISBN =         "1-78355-333-2, 1-78355-334-0 (e-book)",
  ISBN-13 =      "978-1-78355-333-4, 978-1-78355-334-1 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 06:24:24 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  URL =          "http://proquest.tech.safaribooksonline.de/9781783553334",
  acknowledgement = ack-nhfb,
  remark =       "- Description based on online resource; title from PDF
                 title page (ebrary, viewed September 5, 2014).",
  subject =      "Python (Computer program language); Command languages
                 (Computer science); Web sites; Authoring programs",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Setting Up Your Development Environment \\
                 Introduction \\
                 Setting up Python on Windows \\
                 Installation \\
                 Exploring the Python installation in Windows \\
                 Python editors \\
                 Setting up Python on Mac OS X \\
                 Setting up Python on Ubuntu \\
                 Summary \\
                 2. Python Refresher \\
                 Python basics \\
                 Importing modules and libraries \\
                 Input and output \\
                 Generating an image \\
                 Creating SVG graphics using svgwrite \\
                 For Windows users using VSPT \\
                 For Eclipse or other editors on Windows \\
                 For Eclipse on Mac and Linux \\
                 Summary \\
                 3. Getting Started with pygal \\
                 Why use pygal? \\
                 Installing pygal using pip \\
                 Installing pygal using Python Tools for Visual Studio
                 \\
                 Building a line chart \\
                 Stacked line charts \\
                 Simple bar charts \\
                 Stacked bar charts \\
                 Horizontal bar charts \\
                 XY charts \\
                 Scatter plots \\
                 DateY charts \\
                 Summary \\
                 4. Advanced Charts \\
                 Pie charts \\
                 Stacked pie charts \\
                 Radar charts \\
                 Box plots \\
                 Dot charts \\
                 Funnel charts \\
                 Gauge charts \\
                 Pyramid charts \\
                 Worldmap charts \\
                 Summary \\
                 5. Tweaking pygal \\
                 Country charts \\
                 Parameters \\
                 Legend at the bottom \\
                 Legend settings \\
                 Label settings \\
                 Chart title settings \\
                 Displaying no data \\
                 pygal themes \\
                 Summary \\
                 6. Importing Dynamic Data \\
                 Pulling data from the Web \\
                 The XML refresher \\
                 RSS and the ATOM \\
                 Understanding HTTP \\
                 Using HTTP in Python \\
                 Parsing XML in Python with HTTP \\
                 About JSON \\
                 Parsing JSON in Python with HTTP \\
                 About JSONP \\
                 JSONP with Python \\
                 Summary \\
                 7. Putting It All Together \\
                 Chart usage for a blog \\
                 Getting our data in order \\
                 Converting date strings to dates \\
                 Using strptime \\
                 Saving the output as a counted array \\
                 Counting the array \\
                 Python modules \\
                 Building the main method \\
                 Modifying our RSS to return values \\
                 Building our chart module \\
                 Building a portable configuration for our chart \\
                 Setting up our chart for data \\
                 Configuring our main function to pass data \\
                 Project improvements \\
                 Summary \\
                 8. Further Resources \\
                 The matplotlib library \\
                 Installing the matplotlib library \\
                 matplotlib's library download page \\
                 Creating simple matplotlib charts \\
                 Plotly \\
                 Pyvot \\
                 Summary \\
                 A. References and Resources \\
                 Links for help and support \\
                 Charting libraries \\
                 Editors and IDEs for Python \\
                 Other libraries and Python alternative shells \\
                 Index",
}

@Book{Arbuckle:2014:LPT,
  author =       "Daniel Arbuckle",
  title =        "Learning {Python} testing: a straightforward and easy
                 approach to testing your {Python} projects",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  edition =      "Second",
  pages =        "v + 180",
  year =         "2014",
  ISBN =         "1-78355-321-9, 1-78355-322-7",
  ISBN-13 =      "978-1-78355-321-1, 978-1-78355-322-8",
  LCCN =         "QA76.73.P98 A728 2014",
  bibdate =      "Sat Oct 24 06:12:58 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science); Object-oriented
                 programming (Computer science); Python (Computer
                 program language)",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Python and Testing \\
                 Testing for fun and profit \\
                 Levels of testing \\
                 Unit testing \\
                 Integration testing \\
                 System testing \\
                 Acceptance testing \\
                 Regression testing \\
                 Test-driven development \\
                 You'll need Python \\
                 Summary \\
                 2. Working with doctest \\
                 Where doctest performs best \\
                 The doctest language \\
                 Example --- creating and running a simple doctest \\
                 Result --- three times three does not equal ten \\
                 The syntax of doctests \\
                 Example --- a more complex test \\
                 Result --- five tests run \\
                 Expecting exceptions \\
                 Example --- checking for an exception \\
                 Result --- success at failing \\
                 Expecting blank lines \\
                 Controlling doctest behavior with directives \\
                 Ignoring part of the result \\
                 Example --- ellipsis test drive \\
                 Result --- ellipsis elides \\
                 Ignoring white space \\
                 Example --- invoking normality \\
                 Result --- white space matches any other white space
                 \\
                 Skipping an example \\
                 Example --- humans only \\
                 Result --- it looks like a test, but it's not \\
                 The other directives \\
                 The execution scope of doctest tests \\
                 Check your understanding \\
                 Exercise --- English to doctest \\
                 Embedding doctests into docstrings \\
                 Example --- a doctest in a docstring \\
                 Result --- the code is now self-documenting and
                 self-testable \\
                 Putting it into practice --- an AVL tree \\
                 English specification \\
                 Node data \\
                 Testing the constructor \\
                 Recalculating height \\
                 Making a node deletable \\
                 Rotation \\
                 Locating a node \\
                 The rest of the specification \\
                 Summary \\
                 3. Unit Testing with doctest \\
                 What is unit testing? \\
                 The limitations of unit testing \\
                 Example --- identifying units \\
                 Choosing units \\
                 Check your understanding \\
                 Unit testing during the development process \\
                 Design \\
                 Development \\
                 Feedback \\
                 Development, again \\
                 Later stages of the process \\
                 Summary \\
                 4. Decoupling Units with unittest.mock \\
                 Mock objects in general \\
                 Mock objects according to unittest.mock \\
                 Standard mock objects \\
                 Non-mock attributes \\
                 Non-mock return values and raising exceptions \\
                 Mocking class or function details \\
                 Mocking function or method side effects \\
                 Mocking containers and objects with a special behavior
                 \\
                 Mock objects for properties and descriptors \\
                 Mocking file objects \\
                 Replacing real code with mock objects \\
                 Mock objects in action \\
                 Better PID tests \\
                 Patching time.time \\
                 Decoupling from the constructor \\
                 Summary \\
                 5. Structured Testing with unittest \\
                 The basics \\
                 Assertions \\
                 The assertTrue method \\
                 The assertFalse method \\
                 The assertEqual method \\
                 The assertNotEqual method \\
                 The assertAlmostEqual method \\
                 The assertNotAlmostEqual method \\
                 The assertIs and assertIsNot methods \\
                 The assertIsNone and assertIsNotNone methods \\
                 The assertIn and assertNotIn methods \\
                 The assertIsInstance and assertNotIsInstance methods
                 \\
                 The assertRaises method \\
                 The fail method \\
                 Make sure you get it \\
                 Test fixtures \\
                 Example --- testing database-backed units \\
                 Summary \\
                 6. Running Your Tests with Nose \\
                 Installing Nose \\
                 Organizing tests \\
                 An example of organizing tests \\
                 Simplifying the Nose command line \\
                 Customizing Nose's test search \\
                 Check your understanding \\
                 Practicing Nose \\
                 Nose and doctest tests \\
                 Nose and unittest tests \\
                 Module fixture practice \\
                 Package fixture practice \\
                 Nose and ad hoc tests \\
                 Summary \\
                 7. Test-driven Development Walk-through \\
                 Writing the specification \\
                 Try it for yourself --- what are you going to do? \\
                 Wrapping up the specification \\
                 Writing initial unit tests \\
                 Try it for yourself --- write your early unit tests \\
                 Wrapping up the initial unit tests \\
                 Coding planner.data \\
                 Using tests to get the code right \\
                 Try it for yourself --- writing and debugging code \\
                 Writing the persistence tests \\
                 Finishing up the personal planner \\
                 Summary \\
                 8. Integration and System Testing \\
                 Introduction to integration testing and system testing
                 \\
                 Deciding on an integration order \\
                 Automating integration tests and system tests \\
                 Writing integration tests for the time planner \\
                 Check yourself --- writing integration tests \\
                 Summary \\
                 9. Other Tools and Techniques \\
                 Code coverage \\
                 Installing coverage.py \\
                 Using coverage.py with Nose \\
                 Version control integration \\
                 Git \\
                 Example test-runner hook \\
                 Subversion \\
                 Mercurial \\
                 Bazaar \\
                 Automated continuous integration \\
                 Buildbot \\
                 Setup \\
                 Using Buildbot \\
                 Summary \\
                 Index",
}

@Article{Ayars:2014:FPB,
  author =       "Eric Ayars",
  title =        "Finally, a {Python}-Based Computational Physics Text",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "16",
  number =       "1",
  pages =        "6--7",
  month =        jan # "\slash " # feb,
  year =         "2014",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2014.17",
  ISSN =         "1521-9615",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Apr 19 10:17:39 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Beazley:2014:PCR,
  author =       "David M. Beazley and Brian K. (Brian Kenneth) Jones",
  title =        "{Python} cookbook: Recipes for mastering {Python 3}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  edition =      "Third",
  pages =        "xvi + 687",
  year =         "2014",
  ISBN =         "1-4493-4037-7 (paperback), 1-4493-5736-9 (e-book)",
  ISBN-13 =      "978-1-4493-4037-7 (paperback), 978-1-4493-5736-8
                 (e-book)",
  LCCN =         "QA76.73.P98 B43 2013eb",
  bibdate =      "Fri Oct 23 15:05:28 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "If you need help writing programs in Python 3, or want
                 to update older Python 2 code, this book is just the
                 ticket. Packed with practical recipes written and
                 tested with Python 3.3, this unique cookbook is for
                 experienced Python programmers who want to focus on
                 modern tools and idioms.",
  acknowledgement = ack-nhfb,
  subject =      "Scripting languages (Computer science); Python
                 (Computer program language)",
  tableofcontents = "Data structures and algorithms \\
                 Strings and text \\
                 Numbers, dates, and times \\
                 Iterators and generators \\
                 Files and I/O \\
                 Data encoding and processing \\
                 Functions \\
                 Classes and objects \\
                 Metaprogramming \\
                 Modules and packages \\
                 Network and web programming \\
                 Concurrency \\
                 Utility scripting and system administration \\
                 Testing, debugging, and exceptions \\
                 C extensions",
}

@Book{Beazley:2014:PR,
  author =       "David M. Beazley and Brian K. (Brian Kenneth) Jones",
  title =        "{Python}. {Receptury}",
  publisher =    "Wydawnictwo Helion",
  address =      "Gliwice, Poland",
  edition =      "Third",
  year =         "2014",
  ISBN =         "1-4920-1351-X (e-book), 1-4920-1350-1, 83-246-8180-9
                 (print)",
  ISBN-13 =      "978-1-4920-1351-8 (e-book), 978-1-4920-1350-1,
                 978-83-246-8180-8 (print)",
  LCCN =         "QA76.73.P98 B386 2014",
  bibdate =      "Sat Oct 24 07:08:24 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Translation of \cite{Beazley:2014:PCR} to Polish by
                 Tomasz Walczak.",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781492013501",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); COMPUTERS;
                 Programming Languages; Python.; Python (Computer
                 program language)",
}

@Article{Belson:2014:AMP,
  author =       "Brandt A. Belson and Jonathan H. Tu and Clarence W.
                 Rowley",
  title =        "Algorithm 945: {{\tt modred}} --- A Parallelized Model
                 Reduction Library",
  journal =      j-TOMS,
  volume =       "40",
  number =       "4",
  pages =        "30:1--30:??",
  month =        jun,
  year =         "2014",
  CODEN =        "ACMSCU",
  DOI =          "http://dx.doi.org/10.1145/2616912",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Jul 2 18:28:58 MDT 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toms/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "We describe a new parallelized Python library for
                 model reduction, modal analysis, and system
                 identification of large systems and datasets. Our
                 library, called modred, handles a wide range of
                 problems and any data format. The modred library
                 contains implementations of the Proper Orthogonal
                 Decomposition (POD), balanced POD (BPOD)
                 Petrov--Galerkin projection, and a more efficient
                 variant of the Dynamic Mode Decomposition (DMD). The
                 library contains two implementations of these
                 algorithms, each with its own advantages. One is for
                 smaller and simpler datasets, requires minimal
                 knowledge to use, and follows a common matrix-based
                 formulation. The second, for larger and more
                 complicated datasets, preserves the abstraction of
                 vectors as elements of a vector space and, as a result,
                 allows the library to work with arbitrary data formats
                 and eases distributed memory parallelization. We also
                 include implementations of the Eigensystem Realization
                 Algorithm (ERA), and Observer/Kalman Filter
                 Identification (OKID). These methods are typically not
                 computationally demanding and are not parallelized. The
                 library is designed to be easy to use, with an
                 object-oriented design, and includes comprehensive
                 automated tests. In almost all cases, parallelization
                 is done internally so that scripts that use the
                 parallelized classes can be run in serial or in
                 parallel without any modifications.",
  acknowledgement = ack-nhfb,
  articleno =    "30",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Bertalan:2014:ONM,
  author =       "Tom S. Bertalan and Akand W. Islam and Roger B. Sidje
                 and Eric S. Carlson",
  title =        "{OpenMG}: a new multigrid implementation in {Python}",
  journal =      j-NUM-LIN-ALG-APPL,
  volume =       "21",
  number =       "5",
  pages =        "685--700",
  month =        oct,
  year =         "2014",
  CODEN =        "NLAAEM",
  DOI =          "http://dx.doi.org/10.1002/nla.1920",
  ISSN =         "1070-5325 (print), 1099-1506 (electronic)",
  ISSN-L =       "1070-5325",
  bibdate =      "Wed Feb 11 22:13:04 MST 2015",
  bibsource =    "http://www.interscience.wiley.com/jpages/1070-5325;
                 http://www.math.utah.edu/pub/tex/bib/numlinaa.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Numerical Linear Algebra with Applications",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1099-1506",
  onlinedate =   "9 Jan 2014",
}

@Book{Bradbury:2014:LPR,
  author =       "Alex Bradbury and R. (Russel) Winder",
  title =        "Learning {Python} with {Raspberry Pi}",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xvi + 270",
  year =         "2014",
  ISBN =         "1-118-71705-8 (paperback), 1-118-71702-3 (e-book),
                 1-118-71703-1 (e-book), 1-306-47299-7 (e-book)",
  ISBN-13 =      "978-1-118-71705-9 (paperback), 978-1-118-71702-8
                 (e-book), 978-1-118-71703-5 (e-book), 978-1-306-47299-9
                 (e-book)",
  LCCN =         "QA76.76.D47 .B73 2014",
  bibdate =      "Sat Oct 24 07:13:59 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Application software; Development; Microcomputers;
                 Python (Computer program language); Development.;
                 Microcomputers.; Python (Computer program language)",
  tableofcontents = "Introduction \\
                 What Is Programming? \\
                 Why the Raspberry Pi? \\
                 How Does this Book Work? \\
                 Chapter 1: Getting Up and Running \\
                 Setting Up Your Raspberry Pi \\
                 Solving Problems \\
                 A Quick Tour of Raspbian \\
                 Using LXDE (Lightweight X11 Desktop Environment) \\
                 Using the Terminal \\
                 Changing Configurations with Raspi-Config \\
                 Installing Software \\
                 Python 3 \\
                 The Python Interpreter \\
                 Running Python Programs \\
                 Summary \\
                 Chapter 2: A Really Quick Introduction to Python \\
                 Drawing Picture with Turtles \\
                 Using Loops \\
                 Conditionals: if, elif, and else \\
                 Using Functions and Methods to Structure Code \\
                 A Python Game of Cat and Mouse \\
                 Understanding Variables \\
                 Defining Functions \\
                 Looping Through the Game \\
                 Summary \\
                 Chapter 3: Python Basics \\
                 Variables, Values, and Types \\
                 Values Have Types \\
                 Storing Numbers \\
                 Keeping Text in Strings \\
                 Boolean: True or False \\
                 Converting Between Data Types \\
                 Test Your Knowledge \\
                 Storing Values in Structures \\
                 Non-Sequential Values in Dictionaries and Sets \\
                 Test Your Knowledge \\
                 Controlling the Way the Program Flows \\
                 Moving Through Data with for Loops \\
                 Going Deeper with Nested Loops \\
                 Branching Execution with if Statements \\
                 Catching Exceptions \\
                 Making Code Reusable with Functions \\
                 Optional Parameters \\
                 Bringing Everything Together \\
                 Building Objects with Classes \\
                 Getting Extra Features from Modules \\
                 Summary \\
                 Solutions to Exercises \\
                 Exercise 1 \\
                 Exercise 2 \\
                 Chapter 4: Graphical Programming \\
                 Graphical User Interface (GUI) Programming \\
                 Adding Controls \\
                 Test Your Knowledge \\
                 Creating a Web Browser \\
                 Adding Window Menus \\
                 Test Your Knowledge \\
                 Summary \\
                 Solutions to Exercises \\
                 Chapter 5: Creating Games \\
                 Building a Game \\
                 Initialising PyGame \\
                 Creating a World \\
                 Detecting Collisions \\
                 Moving Left and Right \\
                 Reaching the Goal \\
                 Making a Challenge \\
                 Making It Your Own \\
                 Adding Sound \\
                 Adding Scenery \\
                 Adding the Finishing Touches \\
                 Taking the Game to the Next Level \\
                 Realistic Game Physics \\
                 Summary \\
                 Chapter 6: Creating Graphics with OpenGL \\
                 Getting Modules \\
                 Creating a Spinning Cube \\
                 Vectors and Matrices \\
                 Bringing It All Together \\
                 Let There Be Light \\
                 Making the Screen Dance \\
                 Building the 3D Model \\
                 Calculating the Sound Level \\
                 Taking Things Further \\
                 Adding Some Texture \\
                 Summary \\
                 Chapter 7: Networked Python \\
                 Understanding Hosts, Ports, and Sockets \\
                 Locating Computers with IP Addresses \\
                 Building a Chat Server \\
                 Tweeting to the World \\
                 Weather Forecasts with JSON \\
                 Testing Your Knowledge \\
                 Exercise 1 \\
                 Getting On the Web \\
                 Making Your Website Dynamic \\
                 Using Templates \\
                 Sending Data Back with Forms \\
                 Exercise 2 \\
                 Keeping Things Secure \\
                 Summary \\
                 Solutions to Exercises \\
                 Exercise 1 \\
                 Chapter 8: Minecraft \\
                 Exploring Minecraft \\
                 Controlling Your Minecraft World \\
                 Creating Minecraft Worlds in Python \\
                 Taking Things Further \\
                 Making the Game Snake \\
                 Moving the Snake \\
                 Growing the Snake \\
                 Adding the Apples \\
                 Taking Things Further \\
                 Summary \\
                 Chapter 9: Multimedia \\
                 Using PyAudio to Get Sound into Your Computer \\
                 Recording the Sound \\
                 Speaking to Your Pi \\
                 Asking the Program Questions \\
                 Putting It All Together \\
                 Taking Things Further \\
                 Making Movies \\
                 Using USB Webcams \\
                 Adding Computer Vision Features with OpenCV \\
                 Taking Things Further \\
                 Using the Raspberry Pi Camera Module \\
                 Creating Live Streams \\
                 Taking Things Further \\
                 Summary \\
                 Chapter 10: Scripting \\
                 Getting Started with the Linux Command Line \\
                 Using the Subprocess Module \\
                 Command-Line Flags \\
                 Regular Expressions \\
                 Testing Your Knowledge \\
                 Scripting with Networking \\
                 Bringing It All Together \\
                 Working with Files in Python \\
                 Summary \\
                 Chapter 11: Interfacing with Hardware \\
                 Setting Up Your Hardware Options \\
                 Female to Male Jumper Wires \\
                 Pi Cobbler \\
                 Solderless Breadboard \\
                 Stripboards and Prototyping Boards \\
                 PCB Manufacturing \\
                 Getting the Best Tools \\
                 Wire Cutters/Strippers \\
                 Multimeters \\
                 Soldering Irons \\
                 Hardware Needed for this Chapter \\
                 The First Circuit \\
                 Power Limits \\
                 Getting Input \\
                 Expanding the GPIO Options with I2C, SPI, and Serial
                 \\
                 The SPI Communications Protocol \\
                 The I2C Communications Protocol \\
                 The Serial Communications Protocol \\
                 Taking the Example Further \\
                 Arduino \\
                 PiFace \\
                 Gertboard \\
                 Wireless Inventor's Kit \\
                 Trying Some Popular Projects \\
                 Robots \\
                 Home Automation \\
                 Burglar Alarms \\
                 Digital Art \\
                 Summary \\
                 Chapter 12: Testing and Debugging \\
                 Investigating Bugs by Printing Out the Values \\
                 Finding Bugs by Testing \\
                 Checking Bits of Code with Unit Tests \\
                 Getting More Assertive \\
                 Using Test Suites for Regression Testing \\
                 Testing the Whole Package \\
                 Making Sure Your Software's Usable \\
                 How Much Should You Test? \\
                 Summary",
}

@Book{Browning:2014:PP,
  author =       "J. Burton Browning and Marty Alchin",
  title =        "Pro {Python}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  year =         "2014",
  DOI =          "http://dx.doi.org/10.1007/978-1-4842-0334-7",
  ISBN =         "1-4842-0335-6, 1-4842-0334-8 (e-book)",
  ISBN-13 =      "978-1-4842-0335-4, 978-1-4842-0334-7 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 06:02:24 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "The expert's voice in Python",
  abstract =     "You've learned the basics of Python, but how do you
                 take your skills to the next stage? Even if you know
                 enough to be productive, there are a number of features
                 that can take you to the next level in Python. Pro
                 Python, Second Edition explores concepts and features
                 normally left to experimentation, allowing you to be
                 even more productive and creative. In addition to pure
                 code concerns, Pro Python develops your programming
                 techniques and approaches, which will help make you a
                 better Python programmer. This book will improve not
                 only your code but also your understanding and
                 interaction with the many established Python
                 communities. This book takes your Python knowledge and
                 coding skills to the next level. It shows you how to
                 write clean, innovative code that will be respected by
                 your peers. With this book, make your code do more with
                 introspection and meta-programming. And learn and later
                 use the nuts and bolts of an application, tier-by-tier
                 as a complex case study along the way. For more
                 information, including a link to the source code
                 referenced in the book, please visit
                 http://propython.com/.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Handbooks,
                 manuals, etc; Computer programming; COMPUTERS;
                 Programming Languages; C{\"A}; Java.; Pascal.; Computer
                 programming.; Python (Computer program language)",
  tableofcontents = "About the Authors \\
                 About the Technical Reviewer \\
                 Acknowledgments \\
                 Introduction \\
                 Chapter 1: Principles and Philosophy \\
                 The Zen of Python \\
                 Beautiful Is Better Than Ugly \\
                 Explicit Is Better Than Implicit \\
                 Simple Is Better Than Complex \\
                 Complex Is Better Than Complicated \\
                 Flat Is Better Than Nested \\
                 Sparse Is Better Than Dense \\
                 Readability Counts \\
                 Special Cases Aren't Special Enough to Break the Rules
                 \\
                 Although Practicality Beats Purity \\
                 Errors Should Never Pass Silently \\
                 Unless Explicitly Silenced \\
                 In the Face of Ambiguity, Refuse the Temptation to
                 Guess \\
                 There Should Be One --- and Preferably Only One ---
                 Obvious Way to Do It \\
                 Although That Way May Not Be Obvious at First Unless
                 You're Dutch \\
                 Now Is Better Than Never \\
                 Although Never Is Often Better Than Right Now \\
                 If the Implementation Is Hard to Explain, It's a Bad
                 Idea \\
                 If the Implementation Is Easy to Explain, It May Be a
                 Good Idea \\
                 Namespaces Are One Honking Great Idea --- Let's Do More
                 of Those! \\
                 Don't Repeat Yourself \\
                 Loose Coupling \\
                 The Samurai Principle \\
                 The Pareto Principle \\
                 The Robustness Principle \\
                 Backward Compatibility \\
                 The Road to Python 3.0 \\
                 Taking It With You \\
                 Chapter 2: Advanced Basics \\
                 General Concepts \\
                 Iteration \\
                 Caching \\
                 Transparency \\
                 Control Flow \\
                 Catching Exceptions \\
                 Exception Chains \\
                 When Everything Goes Right \\
                 Proceeding Regardless of Exceptions \\
                 Optimizing Loops \\
                 The with Statement \\
                 Conditional Expressions \\
                 Iteration \\
                 Sequence Unpacking \\
                 List Comprehensions \\
                 Generator Expressions \\
                 Set Comprehensions \\
                 Dictionary Comprehensions \\
                 Chaining Iterables Together \\
                 Zipping Iterables Together \\
                 Collections \\
                 Sets \\
                 Named Tuples \\
                 Ordered Dictionaries \\
                 Dictionaries with Defaults \\
                 Importing Code \\
                 Fallback Imports \\
                 Importing from the Future \\
                 Using __all__ to Customize Imports \\
                 Relative Imports \\
                 The __import__( ) function \\
                 The importlib module \\
                 Taking It With You \\
                 Chapter 3: Functions \\
                 Arguments \\
                 Planning for Flexibility \\
                 Variable Positional Arguments \\
                 Variable Keyword Arguments \\
                 Combining Different Kinds of Arguments \\
                 Invoking Functions with Variable Arguments \\
                 Preloading Arguments \\
                 Introspection \\
                 Example: Identifying Argument Values \\
                 Example: A More Concise Version \\
                 Example: Validating Arguments \\
                 Decorators \\
                 Closures \\
                 Wrappers \\
                 Decorators with Arguments \\
                 Decorators with --- or without --- Arguments \\
                 Example: Memoization \\
                 Example: A Decorator to Create Decorators \\
                 Function Annotations \\
                 Example: Type Safety \\
                 Factoring Out the Boilerplate \\
                 Example: Type Coercion \\
                 Annotating with Decorators \\
                 Example: Type Safety as a Decorator \\
                 Generators \\
                 Lambdas \\
                 Introspection \\
                 Identifying Object Types \\
                 Modules and Packages \\
                 Docstrings \\
                 Taking It with You \\
                 Chapter 4: Classes \\
                 Inheritance \\
                 Multiple Inheritance \\
                 Method Resolution Order \\
                 Example: C3 Algorithm \\
                 Using super() to Pass Control to Other Classes \\
                 Introspection \\
                 How Classes Are Created \\
                 Creating Classes at Runtime \\
                 Metaclasses \\
                 Example: Plugin Framework \\
                 Controlling the Namespace \\
                 Attributes \\
                 Properties \\
                 Descriptors \\
                 Methods \\
                 Unbound Methods \\
                 Bound Methods \\
                 Class Methods \\
                 Static Methods \\
                 Assigning Functions to Classes and Instances \\
                 Magic Methods \\
                 Creating Instances \\
                 Example: Automatic Subclasses \\
                 Dealing with Attributes \\
                 String Representations \\
                 Taking It With You \\
                 Chapter 5: Common Protocols \\
                 Basic Operations \\
                 Mathematical Operations \\
                 Bitwise Operations \\
                 Variations \\
                 Numbers \\
                 Sign Operations \\
                 Comparison Operations \\
                 Iterables \\
                 Example: Repeatable Generators \\
                 Sequences \\
                 Mappings \\
                 Callables \\
                 Context Managers \\
                 Taking It With You \\
                 Chapter 6: Object Management \\
                 Namespace Dictionary \\
                 Example: Borg Pattern \\
                 Example: Self-Caching Properties \\
                 Garbage Collection \\
                 Reference Counting \\
                 Cyclical References \\
                 Weak References \\
                 Pickling \\
                 Copying \\
                 Shallow Copies \\
                 Deep Copies \\
                 Taking It With You \\
                 Chapter 7: Strings \\
                 Bytes \\
                 Simple Conversion: chr( ) and ord( ) \\
                 Complex Conversion: The Struct Module \\
                 Text \\
                 Unicode \\
                 Encodings \\
                 Simple Substitution \\
                 Formatting \\
                 Looking Up Values Within Objects \\
                 Distinguishing Types of Strings \\
                 Standard Format Specification \\
                 Example: Plain Text Table of Contents \\
                 Custom Format Specification \\
                 Taking It With You \\
                 Chapter 8: Documentation \\
                 Proper Naming \\
                 Comments \\
                 Docstrings \\
                 Describe What the Function Does \\
                 Explain the Arguments \\
                 Don't Forget the Return Value \\
                 Include Any Expected Exceptions \\
                 Documentation Outside the Code \\
                 Installation and Configuration \\
                 Tutorials \\
                 Reference Documents \\
                 Documentation Utilities \\
                 Formatting \\
                 Links \\
                 Sphinx \\
                 Taking It With You \\
                 Chapter 9: Testing \\
                 Test-Driven Development \\
                 Doctests \\
                 Formatting Code \\
                 Representing Output \\
                 Integrating With Documentation \\
                 Running Tests \\
                 The unittest Module \\
                 Setting Up \\
                 Writing Tests \\
                 Other Comparisons \\
                 Testing Strings and Other Sequence Content \\
                 Testing Exceptions \\
                 Testing Identity \\
                 Tearing Down \\
                 Providing a Custom Test Class \\
                 Changing Test Behavior \\
                 Taking It With You \\
                 Chapter 10: Distribution \\
                 Licensing \\
                 GNU General Public License \\
                 Affero General Public License \\
                 GNU Lesser General Public License \\
                 Berkeley Software Distribution License \\
                 Other Licenses \\
                 Packaging \\
                 setup.py \\
                 MANIFEST.in \\
                 The sdist Command \\
                 Distribution \\
                 Taking It With You \\
                 Chapter 11: Sheets: A CSV Framework \\
                 Building a Declarative Framework \\
                 Introducing Declarative Programming \\
                 To Build or Not to Build? \\
                 Building the Framework \\
                 Managing Options \\
                 Defining Fields \\
                 Attaching a Field to a Class \\
                 Adding a Metaclass \\
                 Bringing It Together \\
                 Ordering Fields \\
                 DeclarativeMeta.__prepare__() \\
                 Column.__init__() \\
                 Column.__new__() \\
                 CounterMeta.__call__() \\
                 Choosing an Option \\
                 Building a Field Library \\
                 StringField \\
                 IntegerColumn \\
                 FloatColumn \\
                 DecimalColumn \\
                 DateColumn \\
                 Getting Back to CSV \\
                 Checking Arguments \\
                 Populating Values \\
                 The Reader \\
                 The Writer \\
                 Taking It With You \\
                 Appendix A: Style Guide for Python \\
                 Introduction \\
                 A Foolish Consistency Is the Hobgoblin of Little Minds
                 \\
                 Code Layout \\
                 Indentation \\
                 Tabs or Spaces? \\
                 Maximum Line Length \\
                 Blank Lines \\
                 Encodings (PEP 263) \\
                 Imports \\
                 Whitespace in Expressions and Statements \\
                 Pet Peeves \\
                 Other Recommendations \\
                 Comments \\
                 Block Comments \\
                 Inline Comments \\
                 Documentation Strings \\
                 Version Bookkeeping \\
                 Naming Conventions \\
                 Descriptive: Naming Styles \\
                 Prescriptive: Naming Conventions \\
                 Programming Recommendations \\
                 Copyright \\
                 Appendix B: Voting Guidelines \\
                 Abstract \\
                 Rationale \\
                 Voting Scores \\
                 Copyright \\
                 Appendix C: The Zen of Python \\
                 Abstract \\
                 The Zen of Python \\
                 Easter Egg \\
                 Copyright \\
                 Appendix D: Docstring Conventions \\
                 Abstract \\
                 Rationale \\
                 Specification \\
                 What Is a Docstring? \\
                 One-Line Docstrings \\
                 Multiline Docstrings \\
                 Handling Docstring Indentation \\
                 Copyright \\
                 Acknowledgments \\
                 Appendix E: Backward Compatibility Policy \\
                 Abstract \\
                 Rationale \\
                 Backward Compatibility Rules \\
                 Making Incompatible Changes \\
                 Copyright \\
                 Appendix F: Python 3000 \\
                 Abstract \\
                 Naming \\
                 PEP Numbering \\
                 Timeline \\
                 Compatibility and Transition \\
                 Implementation Language \\
                 Meta-Contributions \\
                 Copyright \\
                 Appendix G: Python Language Moratorium \\
                 Abstract \\
                 Rationale \\
                 Details \\
                 Cannot Change \\
                 Case-by-Case Exemptions \\
                 Allowed to Change \\
                 Retroactive \\
                 Extensions \\
                 Copyright \\
                 Index",
}

@Article{Bucquet:2014:AIP,
  author =       "Samuel Bucquet",
  title =        "Accessing the {IO} ports of the {Beaglebone Black}
                 with {Python}",
  journal =      j-LINUX-J,
  volume =       "2014",
  number =       "246",
  pages =        "3:1--3:??",
  month =        oct,
  year =         "2014",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Nov 1 17:00:17 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "With the BeagleBone Black, you can command all your
                 electronic gear with a few lines of Python.",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Bucur:2014:PSE,
  author =       "Stefan Bucur and Johannes Kinder and George Candea",
  title =        "Prototyping symbolic execution engines for interpreted
                 languages",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "42",
  number =       "1",
  pages =        "239--254",
  month =        mar,
  year =         "2014",
  CODEN =        "CANED2",
  DOI =          "http://dx.doi.org/10.1145/2654822.2541977",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Mon Aug 18 17:12:47 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigarch.bib",
  abstract =     "Symbolic execution is being successfully used to
                 automatically test statically compiled code. However,
                 increasingly more systems and applications are written
                 in dynamic interpreted languages like Python. Building
                 a new symbolic execution engine is a monumental effort,
                 and so is keeping it up-to-date as the target language
                 evolves. Furthermore, ambiguous language specifications
                 lead to their implementation in a symbolic execution
                 engine potentially differing from the production
                 interpreter in subtle ways. We address these challenges
                 by flipping the problem and using the interpreter
                 itself as a specification of the language semantics. We
                 present a recipe and tool (called Chef) for turning a
                 vanilla interpreter into a sound and complete symbolic
                 execution engine. Chef symbolically executes the target
                 program by symbolically executing the interpreter's
                 binary while exploiting inferred knowledge about the
                 program's high-level structure. Using Chef, we
                 developed a symbolic execution engine for Python in 5
                 person-days and one for Lua in 3 person-days. They
                 offer complete and faithful coverage of language
                 features in a way that keeps up with future language
                 versions at near-zero cost. Chef-produced engines are
                 up to 1000 times more performant than if directly
                 executing the interpreter symbolically without Chef.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  remark =       "ASPLOS '14 conference proceedings.",
}

@Book{Cannon:2014:PPB,
  author =       "Jason Cannon",
  title =        "{Python} programming for beginners: an introduction to
                 the {Python} computer language and computer
                 programming",
  publisher =    "????",
  address =      "????",
  pages =        "152",
  year =         "2014",
  ISBN =         "1-5010-0086-1",
  ISBN-13 =      "978-1-5010-0086-7",
  LCCN =         "QA76.73.P98 C366 2014",
  bibdate =      "Wed Oct 14 08:37:57 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "\booktitle{Python Programming for Beginners} doesn't
                 make any assumptions about your background or knowledge
                 of Python or computer programming. You need no prior
                 knowledge to benefit from this book. You will be guided
                 step by step using a logical and systematic approach.
                 As new concepts, commands, or jargon are encountered
                 they are explained in plain language, making it easy
                 for anyone to understand.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "Variables and strings \\
                 Numbers, math, and comments \\
                 Booleans and conditionals \\
                 Functions \\
                 Lists \\
                 Dictionaries \\
                 Tuples \\
                 Reading from and writing to files \\
                 Modules and the Python Standard Library",
}

@Article{Ceriotti:2014:PPI,
  author =       "Michele Ceriotti and Joshua More and David E.
                 Manolopoulos",
  title =        "{i-PI}: a {Python} interface for ab initio path
                 integral molecular dynamics simulations",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "3",
  pages =        "1019--1026",
  month =        mar,
  year =         "2014",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Feb 4 19:25:59 MST 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046551300372X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Chang:2014:CPP,
  author =       "Yuan-Pin Chang and Frank Filsinger and Boris G.
                 Sartakov and Jochen K{\"u}pper",
  title =        "{CMIstark}: {Python} package for the Stark-effect
                 calculation and symmetry classification of linear,
                 symmetric and asymmetric top wavefunctions in dc
                 electric fields",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "1",
  pages =        "339--349",
  month =        jan,
  year =         "2014",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Dec 2 12:04:56 MST 2013",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465513003019",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Cooper:2014:BES,
  author =       "Christopher D. Cooper and Jaydeep P. Bardhan and L. A.
                 Barba",
  title =        "A biomolecular electrostatics solver using {Python},
                 {GPUs} and boundary elements that can handle
                 solvent-filled cavities and {Stern} layers",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "3",
  pages =        "720--729",
  month =        mar,
  year =         "2014",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Feb 4 19:25:59 MST 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465513003731",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Book{Cox:2014:RPC,
  author =       "Tim Cox",
  title =        "{Raspberry Pi} cookbook for {Python} programmers: over
                 50 easy-to-comprehend tailor-made recipes to get the
                 most out of the {Raspberry Pi} and unleash its huge
                 potential using {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "iii + 388",
  year =         "2014",
  ISBN =         "1-84969-662-4",
  ISBN-13 =      "978-1-84969-662-3",
  LCCN =         "QA76.8.R19 .C6",
  bibdate =      "Sat Oct 24 07:17:23 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Raspberry Pi (ordinateur).; Microordinateurs;
                 Programmation.; Ordinateurs de poche.; Python (langage
                 de programmation).",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Safety and using electronics \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with a Raspberry Pi Computer \\
                 Introduction \\
                 Introducing the Raspberry Pi \\
                 What is with the name? \\
                 Why Python? \\
                 Python 2 and Python 3 \\
                 Which version of Python should you use? \\
                 Connecting the Raspberry Pi \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 Secondary hardware connections \\
                 Using NOOBS to set up your Raspberry Pi SD card \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Changing the default user password \\
                 Ensuring that you shut down safely \\
                 Preparing an SD card manually \\
                 Expanding the system to fit in your SD card \\
                 Accessing the Data/RECOVERY/BOOT partition \\
                 Using the tools to backup your SD card in case of
                 failure \\
                 Networking and connecting your Raspberry Pi to the
                 Internet via the LAN connector \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 Configuring your network manually \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 Networking directly to a laptop or computer \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Direct network link \\
                 See also \\
                 Networking and connecting your Raspberry Pi to the
                 Internet via a USB Wi-Fi dongle \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 Using USB wired network adapters \\
                 Connecting to the Internet through a proxy server \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Connecting remotely to the Raspberry Pi over the
                 network using VNC \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 Connecting remotely to the Raspberry Pi over the
                 network using SSH (and X11 Forwarding) \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Running multiple programs with X11 Forwarding \\
                 Running as a desktop with X11 Forwarding \\
                 Running PyGame and Tkinter with X11 Forwarding \\
                 Sharing the home folder of the Raspberry Pi with SMB
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 Keeping the Raspberry Pi up to date \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 2. Starting with Python Strings, Files, and Menus \\
                 Introduction \\
                 Working with text and strings \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Using files and handling errors \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating a boot-up menu \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Creating a self-defining menu \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Alternative script locations \\
                 Adding scripts to PATH \\
                 3. Using Python for Automation and Productivity \\
                 Introduction \\
                 Using Tkinter to create graphical user interfaces \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating a graphical application Start menu \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Displaying photo information in an application \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Organizing your photos automatically \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 4. Creating Games and Graphics \\
                 Introduction \\
                 Using IDLE3 to debug your programs \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Drawing lines using a mouse on Tkinter Canvas \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating a bat and ball game \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating an overhead scrolling game \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 5. Creating 3D Graphics \\
                 Introduction \\
                 Starting with 3D coordinates and vertices \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Camera \\
                 Shaders \\
                 Lights \\
                 Textures \\
                 Creating and importing 3D models \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works... \\
                 There's more \ldots{} \\
                 Creating or loading your own objects \\
                 Changing the object's textures and .mtl files \\
                 Taking screenshots \\
                 Creating a 3D world to roam in \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Building 3D maps and mazes \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works... \\
                 There's more... \\
                 The Building module \\
                 Using SolidObjects to detect collisions \\
                 6. Using Python to Drive Hardware \\
                 Introduction \\
                 Controlling an LED \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Controlling the GPIO current \\
                 Responding to a button \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Safe voltages \\
                 Pull-up and pull-down resistor circuits \\
                 Protection resistors \\
                 A controlled shutdown button \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Resetting and rebooting Raspberry Pi \\
                 Adding extra functions \\
                 Relocating to the P5 header \\
                 The GPIO keypad input \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Generating other key combinations \\
                 Emulating mouse events \\
                 Multiplexed color LEDs \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Hardware multiplexing \\
                 Displaying random patterns \\
                 Mixing multiple colors \\
                 7. Sense and Display Real-world Data \\
                 Introduction \\
                 Using devices with the I2C bus \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Using multiple I2C devices \\
                 I2C bus and level shifting \\
                 Using just the PCF8591 chip or adding alternative
                 sensors \\
                 Reading analog data using an analog-to-digital
                 converter \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Gathering analog data without hardware \\
                 Logging and plotting data \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Plotting live data \\
                 Scaling and calibrating data \\
                 Extending the Raspberry Pi GPIO with an I/O expander
                 \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more \ldots{} \\
                 I/O expander voltages and limits \\
                 Using your own I/O expander module \\
                 Directly controlling an LCD alphanumeric display \\
                 Sensing and sending data to online services \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 See also \\
                 8. Creating Projects with the Raspberry Pi Camera
                 Module \\
                 Introduction \\
                 Getting started with the Raspberry Pi camera module \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using the camera with Python \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Class member and static functions \\
                 Using a USB webcam instead \\
                 Additional drivers for the Raspberry Pi camera \\
                 See also \\
                 Generating a time-lapse video \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Class inheritance and function overriding \\
                 Disabling the camera LED \\
                 Pi NoIR --- taking night shots \\
                 Creating a stop frame animation \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Improving the focus \\
                 Creating a hardware shutter \\
                 Making a QR code reader \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Generating QR codes \\
                 See also \\
                 9. Building Robots \\
                 Introduction \\
                 Building a Rover-Pi robot with forward driving motors
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Darlington array circuits \\
                 Transistor and relay circuits \\
                 Tethered or untethered robots \\
                 Rover kits \\
                 Using advanced motor control \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Motor speed control using PWM control \\
                 Using I/O expanders \\
                 Building a six-legged Pi-Bug robot \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Controlling the servos \\
                 The servo class \\
                 Learning to walk \\
                 The Pi-Bug code for walking \\
                 Avoiding objects and obstacles \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Ultrasonic reversing sensors \\
                 Getting a sense of direction \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Calibrating the compass \\
                 Calculating the compass bearing \\
                 Saving the calibration \\
                 Driving the robot using the compass \\
                 10. Interfacing with Technology \\
                 Introduction \\
                 Automating your home with remote sockets \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Sending RF control signals directly \\
                 Using SPI to control an LED matrix \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works... \\
                 There's more... \\
                 Daisy-chain SPI configuration \\
                 Communicating using a serial interface \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Configuring a USB to RS232 device for the Raspberry Pi
                 \\
                 RS232 signals and connections \\
                 Using the GPIO built-in serial pins \\
                 The RS232 loopback \\
                 Controlling the Raspberry Pi over Bluetooth \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Configuring Bluetooth module settings \\
                 Controlling USB devices \\
                 Getting ready \\
                 How to do it... \\
                 How it works... \\
                 There's more... \\
                 Controlling similar missile-type devices \\
                 Robot arm \\
                 Taking USB control further \\
                 A. Hardware and Software List \\
                 Introduction \\
                 General component sources \\
                 Hardware list \\
                 Software list \\
                 PC software utilities \\
                 Raspberry Pi packages \\
                 There's more... \\
                 APT commands \\
                 Pip Python package manager commands \\
                 Index",
}

@Article{Day:2014:PP,
  author =       "Charles Day",
  title =        "{Python} Power",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "16",
  number =       "1",
  pages =        "88",
  month =        jan # "\slash " # feb,
  year =         "2014",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2014.26",
  ISSN =         "1521-9615",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Apr 19 10:17:39 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{DiPierro:2014:PPP,
  author =       "Massimo {Di Pierro}",
  title =        "Portable Parallel Programs with {Python} and
                 {OpenCL}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "16",
  number =       "1",
  pages =        "34--40",
  month =        jan # "\slash " # feb,
  year =         "2014",
  CODEN =        "CSENFA",
  DOI =          "http://dx.doi.org/10.1109/MCSE.2013.99",
  ISSN =         "1521-9615",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Apr 19 10:17:39 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 http://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computing in Science and Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Dolgopolovas:2014:PSC,
  author =       "Vladimiras Dolgopolovas and Valentina Dagiene and
                 Saulius Minkevicius and Leonidas Sakalauskas",
  title =        "{Python} for scientific computing education: Modeling
                 of queueing systems",
  journal =      j-SCI-PROG,
  volume =       "22",
  number =       "1",
  pages =        "37--51",
  month =        "????",
  year =         "2014",
  CODEN =        "SCIPEV",
  DOI =          "http://dx.doi.org/10.3233/SPR-140377",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Sat Mar 8 14:11:13 MST 2014",
  bibsource =    "http://www.iospress.nl/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/sciprogram.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "http://iospress.metapress.com/content/1058-9244",
}

@Book{Donat:2014:LRP,
  author =       "Wolfram Donat",
  title =        "Learn {Raspberry Pi} programming with {Python}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxi + 231",
  year =         "2014",
  ISBN =         "1-4302-6424-1 (paperback0)",
  ISBN-13 =      "978-1-4302-6424-8 (paperback0)",
  LCCN =         "QA76.73.P98 .D663 2014",
  bibdate =      "Sat Oct 24 06:44:02 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "TECHNOLOGY IN ACTION series",
  abstract =     "\booktitle{Learn Raspberry Pi programming with Python}
                 show you how to program your nifty new \$35 computer
                 using Python to make fun, hands-on projects, such as a
                 web spider, a weather station, a media server and
                 more.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Raspberry Pi
                 (Computer); Handbooks, manuals, etc; Python (Computer
                 program language)",
  tableofcontents = "1 Introducing the Raspberry Pi \\
                 The History of Raspberry Pi \\
                 Exploring the Pi Board \\
                 The SD Card \\
                 The Power Port \\
                 The HDMI Port \\
                 The Ethernet and USB Ports \\
                 The Audio and RCA Video Jacks \\
                 The GPIO Pins \\
                 The System on a Chip \\
                 Comparing Raspberry Pi to Similar Devices \\
                 Hardware Requirements of the Pi \\
                 Connecting to Power \\
                 Adding a Monitor \\
                 Adding a USB Hub \\
                 Using a Wireless USB Dongle \\
                 The Pi Operating System \\
                 Formatting the Card \\
                 Using NOOBS \\
                 Connecting the Peripherals \\
                 Configuring the Pi \\
                 Shutting Down the Pi \\
                 Summary \\
                 2 Linux by the Seat of Your Pants \\
                 Getting Started with Linux on the Pi \\
                 Linux Files and the File System \\
                 Root User vs. sudo \\
                 Commands \\
                 Exercise: Navigating in the Linux File System \\
                 Shells in Linux \\
                 Package Managers \\
                 Text Editors \\
                 Vim vs. emacs vs. nano \\
                 Summary \\
                 3 Introducing Python \\
                 Scripting vs. a Programming Language \\
                 The Python Philosophy \\
                 Getting Started with Python \\
                 Running Python Using IDLE \\
                 Running Python Using the Terminal \\
                 Running Python Using Scripts \\
                 Exploring Python's Data Types \\
                 Programming with Python \\
                 IF tests \\
                 Loops \\
                 Functions \\
                 Objects and Object-Oriented Programming \\
                 Summary \\
                 4 Electronics at 100 MPH \\
                 Basic Electricity Concepts \\
                 Required Tools for Robotics \\
                 Screwdrivers \\
                 Pliers and Wire Strippers \\
                 Wire Cutters \\
                 Files \\
                 Magnifying Light \\
                 Hot Glue Gun \\
                 Assorted Glues \\
                 Multimeter \\
                 Power Supplies \\
                 Breadboard \\
                 Power Strip \\
                 Soldering Iron \\
                 General Safety Rules \\
                 Working with Heat \\
                 Working With Sharp Objects \\
                 Wear Safety Glasses \\
                 Fire Extinguishers at the Ready \\
                 Keep a First-Aid Kit Handy \\
                 Work in a Ventilated Area \\
                 Organizing Your Workplace \\
                 Bonus: Soldering Techniques \\
                 Summary \\
                 5 The Web Bot \\
                 Bot Etiquette \\
                 The Connections of the Web \\
                 Web Communication Protocols \\
                 Web Page Formats: A Request Example \\
                 Our Web Bot Concept \\
                 Parsing Web Pages \\
                 Coding with Python Modules \\
                 Using the Mechanize Module \\
                 Parsing with Beautiful Soup \\
                 Downloading with the urllib Library \\
                 Deciding What to Download \\
                 Choosing a Starting Point \\
                 Storing Your Files \\
                 Writing the Python Bot \\
                 Reading a String and Extracting All the Links \\
                 Looking For and Downloading Files \\
                 Testing the Bot \\
                 Creating Directories and Instantiating a List \\
                 The Final Code \\
                 Summary \\
                 6 The Weather Station \\
                 A Shopping List of Parts \\
                 Using the l2C Protocol \\
                 Using an Anemometer \\
                 Building the Anemometer \\
                 Connecting the Anemometer to the Pi \\
                 Correlating Revolutions per Second with Wind Speed \\
                 Connecting the Digital Compass \\
                 Connecting the Temperature/Humidity Sensor \\
                 Connecting the Barometer \\
                 Connecting the Bits \\
                 The Final Code \\
                 Summary \\
                 7 The Media Server \\
                 A Shopping List of Parts \\
                 Using an NTFS Drive \\
                 Installing Samba \\
                 Configuring Samba \\
                 Setting Linux Permissions \\
                 Fixing the Apostrophe Bug \\
                 Restarting the Samba Service \\
                 Connecting with Linux/OS X \\
                 Where's Python? \\
                 Summary \\
                 8 The Home Security System \\
                 Dogs as Security \\
                 Raspberry Pi as Security \\
                 Using a Sensor Network \\
                 Understanding a Pulldown Resistor \\
                 A Shopping List of Parts \\
                 Connecting to Your Network Wirelessly \\
                 Accessing the GPIO Pins \\
                 Setting Up the Motion Sensor \\
                 Setting Up the Reed Switch \\
                 Setting Up the Pressure Switch \\
                 Connecting the Magnetic Sensor \\
                 Setting Up Pi's Camera \\
                 Sending a Text Message from the Pi \\
                 Implementing the Callback \\
                 Connecting All of the Bits \\
                 The Final Code \\
                 Summary \\
                 9 The Cat Toy \\
                 A Shopping List of Parts \\
                 The Concept Behind the Toy \\
                 Creating and Using Random Numbers \\
                 Using the GPIO Library \\
                 Controlling the Servo \\
                 Constructing the Servo Mechanism \\
                 Constructing the Laser Mechanism \\
                 Connecting the Laser to the Servo \\
                 Connecting the Motion Sensor \\
                 Connecting All the Bits \\
                 The Final Code \\
                 Summary \\
                 10 The Radio-Controlled Airplane \\
                 A Shopping List of Parts \\
                 Connecting the GPS Receiver to the Pi \\
                 Setting Up a Log File \\
                 Formatting a KML File \\
                 Using Threading and Objects \\
                 Setting Up Automatic Startup \\
                 Connecting the Bits \\
                 The Final Code \\
                 The Plane Program \\
                 KML Conversion Program \\
                 Summary \\
                 11 The Weather Balloon \\
                 A Shopping List of Parts \\
                 Setting Up the GPS Receiver \\
                 Storing the GPS Data \\
                 Installing PiFM \\
                 Installing festival \\
                 Installing FFMPEG \\
                 Preparing the Pi \\
                 Using Threading and Objects \\
                 Connecting the Bits \\
                 Reviewing the Photo Results \\
                 The Final Code \\
                 Summary \\
                 12 The Submersible \\
                 A Shopping List of Parts \\
                 Accessing the Raspberry Pi's GPIO pins \\
                 Installing the Raspberry Pi Camera Board \\
                 Controlling the Sub \\
                 Attaching the Wiichuck Adapter \\
                 Activating the Pi's I2C \\
                 Testing the Nunchuk \\
                 Reading from the Nunchuk \\
                 Controlling the Sub Motors and Camera with the Nunchuk
                 \\
                 Starting the Program Remotely \\
                 The Final Control Program \\
                 The Final Code \\
                 Constructing the Sub \\
                 Building the Frame \\
                 Creating the Pi's Enclosure \\
                 Waterproofing the Motor Enclosures \\
                 Connecting the Nunchuck \\
                 Assembling the Final Product \\
                 Summary \\
                 13 The Gertboard \\
                 Examining the Board \\
                 The GPIO Pins \\
                 Atmega Chip \\
                 A-to-D and D-to-A Converters \\
                 I/O Section \\
                 The Motor Controller \\
                 Open Collector Driver \\
                 Jumpers \\
                 Some Example Projects \\
                 Configuring the Preliminary Jumper Setup \\
                 Making Some LEDs Blink \\
                 Experimenting with Motor Controllers \\
                 Using the Open Collector Drivers \\
                 Using the Digital/Analogue Converters \\
                 Summary \\
                 14 The Raspberry Pi and the Arduino \\
                 Exploring the Arduino \\
                 Installing the Arduino IDE on the Pi \\
                 Running a Servo \\
                 The Arduino and the Gertboard \\
                 Summary",
}

@Book{Galanakis:2014:PMP,
  author =       "Robert Galanakis",
  title =        "Practical {Maya} programming with {Python}: unleash
                 the power of {Python} in {Maya} and unlock your
                 creativity",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "viii + 334",
  year =         "2014",
  ISBN =         "1-84969-472-9 (paperback), 1-84969-473-7 (e-book),
                 1-322-00849-3 (e-book)",
  ISBN-13 =      "978-1-84969-472-8 (paperback), 978-1-84969-473-5
                 (e-book), 978-1-322-00849-3 (e-book)",
  LCCN =         "T385 .G34 2014",
  bibdate =      "Sat Oct 24 06:54:45 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781849694728",
  acknowledgement = ack-nhfb,
  subject =      "Three-dimensional modeling; Computer programs;
                 Computer graphics; Python (Computer program language);
                 Three-dimensional modeling / Computer programs.;
                 Computer graphics.; Python (Computer program
                 language)",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Introspecting Maya, Python, and PyMEL \\
                 Creating your library \\
                 Using the interpreter \\
                 Finding a place for our library \\
                 Choosing a development root \\
                 Creating a function in your IDE \\
                 Reloading code changes \\
                 Exploring Maya and PyMEL \\
                 Creating an introspection function \\
                 Understanding Python and MEL types \\
                 Using the method resolution order \\
                 PyNodes all the way down \\
                 Understanding PyMEL data and math types \\
                 Leveraging the REPL \\
                 Building the pmhelp function \\
                 Creating a query string for a PyMEL object \\
                 Creating more tests \\
                 Adding support for modules \\
                 Adding support for types \\
                 Adding support for methods \\
                 Adding support for functions \\
                 Adding support for non-PyMEL objects \\
                 Designing with EAFP versus LBYL \\
                 Code is never complete \\
                 Opening help in a web browser \\
                 Summary \\
                 2. Writing Composable Code \\
                 Defining composability \\
                 Identifying anti-patterns of composability \\
                 Avoiding the use of Boolean flags \\
                 Evolving legacy code into composable code \\
                 Rewriting code for composability \\
                 Getting the first item in a sequence \\
                 Writing head and tail functions \\
                 Learning to use list comprehensions \\
                 Implementing is_exact_type \\
                 Saying goodbye to map and filter \\
                 Writing a skeleton converter library \\
                 Writing the docstring and pseudocode \\
                 Understanding docstrings and reStructured Text \\
                 Writing the first implementation \\
                 Breaking the first implementation \\
                 Understanding interface contracts \\
                 Extracting the safe_setparent utility function \\
                 Learning how to refactor \\
                 Simplifying the node to joint conversion \\
                 Learning how to use closures \\
                 Dealing with node connections \\
                 Dealing with namespaces \\
                 Wrapping up the skeleton converter \\
                 Writing a character creator \\
                 Stubbing out the character creator \\
                 Implementing convert_hierarchies_main \\
                 Implementing convert_hierarchies \\
                 Decomposing into composable functions \\
                 Implementing convert_hierarchy \\
                 Supporting inevitable modifications \\
                 Improving the performance of PyMEL \\
                 Defining performance \\
                 Refactoring for performance \\
                 Rewriting inner loops to use maya.cmds \\
                 Summary \\
                 3. Dealing with Errors \\
                 Understanding exceptions \\
                 Introducing exception types \\
                 Explaining try/catch/finally flow control \\
                 Explaining traceback objects \\
                 Explaining the exc_info tuple \\
                 Living with unhandled exceptions \\
                 Handling exceptions at the application level \\
                 Golden rules of error handling \\
                 Focus on the critical path \\
                 Keep the end user in mind \\
                 Only catch errors you can handle \\
                 Avoid partial mutations \\
                 Practical error handling in Maya \\
                 Dealing with expensive and mutable state \\
                 Leveraging undo blocks \\
                 Dealing with Maya's poor exception design \\
                 Leveraging the Maya application \\
                 Dealing with the Maya application \\
                 Leveraging Python, which is better than MEL \\
                 Building a high-level error handler \\
                 Understanding sys.excepthook \\
                 Using sys.excepthook in Maya \\
                 Creating an error handler \\
                 Improving the error handler \\
                 Inspecting Python code objects \\
                 Adding filtering based on filename \\
                 Assembling the contents of an error e-mail \\
                 Sending the error e-mail \\
                 Installing the error handler \\
                 Obeying the What If Two Programs Did This rule \\
                 Improving the error handler \\
                 Adding a user interface \\
                 Using a background thread to send the e-mail \\
                 Moving beyond e-mail \\
                 Capturing locals \\
                 Attaching log files \\
                 Summary \\
                 4. Leveraging Context Managers and Decorators in Maya
                 \\
                 Inverting the subroutine \\
                 Introducing decorators \\
                 Explaining decorators \\
                 Wrapping an exporter with a decorator \\
                 Introducing context managers \\
                 Writing the undo_chunk context manager \\
                 Writing the undo_on_error context manager \\
                 Contrasting decorators and context managers \\
                 Context managers for changing scene state \\
                 Building the set_file_prompt context manager \\
                 Building the at_time context manager \\
                 Building the with_unit context manager \\
                 Building the set_renderlayer_active context manager \\
                 Building the set_namespace_active context manager \\
                 Improving on future versions of Maya \\
                 Creating the denormalized_skin context manager \\
                 Safely swapping vertex influences \\
                 Addressing performance concerns \\
                 Creating a decorator to record metrics \\
                 Getting a unique key \\
                 Recording duration \\
                 Reporting duration \\
                 Handling errors \\
                 Advanced decorator topics \\
                 Defining decorators with arguments \\
                 Decorating PyMEL attributes and methods \\
                 Stacking decorators \\
                 Using Python's decorator library \\
                 Doing decorators the right way \\
                 Summary \\
                 5. Building Graphical User Interfaces for Maya \\
                 Introducing Qt, PyQt, and PySide \\
                 Introducing Qt widgets \\
                 Introducing Qt layouts \\
                 Understanding Qt main windows and sorting \\
                 Introducing Qt signals \\
                 Establishing rules for crafting a GUI \\
                 Prefer pure PySide GUIs where possible \\
                 Use command-style UI building where necessary \\
                 Avoid the use of .ui files \\
                 Installing PySide \\
                 Supporting PySide and PyQt \\
                 Creating the hierarchy converter GUI \\
                 Creating the window \\
                 Running a Python file as a script \\
                 Introducing the QApplication class \\
                 Understanding the event loop \\
                 Running your GUI \\
                 Designing and building your GUI \\
                 Defining control, container, and window widgets \\
                 Adding the rest of the widgets \\
                 Hooking up the application to be effected by the GUI
                 \\
                 Hooking up the GUI to be effected by the application
                 \\
                 Simulating application events \\
                 Considering alternative implementations \\
                 Integrating the tool GUI with Maya \\
                 Opening the tool GUI from Maya \\
                 Getting the main Maya window as a QMainWindow \\
                 Making a Qt window the child of Maya's window \\
                 Using Python's reload function with GUIs \\
                 Emitting a signal from Maya \\
                 Connecting Maya to a signal \\
                 Verifying the hierarchy converter works \\
                 Working with menus \\
                 Creating a top-level menu \\
                 Getting the Qt object from a Maya path \\
                 Changing the font of a widget \\
                 Marking menus as new \\
                 Creating a test case \\
                 Adding a persistence registry \\
                 Verifying the new menu marker works \\
                 Using alternative methods to style widgets \\
                 Working with Maya shelves \\
                 Summary \\
                 6. Automating Maya from the Outside \\
                 Controlling Maya through request-reply \\
                 Using a Python client and Maya server \\
                 Controlling Python through exec and eval \\
                 Handling problems with IPC \\
                 Installing ZeroMQ \\
                 Demonstrating request-reply with ZeroMQ \\
                 Explaining connection strings, ports, bind, and connect
                 \\
                 Designing the automation system \\
                 Pairing one client and one server \\
                 Bootstrapping the server from the client \\
                 The client-server handshake \\
                 Defining the server loop \\
                 Serializing requests and responses \\
                 Choosing what the server does \\
                 Handling exceptions between client and server \\
                 Understanding the Maya startup routine \\
                 Using batch mode versus GUI mode \\
                 Choosing a startup configuration mechanism \\
                 Using command line options \\
                 Using environment variables \\
                 Building the request-reply automation system \\
                 Creating a Python package \\
                 Launching Maya from Python \\
                 Automatically killing the server \\
                 Creating a basic Maya server \\
                 Running code at Maya startup \\
                 Understanding eval and exec \\
                 Adding support for eval and exec \\
                 Adding support for exception handling \\
                 Adding support for timeouts \\
                 Adding support for the client-server handshake \\
                 Practical uses and improvements \\
                 Batch processing using Maya \\
                 Running a server in a Maya GUI session \\
                 Running automated tests in Maya \\
                 Adding support for logging \\
                 Supporting multiple languages and applications \\
                 Supporting control from a remote computer \\
                 Designing an object-oriented system \\
                 Evaluating other RPC frameworks \\
                 Summary \\
                 7. Taming the Maya API \\
                 Explaining types \\
                 Dicts all the way down \\
                 Using custom types to simplify code \\
                 Introducing inheritance by drawing shapes \\
                 Introducing Maya's API and architecture \\
                 Understanding the OpenMaya bindings \\
                 Navigating the Maya API Reference \\
                 Understanding MObjects and function sets \\
                 Learning the Maya Python API by example \\
                 Converting a name to an MObject node \\
                 Getting the name of an MObject \\
                 Getting the hash of a node \\
                 Building a mesh \\
                 Setting mesh normals \\
                 Using MScriptUtil to call a method \\
                 Using OpenMaya for callbacks \\
                 Comparing Maya Python API and PyMEL \\
                 Creating a Maya Python plugin \\
                 The life of a Python plugin \\
                 Creating the sound player library \\
                 Creating the plugin file \\
                 Reloading plugins \\
                 Adding a command flag \\
                 Comparing the OpenMaya and scripting solutions \\
                 Using PyMEL in a plugin that loads during startup \\
                 Summary \\
                 8. Unleashing the Maya API through Python \\
                 Understanding Dependency Graph plugins \\
                 Building a simple node plugin \\
                 Understanding plugin type IDs \\
                 Defining inputs, outputs, and the initializer \\
                 Creating the compute method \\
                 Taming the non-Pythonic Maya API \\
                 Demystifying Python metaprogramming \\
                 Rethinking type creation \\
                 Exploring the type function \\
                 The importance of being declarative \\
                 Designing the node factory \\
                 Designing plugin nodes \\
                 Designing the attribute specification \\
                 Designing the node type specification \\
                 Building the node factory \\
                 Specifying attributes \\
                 Creating attributes \\
                 Specifying a node \\
                 Using partial application to create attributes \\
                 Creating a node \\
                 Slaying the compute method \\
                 Extending the node factory \\
                 Supporting string and color attributes \\
                 Supporting enum attributes \\
                 Supporting transform nodes \\
                 Overriding MPxNode methods \\
                 Summary \\
                 9. Becoming a Part of the Python Community \\
                 Understanding Open Source Software \\
                 Differentiating OSS from script download sites \\
                 Defining what a third-party module is \\
                 Creating a site directory for third-party modules \\
                 Explaining the site directory \\
                 Creating a new site directory for Maya \\
                 Establishing the site directory at startup \\
                 Working with Python distributions in Maya \\
                 Using the Python Package Index \\
                 Adding a source distribution to Maya \\
                 Adding an egg or wheel to Maya \\
                 Using binary distributions on Windows \\
                 Using pip to install third-party modules \\
                 Contributing to the open source community \\
                 Designing Maya Python code for open source \\
                 Starting an open source project \\
                 Distributing your project \\
                 Engaging with the wider community \\
                 Summary \\
                 A. Python Best Practices \\
                 The args and kwargs parameters \\
                 String formatting \\
                 String concatenation \\
                 Raw strings and string literals \\
                 Path building and manipulation \\
                 Unicode strings \\
                 Using the doctest module \\
                 Adopting Test-Driven Development \\
                 Using the GitHub repository for this book \\
                 Index",
}

@Article{Gonina:2014:SMC,
  author =       "Ekaterina Gonina and Gerald Friedland and Eric
                 Battenberg and Penporn Koanantakool and Michael
                 Driscoll and Evangelos Georganas and Kurt Keutzer",
  title =        "Scalable multimedia content analysis on parallel
                 platforms using {Python}",
  journal =      j-TOMCCAP,
  volume =       "10",
  number =       "2",
  pages =        "18:1--18:??",
  month =        feb,
  year =         "2014",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/2517151",
  ISSN =         "1551-6857 (print), 1551-6865 (electronic)",
  ISSN-L =       "1551-6857",
  bibdate =      "Thu Mar 13 07:37:57 MDT 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tomccap/;
                 http://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/tomccap.bib",
  abstract =     "In this new era dominated by consumer-produced media
                 there is a high demand for web-scalable solutions to
                 multimedia content analysis. A compelling approach to
                 making applications scalable is to explicitly map their
                 computation onto parallel platforms. However,
                 developing efficient parallel implementations and fully
                 utilizing the available resources remains a challenge
                 due to the increased code complexity, limited
                 portability and required low-level knowledge of the
                 underlying hardware. In this article, we present
                 PyCASP, a Python-based framework that automatically
                 maps computation onto parallel platforms from Python
                 application code to a variety of parallel platforms.
                 PyCASP is designed using a systematic, pattern-oriented
                 approach to offer a single software development
                 environment for multimedia content analysis
                 applications. Using PyCASP, applications can be
                 prototyped in a couple hundred lines of Python code and
                 automatically scale to modern parallel processors.
                 Applications written with PyCASP are portable to a
                 variety of parallel platforms and efficiently scale
                 from a single desktop Graphics Processing Unit (GPU) to
                 an entire cluster with a small change to application
                 code. To illustrate our approach, we present three
                 multimedia content analysis applications that use our
                 framework: a state-of-the-art speaker diarization
                 application, a content-based music recommendation
                 system based on the Million Song Dataset, and a video
                 event detection system for consumer-produced videos. We
                 show that across this wide range of applications, our
                 approach achieves the goal of automatic portability and
                 scalability while at the same time allowing easy
                 prototyping in a high-level language and efficient
                 performance of low-level optimized code.",
  acknowledgement = ack-nhfb,
  articleno =    "18",
  fjournal =     "ACM Transactions on Multimedia Computing,
                 Communications, and Applications",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J961",
}

@Book{Gorelick:2014:HPP,
  author =       "Micha Gorelick and Ian Ozsvald",
  title =        "High performance {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xv + 351",
  year =         "2014",
  ISBN =         "1-4493-6159-5 (paperback)",
  ISBN-13 =      "978-1-4493-6159-4 (paperback)",
  LCCN =         "QA76.73.P98 G67 2014",
  bibdate =      "Sat Oct 24 06:32:59 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "If you're an experienced Python programmer,
                 \booktitle{High Performance Python} will guide you
                 through the various routes of code optimization. You'll
                 learn how to use smarter algorithms and leverage
                 peripheral technologies, such as numpy, cython,
                 cpython, and various multi-threaded and multi-node
                 strategies. There's a lack of good learning and
                 reference material available if you want to learn
                 Python for highly computational tasks. Because of it,
                 fields from physics to biology and systems
                 infrastructure to data science are hitting barriers.
                 They need the fast prototyping nature of Python, but
                 too few people know how to wield it.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language)",
  tableofcontents = "Preface \\
                 Who This Book is For \\
                 Who This Book is Not For \\
                 What You'll Learn \\
                 We focus on Python 2.7 on 64-bit *nix Systems \\
                 Moving to Python 3 \\
                 License \\
                 How to Make an Attribution \\
                 Errata and Feedback \\
                 Resources \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgements \\
                 1. Understanding Performant Python \\
                 Fundamental Computer System \\
                 Computing Units \\
                 Memory Units \\
                 Communications Layers \\
                 Putting the Fundamental Elements Together \\
                 Idealized computing vs Python VM \\
                 Idealized Computing \\
                 Python's Virtualized Machine \\
                 So Why Use Python? \\
                 2. Profiling to find bottlenecks \\
                 Profiling efficiently \\
                 Introducing the Julia Set \\
                 Calculating the full Julia Set \\
                 Simple approaches to timing - print and a decorator \\
                 Simple timing using the Unix time command \\
                 Using the cProfile module \\
                 runsnakerun to visualise cProfile output \\
                 line_profiler for line-by-line measurements \\
                 memory_profiler for diagnosing memory usage \\
                 Inspecting objects on the heap with heapy \\
                 Dowser for live graphing of instantiated variables \\
                 The dis module to examine CPython bytecode \\
                 Different approaches, different complexity \\
                 Unit testing during optimization to maintain
                 correctness \\
                 No-op @profile decorator \\
                 Strategies to profile your code successfully \\
                 3. Lists and Tuples \\
                 A more efficient search \\
                 Lists vs Tuples \\
                 Lists as dynamic arrays \\
                 Tuples as static arrays \\
                 Wrap Up \\
                 4. Dictionaries and Sets \\
                 How do dictionaries and sets work? \\
                 Inserting and Retrieving \\
                 Deletion \\
                 Resizing \\
                 Hash functions and Entropy \\
                 Dictionaries and Namespaces \\
                 Wrap Up \\
                 5. Iterators and Generators \\
                 Iterators for Infinite Series \\
                 Lazy Generator Evaluation \\
                 Wrap Up \\
                 6. Matrix and Vector Computation \\
                 Introduction to the Problem \\
                 Aren't python lists good enough? \\
                 Problems with allocating too much \\
                 Memory Fragmentation \\
                 Understanding \\
                 Making decisions with \\
                 Enter numpy \\
                 Memory Allocations and In-place Operations \\
                 Selective optimizations: finding what needs to be fixed
                 \\
                 numexpr: making inplace operations faster and easier
                 \\
                 A Cautionary Tale: Verify ``optimizations'' (scipy) \\
                 Wrap Up \\
                 7. Compiling to C \\
                 What sort of speed gains are possible? \\
                 JITs vs Compilers \\
                 Why does type information help the code run faster? \\
                 Using a C compiler \\
                 Reviewing the Julia Set example \\
                 Cython \\
                 Compiling a pure-Python version using Cython \\
                 Cython annotations to analyse a block of code \\
                 Adding some type annotations \\
                 Shed Skin \\
                 Building an extension module \\
                 The cost of the memory copies \\
                 Cython and numpy \\
                 Parallelizing the solution with OpenMP on One Machine
                 \\
                 Numba \\
                 Pythran \\
                 PyPy \\
                 Garbage Collection differences \\
                 Running PyPy and installing modules \\
                 When to use each technology \\
                 Other upcoming projects \\
                 A note on Graphics Processing Units (GPUs) \\
                 A wish for a future compiler project \\
                 Foreign function interfaces \\
                 ctypes \\
                 CFFI \\
                 f2py \\
                 cpython module \\
                 Wrap Up \\
                 8. Concurrency \\
                 Introduction to Async \\
                 Serial Crawler \\
                 Gevent \\
                 Tornado \\
                 AsyncIO \\
                 Database Example \\
                 Wrap Up \\
                 9. The multiprocessing module \\
                 An overview of the multiprocessing module \\
                 Estimating Pi using the Monte Carlo method \\
                 Estimating Pi using Processes and Threads \\
                 Using Python objects \\
                 Random Numbers in Parallel Systems \\
                 Using numpy \\
                 Finding Prime Numbers \\
                 Queues of work \\
                 Asynchronously adding jobs to the Queue \\
                 Verifying Primes using Inter Process Communication \\
                 Serial verification is inefficient \\
                 Naive Pool solution \\
                 A Less Naive Pool solution \\
                 Using Manager.Value as a flag \\
                 Using Redis as a flag \\
                 Using RawValue as a flag \\
                 Using mmap as a flag \\
                 Using mmap as a flag redux \\
                 Sharing numpy data with multiprocessing \\
                 Synchronizing File and Variable Access \\
                 File locking \\
                 Locking a Value \\
                 Summary \\
                 10. Clusters and Job Queues \\
                 Benefits of clustering \\
                 Clusters can introduce more pain than you might expect
                 \\
                 \$462 Million Wall Street loss through poor cluster
                 upgrade strategy \\
                 Skype's 24 hour global outage \\
                 Common cluster designs \\
                 How to start a clustered solution \\
                 Ways to avoid pain when using clusters \\
                 Three clustering solutions \\
                 Using the ParallelPython module for simple local
                 clusters \\
                 Using IPython Parallel to support research \\
                 NSQ for robust production clustering \\
                 Queues \\
                 Pub/Sub \\
                 Distributed Prime Calculation \\
                 Other clustering tools to look at \\
                 11. Using Less RAM \\
                 Objects for primitives are \\
                 The \\
                 Understanding the RAM used in a collection \\
                 Bytes vs Unicode \\
                 Efficiently storing lots of text in RAM \\
                 Trying these approaches on 8 million tokens \\
                 list \\
                 set \\
                 More Efficient Tree Structures \\
                 Directed Acyclic Word Graph (DAWG) \\
                 Marisa trie \\
                 datrie \\
                 HAT Trie \\
                 Using Tries in production systems \\
                 Tips for using less RAM \\
                 Probabilistic data structures \\
                 Very approximate counting with a 1 byte Morris Counter
                 \\
                 K-Min Values \\
                 Bloom Filter \\
                 LogLog Counter \\
                 Real World Example \\
                 12. Lessons from the Field \\
                 AdaptiveLab for Social Media Analytics (SoMA) \\
                 Python at Adaptive Lab \\
                 SoMA's Design \\
                 Our Development Methodology \\
                 Maintaining SoMA \\
                 Advice for Fellow Engineers \\
                 Making deep learning fly with RadimRehurek.com \\
                 The Sweet Spot \\
                 Lessons in Optimizing \\
                 Wrap up \\
                 Large scale productionized machine learning at Lyst.com
                 \\
                 Python's place at Lyst \\
                 Cluster design \\
                 Code evolution in a fast moving start-up \\
                 Building the recommendation engine \\
                 Reporting and Monitoring \\
                 Some advice \\
                 Large Scale Social Media Analysis at Sme.sh \\
                 Python's role at Smesh \\
                 The Platform \\
                 High performance real-time string matching \\
                 Reporting, monitoring, debugging and deployment \\
                 PyPy for successful web and data processing systems \\
                 Introduction \\
                 Prerequisites \\
                 Database \\
                 Web Application \\
                 OCR and Translation \\
                 Task Distribution and Workers \\
                 Conclusion \\
                 Task queues at Lanyrd.com \\
                 Python's role at Lanyrd \\
                 Making the task queue performant \\
                 Reporting, monitoring, debugging and deployment \\
                 Advice to a fellow developer \\
                 About the Authors",
}

@Book{Gundecha:2014:LST,
  author =       "Unmesh Gundecha",
  title =        "Learning {Selenium} testing tools with {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "216 (est.)",
  year =         "2014",
  ISBN =         "1-78398-350-7, 1-78398-351-5 (e-book), 1-322-56850-2
                 (e-book)",
  ISBN-13 =      "978-1-78398-350-6, 978-1-78398-351-3 (e-book),
                 978-1-322-56850-8 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 05:59:28 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "If you are a quality testing professional, or a
                 software or web application developer looking to create
                 automation test scripts for your web applications, with
                 an interest in Python, then this is the perfect guide
                 for you. Python developers who need to do Selenium
                 testing need not learn Java, as they can directly use
                 Selenium for testing with this book.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with Selenium WebDriver and Python
                 \\
                 Preparing your machine \\
                 Installing Python \\
                 Installing the Selenium package \\
                 Browsing the Selenium WebDriver Python documentation
                 \\
                 Selecting an IDE \\
                 PyCharm \\
                 The PyDev Eclipse plugin \\
                 PyScripter \\
                 Setting up PyCharm \\
                 Taking your first steps with Selenium and Python \\
                 Cross-browser support \\
                 Setting up Internet Explorer \\
                 Setting up Google Chrome \\
                 Summary \\
                 2. Writing Tests Using unittest \\
                 The unittest library \\
                 The TestCase class \\
                 The setUp() method \\
                 Writing tests \\
                 Cleaning up the code \\
                 Running the test \\
                 Adding another test \\
                 Class-level setUp() and tearDown() methods \\
                 Assertions \\
                 Test suites \\
                 Generating the HTML test report \\
                 Summary \\
                 3. Finding Elements \\
                 Using developer tools to find locators \\
                 Inspecting pages and elements with Firefox using the
                 Firebug add-in \\
                 Inspecting pages and elements with Google Chrome \\
                 Inspecting pages and elements with Internet Explorer
                 \\
                 Finding elements with Selenium WebDriver \\
                 Using the find methods \\
                 Finding elements using the ID attribute \\
                 Finding elements using the name attribute \\
                 Finding elements using the class name \\
                 Finding elements using the tag name \\
                 Finding elements using XPath \\
                 Finding elements using CSS selectors \\
                 Finding links \\
                 Finding links with partial text \\
                 Putting all the tests together using find methods \\
                 Summary \\
                 4. Using the Selenium Python API for Element
                 Interaction \\
                 Elements of HTML forms \\
                 Understanding the WebDriver class \\
                 Properties of the WebDriver class \\
                 Methods of the WebDriver class \\
                 Understanding the WebElement class \\
                 Properties of the WebElement class \\
                 Methods of the WebElement class \\
                 Working with forms, textboxes, checkboxes, and radio
                 buttons \\
                 Checking whether the element is displayed and enabled
                 \\
                 Finding the element attribute value \\
                 Using the is_selected() method \\
                 Using the clear() and send_keys() methods \\
                 Working with dropdowns and lists \\
                 Understanding the Select class \\
                 Properties of the Select class \\
                 Methods of the Select class \\
                 Working with alerts and pop-up windows \\
                 Understanding the Alert class \\
                 Properties of the Alert class \\
                 Methods of the Alert class \\
                 Automating browser navigation \\
                 Summary \\
                 5. Synchronizing Tests \\
                 Using implicit wait \\
                 Using explicit wait \\
                 The expected condition class \\
                 Waiting for an element to be enabled \\
                 Waiting for alerts \\
                 Implementing custom wait conditions \\
                 Summary \\
                 6. Cross-browser Testing \\
                 The Selenium standalone server \\
                 Downloading the Selenium standalone server \\
                 Launching the Selenium standalone server \\
                 Running a test on the Selenium standalone server \\
                 Adding support for Internet Explorer \\
                 Adding support for Chrome \\
                 Selenium Grid \\
                 Launching Selenium server as a hub \\
                 Adding nodes \\
                 Adding an IE node \\
                 Adding a Firefox node \\
                 Adding a Chrome node \\
                 Mac OS X with Safari \\
                 Running tests in Grid \\
                 Running tests in a cloud \\
                 Using Sauce Labs \\
                 Summary \\
                 7. Testing on Mobile \\
                 Introducing Appium \\
                 Prerequisites for Appium \\
                 Setting up Xcode for iOS \\
                 Setting up Android SDK \\
                 Setting up the Appium Python client package \\
                 Installing Appium \\
                 Appium Inspector \\
                 Testing on iOS \\
                 Writing a test for iOS \\
                 Testing on Android \\
                 Writing a test for Android \\
                 Using Sauce Labs \\
                 Summary \\
                 8. Page Objects and Data-driven Testing \\
                 Data-driven testing \\
                 Using ddt for data-driven tests \\
                 Installing ddt \\
                 Creating a simple data-driven test with ddt in unittest
                 \\
                 Using external data sources for data-driven tests \\
                 Reading values from CSV \\
                 Reading values from Excel \\
                 The page objects pattern \\
                 Organizing tests \\
                 The BasePage object \\
                 Implementing page objects \\
                 Creating a test with page objects \\
                 Summary \\
                 9. Advanced Techniques of Selenium WebDriver \\
                 Methods for performing keyboard and mouse actions \\
                 Keyboard actions \\
                 The mouse movement \\
                 The double_click method \\
                 The drag_and_drop method \\
                 Executing JavaScript \\
                 Capturing screenshots of failures \\
                 Recording a video of the test run \\
                 Handling pop-up windows \\
                 Managing cookies \\
                 Summary \\
                 10. Integration with Other Tools and Frameworks \\
                 Behavior-Driven Development \\
                 Installing Behave \\
                 Writing the first feature in Behave \\
                 Implementing a step definition file for the feature \\
                 Creating environment configurations \\
                 Running features \\
                 Using a scenario outline \\
                 CI with Jenkins \\
                 Preparing for Jenkins \\
                 Setting up Jenkins \\
                 Summary \\
                 Index",
}

@Book{Hetland:2014:PAM,
  author =       "Magnus Lie Hetland",
  title =        "{Python} Algorithms: Mastering Basic Algorithms in the
                 {Python} Language",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  pages =        "303 (est.)",
  year =         "2014",
  DOI =          "http://dx.doi.org/10.1007/978-1-4842-0055-1",
  ISBN =         "1-4842-0055-1",
  ISBN-13 =      "978-1-4842-0055-1",
  LCCN =         "QA75.5-76.95",
  bibdate =      "Fri Oct 23 15:18:36 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "EBL-Schweitzer",
  abstract =     "\booktitle{Python Algorithms}, Second Edition,
                 explains the Python approach to algorithm analysis and
                 design. Written by Magnus Lie Hetland, author of
                 Beginning Python, this book is sharply focused on
                 classical algorithms, but it also gives a solid
                 understanding of fundamental algorithmic
                 problem-solving techniques. The book deals with some of
                 the most important and challenging areas of programming
                 and computer science in a highly readable manner. It
                 covers both algorithmic theory and programming
                 practice, demonstrating how theory is reflected in real
                 Python programs. Well-known algorithms and data
                 structures \ldots{}",
  acknowledgement = ack-nhfb,
  subject =      "Computer science; Computer software",
  tableofcontents = "If You're Curious \ldots{}Exercises \\
                 References \\
                 Chapter 3: Counting 101 \\
                 The Skinny on Sums \\
                 More Greek \\
                 Working with Sums \\
                 A Tale of Two Tournaments \\
                 Shaking Hands \\
                 The Hare and the Tortoise \\
                 Subsets, Permutations, and Combinations \\
                 Recursion and Recurrences \\
                 Doing It by Hand \\
                 A Few Important Examples \\
                 Guessing and Checking \\
                 The Master Theorem: A Cookie-Cutter Solution \\
                 So What Was All That About? \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 Chapter 4: Induction and Recursion and Reduction \\
                 Oh, That's Easy! \\
                 One, Two, Many \\
                 Mirror, Mirror \\
                 Designing with Induction (and Recursion) \\
                 Finding a Maximum Permutation \\
                 The Celebrity Problem \\
                 Topological Sorting \\
                 Stronger Assumptions \\
                 Invariants and Correctness \\
                 Relaxation and Gradual Improvement \\
                 Reduction + Contraposition = Hardness Proof \\
                 Problem Solving Advice \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 Chapter 5: Traversal: The Skeleton Key of Algorithmics
                 \\
                 A Walk in the Park \\
                 No Cycles Allowed \\
                 How to Stop Walking in Circles \\
                 Go Deep! \\
                 Depth-First Timestamps and Topological Sorting (Again)
                 \\
                 Infinite Mazes and Shortest (Unweighted) Paths \\
                 Strongly Connected Components \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises. Going the Rest of the WayOptimal Merging \\
                 Minimum Spanning Trees \\
                 The Shortest Edge \\
                 What About the Rest? \\
                 Kruskal's Algorithm \\
                 Prim's Algorithm \\
                 Greed Works. But When? \\
                 Keeping Up with the Best \\
                 No Worse Than Perfect \\
                 Staying Safe \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References \\
                 Chapter 8: Tangled Dependencies and Memoization \\
                 Don't Repeat Yourself \\
                 Shortest Paths in Directed Acyclic Graphs \\
                 Longest Increasing Subsequence \\
                 Sequence Comparison \\
                 The Knapsack Strikes Back \\
                 Binary Sequence Partitioning \\
                 Summary \\
                 If You're Curious \ldots{} \\
                 Exercises \\
                 References. Chapter 9: From A to B with Edsger and
                 Friends.",
}

@Book{Hosmer:2014:PFW,
  author =       "Chet Hosmer",
  title =        "{Python} Forensics: A workbench for inventing and
                 sharing digital forensic technology",
  publisher =    pub-SYNGRESS,
  address =      pub-SYNGRESS:adr,
  year =         "2014",
  ISBN =         "0-12-418683-1, 0-12-418676-9",
  ISBN-13 =      "978-0-12-418683-5",
  LCCN =         "????",
  bibdate =      "Sat Oct 24 07:03:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Dedication \\
                 Acknowledgments \\
                 Endorsements \\
                 List of figures \\
                 About the Author \\
                 About the Technical Editor \\
                 Foreword \\
                 Preface \\
                 Intended audience \\
                 Prerequisites \\
                 Reading this book \\
                 Supported platforms \\
                 Download software \\
                 Comments, questions, and contributions \\
                 1: Why Python Forensics? \\
                 Abstract \\
                 Introduction \\
                 Cybercrime investigation challenges \\
                 How can the Python programming environment help meet
                 these challenges? \\
                 Python and the Daubert evidence standard \\
                 Organization of the book \\
                 review \\
                 Summary questions \\
                 2: Setting up a Python Forensics Environment \\
                 Abstract \\
                 Introduction \\
                 Setting up a python forensics environment \\
                 The right environment \\
                 Choosing a python version \\
                 Installing python on windows \\
                 Python packages and modules \\
                 What is included in the standard library? \\
                 Third-party packages and modules \\
                 Integrated development environments \\
                 Python on mobile devices \\
                 A virtual machine \\
                 review \\
                 Summary questions \\
                 Looking ahead \\
                 3: Our First Python Forensics App \\
                 Abstract \\
                 Introduction \\
                 Naming conventions and other considerations \\
                 Our first application ``one-way file system hashing''
                 \\
                 Code walk-through \\
                 Results presentation \\
                 review \\
                 Summary questions \\
                 Looking ahead \\
                 4: Forensic Searching and Indexing Using Python \\
                 Abstract \\
                 Introduction \\
                 Keyword context search \\
                 Code walk-through \\
                 Results presentation \\
                 Indexing \\
                 Coding isWordProbable \\
                 p-search complete code listings \\
                 review \\
                 Summary questions \\
                 5: Forensic Evidence Extraction (JPEG and TIFF) \\
                 Abstract \\
                 Introduction \\
                 Code Walk-Through \\
                 review \\
                 Summary questions \\
                 6: Forensic Time \\
                 Abstract \\
                 Introduction \\
                 Adding time to the equation \\
                 The \\
                 The Network Time Protocol \\
                 Obtaining and installing the NTP Library \\
                 World NTP Servers \\
                 NTP Client Setup Script \\
                 review \\
                 Summary questions \\
                 7: Using Natural Language Tools in Forensics \\
                 Abstract \\
                 What is Natural Language Processing? \\
                 Installing the Natural Language Toolkit and associated
                 libraries \\
                 Working with a corpus \\
                 Experimenting with NLTK \\
                 Creating a corpus from the Internet \\
                 NLTKQuery application \\
                 review \\
                 Summary questions \\
                 8: Network Forensics: Part I \\
                 Abstract \\
                 Network investigation basics \\
                 Captain Ramius: re-verify our range to target \ldots{}
                 one ping only \\
                 Port scanning \\
                 review \\
                 Summary questions \\
                 9: Network Forensics: Part II \\
                 Abstract \\
                 Introduction \\
                 Packet sniffing \\
                 Raw sockets in Python \\
                 Python Silent Network Mapping Tool (PSNMT) \\
                 PSNMT source code \\
                 Program execution and output \\
                 review \\
                 Summary question/challenge \\
                 10: Multiprocessing for Forensics \\
                 Abstract \\
                 Introduction \\
                 What is multiprocessing? \\
                 Python multiprocessing support \\
                 Simplest multiprocessing example \\
                 Multiprocessing File Hash \\
                 Multiprocessing Hash Table generation \\
                 review \\
                 Summary question/challenge \\
                 11: Rainbow in the Cloud \\
                 Abstract \\
                 Introduction \\
                 Putting the cloud to work \\
                 Cloud options \\
                 Creating rainbows in the cloud \\
                 Password Generation Calculations \\
                 review \\
                 Summary question/challenge \\
                 12: Looking Ahead \\
                 Abstract \\
                 Introduction \\
                 Where do we go from here? \\
                 Conclusion \\
                 Index",
}

@Book{Idris:2014:PDA,
  author =       "Ivan Idris",
  title =        "{Python} data analysis: learn how to apply powerful
                 data analysis techniques with popular open source
                 {Python} modules",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "v + 329",
  year =         "2014",
  ISBN =         "1-78355-335-9, 1-78355-336-7 (e-book)",
  ISBN-13 =      "978-1-78355-335-8, 978-1-78355-336-5 (e-book)",
  LCCN =         "QA76.73.P98 I37 2014",
  bibdate =      "Sat Oct 24 06:19:19 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Programming
                 languages (Electronic computers); Programming languages
                 (Electronic computers); Python (Computer program
                 language)",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with Python Libraries \\
                 Software used in this book \\
                 Installing software and setup \\
                 On Windows \\
                 On Linux \\
                 On Mac OS X \\
                 Building NumPy, SciPy, matplotlib, and IPython from
                 source \\
                 Installing with setuptools \\
                 NumPy arrays \\
                 A simple application \\
                 Using IPython as a shell \\
                 Reading manual pages \\
                 IPython notebooks \\
                 Where to find help and references \\
                 Summary \\
                 2. NumPy Arrays \\
                 The NumPy array object \\
                 The advantages of NumPy arrays \\
                 Creating a multidimensional array \\
                 Selecting NumPy array elements \\
                 NumPy numerical types \\
                 Data type objects \\
                 Character codes \\
                 The dtype constructors \\
                 The dtype attributes \\
                 One-dimensional slicing and indexing \\
                 Manipulating array shapes \\
                 Stacking arrays \\
                 Splitting NumPy arrays \\
                 NumPy array attributes \\
                 Converting arrays \\
                 Creating array views and copies \\
                 Fancy indexing \\
                 Indexing with a list of locations \\
                 Indexing NumPy arrays with Booleans \\
                 Broadcasting NumPy arrays \\
                 Summary \\
                 3. Statistics and Linear Algebra \\
                 NumPy and SciPy modules \\
                 Basic descriptive statistics with NumPy \\
                 Linear algebra with NumPy \\
                 Inverting matrices with NumPy \\
                 Solving linear systems with NumPy \\
                 Finding eigenvalues and eigenvectors with NumPy \\
                 NumPy random numbers \\
                 Gambling with the binomial distribution \\
                 Sampling the normal distribution \\
                 Performing a normality test with SciPy \\
                 Creating a NumPy-masked array \\
                 Disregarding negative and extreme values \\
                 Summary \\
                 4. pandas Primer \\
                 Installing and exploring pandas \\
                 pandas DataFrames \\
                 pandas Series \\
                 Querying data in pandas \\
                 Statistics with pandas DataFrames \\
                 Data aggregation with pandas DataFrames \\
                 Concatenating and appending DataFrames \\
                 Joining DataFrames \\
                 Handling missing values \\
                 Dealing with dates \\
                 Pivot tables \\
                 Remote data access \\
                 Summary \\
                 5. Retrieving, Processing, and Storing Data \\
                 Writing CSV files with NumPy and pandas \\
                 Comparing the NumPy .npy binary format and pickling
                 pandas DataFrames \\
                 Storing data with PyTables \\
                 Reading and writing pandas DataFrames to HDF5 stores
                 \\
                 Reading and writing to Excel with pandas \\
                 Using REST web services and JSON \\
                 Reading and writing JSON with pandas \\
                 Parsing RSS and Atom feeds \\
                 Parsing HTML with Beautiful Soup \\
                 Summary \\
                 6. Data Visualization \\
                 matplotlib subpackages \\
                 Basic matplotlib plots \\
                 Logarithmic plots \\
                 Scatter plots \\
                 Legends and annotations \\
                 Three-dimensional plots \\
                 Plotting in pandas \\
                 Lag plots \\
                 Autocorrelation plots \\
                 Plot.ly \\
                 Summary \\
                 7. Signal Processing and Time Series \\
                 statsmodels subpackages \\
                 Moving averages \\
                 Window functions \\
                 Defining cointegration \\
                 Autocorrelation \\
                 Autoregressive models \\
                 ARMA models \\
                 Generating periodic signals \\
                 Fourier analysis \\
                 Spectral analysis \\
                 Filtering \\
                 Summary \\
                 8. Working with Databases \\
                 Lightweight access with sqlite3 \\
                 Accessing databases from pandas \\
                 SQLAlchemy \\
                 Installing and setting up SQLAlchemy \\
                 Populating a database with SQLAlchemy \\
                 Querying the database with SQLAlchemy \\
                 Pony ORM \\
                 Dataset --- databases for lazy people \\
                 PyMongo and MongoDB \\
                 Storing data in Redis \\
                 Apache Cassandra \\
                 Summary \\
                 9. Analyzing Textual Data and Social Media \\
                 Installing NLTK \\
                 Filtering out stopwords, names, and numbers \\
                 The bag-of-words model \\
                 Analyzing word frequencies \\
                 Naive Bayes classification \\
                 Sentiment analysis \\
                 Creating word clouds \\
                 Social network analysis \\
                 Summary \\
                 10. Predictive Analytics and Machine Learning \\
                 A tour of scikit-learn \\
                 Preprocessing \\
                 Classification with logistic regression \\
                 Classification with support vector machines \\
                 Regression with ElasticNetCV \\
                 Support vector regression \\
                 Clustering with affinity propagation \\
                 Mean Shift \\
                 Genetic algorithms \\
                 Neural networks \\
                 Decision trees \\
                 Summary \\
                 11. Environments Outside the Python Ecosystem and Cloud
                 Computing \\
                 Exchanging information with MATLAB/Octave \\
                 Installing rpy2 \\
                 Interfacing with R \\
                 Sending NumPy arrays to Java \\
                 Integrating SWIG and NumPy \\
                 Integrating Boost and Python \\
                 Using Fortran code through f2py \\
                 Setting up Google App Engine \\
                 Running programs on PythonAnywhere \\
                 Working with Wakari \\
                 Summary \\
                 12. Performance Tuning, Profiling, and Concurrency \\
                 Profiling the code \\
                 Installing Cython \\
                 Calling C code \\
                 Creating a process pool with multiprocessing \\
                 Speeding up embarrassingly parallel for loops with
                 Joblib \\
                 Comparing Bottleneck to NumPy functions \\
                 Performing MapReduce with Jug \\
                 Installing MPI for Python \\
                 IPython Parallel \\
                 Summary \\
                 A. Key Concepts \\
                 B. Useful Functions \\
                 matplotlib \\
                 NumPy \\
                 pandas \\
                 Scikit-learn \\
                 SciPy \\
                 scipy.fftpack \\
                 scipy.signal \\
                 scipy.stats \\
                 C. Online Resources \\
                 Index",
}

@Book{Karkera:2014:BPG,
  author =       "Kiran R. Karkera",
  title =        "Building probabalistic graphical models with {Python}
                 solve machine learning problems using probabalistic
                 graphical models implemented in {Python} with
                 real-world applications",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2014",
  ISBN =         "1-78328-900-7, 1-78328-901-5 (e-book), 1-306-90287-8
                 (e-book)",
  ISBN-13 =      "978-1-78328-900-4, 978-1-78328-901-1 (e-book),
                 978-1-306-90287-8 (e-book)",
  LCCN =         "QA279 K37 2014",
  bibdate =      "Sat Oct 24 06:46:21 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.tech.safaribooksonline.de/9781783289004",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Probability \\
                 The theory of probability \\
                 Goals of probabilistic inference \\
                 Conditional probability \\
                 The chain rule \\
                 The Bayes rule \\
                 Interpretations of probability \\
                 Random variables \\
                 Marginal distribution \\
                 Joint distribution \\
                 Independence \\
                 Conditional independence \\
                 Types of queries \\
                 Probability queries \\
                 MAP queries \\
                 Summary \\
                 2. Directed Graphical Models \\
                 Graph terminology \\
                 Python digression \\
                 Independence and independent parameters \\
                 The Bayes network \\
                 The chain rule \\
                 Reasoning patterns \\
                 Causal reasoning \\
                 Evidential reasoning \\
                 Inter-causal reasoning \\
                 D-separation \\
                 The D-separation example \\
                 Blocking and unblocking a V-structure \\
                 Factorization and I-maps \\
                 The Naive Bayes model \\
                 The Naive Bayes example \\
                 Summary \\
                 3. Undirected Graphical Models \\
                 Pairwise Markov networks \\
                 The Gibbs distribution \\
                 An induced Markov network \\
                 Factorization \\
                 Flow of influence \\
                 Active trail and separation \\
                 Structured prediction \\
                 Problem of correlated features \\
                 The CRF representation \\
                 The CRF example \\
                 The factorization-independence tango \\
                 Summary \\
                 4. Structure Learning \\
                 The structure learning landscape \\
                 Constraint-based structure learning \\
                 Part I \\
                 Part II \\
                 Part III \\
                 Summary of constraint-based approaches \\
                 Score-based learning \\
                 The likelihood score \\
                 The Bayesian information criterion score \\
                 The Bayesian score \\
                 Summary of score-based learning \\
                 Summary \\
                 5. Parameter Learning \\
                 The likelihood function \\
                 Parameter learning example using MLE \\
                 MLE for Bayesian networks \\
                 Bayesian parameter learning example using MLE \\
                 Data fragmentation \\
                 Effects of data fragmentation on parameter estimation
                 \\
                 Bayesian parameter estimation \\
                 An example of Bayesian methods for parameter learning
                 \\
                 Bayesian estimation for the Bayesian network \\
                 Example of Bayesian estimation \\
                 Summary \\
                 6. Exact Inference Using Graphical Models \\
                 Complexity of inference \\
                 Real-world issues \\
                 Using the Variable Elimination algorithm \\
                 Marginalizing factors that are not relevant \\
                 Factor reduction to filter evidence \\
                 Shortcomings of the brute-force approach \\
                 Using the Variable Elimination approach \\
                 Complexity of Variable Elimination \\
                 Why does elimination ordering matter? \\
                 Graph perspective \\
                 Learning the induced width from the graph structure \\
                 Why does induced width matter? \\
                 Finding VE orderings \\
                 The tree algorithm \\
                 The four stages of the junction tree algorithm \\
                 Using the junction tree algorithm for inference \\
                 Stage 1.1 --- moralization \\
                 Stage 1.2 --- triangulation \\
                 Stage 1.3 --- building the join tree \\
                 Stage 2 --- initializing potentials \\
                 Stage 3 --- message passing \\
                 Summary \\
                 7. Approximate Inference Methods \\
                 The optimization perspective \\
                 Belief propagation in general graphs \\
                 Creating a cluster graph to run LBP \\
                 Message passing in LBP \\
                 Steps in the LBP algorithm \\
                 Improving the convergence of LBP \\
                 Applying LBP to segment an image \\
                 Understanding energy-based models \\
                 Visualizing unary and pairwise factors on a 3 x 3 grid
                 \\
                 Creating a model for image segmentation \\
                 Applications of LBP \\
                 Sampling-based methods \\
                 Forward sampling \\
                 The accept-reject sampling method \\
                 The Markov Chain Monte Carlo sampling process \\
                 The Markov property \\
                 The Markov chain \\
                 Reaching a steady state \\
                 Sampling using a Markov chain \\
                 Gibbs sampling \\
                 Steps in the Gibbs sampling procedure \\
                 An example of Gibbs sampling \\
                 Summary \\
                 A. References \\
                 Chapter 1 \\
                 Chapter 2 \\
                 Chapter 3 \\
                 Chapter 4 \\
                 Chapter 5 \\
                 Chapter 6 \\
                 Chapter 7 \\
                 Other references \\
                 Index",
}

@Article{Koenka:2014:IOS,
  author =       "Israel Joel Koenka and Jorge S{\'a}iz and Peter C.
                 Hauser",
  title =        "{Instrumentino}: an open-source modular {Python}
                 framework for controlling {Arduino} based experimental
                 instruments",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "10",
  pages =        "2724--2729",
  month =        oct,
  year =         "2014",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Aug 16 08:37:41 MDT 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465514002112",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Korzen:2014:PPP,
  author =       "Marcin Korze{\'n} and Szymon Jaroszewicz",
  title =        "{PaCAL}: A {Python} Package for Arithmetic
                 Computations with Random Variables",
  journal =      j-J-STAT-SOFT,
  volume =       "57",
  number =       "10",
  pages =        "??--??",
  month =        may,
  year =         "2014",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Mon Jun 16 11:01:52 MDT 2014",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v57/i10",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Statistical Software",
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2012-02-14; Accepted 2013-07-21",
}

@Article{Koulouri:2014:TIP,
  author =       "Theodora Koulouri and Stanislao Lauria and Robert D.
                 Macredie",
  title =        "Teaching Introductory Programming: a Quantitative
                 Evaluation of Different Approaches",
  journal =      j-TOCE,
  volume =       "14",
  number =       "4",
  pages =        "26:1--26:??",
  month =        dec,
  year =         "2014",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/2662412",
  ISSN =         "1946-6226",
  bibdate =      "Wed Feb 11 21:50:28 MST 2015",
  bibsource =    "http://www.acm.org/pubs/toce;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/toce.bib",
  abstract =     "Teaching programming to beginners is a complex task.
                 In this article, the effects of three factors-choice of
                 programming language, problem-solving training, and the
                 use of formative assessment-on learning to program were
                 investigated. The study adopted an iterative
                 methodological approach carried out across 4
                 consecutive years. To evaluate the effects of each
                 factor (implemented as a single change in each
                 iteration) on students' learning performance, the study
                 used quantitative, objective metrics. The findings
                 revealed that using a syntactically simple language
                 (Python) instead of a more complex one (Java)
                 facilitated students' learning of programming concepts.
                 Moreover, teaching problem solving before programming
                 yielded significant improvements in student
                 performance. These two factors were found to have
                 variable effects on the acquisition of basic
                 programming concepts. Finally, it was observed that
                 effective formative feedback in the context of
                 introductory programming depends on multiple
                 parameters. The article discusses the implications of
                 these findings, identifies avenues for further
                 research, and argues for the importance of studies in
                 computer science education anchored on sound research
                 methodologies to produce generalizable results.",
  acknowledgement = ack-nhfb,
  articleno =    "26",
  fjournal =     "ACM Transactions on Computing Education",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1193",
}

@Book{Libeskind-Hadas:2014:CBP,
  author =       "Ran Libeskind-Hadas and Eliot Christen Bush",
  title =        "Computing for biologists: {Python} programming and
                 principles",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "x + 207",
  year =         "2014",
  ISBN =         "1-107-04282-8 (hardcover), 1-107-64218-3 (paperback)",
  ISBN-13 =      "978-1-107-04282-7 (hardcover), 978-1-107-64218-8
                 (paperback)",
  LCCN =         "QH324.2 .L53 2014",
  bibdate =      "Wed Sep 30 07:48:31 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.cambridge.org/us/academic/subjects/life-sciences/genomics-bioinformatics-and-systems-biology/computing-biologists-python-programming-and-principles",
  acknowledgement = ack-nhfb,
  subject =      "Biology; Data processing; Python (Computer program
                 language); Computer programming",
}

@Article{Logaras:2014:PAE,
  author =       "Evangelos Logaras and Orsalia G. Hazapis and Elias S.
                 Manolakos",
  title =        "{Python} to accelerate embedded {SoC} design: a case
                 study for systems biology",
  journal =      j-TECS,
  volume =       "13",
  number =       "4",
  pages =        "84:1--84:??",
  month =        feb,
  year =         "2014",
  CODEN =        "????",
  DOI =          "http://dx.doi.org/10.1145/2560032",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Tue Mar 11 18:33:06 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.math.utah.edu/pub/tex/bib/tecs.bib",
  abstract =     "We present SysPy (System Python) a tool which exploits
                 the strengths of the popular Python scripting language
                 to boost design productivity of embedded System on
                 Chips for FPGAs. SysPy acts as a ``glue'' software
                 between mature HDLs, ready-to-use VHDL components and
                 programmable processor soft IP cores. SysPy can be used
                 to: (i) automatically translate hardware components
                 described in Python into synthesizable VHDL, (ii)
                 capture top-level structural descriptions of
                 processor-centric SoCs in Python, (iii) implement all
                 the steps necessary to compile the user's C code for an
                 instruction set processor core and generate processor
                 specific Tcl scripts that import to the design project
                 all the necessary HDL files of the processor's
                 description and instantiate/connect the core to other
                 blocks in a synthesizable top-level Python description.
                 Moreover, we have developed a Hardware Abstraction
                 Layer (HAL) in Python which allows user applications
                 running in a host PC to utilize effortlessly the SoC's
                 resources in the FPGA. SysPy's design capabilities,
                 when complemented with the developed HAL software API,
                 provide all the necessary tools for hw/sw partitioning
                 and iterative design for efficient SoC's performance
                 tuning. We demonstrate how SysPy's design flow and
                 functionalities can be used by building a
                 processor-centric embedded SoC for computational
                 systems biology. The designed SoC, implemented using a
                 Xilinx Virtex-5 FPGA, combines the flexibility of a
                 programmable soft processor core (Leon3) with the high
                 performance of an application specific core to simulate
                 flexibly and efficiently the stochastic behavior of
                 large size biomolecular reaction networks. Such
                 networks are essential for studying the dynamics of
                 complex biological systems consisting of multiple
                 interacting pathways.",
  acknowledgement = ack-nhfb,
  articleno =    "84",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J840",
}

@Book{Lopez:2014:MPR,
  author =       "F{\'e}lix L{\'o}pez and V{\'i}ctor Romero",
  title =        "Mastering {Python} regular expressions: leverage
                 regular expressions in {Python} even for the most
                 complex features",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "iii + 93",
  year =         "2014",
  ISBN =         "1-78328-315-7 (paperback), 1-78328-316-5 (e-book)",
  ISBN-13 =      "978-1-78328-315-6 (paperback), 978-1-78328-316-3
                 (e-book)",
  LCCN =         "QA76.73.P98 L67 2014",
  bibdate =      "Sat Oct 24 07:11:51 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781783283156",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Text processing
                 (Computer science); COMPUTERS / Programming Languages /
                 Python",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Introducing Regular Expressions \\
                 History, relevance, and purpose \\
                 The regular expression syntax \\
                 Literals \\
                 Character classes \\
                 Predefined character classes \\
                 Alternation \\
                 Quantifiers \\
                 Greedy and reluctant quantifiers \\
                 Boundary Matchers \\
                 Summary \\
                 2. Regular Expressions with Python \\
                 A brief introduction \\
                 Backslash in string literals \\
                 String Python 2.x \\
                 Building blocks for Python regex \\
                 RegexObject \\
                 Searching \\
                 match(string[, pos[, endpos]]) \\
                 search(string[, pos[, endpos]]) \\
                 findall(string[, pos[, endpos]]) \\
                 finditer(string[, pos[, endpos]]) \\
                 Modifying a string \\
                 split(string, maxsplit=0) \\
                 sub(repl, string, count=0) \\
                 subn(repl, string, count=0) \\
                 MatchObject \\
                 group([group1, \ldots{} ]) \\
                 groups([default]) \\
                 groupdict([default]) \\
                 start([group]) \\
                 end([group]) \\
                 span([group]) \\
                 expand(template) \\
                 Module operations \\
                 escape() \\
                 purge() \\
                 Compilation flags \\
                 re.IGNORECASE or re.I \\
                 re.MULTILINE or re.M \\
                 re.DOTALL or re.S \\
                 re.LOCALE or re.L \\
                 re.UNICODE or re.U \\
                 re.VERBOSE or re.X \\
                 re.DEBUG \\
                 Python and regex special considerations \\
                 Differences between Python and other flavors \\
                 Unicode \\
                 What's new in Python 3 \\
                 Summary \\
                 3. Grouping \\
                 Introduction \\
                 Backreferences \\
                 Named groups \\
                 Non-capturing groups \\
                 Atomic groups \\
                 Special cases with groups \\
                 Flags per group \\
                 yes-pattern|no-pattern \\
                 Overlapping groups \\
                 Summary \\
                 4. Look Around \\
                 Look ahead \\
                 Negative look ahead \\
                 Look around and substitutions \\
                 Look behind \\
                 Negative look behind \\
                 Look around and groups \\
                 Summary \\
                 5. Performance of Regular Expressions \\
                 Benchmarking regular expressions with Python \\
                 The RegexBuddy tool \\
                 Understanding the Python regex engine \\
                 Backtracking \\
                 Optimization recommendations \\
                 Reuse compiled patterns \\
                 Extract common parts in alternation \\
                 Shortcut to alternation \\
                 Use non-capturing groups when appropriate \\
                 Be specific \\
                 Don't be greedy \\
                 Summary \\
                 Index",
}

@Book{Lott:2014:MOO,
  author =       "Steven F. Lott",
  title =        "Mastering object-oriented {Python}: grasp the
                 intricacies of object-oriented programming in {Python}
                 in order to efficiently build powerful real-world
                 applications",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xii + 609",
  year =         "2014",
  ISBN =         "1-78328-097-2, 1-78328-098-0 (e-book)",
  ISBN-13 =      "978-1-78328-097-1, 978-1-78328-098-8 (e-book)",
  LCCN =         "QA76.73.P98 L688 2014",
  bibdate =      "Sat Oct 24 07:21:25 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community expertise distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781783280971",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science)",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code for this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 Some Preliminaries \\
                 About casino Blackjack \\
                 Playing the game \\
                 Blackjack player strategies \\
                 Object design for simulating Blackjack \\
                 Performance --- the timeit module \\
                 Testing --- unittest and doctest \\
                 Unit testing and technology spikes \\
                 Docstrings --- RST markup and documentation tools \\
                 The IDE question \\
                 About special method names \\
                 Summary \\
                 I. Pythonic Classes via Special Methods \\
                 Pythonic Classes via Special Methods \\
                 1. The __init__() Method \\
                 The implicit superclass --- object \\
                 The base class object __init__() method \\
                 Implementing __init__() in a superclass \\
                 Using __init__() to create manifest constants \\
                 Leveraging __init__() via a factory function \\
                 Faulty factory design and the vague else clause \\
                 Simplicity and consistency using elif sequences \\
                 Simplicity using mapping and class objects \\
                 Two parallel mappings \\
                 Mapping to a tuple of values \\
                 The partial function solution \\
                 Fluent APIs for factories \\
                 Implementing __init__() in each subclass \\
                 Simple composite objects \\
                 Wrapping a collection class \\
                 Extending a collection class \\
                 More requirements and another design \\
                 Complex composite objects \\
                 Complete composite object initialization \\
                 Stateless objects without __init__() \\
                 Some additional class definitions \\
                 Multi-strategy __init__() \\
                 More complex initialization alternatives \\
                 Initializing static methods \\
                 Yet more __init__() techniques \\
                 Initialization with type validation \\
                 Initialization, encapsulation, and privacy \\
                 Summary \\
                 2. Integrating Seamlessly with Python --- Basic Special
                 Methods \\
                 The __repr__() and __str__() methods \\
                 Non collection __str__() and __repr__() \\
                 Collection __str__() and __repr__() \\
                 The __format__() method \\
                 Nested formatting specifications \\
                 Collections and delegating format specifications \\
                 The __hash__() method \\
                 Deciding what to hash \\
                 Inheriting definitions for immutable objects \\
                 Overriding definitions for immutable objects \\
                 Overriding definitions for mutable objects \\
                 Making a frozen hand from a mutable hand \\
                 The __bool__() method \\
                 The __bytes__() method \\
                 The comparison operator methods \\
                 Designing comparisons \\
                 Implementation of comparison for objects of the same
                 class \\
                 Implementation of comparison for objects of mixed
                 classes \\
                 Hard totals, soft totals, and polymorphism \\
                 A mixed class comparison example \\
                 The __del__() method \\
                 The reference count and destruction \\
                 Circular references and garbage collection \\
                 Circular references and the weakref module \\
                 The __del__() and close() methods \\
                 The __new__() method and immutable objects \\
                 The __new__() method and metaclasses \\
                 Metaclass example 1 --- ordered attributes \\
                 Metaclass example 2 --- self-reference \\
                 Summary \\
                 3. Attribute Access, Properties, and Descriptors \\
                 Basic attribute processing \\
                 Attributes and the __init__() method \\
                 Creating properties \\
                 Eagerly computed properties \\
                 Setter and deleter properties \\
                 Using special methods for attribute access \\
                 Creating immutable objects with __slots__ \\
                 Creating immutable objects as a tuple subclass \\
                 Eagerly computed attributes \\
                 The __getattribute__() method \\
                 Creating descriptors \\
                 Using a nondata descriptor \\
                 Using a data descriptor \\
                 Summary, design considerations, and trade-offs \\
                 Properties versus attributes \\
                 Designing with descriptors \\
                 Looking forward \\
                 4. The ABCs of Consistent Design \\
                 Abstract base classes \\
                 Base classes and polymorphism \\
                 Callables \\
                 Containers and collections \\
                 Numbers \\
                 Some additional abstractions \\
                 The iterator abstraction \\
                 Contexts and context managers \\
                 The abc module \\
                 Summary, design considerations, and trade-offs \\
                 Looking forward \\
                 5. Using Callables and Contexts \\
                 Designing with ABC callables \\
                 Improving performance \\
                 Using memoization or caching \\
                 Using functools for memoization \\
                 Aiming for simplicity using the callable API \\
                 Complexities and the callable API \\
                 Managing contexts and the with statement \\
                 Using the decimal context \\
                 Other contexts \\
                 Defining the __enter__() and __exit__() methods \\
                 Handling exceptions \\
                 Context manager as a factory \\
                 Cleaning up in a context manager \\
                 Summary \\
                 Callable design considerations and trade-offs \\
                 Context manager design considerations and trade-offs
                 \\
                 Looking forward \\
                 6. Creating Containers and Collections \\
                 ABCs of collections \\
                 Examples of special methods \\
                 Using the standard library extensions \\
                 The namedtuple() function \\
                 The deque class \\
                 The ChainMap use case \\
                 The OrderedDict collection \\
                 The defaultdict subclass \\
                 The counter collection \\
                 Creating new kinds of collections \\
                 Defining a new kind of sequence \\
                 A statistical list \\
                 Choosing eager versus lazy calculation \\
                 Working with __getitem__(), __setitem__(),
                 __delitem__(), and slices \\
                 Implementing __getitem__(), __setitem__(), and
                 __delitem__() \\
                 Wrapping a list and delegating \\
                 Creating iterators with __iter__() \\
                 Creating a new kind of mapping \\
                 Creating a new kind of set \\
                 Some design rationale \\
                 Defining the Tree class \\
                 Defining the TreeNode class \\
                 Demonstrating the binary tree set \\
                 Summary \\
                 Design considerations and Trade-offs \\
                 Looking forward \\
                 7. Creating Numbers \\
                 ABCs of numbers \\
                 Deciding which types to use \\
                 The method resolution and the reflected operator
                 concept \\
                 The arithmetic operator's special methods \\
                 Creating a numeric class \\
                 Defining FixedPoint initialization \\
                 Defining FixedPoint binary arithmetic operators \\
                 Defining FixedPoint unary arithmetic operators \\
                 Implementing FixedPoint reflected operators \\
                 Implementing FixedPoint comparison operators \\
                 Computing a numeric hash \\
                 Designing more useful rounding \\
                 Implementing other special methods \\
                 Optimization with the in-place operators \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Looking forward \\
                 8. Decorators and Mixins --- Cross-cutting Aspects \\
                 Class and meaning \\
                 Constructing the functions \\
                 Constructing the class \\
                 Some class design principles \\
                 Aspect-oriented programming \\
                 Using built-in decorators \\
                 Using standard library decorators \\
                 Using standard library mixin classes \\
                 Using the context manager mixin class \\
                 Turning off a class feature \\
                 Writing a simple function decorator \\
                 Creating separate loggers \\
                 Parameterizing a decorator \\
                 Creating a method function decorator \\
                 Creating a class decorator \\
                 Adding method functions to a class \\
                 Using decorators for security \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Looking forward \\
                 II. Persistence and Serialization \\
                 Persistence and Serialization \\
                 9. Serializing and Saving --- JSON, YAML, Pickle, CSV,
                 and XML \\
                 Understanding persistence, class, state, and
                 representation \\
                 Common Python terminologies \\
                 Filesystem and network considerations \\
                 Defining classes to support persistence \\
                 Rendering a blog and posts \\
                 Dumping and loading with JSON \\
                 Supporting JSON in our classes \\
                 Customizing JSON encoding \\
                 Customizing JSON decoding \\
                 The security and the eval() issue \\
                 Refactoring the encode function \\
                 Standardizing the date string \\
                 Writing JSON to a file \\
                 Dumping and loading with YAML \\
                 Formatting YAML data on a file \\
                 Extending the YAML representation \\
                 Security and safe loading \\
                 Dumping and loading with pickle \\
                 Designing a class for reliable pickle processing \\
                 Security and the global issue \\
                 Dumping and loading with CSV \\
                 Dumping simple sequences to CSV \\
                 Loading simple sequences from CSV \\
                 Handling containers and complex classes \\
                 Dumping and loading multiple row types in a CSV file
                 \\
                 Filtering CSV rows with an iterator \\
                 Dumping and loading joined rows in a CSV file \\
                 Dumping and loading with XML \\
                 Dumping objects using string templates \\
                 Dumping objects with xml.etree.ElementTree \\
                 Loading XML documents \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Schema evolution \\
                 Looking forward \\
                 10. Storing and Retrieving Objects via Shelve \\
                 Analyzing persistent object use cases \\
                 The ACID properties \\
                 Creating a shelf \\
                 Designing shelvable objects \\
                 Designing keys for our objects \\
                 Generating surrogate keys for objects \\
                 Designing a class with a simple key \\
                 Designing classes for containers or collections \\
                 Referring to objects via foreign keys \\
                 Designing CRUD operations for complex objects \\
                 Searching, scanning, and querying \\
                 Designing an access layer for shelve \\
                 Writing a demonstration script \\
                 Creating indexes to improve efficiency \\
                 Creating top-level indices \\
                 Adding yet more index maintenance \\
                 The writeback alternative to index updates \\
                 Schema evolution \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Application software layers \\
                 Looking forward \\
                 11. Storing and Retrieving Objects via SQLite \\
                 SQL databases, persistence, and objects \\
                 The SQL data model --- rows and tables \\
                 CRUD processing via SQL DML statements \\
                 Querying rows with the SQL SELECT statement \\
                 SQL transactions and the ACID properties \\
                 Designing primary and foreign database keys \\
                 Processing application data with SQL \\
                 Implementing class-like processing in pure SQL \\
                 Mapping Python objects to SQLite BLOB columns \\
                 Mapping Python objects to database rows manually \\
                 Designing an access layer for SQLite \\
                 Implementing container relationships \\
                 Improving performance with indices \\
                 Adding an ORM layer \\
                 Designing ORM-friendly classes \\
                 Building the schema with the ORM layer \\
                 Manipulating objects with the ORM layer \\
                 Querying post objects given a tag string \\
                 Improving performance with indices \\
                 Schema evolution \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Mapping alternatives \\
                 Keys and key designs \\
                 Application software layers \\
                 Looking forward \\
                 12. Transmitting and Sharing Objects \\
                 Class, state, and representation \\
                 Using HTTP and REST to transmit objects \\
                 Implementing CRUD operations via REST \\
                 Implementing non-CRUD operations \\
                 The REST protocol and ACID \\
                 Choosing a representation --- JSON, XML, or YAML \\
                 Implementing a REST server --- WSGI and mod_wsgi \\
                 Creating a simple REST application and server \\
                 Implementing a REST client \\
                 Demonstrating and unit testing the RESTful services \\
                 Using Callable classes for WSGI applications \\
                 Designing RESTful object identifiers \\
                 Multiple layers of REST services \\
                 Creating the roulette server \\
                 Creating the roulette client \\
                 Creating a secure REST service \\
                 The WSGI Authentication application \\
                 Implementing REST with a web application framework \\
                 Using a message queue to transmit objects \\
                 Defining processes \\
                 Building queues and supplying data \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Schema evolution \\
                 Application software layers \\
                 Looking forward \\
                 13. Configuration Files and Persistence \\
                 Configuration file use cases \\
                 Representation, persistence, state, and usability \\
                 Application configuration design patterns \\
                 Configuring via object construction \\
                 Implementing a configuration hierarchy \\
                 Storing the configuration in the INI files \\
                 Handling more literals via the eval() variants \\
                 Storing the configuration in PY files \\
                 Configuration via class definitions \\
                 Configuration via SimpleNamespace \\
                 Using Python with exec() for the configuration \\
                 Why is exec() a nonproblem? \\
                 Using ChainMap for defaults and overrides \\
                 Storing the configuration in JSON or YAML files \\
                 Using flattened JSON configurations \\
                 Loading a YAML configuration \\
                 Storing the configuration in property files \\
                 Parsing a properties file \\
                 Using a properties file \\
                 Storing the configuration in XML files --- PLIST and
                 others \\
                 Customized XML configuration files \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Creating a shared configuration \\
                 Schema evolution \\
                 Looking Forward \\
                 III. Testing, Debugging, Deploying, and Maintaining \\
                 Testing, Debugging, Deploying, and Maintaining \\
                 14. The Logging and Warning Modules \\
                 Creating a basic log \\
                 Creating a shared class-level logger \\
                 Configuring the loggers \\
                 Starting up and shutting down the logging system \\
                 Naming the loggers \\
                 Extending the logger levels \\
                 Defining handlers for multiple destinations \\
                 Managing the propagation rules \\
                 Configuration gotcha \\
                 Specializing logging for control, debug, audit, and
                 security \\
                 Creating a debugging log \\
                 Creating audit and security logs \\
                 Using the warnings module \\
                 Showing API changes with a warning \\
                 Showing configuration problems with a warning \\
                 Showing possible software problems with a warning \\
                 Advanced logging --- the last few messages and network
                 destinations \\
                 Building an automatic tail buffer \\
                 Sending logging messages to a remote process \\
                 Preventing queue overrun \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Looking forward \\
                 15. Designing for Testability \\
                 Defining and isolating units for testing \\
                 Minimizing the dependencies \\
                 Creating simple unit tests \\
                 Creating a test suite \\
                 Including edge and corner cases \\
                 Mocking dependencies for testing \\
                 Using more mocks to test more behaviors \\
                 Using doctest to define test cases \\
                 Combining doctest and unittest \\
                 Creating a more complete test package \\
                 Using setup and teardown \\
                 Using setup and teardown with OS resources \\
                 Using setup and teardown with databases \\
                 The TestCase class hierarchy \\
                 Using externally defined expected results \\
                 Automated integration or performance testing \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Looking forward \\
                 16. Coping With the Command Line \\
                 The OS interface and the command line \\
                 Arguments and options \\
                 Parsing the command line with argparse \\
                 A simple on/off option \\
                 An option with an argument \\
                 Positional arguments \\
                 All other arguments \\
                 --version display and exit \\
                 --help display and exit \\
                 Integrating command-line options and environment
                 variables \\
                 Providing more configurable defaults \\
                 Overriding configuration file settings with environment
                 variables \\
                 Overriding environment variables with the configuration
                 files \\
                 Making the configuration aware of the None values \\
                 Customizing the help output \\
                 Creating a top-level main() function \\
                 Ensuring DRY for the configuration \\
                 Managing nested configuration contexts \\
                 Programming In The Large \\
                 Designing command classes \\
                 Adding the analysis command subclass \\
                 Adding and packaging more features into an application
                 \\
                 Designing a higher-level composite command \\
                 Additional composite command design patterns \\
                 Integrating with other applications \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Looking forward \\
                 17. The Module and Package Design \\
                 Designing a module \\
                 Some module design patterns \\
                 Module versus class \\
                 The expected content of a module \\
                 Whole module versus module items \\
                 Designing a package \\
                 Designing a module-package hybrid \\
                 Designing a package with alternate implementations \\
                 Designing a main script and the __main__ module \\
                 Creating an executable script file \\
                 Creating a __main__ module \\
                 Programming in the large \\
                 Designing long-running applications \\
                 Organizing code into src, bin, and test \\
                 Installing Python modules \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Looking forward \\
                 18. Quality and Documentation \\
                 Writing docstrings for the help() function \\
                 Using pydoc for documentation \\
                 Better output via the RST markup \\
                 Blocks of text \\
                 The RST inline markup \\
                 RST directives \\
                 Learning RST \\
                 Writing effective docstrings \\
                 Writing file-level docstrings, including modules and
                 packages \\
                 Writing API details in RST markup \\
                 Writing class and method function docstrings \\
                 Writing function docstrings \\
                 More sophisticated markup techniques \\
                 Using Sphinx to produce the documentation \\
                 Using the Sphinx quickstart \\
                 Writing the Sphinx documentation \\
                 Filling in the 4+1 views for documentation \\
                 Writing the implementation document \\
                 Creating the Sphinx cross-references \\
                 Refactoring Sphinx files into directories \\
                 Writing the documentation \\
                 Literate programming \\
                 Use cases for literate programming \\
                 Working with a literate programming tool \\
                 Summary \\
                 Design considerations and trade-offs \\
                 Index",
}

@Book{Lott:2014:PSA,
  author =       "Steven F. Lott",
  title =        "{Python} for secret agents: analyze, encrypt, and
                 uncover intelligence data using {Python}, the essential
                 tool for all aspiring secret agents",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "v + 197",
  year =         "2014",
  ISBN =         "1-78398-042-7 (paperback), 1-78398-043-5 (e-book)",
  ISBN-13 =      "978-1-78398-042-0 (paperback), 978-1-78398-043-7
                 (e-book)",
  LCCN =         "TK5105.8883",
  bibdate =      "Sat Oct 24 06:28:49 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Data mining; Data
                 mining.; Python (Computer program language)",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Our Espionage Toolkit \\
                 Getting the tools of the trade --- Python 3.3 \\
                 Windows secrets \\
                 Mac OS X secrets \\
                 Getting more tools --- a text editor \\
                 Getting other developer tools \\
                 Getting a tool to get more Python components \\
                 Confirming our tools \\
                 How do we stop? \\
                 Using the help() system \\
                 Mac OS and GNU/Linux secrets \\
                 Windows secrets \\
                 Using the help mode \\
                 Background briefing --- math and numbers \\
                 The usual culprits \\
                 The ivory tower of numbers \\
                 Integer numbers \\
                 Rational numbers \\
                 Floating-point numbers \\
                 Decimal numbers \\
                 Complex numbers \\
                 Outside the numbers \\
                 Assigning values to variables \\
                 Writing scripts and seeing output \\
                 Gathering user input \\
                 Handling exceptions \\
                 Looping and trying again \\
                 Handling text and strings \\
                 Converting between numbers and strings \\
                 Parsing strings \\
                 Organizing our software \\
                 Working with files and folders \\
                 Creating a file \\
                 Reading a file \\
                 Defining more complex logical conditions \\
                 Solving problems --- recovering a lost password \\
                 Reading a word corpus \\
                 Reading a ZIP archive \\
                 Using brute-force search \\
                 Summary \\
                 2. Acquiring Intelligence Data \\
                 Accessing data from the Internet \\
                 Background briefing --- the TCP/IP protocols \\
                 Using http.client for HTTP GET \\
                 Changing our client information \\
                 Using FTP in Python \\
                 Downloading a file via FTP \\
                 Using our FTP get() function \\
                 Using urllib for HTTP, FTP, or file access \\
                 Using urllib for FTP access \\
                 Using a REST API in Python \\
                 Getting simple REST data \\
                 Using more complex RESTful queries \\
                 Saving our data via JSON \\
                 Organizing collections of data \\
                 Using a Python list \\
                 Using list index operations \\
                 Using a Python tuple \\
                 Using generator expressions with list of tuples \\
                 Using a Python dictionary mapping \\
                 Using the dictionary access methods \\
                 Transforming sequences with generator functions \\
                 Using the defaultdict and counter mappings \\
                 Using a Python set \\
                 Using the for statement with a collection \\
                 Using Python operators on collections \\
                 Solving problems --- currency conversion rates \\
                 Summary \\
                 3. Encoding Secret Messages with Steganography \\
                 Background briefing --- handling file formats \\
                 Working with the OS filesystem \\
                 glob \\
                 os \\
                 Processing simple text files \\
                 Working with ZIP files \\
                 Working with JSON files \\
                 Working with CSV files \\
                 JPEG and PNG graphics --- pixels and metadata \\
                 Using the Pillow library \\
                 Adding the required supporting libraries \\
                 GNU/Linux secrets \\
                 Mac OS X secrets \\
                 Windows secrets \\
                 Installing and confirming Pillow \\
                 Decoding and encoding image data \\
                 Manipulating images --- resizing and thumbnails \\
                 Manipulating images --- cropping \\
                 Manipulating images --- enhancing \\
                 Manipulating images --- filtering \\
                 Manipulating images --- ImageOps \\
                 Some approaches to steganography \\
                 Getting the red-channel data \\
                 Extracting bytes from Unicode characters \\
                 Manipulating bits and bytes \\
                 Assembling the bits \\
                 Encoding the message \\
                 Decoding a message \\
                 Detecting and preventing tampering \\
                 Using hash totals to validate a file \\
                 Using a key with a digest \\
                 Solving problems --- encrypting a message \\
                 Unpacking a message \\
                 Summary \\
                 4. Drops, Hideouts, Meetups, and Lairs \\
                 Background briefing --- latitude, longitude, and GPS
                 \\
                 Coping with GPS device limitations \\
                 Handling politics --- borders, precincts,
                 jurisdictions, and neighborhoods \\
                 Finding out where we are with geocoding services \\
                 Geocoding an address \\
                 Reverse geocoding a latitude-longitude point \\
                 How close? What direction? \\
                 Combining geocoding and haversine \\
                 Compressing data to make grid codes \\
                 Creating GeoRef codes \\
                 Decoding a GeoRef code \\
                 Creating Maidenhead grid codes \\
                 Decoding the Maidenhead grid codes \\
                 Creating natural area codes \\
                 Decoding natural area codes \\
                 Solving problems --- closest good restaurant \\
                 Creating simple Python objects \\
                 Working with HTML web services --- tools \\
                 Working with HTML web services --- getting the page \\
                 Working with HTML web services --- parsing a table \\
                 Making a simple Python object from columns of data \\
                 Enriching Python objects with geocodes \\
                 Enriching Python objects with health scores \\
                 Combining the pieces and parts \\
                 Working with clean data portals \\
                 Making a simple Python object from a JSON document \\
                 Combining different pieces and parts \\
                 Final steps \\
                 Understanding the data --- schema and metadata \\
                 Summary \\
                 5. A Spymaster's More Sensitive Analyses \\
                 Creating statistical summaries \\
                 Parsing the raw data file \\
                 Finding an average value \\
                 Understanding generator expressions \\
                 Finding the value in the middle \\
                 Finding the most popular value \\
                 Creating Python modules and applications \\
                 Creating and using a module \\
                 Creating an application module \\
                 Creating a hybrid module \\
                 Creating our own classes of objects \\
                 Using a class definition \\
                 Comparisons and correlations \\
                 Computing the standard deviation \\
                 Computing a standardized score \\
                 Comparing a sequence and an iterable \\
                 Computing a coefficient of correlation \\
                 Writing high-quality software \\
                 Building a self-testing module and a test module \\
                 Creating more sophisticated tests \\
                 Adding doctest cases to a class definition \\
                 Solving problems --- analyzing some interesting
                 datasets \\
                 Getting some more data \\
                 Further research \\
                 Summary \\
                 Index",
}

@Book{Lubanovic:2014:IPM,
  author =       "Bill Lubanovic",
  title =        "Introducing {Python}: modern computing in simple
                 packages",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xx + 454",
  year =         "2014",
  ISBN =         "1-4493-5936-1 (paperback), 1-4493-6119-6 (e-book),
                 1-4493-6118-8 (e-book)",
  ISBN-13 =      "978-1-4493-5936-2 (paperback), 978-1-4493-6119-8
                 (e-book), 978-1-4493-6118-1 (e-book)",
  LCCN =         "QA76.73.P98 L83 2015",
  bibdate =      "Sat Oct 24 06:14:54 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 http://www.math.utah.edu/pub/tex/bib/python.bib",
  tableofcontents = "Dedication \\
                 Preface \\
                 Audience \\
                 Outline \\
                 Python Versions \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 1. A Taste of Py \\
                 Python in the Real World \\
                 Python versus Language X \\
                 So, Why Python? \\
                 When Not to Use Python \\
                 Python 2 versus Python 3 \\
                 Installing Python \\
                 Running Python \\
                 Using the Interactive Interpreter \\
                 Use Python Files \\
                 What's Next? \\
                 Your Moment of Zen \\
                 Things to Do \\
                 2. Py Ingredients: Numbers, Strings, and Variables \\
                 Variables, Names, and Objects \\
                 Numbers \\
                 Integers \\
                 Precedence \\
                 Bases \\
                 Type Conversions \\
                 How Big Is an int? \\
                 Floats \\
                 Math Functions \\
                 Strings \\
                 Create with Quotes \\
                 Convert Data Types by Using str() \\
                 Escape with \ \\
                 Combine with + \\
                 Duplicate with * \\
                 Extract a Character with [] \\
                 Slice with [] \\
                 Get Length with len() \\
                 Split with split() \\
                 Combine with join() \\
                 Playing with Strings \\
                 Case and Alignment \\
                 Substitute with replace() \\
                 More String Things \\
                 Things to Do \\
                 3. Py Filling: Lists, Tuples, Dictionaries, and Sets
                 \\
                 Lists and Tuples \\
                 Lists \\
                 Create with [] or list() \\
                 Convert Other Data Types to Lists with list() \\
                 Get an Item by Using [] \\
                 Lists of Lists \\
                 Change an Item by [] \\
                 Get a Slice to Extract Items by Offset Range \\
                 Add an Item to the End with append() \\
                 Combine Lists by Using extend() or += \\
                 Add an Item by Offset with insert() \\
                 Delete an Item by Offset with del \\
                 Delete an Item by Value with remove() \\
                 Get an Item by Offset and Delete It by Using pop() \\
                 Find an Item's Offset by Value with index() \\
                 Test for a Value with in \\
                 Count Occurrences of a Value by Using count() \\
                 Convert to a String with join() \\
                 Reorder Items with sort() \\
                 Get Length by Using len() \\
                 Assign with =, Copy with copy() \\
                 Tuples \\
                 Create a Tuple by Using () \\
                 Tuples versus Lists \\
                 Dictionaries \\
                 Create with \{\} \\
                 Convert by Using dict() \\
                 Add or Change an Item by [] \\
                 Combine Dictionaries with update() \\
                 Delete an Item by Key with del \\
                 Delete All Items by Using clear() \\
                 Test for a Key by Using in \\
                 Get an Item by [] \\
                 Get All Keys by Using keys() \\
                 Get All Values by Using values() \\
                 Get All Key-Value Pairs by Using items() \\
                 Assign with =, Copy with copy() \\
                 Sets \\
                 Create with set() \\
                 Convert from Other Data Types with set() \\
                 Test for Value by Using in \\
                 Combinations and Operators \\
                 Compare Data Structures \\
                 Make Bigger Data Structures \\
                 Things to Do \\
                 4. Py Crust: Code Structures \\
                 Comment with # \\
                 Continue Lines with \ \\
                 Compare with if, elif, and else \\
                 What Is True? \\
                 Repeat with while \\
                 Cancel with break \\
                 Skip Ahead with continue \\
                 Check break Use with else \\
                 Iterate with for \\
                 Cancel with break \\
                 Skip with continue \\
                 Check break Use with else \\
                 Iterate Multiple Sequences with zip() \\
                 Generate Number Sequences with range() \\
                 Other Iterators \\
                 Comprehensions \\
                 List Comprehensions \\
                 Dictionary Comprehensions \\
                 Set Comprehensions \\
                 Generator Comprehensions \\
                 Functions \\
                 Positional Arguments \\
                 Keyword Arguments \\
                 Specify Default Parameter Values \\
                 Gather Positional Arguments with * \\
                 Gather Keyword Arguments with ** \\
                 Docstrings \\
                 Functions Are First-Class Citizens \\
                 Inner Functions \\
                 Closures \\
                 Anonymous Functions: the lambda() Function \\
                 Generators \\
                 Decorators \\
                 Namespaces and Scope \\
                 Uses of _ and __ in Names \\
                 Handle Errors with try and except \\
                 Make Your Own Exceptions \\
                 Things to Do \\
                 5. Py Boxes: Modules, Packages, and Programs \\
                 Standalone Programs \\
                 Command-Line Arguments \\
                 Modules and the import Statement \\
                 Import a Module \\
                 Import a Module with Another Name \\
                 Import Only What You Want from a Module \\
                 Module Search Path \\
                 Packages \\
                 The Python Standard Library \\
                 Handle Missing Keys with setdefault() and defaultdict()
                 \\
                 Count Items with Counter() \\
                 Order by Key with OrderedDict() \\
                 Stack + Queue == deque \\
                 Iterate over Code Structures with itertools \\
                 Print Nicely with pprint() \\
                 More Batteries: Get Other Python Code \\
                 Things to Do \\
                 6. Oh Oh: Objects and Classes \\
                 What Are Objects? \\
                 Define a Class with class \\
                 Inheritance \\
                 Override a Method \\
                 Add a Method \\
                 Get Help from Your Parent with super \\
                 In self Defense \\
                 Get and Set Attribute Values with Properties \\
                 Name Mangling for Privacy \\
                 Method Types \\
                 Duck Typing \\
                 Special Methods \\
                 Composition \\
                 When to Use Classes and Objects versus Modules \\
                 Named Tuples \\
                 Things to Do \\
                 7. Mangle Data Like a Pro \\
                 Text Strings \\
                 Unicode \\
                 Python 3 Unicode strings \\
                 Encode and decode with UTF-8 \\
                 Encoding \\
                 Decoding \\
                 For more information \\
                 Format \\
                 Old style with \% \\
                 New style formatting with {} and format \\
                 Match with Regular Expressions \\
                 Exact match with match() \\
                 First match with search() \\
                 All matches with findall() \\
                 Split at matches with split() \\
                 Replace at matches with sub() \\
                 Patterns: special characters \\
                 Patterns: using specifiers \\
                 Patterns: specifying match output \\
                 Binary Data \\
                 bytes and bytearray \\
                 Convert Binary Data with struct \\
                 Other Binary Data Tools \\
                 Convert Bytes/Strings with binascii() \\
                 Bit Operators \\
                 Things to Do \\
                 8. Data Has to Go Somewhere \\
                 File Input/Output \\
                 Write a Text File with write() \\
                 Read a Text File with read(), readline(), or
                 readlines() \\
                 Write a Binary File with write() \\
                 Read a Binary File with read() \\
                 Close Files Automatically by Using with \\
                 Change Position with seek() \\
                 Structured Text Files \\
                 CSV \\
                 XML \\
                 HTML \\
                 JSON \\
                 YAML \\
                 A Security Note \\
                 Configuration Files \\
                 Other Interchange Formats \\
                 Serialize by Using pickle \\
                 Structured Binary Files \\
                 Spreadsheets \\
                 HDF5 \\
                 Relational Databases \\
                 SQL \\
                 DB-API \\
                 SQLite \\
                 MySQL \\
                 PostgreSQL \\
                 SQLAlchemy \\
                 The engine layer \\
                 The SQL Expression Language \\
                 The Object-Relational Mapper \\
                 NoSQL Data Stores \\
                 The dbm Family \\
                 Memcached \\
                 Redis \\
                 Strings \\
                 Lists \\
                 Hashes \\
                 Sets \\
                 Sorted sets \\
                 Bits \\
                 Caches and expiration \\
                 Other NoSQL \\
                 Full-Text Databases \\
                 Things to Do \\
                 9. The Web, Untangled \\
                 Web Clients \\
                 Test with telnet \\
                 Python's Standard Web Libraries \\
                 Beyond the Standard Library: Requests \\
                 Web Servers \\
                 The Simplest Python Web Server \\
                 Web Server Gateway Interface \\
                 Frameworks \\
                 Bottle \\
                 Flask \\
                 Pass an argument as part of the URL path \\
                 Non-Python Web Servers \\
                 Apache \\
                 The nginx Web Server \\
                 Other Frameworks \\
                 Other Python Web Servers \\
                 Web Services and Automation \\
                 The webbrowser Module \\
                 Web APIs and Representational State Transfer \\
                 JSON \\
                 Crawl and Scrape \\
                 Scrape HTML with BeautifulSoup \\
                 Things to Do \\
                 10. Systems \\
                 Files \\
                 Create with open() \\
                 Check Existence with exists() \\
                 Check Type with isfile() \\
                 Copy with copy() \\
                 Change Name with rename() \\
                 Link with link() or symlink() \\
                 Change Permissions with chmod() \\
                 Change Ownership with chown() \\
                 Get a Pathname with abspath() \\
                 Get a symlink Pathname with realpath() \\
                 Delete a File with remove() \\
                 Directories \\
                 Create with mkdir() \\
                 Delete with rmdir() \\
                 List Contents with listdir() \\
                 Change Current Directory with chdir() \\
                 List Matching Files with glob() \\
                 Programs and Processes \\
                 Create a Process with subprocess \\
                 Create a Process with multiprocessing \\
                 Kill a Process with terminate() \\
                 Calendars and Clocks \\
                 The datetime Module \\
                 Using the time Module \\
                 Read and Write Dates and Times \\
                 Alternative Modules \\
                 Things to Do \\
                 11. Concurrency and Networks \\
                 Concurrency \\
                 Queues \\
                 Processes \\
                 Threads \\
                 Green Threads and gevent \\
                 twisted \\
                 asyncio \\
                 Redis \\
                 Beyond Queues \\
                 Networks \\
                 Patterns \\
                 The Publish-Subscribe Model \\
                 Redis \\
                 ZeroMQ \\
                 Other Pub-sub Tools \\
                 TCP/IP \\
                 Sockets \\
                 ZeroMQ \\
                 Scapy \\
                 Internet Services \\
                 Domain Name System \\
                 Python Email Modules \\
                 Other protocols \\
                 Web Services and APIs \\
                 Remote Processing \\
                 Remote Procedure Calls \\
                 fabric \\
                 Salt \\
                 Big Fat Data and MapReduce \\
                 Working in the Clouds \\
                 Google \\
                 Amazon \\
                 OpenStack \\
                 Things to Do \\
                 12. Be a Pythonista \\
                 About Programming \\
                 Find Python Code \\
                 Install Packages \\
                 Use pip \\
                 Use a Package Manager \\
                 Install from Source \\
                 Integrated Development Environments \\
                 IDLE \\
                 PyCharm \\
                 IPython \\
                 Name and Document \\
                 Testing Your Code \\
                 Check with pylint, pyflakes, and pep8 \\
                 Test with unittest \\
                 Test with doctest \\
                 Test with nose \\
                 Other Test Frameworks \\
                 Continuous Integration \\
                 Debugging Python Code \\
                 Debug with pdb \\
                 Logging Error Messages \\
                 Optimize Your Code \\
                 Measure Timing \\
                 Algorithms and Data Structures \\
                 Cython, NumPy, and C Extensions \\
                 PyPy \\
                 Source Control \\
                 Mercurial \\
                 Git \\
                 Clone This Book \\
                 How You Can Learn More \\
                 Books \\
                 Websites \\
                 Groups \\
                 Conferences \\
                 Coming Attractions \\
                 A. Py Art \\
                 2-D Graphics \\
                 Standard Library \\
                 PIL and Pillow \\
                 ImageMagick \\
                 Graphical User Interfaces (GUIs) \\
                 3-D Graphics and Animation \\
                 Plots, Graphs, and Visualization \\
                 matplotlib \\
                 bokeh \\
                 Games \\
                 Audio and Music \\
                 B. Py at Work \\
                 The Microsoft Office Suite \\
                 Carrying Out Business Tasks \\
                 Processing Business Data \\
                 Extracting, Transforming, and Loading \\
                 Additional Sources of Information \\
                 Python in Finance \\
                 Business Data Security \\
                 Maps \\
                 Formats \\
                 Draw a Map \\
                 Applications and Data \\
                 C. Py Sci \\
                 Math and Statistics in the Standard Library \\
                 Math Functions \\
                 Working with Complex Numbers \\
                 Calculate Accurate Floating Point with decimal \\
                 Perform Rational Arithmetic with fractions \\
                 Use Packed Sequences with array \\
                 Handling Simple Stats by Using statistics \\
                 Matrix Multiplication \\
                 Scientific Python \\
                 NumPy \\
                 Make an Array with array() \\
                 Make an Array with arange() \\
                 Make an Array with zeros(), ones(), or random() \\
                 Change an Array's Shape with reshape() \\
                 Get an Element with [] \\
                 Array Math \\
                 Linear Algebra \\
                 The SciPy Library \\
                 The SciKit Library \\
                 The IPython Library \\
                 A Better Interpreter \\
                 IPython Notebook \\
                 Pandas \\
                 Python and Scientific Areas \\
                 D. Install Python 3 \\
                 Install Standard Python \\
                 Mac OS X \\
                 Windows \\
                 Linux or Unix \\
                 Install Anaconda \\
                 Install and Use pip and virtualenv \\
                 Install and Use conda \\
                 E. Answers to Exercises \\
                 Chapter 1, \\
                 Chapter 2, \\
                 Chapter 3, \\
                 Chapter 4, \\
                 Chapter 5, \\
                 Chapter 6, \\
                 Chapter 7, \\
                 Chapter 8, \\
                 Chapter 9, \\
                 Chapter 10, \\
                 Chapter 11, \\
                 F. Cheat Sheets \\
                 Operator Precedence \\
                 String Methods \\
                 Change Case \\
                 Search \\
                 Modify \\
                 Format \\
                 String Type \\
                 String Module Attributes \\
                 Fin \\
                 Index \\
                 Colophon",
}

@Book{Lutz:2014:PPR,
  author =       "Mark Lutz",
  title =        "{Python} pocket reference",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Fifth",
  pages =        "vii + 254",
  year =         "2014",
  ISBN =         "1-4493-5701-6 (paperback)",
  ISBN-13 =      "978-1-4493-5701-6 (paperback)",
  LCCN =         "QA76.73.P98 L89 2014",
  bibdate =      "Sat Oct 24 07:10:28 MDT 2015",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Updated for both Python 3.4 and 2.7, this guide
                 provides concise information on Python types and
                 statements, special method names, built-in functions
                 and exceptions, commonly used standard library modules,
                 and other prominent Python tools.",
  acknowledgement = ack-nhfb,
  remark =       "Previous edition: 2010.",
  subject =      "Python (Computer program language)",
  tableofcontents = "1. Python Pocket Reference \\
                 Introduction \\
                 Book Conventions \\
                 Python Command-Line Usage \\
                 Python Command Options \\
                 Command-Line Program Specification \\
                 Python 2.X Command Options \\
                 Python Environment Variables \\
                 Operational Variables \\
                 Python Command Option Variables \\
                 Python Windows Launcher Usage \\
                 Launcher File Directives \\
                 Launcher Command Lines \\
                 Launcher Environment Variables \\
                 Built-in Types and Operators \\
                 Operators and Precedence \\
                 Atomic terms and dynamic typing \\
                 Operator Usage Notes \\
                 Operations by Category \\
                 Sequence Operation Notes \\
                 Specific Built-in Types \\
                 Numbers \\
                 Literals and creation \\
                 Operations \\
                 Decimal and fraction \\
                 Other numeric types \\
                 Strings \\
                 Literals and creation \\
                 Operations \\
                 String formatting \\
                 String formatting expression \\
                 Formatting expression syntax \\
                 String formatting method \\
                 Formatting method syntax \\
                 Template string substitution \\
                 String methods \\
                 byte and bytearray methods \\
                 Searching methods \\
                 Splitting and joining methods \\
                 Formatting methods \\
                 Content test methods \\
                 The original string module \\
                 Unicode Strings \\
                 Unicode support in Python 3.X \\
                 byte and bytearray strings \\
                 Unicode support in Python 2.X \\
                 Lists \\
                 Literals and creation \\
                 Operations \\
                 List comprehension expressions \\
                 The iteration protocol \\
                 Generator expressions \\
                 Other comprehension expressions \\
                 Dictionaries \\
                 Literals and creation \\
                 Operations \\
                 Tuples \\
                 Literals and creation \\
                 Operations \\
                 Files \\
                 Input files \\
                 Output files \\
                 Any files \\
                 Other file attributes (some read-only) \\
                 File context managers \\
                 File usage notes \\
                 Sets \\
                 Literals and creation \\
                 Operations \\
                 Other Types and Conversions \\
                 Boolean \\
                 Type Conversions \\
                 Statements and Syntax \\
                 Syntax Rules \\
                 Name Rules \\
                 Name format \\
                 Name conventions \\
                 Specific Statements \\
                 The Assignment Statement \\
                 Augmented assignment \\
                 Normal sequence assignment \\
                 Extended sequence assignment (3.X) \\
                 The Expression Statement \\
                 Call syntax \\
                 Arbitrary arguments call syntax \\
                 The print Statement \\
                 Python 2.X print statements \\
                 The if Statement \\
                 The while Statement \\
                 The for Statement \\
                 The pass Statement \\
                 The break Statement \\
                 The continue Statement \\
                 The del Statement \\
                 The def Statement \\
                 Python 3.X keyword-only arguments \\
                 Python 3.X function annotations \\
                 lambda expressions \\
                 Function defaults and attributes \\
                 Function and method decorators \\
                 The return Statement \\
                 The yield Statement \\
                 Generator function changes in Python 3.3 \\
                 The global Statement \\
                 The nonlocal Statement \\
                 The import Statement \\
                 Package imports \\
                 Python 3.3 namespace packages \\
                 Import algorithm \\
                 The from Statement \\
                 Package relative import syntax \\
                 The class Statement \\
                 Class decorators in Python 3.X, 2.6, and 2.7 \\
                 Metaclasses \\
                 The try Statement \\
                 Python 2.X try statement forms \\
                 The raise Statement \\
                 Python 3.X chained exceptions \\
                 Class exceptions \\
                 Python 2.X raise statement forms \\
                 The assert Statement \\
                 The with Statement \\
                 Multiple context managers in Python 3.1 and 2.7 \\
                 Context manager protocol \\
                 Python 2.X Statements \\
                 Namespace and Scope Rules \\
                 Qualified Names: Object Namespaces \\
                 Unqualified Names: Lexical Scopes \\
                 Nested Scopes and Closures \\
                 Enclosing scopes and defaults \\
                 Object-Oriented Programming \\
                 Classes and Instances \\
                 Class objects provide default behavior \\
                 Instance objects are generated from classes \\
                 Inheritance rules \\
                 Pseudoprivate Attributes \\
                 Module privates \\
                 Class privates \\
                 New-Style Classes \\
                 Formal Inheritance Rules \\
                 Classic classes: DFLR \\
                 New-style classes: MRO \\
                 Example: nondiamonds \\
                 Example: diamonds \\
                 New-style inheritance algorithm \\
                 New-style precedence and conte