Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "2.198",
%%%     date            = "12 October 2023",
%%%     time            = "05:47:43 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             = "https://www.math.utah.edu/~beebe",
%%%     checksum        = "43202 58017 254637 2600197",
%%%     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.198, the year coverage looked
%%%                        like this:
%%%
%%%                             1991 (   3)    2002 (  23)    2013 (  32)
%%%                             1992 (   3)    2003 (  17)    2014 (  76)
%%%                             1993 (   0)    2004 (   9)    2015 (  82)
%%%                             1994 (   0)    2005 (  12)    2016 (  43)
%%%                             1995 (  10)    2006 (  32)    2017 (  63)
%%%                             1996 (  16)    2007 (  41)    2018 (  97)
%%%                             1997 (  33)    2008 (  42)    2019 (  54)
%%%                             1998 (  27)    2009 (  48)    2020 (  75)
%%%                             1999 (   9)    2010 (  20)    2021 (  98)
%%%                             2000 (  23)    2011 (  16)    2022 (  98)
%%%                             2001 (  20)    2012 (  33)    2023 (  84)
%%%                             20xx (   4)
%%%
%%%                             Article:        872
%%%                             Book:           302
%%%                             InCollection:     1
%%%                             InProceedings:   27
%%%                             MastersThesis:    2
%%%                             Misc:             7
%%%                             Proceedings:     17
%%%                             TechReport:      14
%%%                             Unpublished:      1
%%%
%%%                             Total entries: 1243
%%%
%%%                        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|https://www.math.utah.edu/~beebe/|"}

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

@String{j-ADV-ENG-SOFTWARE      = "Advances in Engineering Software"}

@String{j-ALGORITHMS-BASEL      = "Algorithms ({Basel})"}

@String{j-AMER-J-PHYSICS        = "American Journal of Physics"}

@String{j-ANN-APPL-STAT         = "Annals of Applied Statistics"}

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

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

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

@String{j-COMMUN-MATH-STAT      = "Communications in Mathematics and
                                  Statistics"}

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

@String{j-COMP-ECONOMICS        = "Computational Economics"}

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

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

@String{j-COMP-SCI-REV          = "Computer Science Review"}

@String{j-COMPUT-MATH-APPL      = "Computers and Mathematics with Applications"}

@String{j-COMPUT-PHYS           = "Computers in Physics"}

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

@String{j-COMPUT-SOFTW-BIG-SCI  = "Computing and Software for Big Science"}

@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-EMPIR-SOFTWARE-ENG    = "Empirical Software Engineering"}

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

@String{j-FRONTIERS-MAR-SCI     = "Frontiers in Marine Science"}

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

@String{j-FUTURE-INTERNET       = "Future Internet"}

@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-COMPUT-ARCHIT-LETT = "IEEE Computer Architecture Letters"}

@String{j-IEEE-MICRO            = "IEEE Micro"}

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

@String{j-IEEE-SPECTRUM         = "IEEE Spectrum"}

@String{j-IEEE-TRANS-COMPUT     = "IEEE Transactions on Computers"}

@String{j-IEEE-TRANS-SOFTW-ENG  = "IEEE Transactions on Software Engineering"}

@String{j-IEEE-TRANS-VIS-COMPUT-GRAPH = "IEEE Transactions on Visualization
                                   and Computer Graphics"}

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

@String{j-IJQC                  = "International Journal of Quantum Chemistry"}

@String{j-IMWUT                 = "Proceedings of the ACM on Interactive,
                                  Mobile, Wearable and Ubiquitous
                                  Technologies (IMWUT)"}

@String{j-INFORMS-J-COMPUT      = "INFORMS Journal on Computing"}

@String{j-INT-J-IMAGE-GRAPHICS = "International Journal of Image and Graphics
                                  (IJIG)"}

@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-INT-STAT-REV          = "International Statistical Review =
                                   Revue Internationale de Statistique"}

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

@String{j-J-AM-STAT-ASSOC       = "Journal of the American Statistical
                                  Association"}
@String{j-J-APPL-CRYSTAL        = "Journal of Applied Crystallography"}

@String{j-J-APPL-ECONOMETRICS   = "Journal of Applied Econometrics"}

@String{j-J-COMPUT-APPL-MATH    = "Journal of Computational and Applied
                                  Mathematics"}

@String{j-J-COMPUT-BIOL         = "Journal of Computational Biology"}

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

@String{j-J-COMPUT-SCI          = "Journal of Computational Science"}

@String{j-J-FUNCT-PROGRAM       = "Journal of Functional Programming"}

@String{j-J-OPEN-RES-SOFT       = "Journal of Open Research Software"}

@String{j-J-OPEN-SOURCE-SOFT    = "Journal of Open Source Software"}

@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-SOFTW-EVOL-PROC     = "Journal of Software: Evolution and Process"}

@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-NETWORK-SECURITY      = "Network Security"}

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

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

@String{j-PACMPL                = "Proceedings of the ACM on Programming
                                   Languages (PACMPL)"}

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

@String{j-PROC-VLDB-ENDOWMENT   = "Proceedings of the VLDB Endowment"}

@String{j-SCI-COMPUT-PROGRAM    = "Science of Computer Programming"}

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

@String{j-SCIENTOMETRICS        = "Scientometrics"}

@String{j-SIAM-J-SCI-COMP       = "SIAM Journal on Scientific Computing"}

@String{j-SIAM-REVIEW           = "SIAM Review"}

@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-SIGMOD                = "SIGMOD Record (ACM Special Interest
                                  Group on Management of Data)"}

@String{j-SIGSOFT               = "ACM SIGSOFT Software Engineering Notes"}

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

@String{j-SOFTWAREX             = "SoftwareX"}

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

@String{j-STAT-MED              = "Statistics in Medicine"}

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

@String{j-TACO                  = "ACM Transactions on Architecture and
                                  Code Optimization"}

@String{j-TALLIP                = "ACM Transactions on Asian and Low-Resource
                                  Language Information Processing (TALLIP)"}

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

@String{j-TECHNOMETRICS         = "Technometrics"}

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

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

@String{j-TIST                 = "ACM Transactions on Intelligent Systems and
                                  Technology (TIST)"}

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

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

@String{j-TOMACS                = "ACM Transactions on Modeling and
                                  Computer Simulation"}

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

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

@String{j-TOPS                  = "ACM Transactions on Privacy and Security
                                  (TOPS)"}

@String{j-TOSEM                 = "ACM Transactions on Software Engineering and
                                   Methodology"}

@String{j-TQC                   = "ACM Transactions on Quantum Computing (TQC)"}

@String{j-TRETS                 = "ACM Transactions on Reconfigurable Technology
                                  and Systems (TRETS)"}

@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-MIT                 = "MIT Press"}
@String{pub-MIT:adr             = "Cambridge, MA, 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-PRINCETON           = "Princeton University Press"}
@String{pub-PRINCETON:adr       = "Princeton, NJ, 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 =    "https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://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;
                 https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://www.math.utah.edu/pub/tex/bib/ieeecga.bib;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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-COMPUT-PHYS,
  volume =       "10",
  number =       "4",
  pages =        "359--365",
  month =        jul # "\slash " # aug,
  year =         "1996",
  CODEN =        "CPHYE2",
  DOI =          "https://doi.org/10.1063/1.4822457",
  ISSN =         "0894-1866 (print), 1558-4208 (electronic)",
  ISSN-L =       "0894-1866",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computphys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://aip.scitation.org/doi/10.1063/1.4822457",
  acknowledgement = ack-nhfb,
  ajournal =     "Comput. Phys",
  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",
  journal-URL =  "https://aip.scitation.org/journal/cip",
  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-COMPUT-PHYS,
  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 =    "https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://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-COMPUT-PHYS,
  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 =    "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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;
                 https://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{Anonymous:1997:BRPe,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Programming Python}}: By
                 Mark Lutz. O'Reilly, Sebastopol, CA. (1996). 880 pages.
                 \$44.95}",
  journal =      j-COMPUT-MATH-APPL,
  volume =       "33",
  number =       "5",
  pages =        "132--132",
  month =        mar,
  year =         "1997",
  CODEN =        "CMAPDK",
  ISSN =         "0898-1221 (print), 1873-7668 (electronic)",
  ISSN-L =       "0898-1221",
  bibdate =      "Wed Mar 1 21:48:37 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computmathappl1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0898122197829525",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers and Mathematics with Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/08981221",
}

@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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/byte1995.bib;
                 https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://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;
                 https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 https://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 =    "https://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;
                 https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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;
                 https://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:BRPf,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Python programming on
                 Win32}}: By Mark Hammond and Andy Robinson. O'Reilly,
                 Sebastopol, CA. (2000). 652 pages. \$34.95}",
  journal =      j-COMPUT-MATH-APPL,
  volume =       "40",
  number =       "2--3",
  pages =        "418--418",
  month =        jul # "\slash " # aug,
  year =         "2000",
  CODEN =        "CMAPDK",
  ISSN =         "0898-1221 (print), 1873-7668 (electronic)",
  ISSN-L =       "0898-1221",
  bibdate =      "Wed Mar 1 21:49:10 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computmathappl2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0898122100901974",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers and Mathematics with Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/08981221",
}

@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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sqlbooks.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =    "https://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;
                 https://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;
                 https://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 =    "https://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;
                 https://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/;
                 https://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;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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;
                 https://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 =    "https://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;
                 https://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 =    "https://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;
                 https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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;
                 https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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;
                 https://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 =          "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/563517.563472",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:52 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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/;
                 https://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 =          "https://doi.org/10.1145/792548.611996",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:59 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/961290.961542",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:03 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://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/;
                 https://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 =          "https://doi.org/10.1007/978-3-642-18237-2_8",
  bibdate =      "Fri Dec 21 16:04:02 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://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 =     "https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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;
                 https://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 =    "https://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/;
                 https://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 =    "https://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 =          "https://doi.org/10.1145/792548.611980",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:59 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =    "https://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 =    "https://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/;
                 https://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/;
                 https://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 =    "https://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 =          "https://doi.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 =    "https://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://dl.acm.org/pub.cfm?id=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 =    "https://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 =    "https://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/;
                 https://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;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =    "https://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/;
                 https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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/;
                 https://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 =    "https://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 =    "https://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/;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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/;
                 https://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 =          "https://doi.org/10.1007/3-540-31619-1_9",
  bibdate =      "Fri Dec 21 16:46:42 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://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 =     "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1140123.1140243",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:28 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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/;
                 https://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 =          "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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/;
                 https://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 =          "https://doi.org/10.1145/1140123.1140177",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:28 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://doi.org/10.1145/1124706.1121465",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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 =    "https://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 =    "https://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/;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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;
                 https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 https://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;
                 https://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;
                 https://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 =    "https://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 =          "https://doi.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/;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://doi.org/10.1145/1269900.1268793",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://doi.org/10.1145/1269900.1268937",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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 =    "https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =          "https://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;
                 https://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 =    "https://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 =          "https://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 =    "https://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;
                 https://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 =          "https://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 =    "https://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 =    "https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1269900.1268883",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =          "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =    "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 library.tcd.ie:210/advance",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Bioinformatics",
}

@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 =    "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1597849.1384369",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://doi.org/10.1145/1597849.1384285",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://doi.org/10.1145/1383602.1383624",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1597849.1384273",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1597849.1384368",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://doi.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 =    "https://www.math.utah.edu/pub/bibnet/subjects/domain-decomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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://dl.acm.org/pub.cfm?id=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 =          "https://doi.org/10.1145/1597849.1384407",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://doi.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/;
                 https://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 =    "https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://doi.org/10.1145/1539024.1509037",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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",
}

@Article{Choirat:2009:EP,
  author =       "Christine Choirat and Raffello Seri",
  title =        "Econometrics with {Python}",
  journal =      j-J-APPL-ECONOMETRICS,
  volume =       "24",
  number =       "4",
  pages =        "698--704",
  month =        jun # "--" # jul,
  year =         "2009",
  CODEN =        "JAECET",
  DOI =          "https://doi.org/10.1002/jae.1088",
  ISSN =         "0883-7252 (print), 1099-1255 (electronic)",
  ISSN-L =       "0883-7252",
  bibdate =      "Sat Mar 9 10:20:24 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jappleconometrics.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Applied Econometrics",
  journal-URL =  "https://onlinelibrary.wiley.com/journal/10991255;
                 https://www.jstor.org/journal/japplecon",
  onlinedate =   "27 April 2009",
}

@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 =    "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1539024.1508907",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =    "https://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 =          "https://doi.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/;
                 https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1539024.1508945",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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 =    "https://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{Gvero:2009:BRPb,
  author =       "Igor Gvero",
  title =        "Book Review: {{\booktitle{Python for Software Design}}
                 by Allen B. Downey, and published by Cambridge
                 University Press, 2009, 978-0-521-72596-5, 251pp.}",
  journal =      j-SIGSOFT,
  volume =       "34",
  number =       "6",
  pages =        "31--32",
  month =        nov,
  year =         "2009",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/1640162.1640181",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:15:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsoft2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@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 =          "https://doi.org/10.1145/1539024.1508931",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://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 =    "https://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 =          "https://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 =    "https://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 =    "https://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 =          "https://doi.org/10.1145/1595496.1562930",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =    "https://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 =          "https://doi.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 =    "https://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://dl.acm.org/pub.cfm?id=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 =          "https://doi.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/;
                 https://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 =    "https://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 =          "https://doi.org/10.1145/1595496.1562955",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://doi.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/;
                 https://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 =    "https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://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 =          "https://doi.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/;
                 https://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 =    "https://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 =          "https://doi.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/;
                 https://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 =    "https://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 =    "https://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 =          "https://doi.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/;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://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 =    "https://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;
                 https://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 =    "https://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 =          "https://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 =    "https://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;
                 https://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 =    "https://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 =    "https://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 =          "https://doi.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 =    "https://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://dl.acm.org/pub.cfm?id=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 =          "https://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 =    "https://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 =    "https://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 =          "https://doi.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/;
                 https://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;
                 https://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 =          "https://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/;
                 https://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 =          "https://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 =    "https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://doi.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/;
                 https://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 =          "https://doi.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/;
                 https://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 =          "https://doi.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 =    "https://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://dl.acm.org/pub.cfm?id=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 =    "https://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;
                 https://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 =          "https://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/;
                 https://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 =          "https://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;
                 https://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 =    "https://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 =          "https://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/;
                 https://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 =          "https://doi.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/;
                 https://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 =    "https://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/;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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{Khatri:2011:MBC,
  author =       "Sujata Khatri and R. S. Chhillar and V. B. Singh",
  title =        "Measuring bug complexity in object oriented software
                 system",
  journal =      j-SIGSOFT,
  volume =       "36",
  number =       "6",
  pages =        "1--8",
  month =        nov,
  year =         "2011",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/2047414.2047424",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:16:07 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
  abstract =     "Bugs are inevitable in any software development life
                 cycle. Most bugs are detected and removed in the
                 testing phase. In software, we can classify bugs into
                 two categories: (1) bugs of different severity, from a
                 user's perspective,(how much damage the bug does) and
                 (2) bugs of different complexity(how much is the
                 debugging time lag between detection and correction).
                 Prior knowledge of bug distribution of different
                 complexity can help project managers in allocating
                 testing resources and tools. Various researchers have
                 proposed models for determining the proportion of bugs
                 present in software of different complexity but none of
                 these models have been applied to object oriented
                 software. In this paper, we have proposed a model that
                 will determine the proportion of different bug
                 complexity. The paper also suggests the suitability of
                 the proposed model for a particular data set. We have
                 taken two data sets based on object oriented
                 methodology namely SQL for Python and SQuirreL SQL
                 Client software developed under open source
                 environment.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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:27",
  month =        feb,
  year =         "2011",
  CODEN =        "ACMSCU",
  DOI =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/elefunt.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "This article presents a portable C++ system for
                 multiple precision calculations of special functions
                 called {\tt e\_float}. It has an extendable
                 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://dl.acm.org/pub.cfm?id=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 =          "https://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 =    "https://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 =          "https://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;
                 https://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 =          "https://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;
                 https://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 =          "https://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/;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://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 =          "https://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 =    "https://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/;
                 https://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;
                 https://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 =          "https://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 =    "https://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 =    "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/ieeecga.bib;
                 https://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 =          "https://doi.org/10.1145/2350216.2350222",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:30 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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:41",
  month =        nov,
  year =         "2012",
  CODEN =        "ACMSCU",
  DOI =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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://dl.acm.org/pub.cfm?id=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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/lncs2012b.bib;
                 https://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 =     "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/lncs2012c.bib;
                 https://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 =     "https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/linala2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/maple-extract.bib;
                 https://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;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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 =          "https://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/;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://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 =    "https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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;
                 https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://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 =          "https://doi.org/10.1007/978-3-642-23099-8_10",
  bibdate =      "Fri Dec 21 16:04:32 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://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 =     "https://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 =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://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 =          "https://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;
                 https://www.math.utah.edu/pub/tex/bib/python.bibhttps://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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;
                 https://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 =          "https://doi.org/10.1007/978-3-642-23099-8_14",
  bibdate =      "Fri Dec 21 16:04:32 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://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 =     "https://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:17",
  month =        aug,
  year =         "2012",
  CODEN =        "ACMSCU",
  DOI =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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://dl.acm.org/pub.cfm?id=J782",
}

@Article{Anonymous:2013:BRV,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Violent Python}}, by T. J.
                 O'Connor. Syngress. ISBN 978-1-59749-957-6}",
  journal =      j-NETWORK-SECURITY,
  volume =       "2013",
  number =       "6",
  pages =        "4--4",
  month =        jun,
  year =         "2013",
  CODEN =        "NTSCF5",
  DOI =          "https://doi.org/10.1016/S1353-4858(13)70067-9",
  ISSN =         "1353-4858 (print), 1872-9371 (electronic)",
  ISSN-L =       "1353-4858",
  bibdate =      "Mon Dec 4 17:00:55 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/network-security.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1353485813700679",
  acknowledgement = ack-nhfb,
  fjournal =     "Network Security",
  journal-URL =  "https://www.sciencedirect.com/journal/network-security",
}

@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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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{Bianchi:2013:WPP,
  author =       "Riccardo Maria Bianchi and Renaud Bruneli{\`e}re",
  title =        "{WatchMan} project --- a {Python CASE} framework for
                 {High Energy Physics} data analysis in the {LHC} era",
  journal =      j-J-COMPUT-SCI,
  volume =       "4",
  number =       "5",
  pages =        "325--333",
  month =        sep,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2012.04.005",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:53:27 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750312000336",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://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 =          "https://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;
                 https://www.math.utah.edu/pub/tex/bib/computing.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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;
                 https://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;
                 https://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",
}

@Book{Guttag:2013:ICP,
  author =       "John Guttag",
  title =        "Introduction to Computation and Programming Using
                 {Python}",
  publisher =    pub-MIT,
  address =      pub-MIT:adr,
  pages =        "xiv + 298",
  year =         "2013",
  ISBN =         "0-262-52500-3 (paperback), 0-262-31219-0",
  ISBN-13 =      "978-0-262-52500-8 (paperback), 978-0-262-31219-6",
  LCCN =         "QA76.73.P98 G88 2013",
  bibdate =      "Tue Jun 5 10:54:15 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "This book introduces students with little or no prior
                 programming experience to the art of computational
                 problem solving using Python and various Python
                 libraries, including PyLab. It provides students with
                 skills that will enable them to make productive use of
                 computational techniques, including some of the tools
                 and techniques of ``data science'' for using
                 computation to model and interpret data. The book is
                 based on an MIT course (which became the most popular
                 course offered through MIT's OpenCourseWare) and was
                 developed for use not only in a conventional classroom
                 but in a massive open online course (or MOOC) offered
                 by the pioneering MIT--Harvard collaboration edX.
                 Students are introduced to Python and the basics of
                 programming in the context of such computational
                 concepts and techniques as exhaustive enumeration,
                 bisection search, and efficient approximation
                 algorithms. The book does not require knowledge of
                 mathematics beyond high school algebra, but does assume
                 that readers are comfortable with rigorous thinking and
                 not intimidated by mathematical concepts. Although it
                 covers such traditional topics as computational
                 complexity and simple algorithms, the book focuses on a
                 wide range of topics not found in most introductory
                 texts, including information visualization, simulations
                 to model randomness, computational techniques to
                 understand data, and statistical techniques that inform
                 (and misinform)as well as two related but relatively
                 advanced topics: optimization problems and dynamic
                 programming. \booktitle{Introduction to Computation and
                 Programming Using Python can} serve as a stepping-stone
                 to more advanced computer science courses, or as a
                 basic grounding in computational problem solving for
                 students in other disciplines.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Textbooks;
                 Computer programming",
  tableofcontents = "Preface \\
                 Acknowledgments \\
                 1 Getting Started \\
                 2 Introduction to Python \\
                 2.1 The Basic Elements of Python \\
                 2.2 Branching Programs \\
                 2.3 Strings and Input \\
                 2.4 Iteration \\
                 3 Some Simple Numerical Programs \\
                 3.1 Exhaustive Enumeration \\
                 3.2 For Loops \\
                 3.3 Approximate Solutions and Bisection Search \\
                 3.4 A Few Words About Using Floats \\
                 3.5 Newton-Raphson \\
                 4 Functions, Scoping, and Abstraction \\
                 4.1 Functions and Scoping \\
                 4.2 Specifications \\
                 4.3 Recursion \\
                 4.4 Global Variables \\
                 4.5 Modules \\
                 4.6 Files \\
                 5 Structured Types, Mutability, and Higher-Order
                 Functions \\
                 5.1 Tuples \\
                 5.2 Lists and Mutability \\
                 5.3 Functions as Objects \\
                 5.4 Strings, Tuples, and Lists \\
                 5.5 Dictionaries \\
                 6 Testing and Debugging \\
                 6.1 Testing \\
                 6.2 Debugging \\
                 7 Exceptions and Assertions \\
                 7.1 Handling Exceptions \\
                 7.2 Exceptions as a Control Flow Mechanism \\
                 7.3 Assertions \\
                 8 Classes and Object-Oriented Programming \\
                 8.1 Abstract Data Types and Classes \\
                 8.2 Inheritance \\
                 8.3 Encapsulation and Information Hiding \\
                 8.4 Mortgages, an Extended Example \\
                 9 A Simplistic Introduction to Algorithmic Complexity
                 \\
                 9.1 Thinking About Computational Complexity \\
                 9.2 Asymptotic Notation \\
                 9.3 Some Important Complexity Classes \\
                 10 Some Simple Algorithms and Data Structures \\
                 10.1 Search Algorithms \\
                 10.2 Sorting Algorithms \\
                 10.3 Hash Tables \\
                 11 Plotting and More About Classes \\
                 11.1 Plotting Using PyLab \\
                 11.2 Plotting Mortgages, an Extended Example \\
                 12 Stochastic Programs, Probability, and Statistics \\
                 12.1 Stochastic Programs \\
                 12.2 Inferential Statistics and Simulation \\
                 12.3 Distributions \\
                 12.4 How Often Does the Better Team Win? \\
                 12.5 Hashing and Collisions \\
                 13 Random Walks and More About Data Visualization \\
                 13.1 The Drunkard's Walk \\
                 13.2 Biased Random Walks \\
                 \ldots{} \\
                 16.6 Context Matters \\
                 16.7 Beware of Extrapolation \\
                 16.8 The Texas Sharpshooter Fallacy \\
                 16.9 Percentages Can Confuse \\
                 16.10 Just Beware \\
                 17 Knapsack and Graph Optimization Problems \\
                 17.1 Knapsack Problems \\
                 17.2 Graph Optimization Problems \\
                 18 Dynamic Programming \\
                 18.1 Fibonacci Sequences, Revisited \\
                 18.2 Dynamic Programming and the 0/1 Knapsack Problem
                 \\
                 18.3 Dynamic Programming and Divide-and-Conquer \\
                 19 A Quick Look at Machine Learning \\
                 19.1 Feature Vectors \\
                 19.2 Distance Metrics \\
                 19.3 Clustering \\
                 19.4 Types Example and Cluster \\
                 19.5 K-means Clustering \\
                 19.6 A Contrived Example",
}

@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 =          "https://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;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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;
                 https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://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;
                 https://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;
                 https://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/;
                 https://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://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;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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;
                 https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://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)",
}

@Article{Rossant:2013:PPL,
  author =       "Cyrille Rossant and Bertrand Fontaine and Dan F. M.
                 Goodman",
  title =        "\pkg{Playdoh}: a lightweight {Python} library for
                 distributed computing and optimisation",
  journal =      j-J-COMPUT-SCI,
  volume =       "4",
  number =       "5",
  pages =        "352--359",
  month =        sep,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2011.06.002",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:53:27 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750311000561",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@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;
                 https://www.math.utah.edu/pub/tex/bib/jstatphys2010.bib;
                 https://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;
                 https://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 =          "https://doi.org/10.1145/2534973",
  ISSN =         "1946-6226",
  bibdate =      "Wed Nov 13 17:27:51 MST 2013",
  bibsource =    "http://www.acm.org/pubs/toce;
                 https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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;
                 https://www.math.utah.edu/pub/tex/bib/jrss-a-2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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;
                 https://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{Toby:2013:GIG,
  author =       "Brian H. Toby and Robert B. {Von Dreele}",
  title =        "{GSAS-II}: the genesis of a modern open-source all
                 purpose crystallography software package",
  journal =      j-J-APPL-CRYSTAL,
  volume =       "46",
  number =       "2",
  pages =        "544--549",
  year =         "2013",
  CODEN =        "JACGAR",
  DOI =          "https://doi.org/10.1107/S0021889813003531",
  ISSN =         "0021-8898 (print), 1600-5767 (electronic)",
  ISSN-L =       "0021-8898",
  bibdate =      "Tue Jan 30 07:39:48 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of applied crystallography",
  keywords =     "data analysis, structure analysis, Python, powder
                 diffraction, charge flipping, powder indexing, image
                 processing, computer programs",
}

@Article{Walter:2013:ADP,
  author =       "Sebastian F. Walter and Lutz Lehmann",
  title =        "Algorithmic differentiation in {Python} with
                 {AlgoPy}",
  journal =      j-J-COMPUT-SCI,
  volume =       "4",
  number =       "5",
  pages =        "334--344",
  month =        sep,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2011.10.007",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:53:27 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750311001013",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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;
                 https://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",
}

@Article{Anonymous:2014:BRP,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Python Forensics}}, Chet
                 Hosmer, Syngress. ISBN 978-0-12-418676-7 (print),
                 978-0-12-418683-5 (e-book)}",
  journal =      j-NETWORK-SECURITY,
  volume =       "2014",
  number =       "9",
  pages =        "4--4",
  month =        sep,
  year =         "2014",
  CODEN =        "NTSCF5",
  DOI =          "https://doi.org/10.1016/S1353-4858(14)70087-X",
  ISSN =         "1353-4858 (print), 1872-9371 (electronic)",
  ISSN-L =       "1353-4858",
  bibdate =      "Mon Dec 4 17:01:11 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/network-security.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S135348581470087X",
  acknowledgement = ack-nhfb,
  fjournal =     "Network Security",
  journal-URL =  "https://www.sciencedirect.com/journal/network-security",
}

@Article{Arabas:2014:FTB,
  author =       "Sylwester Arabas and Dorota Jarecka and Anna Jaruga
                 and Maciej Fijalkowski",
  title =        "Formula translation in {Blitz++}, {NumPy} and modern
                 {Fortran}: A case study of the language choice
                 tradeoffs",
  journal =      j-SCI-PROG,
  volume =       "22",
  number =       "3",
  pages =        "201--222",
  month =        "????",
  year =         "2014",
  CODEN =        "SCIPEV",
  DOI =          "https://doi.org/10.3233/SPR-140379",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Tue Sep 9 18:01:15 MDT 2014",
  bibsource =    "http://www.iospress.nl/;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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{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;
                 https://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",
}

@Book{Aumasson:2014:HFB,
  author =       "Jean-Philippe Aumasson and Willi Meier and Raphael
                 C.-W. Phan and Luca Henzen",
  title =        "The Hash Function {BLAKE}",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xviii + 228 + 18",
  year =         "2014",
  DOI =          "https://doi.org/10.1007/978-3-662-44757-4",
  ISBN =         "3-662-44756-8 (print), 3-662-44757-6 (e-book)",
  ISBN-13 =      "978-3-662-44756-7 (print), 978-3-662-44757-4
                 (e-book)",
  ISSN =         "1619-7100 (print), 2197-845X (electronic)",
  ISSN-L =       "1619-7100",
  LCCN =         "QA76.9.H36 A96 2014",
  bibdate =      "Sat Jun 10 08:35:22 MDT 2017",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Information Security and Cryptography",
  abstract =     "This is a comprehensive description of the
                 cryptographic hash function BLAKE, one of the five
                 final contenders in the NIST SHA3 competition, and of
                 BLAKE2, an improved version popular among developers.
                 It describes how BLAKE was designed and why BLAKE2 was
                 developed, and it offers guidelines on implementing and
                 using BLAKE, with a focus on software implementation.
                 In the first two chapters, the authors offer a short
                 introduction to cryptographic hashing, the SHA3
                 competition, and BLAKE. They review applications of
                 cryptographic hashing, they describe some basic notions
                 such as security definitions and state-of-the-art
                 collision search methods, and they present SHA1, SHA2,
                 and the SHA3 finalists. In the chapters that follow,
                 the authors give a complete description of the four
                 instances BLAKE-256, BLAKE-512, BLAKE-224, and
                 BLAKE-384; they describe applications of BLAKE,
                 including simple hashing with or without a salt, and
                 HMAC and PBKDF2 constructions; they review
                 implementation techniques, from portable C and Python
                 to AVR assembly and vectorized code using SIMD CPU
                 instructions; they describe BLAKE's properties with
                 respect to hardware design for implementation in ASICs
                 or FPGAs; they explain BLAKE's design rationale in
                 detail, from NIST's requirements to the choice of
                 internal parameters; they summarize the known security
                 properties of BLAKE and describe the best attacks on
                 reduced or modified variants; and they present BLAKE2,
                 the successor of BLAKE, starting with motivations and
                 also covering its performance and security aspects. The
                 book concludes with detailed test vectors, a reference
                 portable C implementation of BLAKE, and a list of
                 third-party software implementations of BLAKE and
                 BLAKE2. The book is oriented towards practice -
                 engineering and craftsmanship - rather than theory. It
                 is suitable for developers, engineers, and security
                 professionals engaged with BLAKE and cryptographic
                 hashing in general, and for applied cryptography
                 researchers and students who need a consolidated
                 reference and a detailed description of the design
                 process, or guidelines on how to design a cryptographic
                 algorithm.",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "Introduction \\
                 Preliminaries \\
                 Specification of BLAKE \\
                 Using BLAKE \\
                 BLAKE in Software \\
                 BLAKE in Hardware \\
                 Design Rationale \\
                 Security of BLAKE \\
                 BLAKE2 \\
                 Conclusion \\
                 References \\
                 App. A, Test Vectors \\
                 App. B, Reference C Code \\
                 App. C, Third-Party Software \\
                 Index",
  subject =      "BLAKE",
  tableofcontents = "Introduction / 1 \\
                 1.1 Cryptographic Hashing / 1 \\
                 1.2 The SHA3 Competition / 2 \\
                 1.3 BLAKE, in a Nutshell / 5 \\
                 1.4 Conventions / 6 \\
                 2 Preliminaries / 9 \\
                 2.1 Applications / 9 \\
                 2.1.1 Modification Detection / 9 \\
                 2.1.2 Message Authentication / 10 \\
                 2.1.3 Digital Signatures / 11 \\
                 2.1.4 Pseudorandom Functions / 12 \\
                 2.1.5 Entropy Extraction and Key Derivation / 13 \\
                 2.1.6 Password Hashing / 13 \\
                 2.1.7 Data Identification / 14 \\
                 2.1.8 Key Update / 14 \\
                 2.1.9 Proof-of-Work Systems / 14 \\
                 2.1.10 Timestamping / 15 \\
                 2.2 Security Notions / 15 \\
                 2.2.1 Security Models / 15 \\
                 2.2.2 Classical Security Definitions / 17 \\
                 2.2.3 General Security Definition / 19 \\
                 2.3 Black-Box Collision Search / 20 \\
                 2.3.1 Cycles and Tails / 20 \\
                 2.3.2 Cycle Detection / 21 \\
                 2.3.3 Parallel Collision Search / 22 \\
                 2.3.4 Application to Meet-in-the-Middle / 22 \\
                 2.3.5 Quantum Collision Search / 23 \\
                 2.4 Constructing Hash Functions / 24 \\
                 2.4.1 Merkle-Damgard / 24 \\
                 2.4.2 HAIFA / 27 \\
                 2.4.3 Wide-Pipe / 27 \\
                 2.4.4 Sponge Functions / 27 \\
                 2.4.5 Compression Functions / 28 \\
                 2.5 The SHA Family / 31 \\
                 2.5.1 SHA1 / 31 \\
                 2.5.2 SHA2 / 32 \\
                 2.5.3 SHA3 Finalists / 34 \\
                 3 Specification of BLAKE / 37 \\
                 3.1 BLAKE-256 / 37 \\
                 3.1.1 Constant Parameters / 37 \\
                 3.1.2 Compression Function / 38 \\
                 3.1.3 Iteration Mode / 40 \\
                 3.2 BLAKE-512 / 41 \\
                 3.2.1 Constant Parameters / 41 \\
                 3.2.2 Compression Function / 42 \\
                 3.2.3 Iteration Mode / 42 \\
                 3.3 BLAKE-224 / 43 \\
                 3.4 BLAKE-384 / 43 \\
                 3.5 Toy Versions / 44 \\
                 4 Using BLAKE / 45 \\
                 4.1 Simple Hashing / 45 \\
                 4.1.1 Description / 45 \\
                 4.1.2 Hashing a Large File with BLAKE-256 / 46 \\
                 4.1.3 Hashing a Bit with BLAKE-512 / 48 \\
                 4.1.4 Hashing the Empty String with BLAKE-512 / 49 \\
                 4.2 Hashing with a Salt / 49 \\
                 4.2.1 Description / 49 \\
                 4.2.2 Hashing a Bit with BLAKE-512 and a Salt / 49 \\
                 4.3 Message Authentication with HMAC / 50 \\
                 4.3.1 Description / 50 \\
                 4.3.2 Authenticating a File with HMAC-BLAKE-512 / 50
                 \\
                 4.4 Password-Based Key Derivation with PBKDF2 / 53 \\
                 4.4.1 Basic Description / 53 \\
                 4.4.2 Generating a Key with PBKDF2-HMAC-BLAKE-224 / 53
                 \\
                 5 BLAKE in Software / 55 \\
                 5.1 Straightforward Implementation / 55 \\
                 5.1.1 Portable C / 55 \\
                 5.1.2 Other Languages / 58 \\
                 5.2 Embedded Systems / 60 \\
                 5.2.1 8-Bit AVR / 60 \\
                 5.2.2 32-Bit ARM / 62 \\
                 5.3 Vectorized Implementation Principle / 64 \\
                 5.4 Vectorized Implementation with SSE Extensions / 64
                 \\
                 5.4.1 Streaming SIMD Extensions 2 (SSE2) / 64 \\
                 5.4.2 Implementing BLAKE-256 with SSE2 / 65 \\
                 5.4.3 Implementing BLAKE-512 with SSE2 / 66 \\
                 5.4.4 Implementations with SSSE3 and SSE4.1 / 70 \\
                 5.5 Vectorized Implementation with AVX2 Extensions / 70
                 \\
                 5.5.1 Relevant AVX2 Instructions / 71 \\
                 5.5.2 Implementing BLAKE-512 with AVX2 / 73 \\
                 5.5.3 Implementing BLAKE-256 with AVX2 / 77 \\
                 5.6 Vectorized Implementation with XOP Extensions / 79
                 \\
                 5.6.1 Relevant XOP Instructions / 80 \\
                 5.6.2 Implementing BLAKE with XOP / 80 \\
                 5.7 Vectorized Implementation with NEON Extensions / 83
                 \\
                 5.7.1 Relevant NEON Instructions / 83 \\
                 5.7.2 Implementing BLAKE-256 with NEON / 84 \\
                 5.7.3 Implementing BLAKE-512 with NEON / 86 \\
                 5.8 Performance / 88 \\
                 5.8.1 Speed Summary / 89 \\
                 5.8.2 8-Bit AVR / 90 \\
                 5.8.3 ARM Platforms / 91 \\
                 5.8.4 x86 Platforms (32-bit) / 91 \\
                 5.8.5 amd64 Platforms (64-bit) / 92 \\
                 5.8.6 Other Platforms / 93 \\
                 6 BLAKE in Hardware / 97 \\
                 6.1 RTL Design / 97 \\
                 6.2 ASIC Implementation / 98 \\
                 6.2.1 High-Speed Design / 98 \\
                 6.2.2 Compact Design / 100 \\
                 6.3 FPGA Design / 100 \\
                 6.4 Performance / 101 \\
                 6.4.1 ASIC / 102 \\
                 6.4.2 FPGA / 102 \\
                 6.4.3 Discussion / 105 \\
                 7 Design Rationale / 107 \\
                 7.1 NIST Call for Submissions / 107 \\
                 7.1.1 General Requirements / 107 \\
                 7.1.2 Technical and Security Requirements / 109 \\
                 7.1.3 Could SHA2 Be SHA3? / 110 \\
                 7.2 Needs Analysis Ill 7.2.1 Ease of Implementation /
                 112 \\
                 7.2.2 Performance / 113 \\
                 7.2.3 Security / 113 \\
                 7.2.4 Extra Features / 114 \\
                 7.3 Design Philosophy / 114 \\
                 7.3.1 Minimalism / 115 \\
                 7.3.2 Robustness / 119 \\
                 7.3.3 Versatility / 120 \\
                 7.4 Design Choices / 120 \\
                 7.4.1 General Choices / 121 \\
                 7.4.2 Iteration Mode / 122 \\
                 7.4.3 Core Algorithm / 122 \\
                 7.4.4 Rotation Counts / 125 \\
                 7.4.5 Permutations / 126 \\
                 7.4.6 Number of Rounds / 128 \\
                 7.4.7 Constants / 128 \\
                 8 Security of BLAKE / 131 \\
                 8.1 Differential Cryptanalysis / 131 \\
                 8.1.1 Differences and Differentials / 132 \\
                 8.1.2 Finding Good Differentials / 133 \\
                 8.2 Properties of BLAKE's G Function / 133 \\
                 8.2.1 Basic Properties / 134 \\
                 8.2.2 Differential Properties of G / 136 \\
                 8.3 Properties of the Round Function / 141 \\
                 8.3.1 Bijectivity / 141 \\
                 8.3.2 Diffusion and Low-Weight Differences / 142 \\
                 8.3.3 Invertibility / 145 \\
                 8.3.4 Impossible Differentials / 147 \\
                 8.4 Properties of the Compression Function / 151 \\
                 8.4.1 Finalization / 151 \\
                 8.4.2 Local Collisions / 152 \\
                 8.4.3 Fixed Points / 152 \\
                 8.4.4 Fixed Point Collisions / 153 \\
                 8.4.5 Pseudorandomness / 153 \\
                 8.5 Security Against Generic Attacks / 154 \\
                 8.5.1 Indifferentiability / 154 \\
                 8.5.2 Length Extension / 155 \\
                 8.5.3 Collision Multiplication / 155 \\
                 8.5.4 Multicollisions / 156 \\
                 8.5.5 Second Preimages / 157 \\
                 8.6 Attacks on Reduced BLAKE / 158 \\
                 8.6.1 Preimage Attacks / 158 \\
                 8.6.2 Near-Collision Attack / 159 \\
                 8.6.3 Boomerang Distinguisher / 160 \\
                 8.6.4 Iterative Characteristics / 161 \\
                 8.6.5 Breaking BLOKE / 163 \\
                 8.6.6 Attack on a Variant with Identical Constants /
                 163 \\
                 9 BLAKE2 / 165 \\
                 9.1 Motivations / 165 \\
                 9.2 Differences with BLAKE / 166 \\
                 9.2.1 Fewer Rounds / 167 \\
                 9.2.2 Rotations Optimized for Speed / 167 \\
                 9.2.3 Minimal Padding / 168 \\
                 9.2.4 Finalization Flags / 168 \\
                 9.2.5 Fewer Constants '68 9.2.6 Little-Endianness / 169
                 \\
                 9.2.7 Counter in Bytes / 170 \\
                 9.2.8 Salt Processing / 170 \\
                 9.2.9 Parameter Block / 170 \\
                 9.3 Keyed Hashing (MAC and PRF) / 172 \\
                 9.4 Tree Hashing / 172 \\
                 9.4.1 Basic Mechanism / 173 \\
                 9.4.2 Message Parsing / 174 \\
                 9.4.3 Special Cases / 174 \\
                 9.4.4 Generic Tree Parameters / 175 \\
                 9.4.5 Updatable Hashing Example / 175 \\
                 9.5 Parallel Hashing: BLAKE2sp and BLAKE2bp / 176 \\
                 9.6 Performance / 177 \\
                 9.6.1 Why BLAKE2 Is Fast in Software / 177 \\
                 9.6.2 64-bit Platforms / 178 \\
                 9.6.3 Low-End Platforms / 179 \\
                 9.6.4 Hardware / 180 \\
                 9.7 Security / 180 \\
                 9.7.1 BLAKE Legacy / 180 \\
                 9.7.2 Implications of BLAKE2 Tweaks / 181 \\
                 9.7.3 Third-Party Cryptanalysis / 181 \\
                 10 Conclusion / 185 \\
                 References / 187 \\
                 A Test Vectors / 195 \\
                 A.1 BLAKE-256 / 195 \\
                 A.1.1 One-Block Message / 195 \\
                 A.1.2 Two-Block Message / 196 \\
                 A.2 BLAKE-224 / 198 \\
                 A.2.1 One-Block Message / 198 \\
                 A.2.2 Two-Block Message / 199 \\
                 A.3 BLAKE-512 / 201 \\
                 A.3.1 One-Block Message / 201 \\
                 A.3.2 Two-Block Message / 202 \\
                 A.4 BLAKE-384 / 205 \\
                 A.4.1 One-Block Message / 205 \\
                 A.4.2 Two-Block Message / 206 \\
                 B Reference C Code / 209 \\
                 B.1 blake.h / 209 \\
                 B.2 blake224.c / 211 \\
                 B.3 blake256.c / 214 \\
                 B.4 blake384.c / 217 \\
                 B.5 blake512.c / 220 \\
                 C Third-Party Software / 225 \\
                 C.1 BLAKE / 225 \\
                 C.2 BLAKE2 / 226 \\
                 Index / 227",
}

@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 =          "https://doi.org/10.1109/MCSE.2014.17",
  ISSN =         "1521-9615",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Apr 19 10:17:39 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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;
                 https://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;
                 https://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:23",
  month =        jun,
  year =         "2014",
  CODEN =        "ACMSCU",
  DOI =          "https://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 =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =          "https://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;
                 https://www.math.utah.edu/pub/tex/bib/numlinaa.bib;
                 https://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;
                 https://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 =          "https://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;
                 https://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/;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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;
                 https://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 \ldots{} \\
                 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 \ldots{} \\
                 There's more \ldots{} \\
                 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 \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 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 \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Gathering analog data without hardware \\
                 Logging and plotting data \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Plotting live data \\
                 Scaling and calibrating data \\
                 Extending the Raspberry Pi GPIO with an I/O expander
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 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 \ldots{} \\
                 How it works \ldots{} \\
                 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 \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Sending RF control signals directly \\
                 Using SPI to control an LED matrix \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Daisy-chain SPI configuration \\
                 Communicating using a serial interface \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 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 \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Configuring Bluetooth module settings \\
                 Controlling USB devices \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 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 \ldots{} \\
                 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 =          "https://doi.org/10.1109/MCSE.2014.26",
  ISSN =         "1521-9615",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Apr 19 10:17:39 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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 =          "https://doi.org/10.1109/MCSE.2013.99",
  ISSN =         "1521-9615",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Apr 19 10:17:39 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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;
                 https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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;
                 https://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{Herman:2014:FSC,
  author =       "Ted Herman",
  title =        "A functional start to computing with {Python}",
  publisher =    "CRC Press, Taylor and Francis",
  address =      "Boca Raton, FL, USA",
  pages =        "xiv + 415",
  year =         "2014",
  ISBN =         "1-4665-0455-2 (paperback)",
  ISBN-13 =      "978-1-4665-0455-4 (paperback)",
  LCCN =         "QA76.73.P98 H47 2014",
  bibdate =      "Thu Jul 25 11:15:00 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Chapman and Hall/CRC textbooks in computing",
  abstract =     "Open source and easy to use, Python offers the
                 availability of exciting libraries of software,
                 application programming interfaces, and even
                 connections to web services. This textbook uses Python
                 as a working environment to teach the basics of
                 computing for students with no prior programming
                 experience. Unlike similar texts, it organizes topics
                 based on a functional first approach to teaching
                 programming. The book includes case studies of
                 practical problems as well as homework and interactive
                 tools online, such as flashcards.",
  acknowledgement = ack-nhfb,
  author-dates = "1952--",
  subject =      "Python (Computer program language); COMPUTERS /
                 Programming Languages / General; MATHEMATICS / General;
                 MATHEMATICS / Advanced",
  tableofcontents = "Part I: Motivation and background \\
                 Inspirations of computing \\
                 Preview of computing with python \\
                 General landscape of computing languages \\
                 Python setup \\
                 Part II: Functional-style python \\
                 Types \\
                 Operators \\
                 Expressions \\
                 Printing \\
                 Functions I \\
                 Functions II \\
                 Conditional logic \\
                 Slice, split, join \\
                 Comprehensions \\
                 Functional patterns \\
                 Part III: Imperative-style python \\
                 Names for data \\
                 Functions and variables \\
                 Mutation \\
                 Modules \\
                 Repetition \\
                 Documentation \\
                 Debugging \\
                 Accumulation loop patterns \\
                 Search loop patterns \\
                 Drawing \\
                 Input and output \\
                 Network programs \\
                 Objects, classes, and inheritance \\
                 Randomness, time, and system modules \\
                 Graphical user interfaces \\
                 Part IV: Appendices \\
                 Advanced topics \\
                 Solutions to exercises \\
                 Reference tables",
}

@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 =          "https://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;
                 https://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,
  pages =        "xxviii + 318",
  year =         "2014",
  ISBN =         "0-12-418683-1, 0-12-418676-9",
  ISBN-13 =      "978-0-12-418683-5, 978-0-12-418676-7",
  LCCN =         "????",
  bibdate =      "Sat Oct 24 07:03:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9780124186767",
  abstract =     "Python Forensics provides many never-before-published
                 proven forensic modules, libraries, and solutions that
                 can be used right out of the box. In addition, detailed
                 instruction and documentation provided with the code
                 samples will allow even novice Python programmers to
                 add their own unique twists or use the models presented
                 to build new solutions. Rapid development of new
                 cybercrime investigation tools is an essential
                 ingredient in virtually every case and environment.
                 Whether you are performing post-mortem investigation,
                 executing live triage, extracting evidence from mobile
                 devices or cloud services, or you are collecting and
                 processing evidence from a network, Python forensic
                 implementations can fill in the gaps. Drawing upon
                 years of practical experience and using numerous
                 examples and illustrative code samples, author Chet
                 Hosmer discusses how to: Develop new forensic solutions
                 independent of large vendor software release schedules
                 Participate in an open-source workbench that
                 facilitates direct involvement in the design and
                 implementation of new methods that augment or replace
                 existing tools Advance your career by creating new
                 solutions along with the construction of cutting-edge
                 automation solutions to solve old problems.",
  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",
}

@Article{Hughes:2014:PPI,
  author =       "Adam Hughes",
  title =        "\pkg{pyparty}: Intuitive Particle Processing in
                 {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "2",
  number =       "1",
  pages =        "e26--??",
  day =          "23",
  month =        sep,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.bh",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:49 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.bh/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@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;
                 https://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{Ivezic:2014:SDM,
  author =       "{\v{Z}}eljko Ivezi{\'c} and Andrew (Andrew J.)
                 Connolly and Jacob T. VanderPlas and Alexander
                 (Alexander G.) Gray",
  title =        "Statistics, data mining, and machine learning in
                 astronomy: a practical {Python} guide for the analysis
                 of survey data",
  publisher =    pub-PRINCETON,
  address =      pub-PRINCETON:adr,
  pages =        "x + 540",
  year =         "2014",
  ISBN =         "0-691-15168-7",
  ISBN-13 =      "978-0-691-15168-7",
  LCCN =         "QB51.3.E43 S72 2014",
  bibdate =      "Tue Feb 21 10:43:03 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Princeton series in modern observational astronomy",
  URL =          "http://www.loc.gov/catdir/enhancements/fy1410/2013951369-b.html;
                 http://www.loc.gov/catdir/enhancements/fy1410/2013951369-d.html",
  acknowledgement = ack-nhfb,
  subject =      "Statistical astronomy; Astronomy; Data processing;
                 Python (Computer program language); Data analysis; Data
                 mining; COMPUTERS; General; SCIENCE; Physics;
                 Mathematical and Computational; Python (Computer
                 program language); Data processing; Statistical
                 astronomy",
  tableofcontents = "I. Introduction \\
                 1. About the Book and Supporting Material \\
                 1.1. What do Data Mining, Machine Learning, and
                 Knowledge Discovery mean? \\
                 1.2. What is this book about? \\
                 1.3. An incomplete survey of the relevant literature
                 \\
                 1.4. Introduction to the Python Language and the Git
                 Code Management Tool \\
                 1.5. Description of surveys and data sets used in
                 examples \\
                 1.6. Plotting and visualizing the data in this book \\
                 1.7. How to efficiently use this book \\
                 References \\
                 2. Fast Computation on Massive Data Sets \\
                 2.1. Data types and Data Management systems \\
                 2.2. Analysis of algorithmic efficiency \\
                 2.3. Seven types of computational Problem[s] \\
                 2.4. Seven strategies for speeding things up \\
                 2.5. Case studies: Speedup strategies in practice \\
                 References \\
                 II. Statistical Frameworks and Exploratory Data
                 Analysis \\
                 3. Probability and Statistical Distributions \\
                 3.1. Brief overview of probability and random variables
                 \\
                 3.2. Descriptive statistics \\
                 3.3. Common Univariate Distribution Functions \\
                 3.4. The Central Limit Theorem \\
                 3.5. Bivariate and Multivariate Distribution Functions
                 \\
                 3.6. Correlation coefficients \\
                 3.7. Random number generation for arbitrary
                 distributions \\
                 References \\
                 4. Classical Statistical Inference \\
                 4.1. Classical vs. Bayesian Statistical Inference \\
                 4.2. Maximum Likelihood Estimation (MLE) \\
                 4.3. The goodness of Fit and Model Selection \\
                 4.4. ML Applied to Gaussian Mixtures: The Expectation
                 Maximization Algorithm \\
                 4.5. Confidence estimates: the bootstrap and the
                 jackknife \\
                 4.6. Hypothesis testing \\
                 4.7. Comparison of distributions \\
                 4.8. Nonparametric modeling and histograms \\
                 4.9. Selection effects and Luminosity Function
                 Estimation \\
                 4.10. Summary \\
                 References \\
                 5 Bayesian Statistical Inference \\
                 5.1. Introduction to the Bayesian method \\
                 5.2. Bayesian priors \\
                 5.3. Bayesian parameter uncertainty quantification \\
                 5.4. Bayesian model selection \\
                 5.5. Nonuniform priors: Eddington, Malmquist, and
                 Lutz-Kelker biases \\
                 5.6. Simple examples of Bayesian analysis: Parameter
                 estimation \\
                 5.7. Simple examples of Bayesian analysis: Model
                 selection \\
                 5.8. Numerical methods for complex problems (MCMC) \\
                 5.9. Summary of pros and cons for classical and
                 Bayesian methods \\
                 References \\
                 III. Data Mining and Machine Learning \\
                 6 Searching for Structure in Point Data \\
                 6.1. Nonparametric density estimation \\
                 6.2. Nearest-neighbor density estimation \\
                 6.3. Parametric density estimation \\
                 6.4. Finding clusters in data \\
                 6.5. Correlation functions \\
                 6.6. Which density estimation and clustering algorithms
                 should I use? \\
                 References \\
                 7 Dimensionality and its reduction \\
                 7.1. The curse of dimensionality \\
                 7.2. The data sets used in this chapter \\
                 7.3. Principal component analysis \\
                 7.4. Nonnegative matrix factorization \\
                 7.5. Manifold learning \\
                 7.6. Independent component analysis and projection
                 pursuit \\
                 7.7. Which dimensionality reduction technique should I
                 use? \\
                 References \\
                 8 Regression and model fitting \\
                 8.1. Formulation of the regression problem \\
                 8.2. Regression for linear models \\
                 8.3. Regularization and penalizing the likelihood \\
                 8.4. Principal component regression \\
                 8.5. Kernel regression \\
                 8.6. Locally linear regression \\
                 8.7. Nonlinear regression \\
                 8.8. Uncertainties in the data \\
                 8.9. Regression that is robust to outliers \\
                 8.10. Gaussian process regression \\
                 8.11. Overfitting, underfitting, and cross-validation
                 \\
                 8.12. Which regression method should I use? \\
                 References \\
                 III. Data Mining and Machine Learning (continued) \\
                 9 Classification \\
                 9.1. Data sets used in this chapter \\
                 9.2. Assigning categories: Classification \\
                 9.3. Generative classification \\
                 9.4. K-nearest-neighbor classifier \\
                 9.5. Discriminative classification \\
                 9.6. Support vector machines \\
                 9.7. Decision trees \\
                 9.8. Evaluating classifiers: ROC Curves \\
                 9.9. Which classifier should I use? \\
                 References \\
                 10 Time Series Analysis \\
                 10.1. Main concepts for Time Series Analysis \\
                 10.2. Modeling toolkit for Time Series Analysis \\
                 10.3. Analysis of Periodic Time Series \\
                 10.4. Temporally localized signals \\
                 10.5. Analysis of Stochastic Processes \\
                 10.6. Which method should I use for Time Series
                 Analysis? \\
                 References \\
                 IV. Appendices \\
                 A An Introduction to Scientific Computing with Python
                 \\
                 A.1. A brief history of Python \\
                 A.2. The ScyPy universe \\
                 A.3. Getting started with Python \\
                 A.4. IPython: The basics of interactive computing \\
                 A.5. Introduction to NumPy \\
                 A.6. Visualization with Matplotlib \\
                 A.7. Overview of useful NumPy/SciPy modules \\
                 A.8. Efficient coding with Python and NumPy \\
                 A.9. Wrapping existing code in Python \\
                 A.10. Other resources \\
                 B AstroML: Machine Learning for Astronomy \\
                 B.1. Introduction \\
                 B.2. Dependencies \\
                 B.3. Tools included in AstroML v0.1 \\
                 C Astronomical Flux Measurements and Magnitudes \\
                 C.1. The definition of the specific flux \\
                 C.2. Wavelength window function for astronomical
                 measurements \\
                 C.3. The astronomical magnitude systems \\
                 D SQL Query for Downloading SDSS Data \\
                 E Approximating the Fourier Transform with the FFT \\
                 References",
}

@Article{Jacobs:2014:PPP,
  author =       "Christian Jacobs and Alexandros Avdis and Gerard
                 Gorman and Matthew Piggott",
  title =        "\pkg{PyRDM}: a {Python}-based library for automating
                 the management and online publication of scientific
                 software and data",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "2",
  number =       "1",
  pages =        "e28--??",
  day =          "03",
  month =        oct,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.bj",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:49 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.bj/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@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;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://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 =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://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 =          "https://doi.org/10.1145/2662412",
  ISSN =         "1946-6226",
  bibdate =      "Wed Feb 11 21:50:28 MST 2015",
  bibsource =    "http://www.acm.org/pubs/toce;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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 =    "https://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 =          "https://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/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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;
                 https://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;
                 https://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;
                 https://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;
                 https://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 [backslash] \\
                 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 [backslash] \\
                 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 =    "https://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 context \\
                 Operator Overloading Methods \\
                 Methods for All Types \\
                 Methods for Collections (Sequences, Mappings) \\
                 Methods for Numbers (Binary Operators) \\
                 Basic binary methods \\
                 Right-side binary methods \\
                 Augmented binary methods \\
                 Methods for Numbers (Other Operations) \\
                 Methods for Descriptors \\
                 Methods for Context Managers \\
                 Python 2.X Operator Overloading Methods \\
                 Methods in Python 3.X only \\
                 Methods in Python 2.X only \\
                 Built-in Functions \\
                 Python 2.X Built-in Functions \\
                 Python 3.X built-ins not supported by Python 2.X \\
                 Python 2.X built-ins not supported by Python 3.X \\
                 Built-in Exceptions \\
                 Superclasses: Categories \\
                 Specific Exceptions \\
                 Specific OSError Exceptions \\
                 Warning Category Exceptions \\
                 Warnings Framework \\
                 Python 3.2 Built-in Exceptions \\
                 Python 2.X Built-in Exceptions \\
                 Built-in Attributes \\
                 Standard Library Modules \\
                 The sys Module \\
                 The string Module \\
                 Functions and Classes \\
                 Constants \\
                 The os System Module \\
                 Administrative Tools \\
                 Portability Constants \\
                 Shell Commands \\
                 Environment Tools \\
                 File Descriptor Tools \\
                 File Pathname Tools \\
                 Process Control \\
                 The os.path Module \\
                 The re Pattern-Matching Module \\
                 Module Functions \\
                 Regular Expression Objects \\
                 Match Objects \\
                 Pattern Syntax \\
                 Object Persistence Modules \\
                 The shelve and dbm Modules \\
                 File opens \\
                 File operations \\
                 The pickle Module \\
                 Pickling interfaces \\
                 Unpickling interfaces \\
                 pickle usage notes \\
                 The tkinter GUI Module and Tools \\
                 tkinter Example \\
                 tkinter Core Widgets \\
                 Common Dialog Calls \\
                 Module tkinter.messagebox (tkMessageBox in Python 2.X)
                 \\
                 Module tkinter.simpledialog (tkSimpleDialog in Python
                 2.X) \\
                 Module tkinter.colorchooser (tkColorChooser in Python
                 2.X) \\
                 Module tkinter.filedialog (tkFileDialog in Python 2.X)
                 \\
                 Additional tkinter Classes and Tools \\
                 Tcl/Tk-to-Python/tkinter Mappings \\
                 Internet Modules and Tools \\
                 Other Standard Library Modules \\
                 The math Module \\
                 The time Module \\
                 The timeit Module \\
                 The datetime Module \\
                 The random Module \\
                 The json Module \\
                 The subprocess Module \\
                 The enum Module \\
                 The struct Module \\
                 Threading Modules \\
                 Python SQL Database API \\
                 API Usage Example \\
                 Module Interface \\
                 Connection Objects \\
                 Cursor Objects \\
                 Type Objects and Constructors \\
                 More Hints and Idioms \\
                 Core Language Hints \\
                 Environment Hints \\
                 Usage Hints \\
                 Assorted Hints \\
                 Index \\
                 Copyright",
}

@Book{Miller:2014:MTP,
  author =       "Thomas Miller",
  title =        "Modeling techniques in predictive analytics with
                 {Python} and {R}: a guide to data science",
  publisher =    "Pearson Education",
  address =      "Upper Saddle River, NJ",
  pages =        "xviii + 418",
  year =         "2014",
  ISBN =         "0-13-389206-9 (hardcover), 0-13-389212-3",
  ISBN-13 =      "978-0-13-389206-2 (hardcover), 978-0-13-389212-3",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 06:37:49 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 Figures \\
                 Tables \\
                 Exhibits \\
                 1. Analytics and Data Science \\
                 2. Advertising and Promotion \\
                 3. Preference and Choice \\
                 4. Market Basket Analysis \\
                 5. Economic Data Analysis \\
                 6. Operations Management \\
                 7. Text Analytics \\
                 8. Sentiment Analysis \\
                 9. Sports Analytics \\
                 10. Spatial Data Analysis \\
                 11. Brand and Price \\
                 12. The Big Little Data Game \\
                 A. Data Science Methods \\
                 A.1 Databases and Data Preparation \\
                 A.2 Classical and Bayesian Statistics \\
                 A.3 Regression and Classification \\
                 A.4 Machine Learning \\
                 A.5 Web and Social Network Analysis \\
                 A.6 Recommender Systems \\
                 A.7 Product Positioning \\
                 A.8 Market Segmentation \\
                 A.9 Site Selection \\
                 A.10 Financial Data Science \\
                 B. Measurement \\
                 C. Case Studies \\
                 C.1 Return of the Bobbleheads \\
                 C.2 DriveTime Sedans \\
                 C.3 Two Month s Salary \\
                 C.4 Wisconsin Dells \\
                 C.5 Computer Choice Study \\
                 D. Code and Utilities \\
                 Bibliography \\
                 Index",
}

@Book{Mueller:2014:BPP,
  author =       "John Mueller",
  title =        "Beginning programming with Python for dummies",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xiv + 382",
  year =         "2014",
  ISBN =         "1-118-89145-7 (paperback), 1-118-89147-3 (e-book),
                 1-118-89149-X (ePDF)",
  ISBN-13 =      "978-1-118-89145-2 (paperback), 978-1-118-89147-6
                 (e-book), 978-1-118-89149-0 (ePDF)",
  LCCN =         "QA76.73.P98 M839 2014",
  bibdate =      "Sat Oct 24 06:34:31 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.dummies.com/how-to/content/beginning-python-for-dummies-cheat-sheet.html;
                 http://www.loc.gov/catdir/enhancements/fy1513/2014935516-b.html;
                 http://www.loc.gov/catdir/enhancements/fy1513/2014935516-t.html",
  abstract =     "Make sense of Python --- and get in the programming
                 game. This guide takes you step-by-step through the
                 syntax and logic of Python, and provides you with
                 plenty of real-world examples along the way.",
  acknowledgement = ack-nhfb,
  author-dates = "1958--",
  subject =      "Python (Computer program language); Computer
                 programming; Computer programming",
  tableofcontents = "Introduction \\
                 About This Book \\
                 Foolish Assumptions \\
                 Icons Used in This Book \\
                 Beyond the Book \\
                 Where to Go from Here \\
                 Part I: Getting Started with Python \\
                 Chapter 1: Talking to Your Computer \\
                 Understanding Why You Want to Talk to Your Computer \\
                 Knowing that an Application is a Form of Communication
                 \\
                 Thinking about procedures you use daily \\
                 Writing procedures down \\
                 Seeing applications as being like any other procedure
                 \\
                 Understanding that computers take things literally \\
                 Defining What an Application Is \\
                 Understanding that computers use a special language \\
                 Helping humans speak to the computer \\
                 Understanding Why Python is So Cool \\
                 Unearthing the reasons for using Python \\
                 Deciding how you can personally benefit from Python \\
                 Discovering which organizations use Python \\
                 Finding useful Python applications \\
                 Comparing Python to other languages \\
                 Chapter 2: Getting Your Own Copy of Python \\
                 Downloading the Version You Need \\
                 Installing Python \\
                 Working with Windows \\
                 Working with the Mac \\
                 Working with Linux \\
                 Accessing Python on Your Machine \\
                 Using Windows \\
                 Using the Mac \\
                 Using Linux \\
                 Testing Your Installation \\
                 Chapter 3: Interacting with Python \\
                 Opening the Command Line \\
                 Starting Python \\
                 Using the command line to your advantage \\
                 Using Python environment variables to your advantage
                 \\
                 Typing a Command \\
                 Telling the computer what to do \\
                 Telling the computer you're done \\
                 Seeing the result \\
                 Using Help \\
                 Getting into help mode \\
                 Asking for help \\
                 Leaving help mode \\
                 Obtaining help directly \\
                 Closing the Command Line \\
                 Chapter 4: Writing Your First Application \\
                 Understanding the Integrated DeveLopment Environment
                 (IDLE) \\
                 Starting IDLE \\
                 Using standard commands \\
                 Understanding color coding \\
                 Getting GUI help \\
                 Configuring IDLE \\
                 Creating the Application \\
                 Opening a new window \\
                 Typing the command \\
                 Saving the file \\
                 Running the Application \\
                 Understanding the Use of Indentation \\
                 Adding Comments \\
                 Understanding comments \\
                 Using comments to leave yourself reminders \\
                 Using comments to keep code from executing \\
                 Loading and Running Existing Applications \\
                 Using the command line or terminal window \\
                 Using the Edit window \\
                 Using the Python Shell window or Python command line
                 \\
                 Closing IDLE \\
                 Part II: Talking the Talk \\
                 Chapter 5: Storing and Modifying Information \\
                 Storing Information \\
                 Seeing variables as storage boxes \\
                 Using the right box to store the data \\
                 Defining the Essential Python Data Types \\
                 Putting information into variables \\
                 Understanding the numeric types \\
                 Understanding Boolean values \\
                 Understanding strings \\
                 Working with Dates and Times \\
                 Chapter 6: Managing Information \\
                 Controlling How Python Views Data \\
                 Making comparisons \\
                 Understanding how computers make comparisons \\
                 Working with Operators \\
                 Defining the operators \\
                 Understanding operator precedence \\
                 Creating and Using Functions \\
                 Viewing functions as code packages \\
                 Understanding code reusability \\
                 Defining a function \\
                 Accessing functions \\
                 Sending information to functions \\
                 Returning information from functions \\
                 Comparing function output \\
                 Getting User Input \\
                 Chapter 7: Making Decisions \\
                 Making Simple Decisions Using the if Statement \\
                 Understanding the if statement \\
                 Using the if statement in an application \\
                 Choosing Alternatives Using the if\ldots{}else
                 Statement \\
                 Understanding the if\ldots{}else statement \\
                 Using the if\ldots{}else statement in an application \\
                 Using the if\ldots{}elif statement in an application \\
                 Using Nested Decision Statements \\
                 Using multiple if or if\ldots{}else statements \\
                 Combining other types of decisions \\
                 Chapter 8: Performing Repetitive Tasks \\
                 Processing Data Using the for Statement \\
                 Understanding the for statement \\
                 Creating a basic for loop \\
                 Controlling execution with the break statement \\
                 Controlling execution with the continue statement \\
                 Controlling execution with the pass clause \\
                 Controlling execution with the else statement \\
                 Processing Data Using the while Statement \\
                 Understanding the while statement \\
                 Using the while statement in an application \\
                 Nesting Loop Statements \\
                 Chapter 9: Dealing with Errors \\
                 Knowing Why Python Doesn't Understand You \\
                 Considering the Sources of Errors \\
                 Classifying when errors occur \\
                 Distinguishing error types \\
                 Catching Exceptions \\
                 Basic exception handling \\
                 Handling more specific to less specific exceptions \\
                 Nested exception handling \\
                 Raising Exceptions \\
                 Raising exceptions during exceptional conditions \\
                 Passing error information to the caller \\
                 Creating and Using Custom Exceptions \\
                 Using the finally Clause \\
                 Part III: Performing Common Tasks \\
                 Chapter 10: Interacting with Modules \\
                 Creating Code Groupings \\
                 Importing Modules \\
                 Using the import statement \\
                 Using the from\ldots{}import statement \\
                 Finding Modules on Disk \\
                 Viewing the Module Content \\
                 Using the Python Module Documentation \\
                 Opening the pydoc application \\
                 Using the quick-access links \\
                 Typing a search term \\
                 Viewing the results \\
                 Chapter 11: Working with Strings \\
                 Understanding That Strings Are Different \\
                 Defining a character using numbers \\
                 Using characters to create strings \\
                 Creating Stings with Special Characters \\
                 Selecting Individual Characters \\
                 Slicing and Dicing Strings \\
                 Locating a Value in a String \\
                 Formatting Strings \\
                 Chapter 12: Managing Lists \\
                 Organizing Information in an Application \\
                 Defining organization using lists \\
                 Understanding how computers view lists \\
                 Creating Lists \\
                 Accessing Lists \\
                 Looping through Lists \\
                 Modifying Lists \\
                 Searching Lists \\
                 Sorting Lists \\
                 Working with the Counter Object \\
                 Chapter 13: Collecting All Sorts of Data \\
                 Understanding Collections \\
                 Working with Tuples \\
                 Working with Dictionaries \\
                 Creating and using a dictionary \\
                 Replacing the switch statement with a dictionary \\
                 Creating Stacks Using Lists \\
                 Working with queues \\
                 Working with deques \\
                 Chapter 14: Creating and Using Classes \\
                 Understanding the Class as a Packaging Method \\
                 Considering the Parts of a Class \\
                 Creating the class definition \\
                 Considering the built-in class attributes \\
                 Working with methods \\
                 Working with constructors \\
                 Working with variables \\
                 Using methods with variable argument lists \\
                 Overloading operators \\
                 Creating a Class \\
                 Using the Class in an Application \\
                 Extending Classes to Make New Classes \\
                 Building the child class \\
                 Testing the class in an application \\
                 Part IV: Performing Advanced Tasks \\
                 Chapter 15: Storing Data in Files \\
                 Understanding How Permanent Storage Works \\
                 Creating Content for Permanent Storage \\
                 Creating a File \\
                 Reading File Content \\
                 Updating File Content \\
                 Deleting a File \\
                 Chapter 16: Sending an E-Mail \\
                 Understanding What Happens When You Send E-mail \\
                 Viewing e-mail as you do a letter \\
                 Defining the parts of the envelope \\
                 Defining the parts of the letter \\
                 Creating the E-mail Message \\
                 Working with a text message \\
                 Working with an HTML message \\
                 Seeing the E-mail Output \\
                 Part V: The Part of Tens \\
                 Chapter 17: Ten Amazing Programming Resources \\
                 Working with the Python Documentation Online \\
                 Using the LearnPython.org Tutorial \\
                 Performing Web Programming Using Python \\
                 Getting Additional Libraries \\
                 Creating Applications Faster Using an IDE \\
                 Checking Your Syntax with Greater Ease \\
                 Using XML to Your Advantage \\
                 Getting Past the Common Python Newbie Errors \\
                 Understanding Unicode \\
                 Making Your Python Application Fast \\
                 Chapter 18: Ten Ways to Make a Living with Python \\
                 Working in QA \\
                 Becoming the IT Staff for a Smaller Organization \\
                 Performing Specialty Scripting for Applications \\
                 Administering a Network \\
                 Teaching Programming Skills \\
                 Helping People Decide on Location \\
                 Performing Data Mining \\
                 Interacting with Embedded Systems \\
                 Carrying Out Scientific Tasks \\
                 Performing Real-Time Analysis of Data \\
                 Chapter 19: Ten Interesting Tools \\
                 Tracking Bugs with Roundup Issue Tracker \\
                 Creating a Virtual Environment Using VirtualEnv \\
                 Installing Your Application Using PyInstaller \\
                 Building Developer Documentation Using pdoc \\
                 Developing Application Code Using Komodo Edit \\
                 Debugging Your Application Using pydbgr \\
                 Entering an Interactive Environment Using IPython \\
                 Testing Python Applications Using PyUnit \\
                 Tidying Your Code Using Isort \\
                 Providing Version Control Using Mercurial \\
                 Chapter 20: Ten Libraries You Need to Know About \\
                 Developing a Secure Environment Using PyCrypto \\
                 Interacting with Databases Using SQLAlchemy \\
                 Seeing the World Using Google Maps \\
                 Adding a Graphical User Interface Using TkInter \\
                 Providing a Nice Tabular Data Presentation Using
                 PrettyTable \\
                 Enhancing Your Application with Sound Using PyAudio \\
                 Manipulating Images Using PyQtGraph \\
                 Locating Your Information Using IRLib \\
                 Creating an Interoperable Java Environment Using JPype
                 \\
                 Accessing Local Network Resources Using Twisted Matrix
                 \\
                 Accessing Internet Resources Using Libraries \\
                 About the Author \\
                 Cheat Sheet",
}

@Article{Muller:2014:SAP,
  author =       "Stefan C. Muller and Gustavo Alonso and Andre
                 Csillaghy",
  title =        "Scaling Astroinformatics: {Python} + Automatic
                 Parallelization",
  journal =      j-COMPUTER,
  volume =       "47",
  number =       "9",
  pages =        "41--47",
  month =        sep,
  year =         "2014",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.2014.262",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Fri Feb 13 11:56:29 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://csdl.computer.org/csdl/mags/co/2014/09/mco2014090041-abs.html",
  abstract-URL = "http://csdl.computer.org/csdl/mags/co/2014/09/mco2014090041-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/computer",
}

@Article{Mushtaq:2014:ACG,
  author =       "Asif Mushtaq and K{\aa}re Olaussen",
  title =        "Automatic code generator for higher order
                 integrators",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "5",
  pages =        "1461--1472",
  month =        may,
  year =         "2014",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Mar 14 17:14:22 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465514000253",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
  keywords =     "Hamilton's equation; Python; symplectic integration",
}

@Book{Nair:2014:GSB,
  author =       "Vineeth G. Nair",
  title =        "Getting Started with Beautiful Soup: build your own
                 web scraper and learn all about web scraping with
                 Beautiful Soup",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2014",
  ISBN =         "1-78328-956-2, 1-78328-955-4, 1-4619-5720-6 (e-book),
                 1-306-40146-1 (e-book)",
  ISBN-13 =      "978-1-78328-956-1, 978-1-78328-955-4,
                 978-1-4619-5720-1 (e-book), 978-1-306-40146-3
                 (e-book)",
  LCCN =         "QA76.9.D343",
  bibdate =      "Wed Oct 14 07:37:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.tech.safaribooksonline.de/9781783289554",
  abstract =     "This book is a practical, hands-on guide that takes
                 you through the techniques of web scraping using
                 Beautiful Soup. Getting Started with Beautiful Soup is
                 great for anybody who is interested in website scraping
                 and extracting information. However, a basic knowledge
                 of Python, HTML tags, and CSS is required for better
                 understanding.",
  acknowledgement = ack-nhfb,
  subject =      "Data mining; COMPUTERS; Programming Languages.;
                 General.; Data mining.",
}

@Article{Ortin:2014:SDL,
  author =       "Francisco Ortin and Sheila Mendez and Vicente
                 Garc{\'\i}a-D{\'\i}az and Miguel Garcia",
  title =        "On the suitability of dynamic languages for
                 hot-reprogramming a robotics framework: a {Python} case
                 study",
  journal =      j-SPE,
  volume =       "44",
  number =       "1",
  pages =        "77--104",
  month =        jan,
  year =         "2014",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2162",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jan 23 06:00:37 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "15 Oct 2012",
}

@Article{Oxvig:2014:PMP,
  author =       "Christian Oxvig and Patrick Pedersen and Thomas
                 Arildsen and Jan {\O}stergaard and Torben Larsen",
  title =        "\pkg{Magni}: a {Python} Package for Compressive
                 Sampling and Reconstruction of Atomic Force Microscopy
                 Images",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "2",
  number =       "1",
  pages =        "e29--??",
  day =          "07",
  month =        oct,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.bk",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:49 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.bk/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Book{Palach:2014:PPP,
  author =       "Jan Palach",
  title =        "Parallel programming with {Python} develop efficient
                 parallel systems using the robust {Python}
                 environment",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2014",
  ISBN =         "1-78328-839-6, 1-78328-840-X (e-book)",
  ISBN-13 =      "978-1-78328-839-7, 978-1-78328-840-3 (e-book)",
  LCCN =         "QA76.642",
  bibdate =      "Sat Oct 24 06:48:20 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.tech.safaribooksonline.de/9781783288397",
  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. Contextualizing Parallel, Concurrent, and
                 Distributed Programming \\
                 Why use parallel programming? \\
                 Exploring common forms of parallelization \\
                 Communicating in parallel programming \\
                 Understanding shared state \\
                 Understanding message passing \\
                 Identifying parallel programming problems \\
                 Deadlock \\
                 Starvation \\
                 Race conditions \\
                 Discovering Python's parallel programming tools \\
                 The Python threading module \\
                 The Python multiprocessing module \\
                 The parallel Python module \\
                 Celery --- a distributed task queue \\
                 Taking care of Python GIL \\
                 Summary \\
                 2. Designing Parallel Algorithms \\
                 The divide and conquer technique \\
                 Using data decomposition \\
                 Decomposing tasks with pipeline \\
                 Processing and mapping \\
                 Identifying independent tasks \\
                 Identifying the tasks that require data exchange \\
                 Load balance \\
                 Summary \\
                 3. Identifying a Parallelizable Problem \\
                 Obtaining the highest Fibonacci value for multiple
                 inputs \\
                 Crawling the Web \\
                 Summary \\
                 4. Using the threading and concurrent.futures Modules
                 \\
                 Defining threads \\
                 Advantages and disadvantages of using threads \\
                 Understanding different kinds of threads \\
                 Defining the states of a thread \\
                 Choosing between threading and _thread \\
                 Using threading to obtain the Fibonacci series term
                 with multiple inputs \\
                 Crawling the Web using the concurrent.futures module
                 \\
                 Summary \\
                 5. Using Multiprocessing and ProcessPoolExecutor \\
                 Understanding the concept of a process \\
                 Understanding the process model \\
                 Defining the states of a process \\
                 Implementing multiprocessing communication \\
                 Using multiprocessing.Pipe \\
                 Understanding multiprocessing.Queue \\
                 Using multiprocessing to compute Fibonacci series terms
                 with multiple inputs \\
                 Crawling the Web using ProcessPoolExecutor \\
                 Summary \\
                 6. Utilizing Parallel Python \\
                 Understanding interprocess communication \\
                 Exploring named pipes \\
                 Using named pipes with Python \\
                 Writing in a named pipe \\
                 Reading named pipes \\
                 Discovering PP \\
                 Using PP to calculate the Fibonacci series term on SMP
                 architecture \\
                 Using PP to make a distributed Web crawler \\
                 Summary \\
                 7. Distributing Tasks with Celery \\
                 Understanding Celery \\
                 Why use Celery? \\
                 Understanding Celery's architecture \\
                 Working with tasks \\
                 Discovering message transport (broker) \\
                 Understanding workers \\
                 Understanding result backends \\
                 Setting up the environment \\
                 Setting up the client machine \\
                 Setting up the server machine \\
                 Dispatching a simple task \\
                 Using Celery to obtain a Fibonacci series term \\
                 Defining queues by task types \\
                 Using Celery to make a distributed Web crawler \\
                 Summary \\
                 8. Doing Things Asynchronously \\
                 Understanding blocking, nonblocking, and asynchronous
                 operations \\
                 Understanding blocking operations \\
                 Understanding nonblocking operations \\
                 Understanding asynchronous operations \\
                 Understanding event loop \\
                 Polling functions \\
                 Using event loops \\
                 Using asyncio \\
                 Understanding coroutines and futures \\
                 Using coroutine and asyncio.Future \\
                 Using asyncio.Task \\
                 Using an incompatible library with asyncio \\
                 Summary \\
                 Index",
}

@Book{Percival:2014:TDD,
  author =       "Harry Percival",
  title =        "Test-driven development with {Python}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xxviii + 449",
  year =         "2014",
  ISBN =         "1-4493-6482-9 (paperback)",
  ISBN-13 =      "978-1-4493-6482-3 (paperback)",
  LCCN =         "QA76.73.P98 P46 2014",
  bibdate =      "Sat Oct 24 06:45:21 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Application
                 software; Development; Web site development;
                 Object-oriented programming (Computer science);
                 Development.",
  tableofcontents = "Getting Django set up using a functional test \\
                 Extending our functional test using the unittest module
                 \\
                 Testing a simple home page with unit tests \\
                 What are we doing with all these tests? \\
                 Saving user input \\
                 Getting to the minimum viable site \\
                 Prettification : layout and styling, and what to test
                 about it \\
                 Testing deployment using a staging site \\
                 Automating deployment with fabric \\
                 Input validation and test organisation \\
                 A simple form \\
                 More advanced forms \\
                 Dipping our toes, very tentatively, into JavaScript \\
                 Deploying our new code \\
                 User authentication, integrating third-party plugins,
                 and mocking with JavaScript \\
                 Server-side authentication and mocking in Python \\
                 Test fixtures, logging, and server-side debugging \\
                 Finishing ``my lists'' : outside-in TDD \\
                 Test isolation, and ``listening to your tests'' \\
                 Continuous integration (CI) \\
                 The token social bit, the page pattern, and an exercise
                 for the reader \\
                 Fast tests, slow tests, and hot lava \\
                 Obey the testing goat! \\
                 Appendix A: PythonAnywhere \\
                 Appendix B: Django class-based views \\
                 Appendix C: Provisioning with ansible \\
                 Appendix D: Testing database migrations \\
                 Appendix E: What to do next \\
                 Appendix F: Cheat sheet",
}

@Book{Perkins:2014:PTP,
  author =       "Jacob Perkins",
  title =        "{Python 3} text processing with {NLTK 3} cookbook:
                 over 80 practical recipes on natural language
                 processing techniques using {Python}'s {NLKT 3.0}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  edition =      "Second",
  pages =        "iii + 288",
  year =         "2014",
  ISBN =         "1-78216-785-4, 1-78216-786-2 (e-book)",
  ISBN-13 =      "978-1-78216-785-3, 978-1-78216-786-0 (e-book)",
  LCCN =         "QA76.73.P98 P43 2014",
  bibdate =      "Sat Oct 24 06:30:51 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  author-dates = "1982--",
  subject =      "Python (Computer program language); Text processing
                 (Computer science); Natural language processing
                 (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 \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Tokenizing Text and WordNet Basics \\
                 Introduction \\
                 Tokenizing text into sentences \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Tokenizing sentences in other languages \\
                 See also \\
                 Tokenizing sentences into words \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Separating contractions \\
                 PunktWordTokenizer \\
                 WordPunctTokenizer \\
                 See also \\
                 Tokenizing sentences using regular expressions \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Simple whitespace tokenizer \\
                 See also \\
                 Training a sentence tokenizer \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Filtering stopwords in a tokenized sentence \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Looking up Synsets for a word in WordNet \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Working with hypernyms \\
                 Part of speech (POS) \\
                 See also \\
                 Looking up lemmas and synonyms in WordNet \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 All possible synonyms \\
                 Antonyms \\
                 See also \\
                 Calculating WordNet Synset similarity \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Comparing verbs \\
                 Path and Leacock Chordorow (LCH) similarity \\
                 See also \\
                 Discovering word collocations \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Scoring functions \\
                 Scoring ngrams \\
                 See also \\
                 2. Replacing and Correcting Words \\
                 Introduction \\
                 Stemming words \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The LancasterStemmer class \\
                 The RegexpStemmer class \\
                 The SnowballStemmer class \\
                 See also \\
                 Lemmatizing words with WordNet \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Combining stemming with lemmatization \\
                 See also \\
                 Replacing words matching regular expressions \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Replacement before tokenization \\
                 See also \\
                 Removing repeating characters \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Spelling correction with Enchant \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The en_GB dictionary \\
                 Personal word lists \\
                 See also \\
                 Replacing synonyms \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 CSV synonym replacement \\
                 YAML synonym replacement \\
                 See also \\
                 Replacing negations with antonyms \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 3. Creating Custom Corpora \\
                 Introduction \\
                 Setting up a custom corpus \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Loading a YAML file \\
                 See also \\
                 Creating a wordlist corpus \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Names wordlist corpus \\
                 English words corpus \\
                 See also \\
                 Creating a part-of-speech tagged word corpus \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Customizing the word tokenizer \\
                 Customizing the sentence tokenizer \\
                 Customizing the paragraph block reader \\
                 Customizing the tag separator \\
                 Converting tags to a universal tagset \\
                 See also \\
                 Creating a chunked phrase corpus \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Tree leaves \\
                 Treebank chunk corpus \\
                 CoNLL2000 corpus \\
                 See also \\
                 Creating a categorized text corpus \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Category file \\
                 Categorized tagged corpus reader \\
                 Categorized corpora \\
                 See also \\
                 Creating a categorized chunk corpus reader \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Categorized CoNLL chunk corpus reader \\
                 See also \\
                 Lazy corpus loading \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Creating a custom corpus view \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Block reader functions \\
                 Pickle corpus view \\
                 Concatenated corpus view \\
                 See also \\
                 Creating a MongoDB-backed corpus reader \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Corpus editing with file locking \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 4. Part-of-speech Tagging \\
                 Introduction \\
                 Default tagging \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Evaluating accuracy \\
                 Tagging sentences \\
                 Untagging a tagged sentence \\
                 See also \\
                 Training a unigram part-of-speech tagger \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Overriding the context model \\
                 Minimum frequency cutoff \\
                 See also \\
                 Combining taggers with backoff tagging \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Saving and loading a trained tagger with pickle \\
                 See also \\
                 Training and combining ngram taggers \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Quadgram tagger \\
                 See also \\
                 Creating a model of likely word tags \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Tagging with regular expressions \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Affix tagging \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Working with min_stem_length \\
                 See also \\
                 Training a Brill tagger \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Tracing \\
                 See also \\
                 Training the TnT tagger \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Controlling the beam search \\
                 Significance of capitalization \\
                 See also \\
                 Using WordNet for tagging \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Tagging proper names \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Classifier-based tagging \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Detecting features with a custom feature detector \\
                 Setting a cutoff probability \\
                 Using a pre-trained classifier \\
                 See also \\
                 Training a tagger with NLTK-Trainer \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Saving a pickled tagger \\
                 Training on a custom corpus \\
                 Training with universal tags \\
                 Analyzing a tagger against a tagged corpus \\
                 Analyzing a tagged corpus \\
                 See also \\
                 5. Extracting Chunks \\
                 Introduction \\
                 Chunking and chinking with regular expressions \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Parsing different chunk types \\
                 Parsing alternative patterns \\
                 Chunk rule with context \\
                 See also \\
                 Merging and splitting chunks with regular expressions
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Specifying rule descriptions \\
                 See also \\
                 Expanding and removing chunks with regular expressions
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Partial parsing with regular expressions \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The ChunkScore metrics \\
                 Looping and tracing chunk rules \\
                 See also \\
                 Training a tagger-based chunker \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Using different taggers \\
                 See also \\
                 Classification-based chunking \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Using a different classifier builder \\
                 See also \\
                 Extracting named entities \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Binary named entity extraction \\
                 See also \\
                 Extracting proper noun chunks \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Extracting location chunks \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Training a named entity chunker \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Training a chunker with NLTK-Trainer \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Saving a pickled chunker \\
                 Training a named entity chunker \\
                 Training on a custom corpus \\
                 Training on parse trees \\
                 Analyzing a chunker against a chunked corpus \\
                 Analyzing a chunked corpus \\
                 See also \\
                 6. Transforming Chunks and Trees \\
                 Introduction \\
                 Filtering insignificant words from a sentence \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Correcting verb forms \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Swapping verb phrases \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Swapping noun cardinals \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Swapping infinitive phrases \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Singularizing plural nouns \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Chaining chunk transformations \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Converting a chunk tree to text \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Flattening a deep tree \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The cess_esp and cess_cat treebank \\
                 See also \\
                 Creating a shallow tree \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Converting tree labels \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 7. Text Classification \\
                 Introduction \\
                 Bag of words feature extraction \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Filtering stopwords \\
                 Including significant bigrams \\
                 See also \\
                 Training a Naive Bayes classifier \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Classification probability \\
                 Most informative features \\
                 Training estimator \\
                 Manual training \\
                 See also \\
                 Training a decision tree classifier \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Controlling uncertainty with entropy_cutoff \\
                 Controlling tree depth with depth_cutoff \\
                 Controlling decisions with support_cutoff \\
                 See also \\
                 Training a maximum entropy classifier \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Megam algorithm \\
                 See also \\
                 Training scikit-learn classifiers \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Comparing Naive Bayes algorithms \\
                 Training with logistic regression \\
                 Training with LinearSVC \\
                 See also \\
                 Measuring precision and recall of a classifier \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 F-measure \\
                 See also \\
                 Calculating high information words \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The MaxentClassifier class with high information words
                 \\
                 The DecisionTreeClassifier class with high information
                 words \\
                 The SklearnClassifier class with high information words
                 \\
                 See also \\
                 Combining classifiers with voting \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Classifying with multiple binary classifiers \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Training a classifier with NLTK-Trainer \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Saving a pickled classifier \\
                 Using different training instances \\
                 The most informative features \\
                 The Maxent and LogisticRegression classifiers \\
                 SVMs \\
                 Combining classifiers \\
                 High information words and bigrams \\
                 Cross-fold validation \\
                 Analyzing a classifier \\
                 See also \\
                 8. Distributed Processing and Handling Large Datasets
                 \\
                 Introduction \\
                 Distributed tagging with execnet \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Creating multiple channels \\
                 Local versus remote gateways \\
                 See also \\
                 Distributed chunking with execnet \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Python subprocesses \\
                 See also \\
                 Parallel list processing with execnet \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Storing a frequency distribution in Redis \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Storing a conditional frequency distribution in Redis
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Storing an ordered dictionary in Redis \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Distributed word scoring with Redis and execnet \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 9. Parsing Specific Data Types \\
                 Introduction \\
                 Parsing dates and times with dateutil \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Timezone lookup and conversion \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Local timezone \\
                 Custom offsets \\
                 See also \\
                 Extracting URLs from HTML with lxml \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Extracting links directly \\
                 Parsing HTML from URLs or files \\
                 Extracting links with XPaths \\
                 See also \\
                 Cleaning and stripping HTML \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Converting HTML entities with BeautifulSoup \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Extracting URLs with BeautifulSoup \\
                 See also \\
                 Detecting and converting character encodings \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Converting to ASCII \\
                 UnicodeDammit conversion \\
                 See also \\
                 A. Penn Treebank Part-of-speech Tags \\
                 Index",
}

@Article{Ragan-Kelley:2014:OPP,
  author =       "Benjamin Ragan-Kelley and John P. Verboncoeur and
                 Ming-Chieh Lin",
  title =        "Optimizing physical parameters in {$1$-D}
                 particle-in-cell simulations with {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "10",
  pages =        "2487--2494",
  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 =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465514001994",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Book{Rhodes:2014:FPN,
  author =       "Brandon Rhodes and John Goerzen",
  title =        "Foundations of {Python} network programming",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Third",
  pages =        "xxi + 388",
  year =         "2014",
  ISBN =         "1-4302-5854-3 (paperback), 1-4302-5855-1 (e-book)",
  ISBN-13 =      "978-1-4302-5854-4 (paperback), 978-1-4302-5855-1
                 (e-book)",
  LCCN =         "QA76.73.P98 R48 2014",
  bibdate =      "Sat Oct 24 06:26:55 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy1603/2015458068-b.html;
                 http://www.loc.gov/catdir/enhancements/fy1603/2015458068-d.html;
                 http://www.loc.gov/catdir/enhancements/fy1603/2015458068-t.html",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "About the Authors \\
                 About the Technical Reviewers \\
                 Acknowledgments \\
                 Introduction \\
                 Chapter 1: Introduction to Client-Server Networking \\
                 The Building Blocks: Stacks and Libraries \\
                 Application Layers \\
                 Speaking a Protocol \\
                 A Raw Network Conversation \\
                 Turtles All the Way Down \\
                 Encoding and Decoding \\
                 The Internet Protocol \\
                 IP Addresses \\
                 Routing \\
                 Packet Fragmentation \\
                 Learning More About IP \\
                 Summary \\
                 Chapter 2: UDP \\
                 Port Numbers \\
                 Sockets \\
                 Promiscuous Clients and Unwelcome Replies \\
                 Unreliability, Backoff, Blocking, and Timeouts \\
                 Connecting UDP Sockets \\
                 Request IDs: a Good Idea \\
                 Binding to Interfaces \\
                 UDP Fragmentation \\
                 Socket Options \\
                 Broadcast \\
                 When to Use UDP \\
                 Summary \\
                 Chapter 3: TCP \\
                 How TCP Works \\
                 When to Use TCP \\
                 What TCP Sockets Mean \\
                 A Simple TCP Client and Server \\
                 One Socket per Conversation \\
                 Address Already in Use \\
                 Binding to Interfaces \\
                 Deadlock \\
                 Closed Connections, Half-Open Connections \\
                 Using TCP Streams Like Files \\
                 Summary \\
                 Chapter 4: Socket Names and DNS \\
                 Hostnames and Sockets \\
                 Five Socket Coordinates \\
                 IPv6 \\
                 Modern Address Resolution \\
                 Using getaddrinfo() to Bind Your Server to a Port \\
                 Using getaddrinfo() to Connect to a Service \\
                 Asking getaddrinfo() for a Canonical Hostname \\
                 Other getaddrinfo() Flags \\
                 Primitive Name Service Routines \\
                 Using getsockaddr() in Your Own Code \\
                 The DNS Protocol \\
                 Why Not to Use Raw DNS \\
                 Making a DNS Query from Python \\
                 Resolving Mail Domains \\
                 Summary \\
                 Chapter 5: Network Data and Network Errors \\
                 Bytes and Strings \\
                 Character Strings \\
                 Binary Numbers and Network Byte Order \\
                 Framing and Quoting \\
                 Pickles and Self-delimiting Formats \\
                 XML and JSON \\
                 Compression \\
                 Network Exceptions \\
                 Raising More Specific Exceptions \\
                 Catching and Reporting Network Exceptions \\
                 Summary \\
                 Chapter 6: TLS/SSL \\
                 What TLS Fails to Protect \\
                 What Could Possibly Go Wrong? \\
                 Generating Certificates \\
                 Offloading TLS \\
                 Python 3.4 Default Contexts \\
                 Variations on Socket Wrapping \\
                 Hand-Picked Ciphers and Perfect Forward Security \\
                 Protocol Support for TLS \\
                 Learning Details \\
                 Summary \\
                 Chapter 7: Server Architecture \\
                 A Few Words About Deployment \\
                 A Simple Protocol \\
                 A Single-Threaded Server \\
                 Threaded and Multiprocess Servers \\
                 The Legacy SocketServer Framework \\
                 Async Servers \\
                 Callback-Style asyncio \\
                 Coroutine-Style asyncio \\
                 The Legacy Module asyncore \\
                 The Best of Both Worlds \\
                 Running Under inetd \\
                 Summary \\
                 Chapter 8: Caches and Message Queues \\
                 Using Memcached \\
                 Hashing and Sharding \\
                 Message Queues \\
                 Using Message Queues from Python \\
                 Summary \\
                 Chapter 9: HTTP Clients \\
                 Python Client Libraries \\
                 Ports, Encryption, and Framing \\
                 Methods \\
                 Paths and Hosts \\
                 Status Codes \\
                 Caching and Validation \\
                 Content Encoding \\
                 Content Negotiation \\
                 Content Type \\
                 HTTP Authentication \\
                 Cookies \\
                 Connections, Keep-Alive, and httplib \\
                 Summary \\
                 Chapter 10: HTTP Servers \\
                 WSGI \\
                 Asynchronous Server-Frameworks \\
                 Forward and Reverse Proxies \\
                 Four Architectures \\
                 Running Python Under Apache \\
                 The Rise of Pure-Python HTTP Servers \\
                 The Benefits of Reverse Proxies \\
                 Platforms as a Service \\
                 GET and POST Patterns and the Question of REST \\
                 WSGI Without a Framework \\
                 Summary \\
                 Chapter 11: The World Wide Web \\
                 Hypermedia and URLs \\
                 Parsing and Building URLs \\
                 Relative URLs \\
                 The Hypertext Markup Language \\
                 Reading and Writing to a Database \\
                 A Terrible Web Application (in Flask) \\
                 The Dance of Forms and HTTP Methods \\
                 When Forms Use Wrong Methods \\
                 Safe and Unsafe Cookies \\
                 Nonpersistent Cross-Site Scripting \\
                 Persistent Cross-Site Scripting \\
                 Cross-Site Request Forgery \\
                 The Improved Application \\
                 The Payments Application in Django \\
                 Choosing a Web Framework \\
                 WebSockets \\
                 Web Scraping \\
                 Fetching Pages \\
                 Scraping Pages \\
                 Recursive Scraping \\
                 Summary \\
                 Chapter 12: Building and Parsing E-Mail \\
                 E-Mail Message Format \\
                 Building an E-Mail Message \\
                 Adding HTML and Multimedia \\
                 Adding Content \\
                 Parsing E-Mail Messages \\
                 Walking MIME Parts \\
                 Header Encodings \\
                 Parsing Dates \\
                 Summary \\
                 Chapter 13: SMTP \\
                 E-mail Clients vs. Webmail Services \\
                 In the Beginning Was the Command Line \\
                 The Rise of Clients \\
                 The Move to Webmail \\
                 How SMTP Is Used \\
                 Sending E-Mail \\
                 Headers and the Envelope Recipient \\
                 Multiple Hops \\
                 Introducing the SMTP Library \\
                 Error Handling and Conversation Debugging \\
                 Getting Information fromEHLO \\
                 Using Secure Sockets Layer and Transport Layer Security
                 \\
                 Authenticated SMTP \\
                 SMTP Tips \\
                 Summary \\
                 Chapter 14: POP \\
                 POP Server Compatibility \\
                 Connecting and Authenticating \\
                 Obtaining Mailbox Information \\
                 Downloading and Deleting Messages \\
                 Summary \\
                 Chapter 15: IMAP \\
                 Understanding IMAP in Python \\
                 IMAPClient \\
                 Examining Folders \\
                 Message Numbers vs. UIDs \\
                 Message Ranges \\
                 Summary Information \\
                 Downloading an Entire Mailbox \\
                 Downloading Messages Individually \\
                 Flagging and Deleting Messages \\
                 Deleting Messages \\
                 Searching \\
                 Manipulating Folders and Messages \\
                 Asynchrony \\
                 Summary \\
                 Chapter 16: Telnet and SSH \\
                 Command-Line Automation \\
                 Command-Line Expansion and Quoting \\
                 Unix Command Arguments Can Include (Almost) Any
                 Character \\
                 Quoting Characters for Protection \\
                 The Terrible Windows Command Line \\
                 Things Are Different in a Terminal \\
                 Terminals Do Buffering \\
                 Telnet \\
                 SSH: The Secure Shell \\
                 An Overview of SSH \\
                 SSH Host Keys \\
                 SSH Authentication \\
                 Shell Sessions and Individual Commands \\
                 SFTP: File Transfer Over SSH \\
                 Other Features \\
                 Summary \\
                 Chapter 17: FTP \\
                 What to Use Instead of FTP \\
                 Communication Channels \\
                 Using FTP in Python \\
                 ASCII and Binary Files \\
                 Advanced Binary Downloading \\
                 Uploading Data \\
                 Advanced Binary Uploading \\
                 Handling Errors \\
                 Scanning Directories \\
                 Detecting Directories and Recursive Download \\
                 Creating Directories, Deleting Things \\
                 Doing FTP Securely \\
                 Summary \\
                 Chapter 18: RPC \\
                 Features of RPC \\
                 XML-RPC \\
                 JSON-RPC \\
                 Self-Documenting Data \\
                 Talking About Objects: Pyro and RPyC \\
                 An RPyC Example \\
                 RPC, Web Frameworks, and Message Queues \\
                 Recovering from Network Errors \\
                 Summary \\
                 Index",
}

@Book{Richardson:2014:BEL,
  author =       "Matt Richardson",
  title =        "{BeagleBone f{\"u}r Einsteiger: [Linux-basierte
                 Elektronik-Projekte mit Python und JavaScript]}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xii + 134",
  year =         "2014",
  ISBN =         "3-95561-409-3",
  ISBN-13 =      "978-3-95561-409-6",
  LCCN =         "????",
  bibdate =      "Thu Feb 26 14:22:56 MST 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  language =     "German",
  subject =      "BeagleBone Black; BeagleBone; Digitalelektronik;
                 Hobbyelektronik; JavaScript; LINUX; Programmierung;
                 Python (Programmiersprache); Systemplattform",
}

@Book{Romero:2014:MPR,
  author =       "Victor Romero",
  title =        "Mastering {Python} regular expressions",
  publisher =    "Shroff Publishers",
  address =      "????",
  year =         "2014",
  ISBN =         "93-5110-550-4",
  ISBN-13 =      "978-93-5110-550-3",
  LCCN =         "????",
  bibdate =      "Wed Oct 14 08:00:43 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Book{Rossant:2014:IIC,
  author =       "Cyrille Rossant",
  title =        "{IPython} interactive computing and visualization
                 cookbook: over 100 hands-on recipes to sharpen your
                 skills in high-performance numerical computing and data
                 science with {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "v + 494",
  year =         "2014",
  ISBN =         "1-78328-481-1, 1-78328-482-X (e-book), 1-322-16622-6
                 (e-book)",
  ISBN-13 =      "978-1-78328-481-8, 978-1-78328-482-5 (e-book),
                 978-1-322-16622-3 (e-book)",
  LCCN =         "QA76.73.P98 R677 2014",
  bibdate =      "Sat Mar 21 07:16:36 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "IPython Interactive Computing and Visualization
                 Cookbook contains many ready-to-use focused recipes for
                 high-performance scientific computing and data
                 analysis. The first part covers programming techniques,
                 including code quality and reproducibility, code
                 optimization, high-performance computing through
                 dynamic compilation, parallel computing, and graphics
                 card programming. The second part tackles data science,
                 statistics, machine learning, signal and image
                 processing, dynamical systems, and pure and applied
                 mathematics.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Command languages
                 (Computer science); Information visualization;
                 Interactive computer systems; Command languages
                 (Computer science); Information visualization;
                 Interactive computer systems; Python (Computer program
                 language)",
}

@Book{Russell:2014:MSW,
  author =       "Matthew A. Russell",
  title =        "Mining the social web",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xxiv + 421",
  year =         "2014",
  ISBN =         "1-4493-6761-5 (paperback), 1-4493-7045-4 (e-book),
                 1-4493-6821-2 (e-book), 1-4493-6822-0 (e-book)",
  ISBN-13 =      "978-1-4493-6761-9 (paperback), 978-1-4493-7045-9
                 (e-book), 978-1-4493-6821-0 (e-book), 978-1-4493-6822-7
                 (e-book)",
  LCCN =         "QA76.9.D343 R87 2013",
  bibdate =      "Sat Mar 21 07:07:01 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "How can you tap into the wealth of social web data to
                 discover who's making connections with whom, what
                 they're talking about, and where they're located? With
                 this expanded and thoroughly revised edition, you'll
                 learn how to acquire, analyze, and summarize data from
                 all corners of the social web, including Facebook,
                 Twitter, LinkedIn, Google+, GitHub, email, websites,
                 and blogs. Employ the Natural Language Toolkit,
                 NetworkX, and other scientific computing tools to mine
                 popular social web sites. Apply advanced text-mining
                 techniques, such as clustering and TF-IDF, to extract
                 meaning from human language data. Bootstrap interest
                 graphs from GitHub by discovering affinities among
                 people, programming languages, and coding projects.
                 Build interactive visualizations with D3.js, an
                 extraordinarily flexible HTML5 and JavaScript toolkit.
                 Take advantage of more than two-dozen Twitter recipes,
                 presented in O'Reilly's popular ``problem / solution /
                 discussion'' cookbook format. The example code for this
                 unique data science book is maintained in a public
                 GitHub repository. It's designed to be easily
                 accessible through a turnkey virtual machine that
                 facilitates interactive learning with an easy-to-use
                 collection of IPython Notebooks.",
  acknowledgement = ack-nhfb,
  remark =       "Previous edition: 2011.",
  subject =      "Data mining; Online social networks; Data mining;
                 Online social networks",
}

@Book{Sabia:2014:PTV,
  author =       "Martino Sabia and Cathy Wang",
  title =        "{Python} tools for {Visual Studio} leverage the power
                 of the {Visual Studio IDE} to develop better and more
                 efficient {Python} projects",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2014",
  ISBN =         "1-78328-868-X, 1-78328-869-8",
  ISBN-13 =      "978-1-78328-868-7, 978-1-78328-869-4",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 07:19:26 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.tech.safaribooksonline.de/9781783288687",
  acknowledgement = ack-nhfb,
  subject =      "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 color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 Special thanks from the authors \\
                 1. Introduction to PTVS \\
                 Step-by-step installation and configuration \\
                 PTVS tools overview \\
                 The Python Environments window \\
                 Python Interactive \\
                 Visual Studio panels with PTVS \\
                 Summary \\
                 2. Python Tools in Visual Studio \\
                 Mastering IntelliSense with Python \\
                 Using REPL in Visual Studio \\
                 Navigating code with ease \\
                 Object Browser \\
                 Summary \\
                 3. Day-to-day Coding Tools \\
                 Project handling \\
                 Solution \\
                 Project \\
                 Specifying Python environments \\
                 Defining Search Paths \\
                 Refactoring \\
                 Debugging \\
                 Using breakpoints \\
                 Utilizing watch entries \\
                 Summary \\
                 4. Django in PTVS \\
                 Django project template and tools \\
                 Installing a Python package \\
                 Running the application \\
                 IntelliSense in Django templates \\
                 Setting up and managing a database for a Django project
                 \\
                 Setting up the admin interface \\
                 Creating a new Django application \\
                 Deploying a Django project on Microsoft Azure \\
                 Summary \\
                 5. Advanced Django in PTVS \\
                 Library management \\
                 The Fabric library --- the deployment and development
                 task manager \\
                 South --- the database deployment library \\
                 Why use South with Django \\
                 Installing South \\
                 Schema migration with South \\
                 Summary \\
                 6. IPython and IronPython in PTVS \\
                 IPython in PTVS \\
                 IronPython \\
                 Using .NET classes in Python code with IronPython \\
                 Using the Python code in .NET with IronPython \\
                 Summary \\
                 Index",
}

@Book{Sale:2014:TPA,
  author =       "David Sale",
  title =        "Testing {Python}: applying unit testing, {TDD}, {BDD},
                 and acceptance testing",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xv + 222",
  year =         "2014",
  ISBN =         "1-118-90122-3 (paperback), 1-118-90125-8 (e-book),
                 1-118-90124-X (ePDF)",
  ISBN-13 =      "978-1-118-90122-9 (paperback), 978-1-118-90125-0
                 (e-book), 978-1-118-90124-3 (ePDF)",
  LCCN =         "QA76.73.P98 .S254 2014eb",
  bibdate =      "Sat Oct 24 06:56:36 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This is the most comprehensive book available on
                 testing for Python, a programming language that is a
                 natural choice for new and experienced developers. It
                 will show you why Unit Testing and TDD can lead to
                 cleaner, more flexible programs. In enterprise
                 settings, it is critical for developers to ensure they
                 always have working code, and that's what makes testing
                 methodologies so attractive. This book will teach you
                 the most widely used testing strategies and will
                 introduce to you to still others, covering performance
                 testing, continuous testing, and more. You will learn
                 Unit Testing and TDD-important development
                 methodologies that lie at the heart of Agile
                 development and enhance your ability to work with
                 Python to develop powerful, flexible applications with
                 clean code.",
  acknowledgement = ack-nhfb,
  remark =       "Titre de l'{\'e}cran-titre (visionn{\'e} le 21 juillet
                 2015). TRAITEMENT SOMMAIRE.",
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "Introduction \\
                 Chapter 1: a History of Testing \\
                 You Do Test, Don't You? \\
                 Fundamentals and Best Practices \\
                 Python Installation \\
                 Pip \\
                 Virtualenv \\
                 Source Control (SVN, Git) \\
                 Interactive Development Environment (IDE) \\
                 Summary \\
                 Chapter 2: Writing Unit Tests \\
                 What Is Unit Testing? \\
                 What Should You Test? \\
                 Writing Your First Unit Test \\
                 Checking Values with the assertEquals Method \\
                 Checking Exception Handling with assertRaises \\
                 Following the PEP-8 Standard \\
                 Unit Test Structure \\
                 Additional Unit Test Examples \\
                 Getting Clever with assertRaises \\
                 Making Your Life Easier with setUp \\
                 Useful Methods in Unit Testing \\
                 Summary \\
                 Chapter 3: Utilizing Unit Test Tools \\
                 Using Python's Nose \\
                 Installing Nose \\
                 Using Nose's Best Features \\
                 PyTest: an Alternative Test Runner \\
                 Installing PyTest \\
                 PyTest's Best Features \\
                 Choosing Between Nose and PyTest \\
                 Mock and Patch Tricky Situations \\
                 Installing the Mock Library \\
                 Mocking a Class and Method Response \\
                 When Mock Won't Do, Patch! \\
                 Summary \\
                 Chapter 4: Writing Testable Documentation \\
                 Writing Your First Doctest \\
                 The Python Shell \\
                 Adding Doctests to a Method \\
                 Running Your Doctests \\
                 Handling Error Cases \\
                 Advanced Doctest Usage \\
                 Improving Doctests with Nose Integration \\
                 Summary \\
                 Resources \\
                 Chapter 5: Driving Your Development with Tests \\
                 Agile Development \\
                 Adopting the Agile Process Now \\
                 Ethos of Test Driven Development \\
                 Advantages of Test Driven Development \\
                 Ping-Pong Programming \\
                 Test Driving Your Problem \\
                 Writing Your Failing Test \\
                 Making Your Test Pass \\
                 Driving More Features with Tests \\
                 Wrapping Up the Task \\
                 Summary \\
                 Resources \\
                 Chapter 6: Writing Acceptance Tests \\
                 What Is Acceptance Testing? \\
                 Anatomy of an Acceptance Test \\
                 Using Gherkin Syntax \\
                 The Magic Is in the Step File \\
                 Goals of Acceptance Testing \\
                 Implementing Developer and QA Collaboration \\
                 Letting Behavior Drive Your Problem \\
                 Writing Your Failing Acceptance Test \\
                 Defining Your Steps \\
                 Implementing Your Code \\
                 Developing More of the Feature \\
                 Delivering the Finished Article \\
                 Advanced Acceptance Test Techniques \\
                 Scenario Outline \\
                 Tables of Data in Scenarios \\
                 Summary \\
                 Resources \\
                 Chapter 7: Utilizing Acceptance Test Tools \\
                 Cucumber: The Acceptance Test Standard \\
                 Lettuce in Detail \\
                 Tagging \\
                 Fail Fast \\
                 Nosetest Integration \\
                 Robot: an Alternative Test Framework \\
                 Installing Robot \\
                 Writing a Test Case \\
                 Implementing Keywords \\
                 Running Robot Tests \\
                 Summary \\
                 Resources \\
                 Chapter 8: Maximizing Your Code's Performance \\
                 Understanding the Importance of Performance Testing \\
                 JMeter and Python \\
                 Installation \\
                 Configuring Your Test Plans \\
                 Utilizing Your Test Plans Effectively \\
                 Code Profiling with cProfile \\
                 Run a cProfile Session \\
                 Analyzing the cProfile Output \\
                 Summary \\
                 Resources \\
                 Chapter 9: Looking After Your Lint \\
                 Coming to Grips with Pylint \\
                 Installing Pylint \\
                 Using Pylint \\
                 Understanding the Pylint Report \\
                 Customizing Pylint's Output \\
                 Covering All Your Code with Unit Tests \\
                 Installing Coverage \\
                 Using Coverage \\
                 Advanced Coverage Options \\
                 Summary \\
                 Resources \\
                 Chapter 10: Automating Your Processes \\
                 Build Paver Tasks \\
                 Installing Paver \\
                 Creating a Paver Task \\
                 Executing Paver Tasks \\
                 Defining a Default Build \\
                 Setting Up Automated Builds \\
                 Installing Jenkins \\
                 Adding Coverage and PyLint Reports \\
                 Making Your Build Status Highly Visible \\
                 Summary \\
                 Resources \\
                 Chapter 11: Deploying Your Application \\
                 Deploying Your Application to Production \\
                 Creating a Deployable Artifact \\
                 QA Environment \\
                 Implementing Stage and Production Environments \\
                 Implementing a Cloud Deployment \\
                 Smoke Testing a Deployed Application \\
                 Example Application Stack \\
                 Smoke Test Scenarios \\
                 Implementing Smoke Tests \\
                 Summary \\
                 Resources \\
                 Chapter 12: The Future of Testing Python \\
                 Stub the Solution \\
                 Making Deployment Natural \\
                 Automating (Nearly) Everything \\
                 Working in Public \\
                 Collaborating on Step Definitions \\
                 Final Thoughts \\
                 Resources",
}

@Article{Sandner:2014:CMC,
  author =       "Raimar Sandner and Andr{\'a}s Vukics",
  title =        "{C++QEDv2 Milestone 10}: a {C++\slash Python}
                 application-programming framework for simulating open
                 quantum dynamics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "185",
  number =       "9",
  pages =        "2380--2382",
  month =        sep,
  year =         "2014",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Aug 16 08:37:39 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465514001349",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Book{Sarker:2014:PNP,
  author =       "M. O. Faruque Sarker",
  title =        "Python network programming cookbook over 70 detailed
                 recipes to develop pratical solutions for a wide range
                 of real-world network programming tasks",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2014",
  ISBN =         "1-84951-346-5",
  ISBN-13 =      "978-1-84951-346-3",
  LCCN =         "????",
  bibdate =      "Sat Oct 24 07:15:53 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Quick answers to common problems",
  URL =          "http://proquest.tech.safaribooksonline.de/9781849513463",
  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. Sockets, IPv4, and Simple Client/Server Programming
                 \\
                 Introduction \\
                 Printing your machine's name and IPv4 address \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Retrieving a remote machine's IP address \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Converting an IPv4 address to different formats \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Finding a service name, given the port and protocol \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Converting integers to and from host to network byte
                 order \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Setting and getting the default socket timeout \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Handling socket errors gracefully \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Modifying socket's send/receive buffer sizes \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Changing a socket to the blocking/non-blocking mode \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Reusing socket addresses \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Printing the current time from the Internet time server
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing a SNTP client \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing a simple echo client/server application \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 2. Multiplexing Socket I/O for Better Performance \\
                 Introduction \\
                 Using ForkingMixIn in your socket server applications
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using ThreadingMixIn in your socket server applications
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing a chat server using select.select \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Multiplexing a web server using select.epoll \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Multiplexing an echo server using Diesel concurrent
                 library \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 3. IPv6, Unix Domain Sockets, and Network Interfaces
                 \\
                 Introduction \\
                 Forwarding a local port to a remote host \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Pinging hosts on the network with ICMP \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Waiting for a remote network service \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Enumerating interfaces on your machine \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Finding the IP address for a specific interface on your
                 machine \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Finding whether an interface is up on your machine \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Detecting inactive machines on your network \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Performing a basic IPC using connected sockets
                 (socketpair) \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Performing IPC using Unix domain sockets \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Finding out if your Python supports IPv6 sockets \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Extracting an IPv6 prefix from an IPv6 address \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing an IPv6 echo client/server \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 4. Programming with HTTP for the Internet \\
                 Introduction \\
                 Downloading data from an HTTP server \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Serving HTTP requests from your machine \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Extracting cookie information after visiting a website
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Submitting web forms \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Sending web requests through a proxy server \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Checking whether a web page exists with the HEAD
                 request \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Spoofing Mozilla Firefox in your client code \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Saving bandwidth in web requests with the HTTP
                 compression \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing an HTTP fail-over client with resume and
                 partial downloading \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing a simple HTTPS server code with Python and
                 OpenSSL \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 5. E-mail Protocols, FTP, and CGI Programming \\
                 Introduction \\
                 Listing the files in a remote FTP server \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Uploading a local file to a remote FTP server \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 E-mailing your current working directory as a
                 compressed ZIP file \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Downloading your Google e-mail with POP3 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Checking your remote e-mail with IMAP \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Sending an e-mail with an attachment via Gmail SMTP
                 server \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing a guestbook for your (Python-based) web server
                 with CGI \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 6. Screen-scraping and Other Practical Applications \\
                 Introduction \\
                 Searching for business addresses using the Google Maps
                 API \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Searching for geographic coordinates using the Google
                 Maps URL \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Searching for an article in Wikipedia \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Searching for Google stock quote \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Searching for a source code repository at GitHub \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Reading news feed from BBC \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Crawling links present in a web page \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 7. Programming Across Machine Boundaries \\
                 Introduction \\
                 Executing a remote shell command using telnet \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Copying a file to a remote machine by SFTP \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Printing a remote machine's CPU information \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Installing a Python package remotely \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Running a MySQL command remotely \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Transferring files to a remote machine over SSH \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Configuring Apache remotely to host a website \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 8. Working with Web Services --- XML-RPC, SOAP, and
                 REST \\
                 Introduction \\
                 Querying a local XML-RPC server \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Writing a multithreaded multicall XML-RPC server \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Running an XML-RPC server with a basic HTTP
                 authentication \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Collecting some photo information from Flickr using
                 REST \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Searching for SOAP methods from an Amazon S3 web
                 service \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Searching Google for custom information \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Searching Amazon for books through product search API
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 9. Network Monitoring and Security \\
                 Introduction \\
                 Sniffing packets on your network \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Saving packets in the pcap format using the pcap dumper
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Adding an extra header in HTTP packets \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Scanning the ports of a remote host \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Customizing the IP address of a packet \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Replaying traffic by reading from a saved pcap file \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Scanning the broadcast of packets \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Index",
}

@Book{Seitz:2014:BPP,
  author =       "Justin Seitz",
  title =        "Black hat {Python}: {Python} programming for hackers
                 and pentesters",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "xviii + 170",
  year =         "2014",
  ISBN =         "1-59327-590-0",
  ISBN-13 =      "978-1-59327-590-7",
  LCCN =         "QA76.73.P98 S45 2015",
  bibdate =      "Sat Oct 24 05:55:13 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  tableofcontents = "Black Hat Python: Python Programming for Hackers
                 and Pentesters \\
                 Dedication \\
                 About the Author \\
                 About the Technical Reviewers \\
                 Foreword \\
                 Preface \\
                 Acknowledgments \\
                 1. Setting Up Your Python Environment \\
                 Installing Kali Linux \\
                 WingIDE \\
                 2. The Network: Basics \\
                 Python Networking in a Paragraph \\
                 TCP Client \\
                 UDP Client \\
                 TCP Server \\
                 Replacing Netcat \\
                 Kicking the Tires \\
                 Building a TCP Proxy \\
                 Kicking the Tires \\
                 SSH with Paramiko \\
                 Kicking the Tires \\
                 SSH Tunneling \\
                 Kicking the Tires \\
                 3. The Network: Raw Sockets and Sniffing \\
                 Building a UDP Host Discovery Tool \\
                 Packet Sniffing on Windows and Linux \\
                 Kicking the Tires \\
                 Decoding the IP Layer \\
                 Kicking the Tires \\
                 Decoding ICMP \\
                 Kicking the Tires \\
                 4. Owning the Network with Scapy \\
                 Stealing Email Credentials \\
                 Kicking the Tires \\
                 ARP Cache Poisoning with Scapy \\
                 Kicking the Tires \\
                 PCAP Processing \\
                 Kicking the Tires \\
                 5. Web Hackery \\
                 The Socket Library of the Web: urllib2 \\
                 Mapping Open Source Web App Installations \\
                 Kicking the Tires \\
                 Brute-Forcing Directories and File Locations \\
                 Kicking the Tires \\
                 Brute-Forcing HTML Form Authentication \\
                 Kicking the Tires \\
                 6. Extending Burp Proxy \\
                 Setting Up \\
                 Burp Fuzzing \\
                 Kicking the Tires \\
                 Bing for Burp \\
                 Kicking the Tires \\
                 Turning Website Content into Password Gold \\
                 Kicking the Tires \\
                 7. Github Command and Control \\
                 Setting Up a GitHub Account \\
                 Creating Modules \\
                 Trojan Configuration \\
                 Building a Github-Aware Trojan \\
                 Hacking Python s import Functionality \\
                 Kicking the Tires \\
                 8. Common Trojaning Tasks on Windows \\
                 Keylogging for Fun and Keystrokes \\
                 Kicking the Tires \\
                 Taking Screenshots \\
                 Pythonic Shellcode Execution \\
                 Kicking the Tires \\
                 Sandbox Detection \\
                 9. Fun with Internet Explorer \\
                 Man-in-the-Browser (Kind Of) \\
                 Creating the Server \\
                 Kicking the Tires \\
                 IE COM Automation for Exfiltration \\
                 Kicking the Tires \\
                 10. Windows Privilege Escalation \\
                 Installing the Prerequisites \\
                 Creating a Process Monitor \\
                 Process Monitoring with WMI \\
                 Kicking the Tires \\
                 Windows Token Privileges \\
                 Winning the Race \\
                 Kicking the Tires \\
                 Code Injection \\
                 Kicking the Tires \\
                 11. Automating Offensive Forensics \\
                 Installation \\
                 Profiles \\
                 Grabbing Password Hashes \\
                 Direct Code Injection \\
                 Kicking the Tires \\
                 Updates \\
                 Index",
}

@Book{Sileika:2014:PPS,
  author =       "Rytis Sileika",
  title =        "{Pro Python} system administration",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  pages =        "xxvi + 399",
  year =         "2014",
  ISBN =         "1-4842-0218-X (paperback), 1-4842-0217-1 (e-book)",
  ISBN-13 =      "978-1-4842-0218-0 (paperback), 978-1-4842-0217-3
                 (e-book)",
  LCCN =         "QA76.73.P98 S55 2014",
  bibdate =      "Sat Oct 24 06:17:20 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "The expert's voice in Python",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer systems;
                 Management; Computer programs; Systems software",
  tableofcontents = "About the Author \\
                 About the Technical Reviewers \\
                 Acknowledgments \\
                 Introduction \\
                 Chapter 1: Reading and Collecting Performance Data
                 Using SNMP \\
                 Application Requirements and Design \\
                 Specifying the Requirements \\
                 High-Level Design Specification \\
                 Introduction to SNMP \\
                 The System SNMP Variables Node \\
                 The Interfaces SNMP Variables Node \\
                 Authentication in SNMP \\
                 Querying SNMP from the Command Line \\
                 Querying SNMP Devices from Python \\
                 Configuring the Application \\
                 Using the PySNMP Library \\
                 Implementing the SNMP Read Functionality \\
                 Storing Data with RRDTool \\
                 Introduction to RRDTool \\
                 Using RRDTool from a Python Program \\
                 Creating a Round Robin Database \\
                 Writing and Reading Data from the Round Robin Database
                 \\
                 Plotting Graphs with RRDTool \\
                 Integrating RRDTool with the Monitoring Solution \\
                 Creating Web Pages with the Jinja2 Templating System
                 \\
                 Loading Template Files with Jinja2 \\
                 The Jinja2 Template Language \\
                 Generating Website Pages \\
                 Summary \\
                 Chapter 2: Managing Devices Using the SOAP API \\
                 What Is the SOAP API? \\
                 The Structure of a SOAP Message \\
                 Requesting Services with SOAP \\
                 Finding Information About Available Services with WSDL
                 \\
                 SOAP Support in Python \\
                 Converting WSDL Schema to Python Helper Module \\
                 Defining Requirements for Our Load Balancer Tool \\
                 Basic Requirements \\
                 Code Structure \\
                 Configuration \\
                 Accessing Citrix Netscaler Load Balancer with the SOAP
                 API \\
                 Fixing Issues with Citrix Netscaler WSDL \\
                 Creating a Connection Object \\
                 Logging In: Our First SOAP Call \\
                 Gathering Performance Statistics Data \\
                 SOAP Methods for Reading Statistical Data and its
                 Return Values \\
                 Reading System Health Data \\
                 Reading Service Status Data \\
                 Automating Some Administration Tasks \\
                 Device Configuration SOAP Methods \\
                 Setting a Service State \\
                 A Word About Logging and Error Handling \\
                 Using the Python Logging Module \\
                 Handling Exceptions \\
                 NetScaler NITRO API \\
                 Download \\
                 Using the Nitro-Python Module \\
                 Summary \\
                 Chapter 3: Creating a Web Application for IP Address
                 Accountancy \\
                 Designing the Application \\
                 Setting out the Requirements \\
                 Making Design Decisions \\
                 Defining the Database Schema \\
                 Creating the Application Workflow \\
                 The Basic Concepts of the Django Framework \\
                 What Is Django? \\
                 The Model/View/Controller Pattern \\
                 Installing the Django Framework \\
                 The Structure of a Django Application \\
                 Using Django with Apache Web Server \\
                 Implementing Basic Functionality \\
                 Defining the Database Model \\
                 URL Configuration \\
                 Using the Management Interface \\
                 Viewing Records \\
                 Using Templates \\
                 Deleting Records \\
                 Adding New Records \\
                 Modifying Existing Records \\
                 Summary \\
                 Chapter 4: Integrating the IP Address Application with
                 DHCP \\
                 Extending the Design and Requirements \\
                 Extending the Database Schema \\
                 Making Additions to the Workflow \\
                 Adding DHCP Network Data \\
                 The Data Models \\
                 Additional Workflows \\
                 The Add Function \\
                 The Modify Function \\
                 The Delete Function \\
                 Extending the DHCP Configuration with Address Pools \\
                 The Address Pool Data Model \\
                 The DHCP Network Details \\
                 The Add and Delete Functions \\
                 Reworking the URL Structure \\
                 Generation of URLs in the Model Class \\
                 Reverse Resolution of URLs \\
                 Assignment of Names to URL Patterns \\
                 Use of URL References in the Templates \\
                 Adding Client Classification \\
                 Additions to the Data Model \\
                 Template Inheritance \\
                 Class Rules Management \\
                 Generating the DHCP Configuration File \\
                 Other Modifications \\
                 Resolving IPs to Hostnames \\
                 Checking Whether the Address Is in Use \\
                 Dynamic DHCP Lease Management \\
                 Employ Python Interface to OMAPI \\
                 Set up the ISC DHCP Server \\
                 Add a New Host Lease Record \\
                 Delete a Host Lease Record \\
                 Summary \\
                 Chapter 5: Maintaining a List of Virtual Hosts in an
                 Apache Configuration File \\
                 Specifying the Design and Requirements for the
                 Application \\
                 Functional Requirements \\
                 High-Level Design \\
                 Setting Up the Environment \\
                 Apache Configuration \\
                 Creating a Django Project and Application \\
                 Configuring the Application \\
                 Defining the URL Structure \\
                 The Data Model \\
                 The Basic Model Structure \\
                 Modifying the Administration Interface \\
                 Improving the Class and Object Lists \\
                 Adding Custom Object Actions \\
                 Generating the Configuration File \\
                 Summary \\
                 Chapter 6: Gathering and Presenting Statistical Data
                 from Apache Log Files \\
                 Application Structure and Functionality \\
                 Application Requirements \\
                 Application Design \\
                 Plug-in Framework Implementation in Python \\
                 The Mechanics of a Plug-in Framework \\
                 Creating the Plug-in Framework \\
                 Log-Parsing Application \\
                 Format of Apache Log Files \\
                 Log File Reader \\
                 Calling the Plug-in Methods \\
                 Plug-in Modules \\
                 Installing the Required Libraries \\
                 Writing the Plug-in Code \\
                 Visualizing the Data \\
                 Summary \\
                 Chapter 7: Performing Complex Searches and Reporting on
                 Application Log Files \\
                 Defining the Problem \\
                 Why We Use Exceptions \\
                 Are Exceptions Always a Bad Sign? \\
                 Why We Should Analyze Exceptions \\
                 Parsing Complex Log Files \\
                 What Can We Find in a Typical Log File? \\
                 The Structure of an Exception Stack Trace Log \\
                 Handling Multiple Files \\
                 Using the Built-in Bzip2 Library \\
                 Traversing Large Data Files \\
                 What Are Generators, and How Are They Used? \\
                 Detecting the Exceptions \\
                 Detecting the Potential Candidates \\
                 Filtering the Legitimate Exception Traces \\
                 Storing Data in Data Structures \\
                 The Structure of Exception Stack Trace Data \\
                 Generating an Exception Fingerprint for Unknown
                 Exceptions \\
                 Detecting Known Exceptions \\
                 Producing Reports \\
                 Grouping the Exceptions \\
                 Producing Differently Formatted Outputs for the Same
                 Dataset \\
                 Calculating Group Statistics \\
                 Summary \\
                 Chapter 8: a Website Availability Check Script for
                 Nagios \\
                 Requirements for the Check System \\
                 The Nagios Monitoring System \\
                 Nagios Plug-In Architecture \\
                 The Site Navigation Check \\
                 Installing the Beautiful Soup HTML Parsing Library \\
                 Retrieving a Web Page \\
                 Parsing the HTML Pages with Beautiful Soup \\
                 Adding the New Check to the Nagios System \\
                 Emulating the User Login Process \\
                 Simplifying HTTP Client with Requests Module \\
                 Summary \\
                 Chapter 9: Management and Monitoring Subsystem \\
                 Design \\
                 The Components \\
                 The Data Objects \\
                 The Data Structures \\
                 Introduction to Data Normalization \\
                 Configuration Data \\
                 Performance Data \\
                 Scheduling \\
                 Site Configuration \\
                 Communication Flows \\
                 XML-RPC for Information Exchange \\
                 CherryPy \\
                 The Server Process \\
                 Storing Data in a SQLite3 Database \\
                 Actions \\
                 The Scheduler \\
                 Actions \\
                 Running Multiple Processes \\
                 Running Methods at Equal Intervals \\
                 A Cron-Like Scheduler \\
                 Ticket Dispatcher \\
                 Summary \\
                 Chapter 10: Remote Monitoring Agents \\
                 Design \\
                 The Passive Component \\
                 Architecture \\
                 Actions \\
                 The Security Model \\
                 Configuration \\
                 The ConfigParser Library \\
                 The Configuration Class Wrapper \\
                 The Sensor Design \\
                 Running External Processes \\
                 Using the Subprocess Library \\
                 Controlling the Running Processes \\
                 Communicating with External Processes \\
                 Automatically Updating Sensor Code \\
                 Sending and Receiving Binary Data with XML-RPC \\
                 Working with Files and Archives (TAR and BZip2) \\
                 Summary \\
                 Chapter 11: Statistics Gathering and Reporting \\
                 Application Requirements and Design \\
                 Using the NumPy Library \\
                 Installing NumPy \\
                 NumPy Examples \\
                 Representing Data with matplotlib \\
                 Installing matplotlib \\
                 Understanding the Library Structure \\
                 Plotting Graphs \\
                 Saving Plots to a File \\
                 Graphing Statistical Data \\
                 Collating Data from the Database \\
                 Drawing Timescale Graphs \\
                 Host Details Page \\
                 Summary \\
                 Chapter 12: Distributed Message Processing System \\
                 Quick Introduction to Message and Task Queues \\
                 Task Queuing Systems \\
                 Message Queuing Systems \\
                 Setting up the Celery Server and Client \\
                 Installing and Setting up RabbitMQ \\
                 Installing and Setting up Celery \\
                 Celery Basics \\
                 Layout of a Typical Celery Application \\
                 Creating aTasks Module \\
                 Routing Tasks \\
                 Summary \\
                 Chapter 13: Automatic MySQL Database Performance Tuning
                 \\
                 Requirements Specification and Design \\
                 Basic Application Requirements \\
                 System Design \\
                 Modifying the Plug-in Framework \\
                 Changes to the Host Application \\
                 Modifying the Plug-in Manager \\
                 Writing the Producer Plug-ins \\
                 Accessing the MySQL Database from Python Applications
                 \\
                 Querying the Configuration Variables \\
                 Querying the Server Status Variables \\
                 Collecting the Host Configuration Data \\
                 Writing the Consumer Plug-ins \\
                 Checking the MySQL Version \\
                 Checking the Key Buffer Size Setting \\
                 Checking the Slow Queries Counter \\
                 Summary \\
                 Chapter 14: Using Amazon EC2/S3 as a Data Warehouse
                 Solution \\
                 Specifying the Problem and the Solution \\
                 The Problem \\
                 Our Solution \\
                 Design Specifications \\
                 The Amazon EC2 and S3 Crash Course \\
                 Authentication and Security \\
                 The Simple Storage System Concepts \\
                 The Elastic Computing Cloud Concepts \\
                 User Interfaces \\
                 Creating a Custom EC2 Image \\
                 Reusing Existing Images \\
                 Making Modifications \\
                 Bundling the New AMI \\
                 Controlling the EC2 Using the Boto Python Module \\
                 Setting Up the Configuration Variables \\
                 Initializing the EC2 Instance Programmatically \\
                 Transferring the Data \\
                 Destroying the EC2 Instance Programmatically \\
                 Summary \\
                 Index",
}

@Article{Sinz:2014:PNP,
  author =       "Fabian H. Sinz and J{\"o}rn-Philipp Lies and Sebastian
                 Gerwinn and Matthias Bethge",
  title =        "\pkg{Natter}: a {Python} Natural Image Statistics
                 Toolbox",
  journal =      j-J-STAT-SOFT,
  volume =       "61",
  number =       "5",
  pages =        "??--??",
  month =        nov,
  year =         "2014",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Wed Feb 11 10:31:33 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v61/i05",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2013-04-21; Accepted 2014-05-23",
}

@Book{Stewart:2014:PS,
  author =       "John Stewart",
  title =        "Python for Scientists",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "xii + 220",
  year =         "2014",
  ISBN =         "1-107-06139-3 (hardcover), 1-107-68642-3",
  ISBN-13 =      "978-1-107-06139-2 (hardcover), 978-1-107-68642-7",
  LCCN =         "Q183.9 .S865 2014",
  bibdate =      "Thu Jun 26 09:42:41 MDT 2014",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://assets.cambridge.org/97811070/61392/cover/9781107061392.jpg",
  abstract =     "Python is a free, open source, easy-to-use software
                 tool that offers a significant alternative to
                 proprietary packages such as MATLAB and Mathematica.
                 This book covers everything the working scientist needs
                 to know to start using Python effectively. The author
                 explains scientific Python from scratch, showing how
                 easy it is to implement and test non-trivial
                 mathematical algorithms and guiding the reader through
                 the many freely available add-on modules. A range of
                 examples, relevant to many different fields, illustrate
                 the program's capabilities. In particular, readers are
                 shown how to use pre-existing legacy code (usually in
                 Fortran77) within the Python environment, thus avoiding
                 the need to master the original code. Instead of
                 exercises the book contains useful snippets of tested
                 code which the reader can adapt to handle problems in
                 their own field, allowing students and researchers with
                 little computer expertise to get up and running as soon
                 as possible.",
  acknowledgement = ack-nhfb,
  author-dates = "1943 July 1",
  subject =      "Science; Data processing; Python (Computer program
                 language); COMPUTERS / General.",
  tableofcontents = "Preface \\
                 1. Introduction \\
                 2. Getting started with IPython \\
                 3. A short Python tutorial \\
                 4. Numpy \\
                 5. Two-dimensional graphics \\
                 6. Three-dimensional graphics \\
                 7. Ordinary differential equations \\
                 8. Partial differential equations: a pseudospectral
                 approach \\
                 9. Case study: multigrid \\
                 Appendix A. Installing a Python environment \\
                 Appendix B. Fortran77 subroutines for pseudospectral
                 methods \\
                 References \\
                 Index",
}

@Article{Strickland:2014:PPM,
  author =       "Christopher Strickland and Robert Burdett and Kerrie
                 Mengersen and Robert Denham",
  title =        "{PySSM}: a {Python} Module for {Bayesian} Inference of
                 Linear {Gaussian} State Space Models",
  journal =      j-J-STAT-SOFT,
  volume =       "57",
  number =       "6",
  pages =        "??--??",
  month =        apr,
  year =         "2014",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Mon Jun 16 11:01:52 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v57/i06",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Statistical Software",
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2012-03-23; Accepted 2013-09-21",
}

@Book{Sweigart:2014:ABS,
  author =       "Al Sweigart",
  title =        "Automate the boring stuff with python: practical
                 programming for total beginners",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "xxi + 479",
  year =         "2014",
  ISBN =         "1-59327-599-4",
  ISBN-13 =      "978-1-59327-599-0",
  LCCN =         "QA76.73.P98",
  bibdate =      "Wed Oct 14 07:33:44 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://proquestcombo.safaribooksonline.com/9781457189906",
  abstract =     "In \booktitle{Automate the Boring Stuff with Python},
                 you'll learn how to use Python to write programs that
                 do in minutes what would take you hours to do by hand
                 no prior programming experience required. Once you've
                 mastered the basics of programming, you'll create
                 Python programs that effortlessly perform useful and
                 impressive feats of automation to: Search for text in a
                 file or across multiple files; Create, update, move,
                 and rename files and folders; Search the Web and
                 download online content; Update and format data in
                 Excel spreadsheets of any size; Split, merge,
                 watermark, and encrypt PDFs; Send reminder emails and
                 text notifications; Fill out online forms. Step-by-step
                 instructions walk you through each program, and
                 practice projects at the end of each chapter challenge
                 you to improve those programs and use your newfound
                 skills to automate similar tasks.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Dedication \\
                 About the Author \\
                 About the Tech Reviewer \\
                 Acknowledgments \\
                 Introduction \\
                 Whom Is This Book For? \\
                 Conventions \\
                 What Is Programming? \\
                 What Is Python? \\
                 Programmers Don t Need to Know Much Math \\
                 Programming Is a Creative Activity \\
                 About This Book \\
                 Downloading and Installing Python \\
                 Starting IDLE \\
                 The Interactive Shell \\
                 How to Find Help \\
                 Asking Smart Programming Questions \\
                 Summary \\
                 I. Python Programming Basics \\
                 1. Python Basics \\
                 Entering Expressions into the Interactive Shell \\
                 The Integer, Floating-Point, and String Data Types \\
                 String Concatenation and Replication \\
                 Storing Values in Variables \\
                 Assignment Statements \\
                 Variable Names \\
                 Your First Program \\
                 Dissecting Your Program \\
                 Comments \\
                 The print() Function \\
                 The input() Function \\
                 Printing the User s Name \\
                 The len() Function \\
                 The str(), int(), and float() Functions \\
                 Summary \\
                 Practice Questions \\
                 2. Flow Control \\
                 Boolean Values \\
                 Comparison Operators \\
                 Boolean Operators \\
                 Binary Boolean Operators \\
                 The not Operator \\
                 Mixing Boolean and Comparison Operators \\
                 Elements of Flow Control \\
                 Conditions \\
                 Blocks of Code \\
                 Program Execution \\
                 Flow Control Statements \\
                 if Statements \\
                 else Statements \\
                 elif Statements \\
                 while Loop Statements \\
                 An Annoying while Loop \\
                 break Statements \\
                 continue Statements \\
                 for Loops and the range() Function \\
                 An Equivalent while Loop \\
                 The Starting, Stopping, and Stepping Arguments to
                 range() \\
                 Importing Modules \\
                 from import Statements \\
                 Ending a Program Early with sys.exit() \\
                 Summary \\
                 Practice Questions \\
                 3. Functions \\
                 def Statements with Parameters \\
                 Return Values and return Statements \\
                 The None Value \\
                 Keyword Arguments and print() \\
                 Local and Global Scope \\
                 Local Variables Cannot Be Used in the Global Scope \\
                 Local Scopes Cannot Use Variables in Other Local Scopes
                 \\
                 Global Variables Can Be Read from a Local Scope \\
                 Local and Global Variables with the Same Name \\
                 The global Statement \\
                 Exception Handling \\
                 A Short Program: Guess the Number \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 The Collatz Sequence \\
                 Input Validation \\
                 4. Lists \\
                 The List Data Type \\
                 Getting Individual Values in a List with Indexes \\
                 Negative Indexes \\
                 Getting Sublists with Slices \\
                 Getting a List s Length with len() \\
                 Changing Values in a List with Indexes \\
                 List Concatenation and List Replication \\
                 Removing Values from Lists with del Statements \\
                 Working with Lists \\
                 Using for Loops with Lists \\
                 The in and not in Operators \\
                 The Multiple Assignment Trick \\
                 Augmented Assignment Operators \\
                 Methods \\
                 Finding a Value in a List with the index() Method \\
                 Adding Values to Lists with the append() and insert()
                 Methods \\
                 Removing Values from Lists with remove() \\
                 Sorting the Values in a List with the sort() Method \\
                 Example Program: Magic 8 Ball with a List \\
                 List-like Types: Strings and Tuples \\
                 Mutable and Immutable Data Types \\
                 The Tuple Data Type \\
                 Converting Types with the list() and tuple() Functions
                 \\
                 References \\
                 Passing References \\
                 The copy Module s copy() and deepcopy() Functions \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Comma Code \\
                 Character Picture Grid \\
                 5. Dictionaries and Structuring Data \\
                 The Dictionary Data Type \\
                 Dictionaries vs. Lists \\
                 The keys(), values(), and items() Methods \\
                 Checking Whether a Key or Value Exists in a Dictionary
                 \\
                 The get() Method \\
                 The setdefault() Method \\
                 Pretty Printing \\
                 Using Data Structures to Model Real-World Things \\
                 A Tic-Tac-Toe Board \\
                 Nested Dictionaries and Lists \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Fantasy Game Inventory \\
                 List to Dictionary Function for Fantasy Game Inventory
                 \\
                 6. Manipulating Strings \\
                 Working with Strings \\
                 String Literals \\
                 Double Quotes \\
                 Escape Characters \\
                 Raw Strings \\
                 Multiline Strings with Triple Quotes \\
                 Multiline Comments \\
                 Indexing and Slicing Strings \\
                 The in and not in Operators with Strings \\
                 Useful String Methods \\
                 The upper(), lower(), isupper(), and islower() String
                 Methods \\
                 The isX String Methods \\
                 The startswith() and endswith() String Methods \\
                 The join() and split() String Methods \\
                 Justifying Text with rjust(), ljust(), and center() \\
                 Removing Whitespace with strip(), rstrip(), and
                 lstrip() \\
                 Copying and Pasting Strings with the pyperclip Module
                 \\
                 Project: Password Locker \\
                 Step 1: Program Design and Data Structures \\
                 Step 2: Handle Command Line Arguments \\
                 Step 3: Copy the Right Password \\
                 Project: Adding Bullets to Wiki Markup \\
                 Step 1: Copy and Paste from the Clipboard \\
                 Step 2: Separate the Lines of Text and Add the Star \\
                 Step 3: Join the Modified Lines \\
                 Summary \\
                 Practice Questions \\
                 Practice Project \\
                 Table Printer \\
                 II. Automating Tasks \\
                 7. Pattern Matching with Regular Expressions \\
                 Finding Patterns of Text Without Regular Expressions
                 \\
                 Finding Patterns of Text with Regular Expressions \\
                 Creating Regex Objects \\
                 Matching Regex Objects \\
                 Review of Regular Expression Matching \\
                 More Pattern Matching with Regular Expressions \\
                 Grouping with Parentheses \\
                 Matching Multiple Groups with the Pipe \\
                 Optional Matching with the Question Mark \\
                 Matching Zero or More with the Star \\
                 Matching One or More with the Plus \\
                 Matching Specific Repetitions with Curly Brackets \\
                 Greedy and Nongreedy Matching \\
                 The findall() Method \\
                 Character Classes \\
                 Making Your Own Character Classes \\
                 The Caret and Dollar Sign Characters \\
                 The Wildcard Character \\
                 Matching Everything with Dot-Star \\
                 Matching Newlines with the Dot Character \\
                 Review of Regex Symbols \\
                 Case-Insensitive Matching \\
                 Substituting Strings with the sub() Method \\
                 Managing Complex Regexes \\
                 Combining re.IGNORECASE, re.DOTALL, and re.VERBOSE \\
                 Project: Phone Number and Email Address Extractor \\
                 Step 1: Create a Regex for Phone Numbers \\
                 Step 2: Create a Regex for Email Addresses \\
                 Step 3: Find All Matches in the Clipboard Text \\
                 Step 4: Join the Matches into a String for the
                 Clipboard \\
                 Running the Program \\
                 Ideas for Similar Programs \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Strong Password Detection \\
                 Regex Version of strip() \\
                 8. Reading and Writing Files \\
                 Files and File Paths \\
                 Backslash on Windows and Forward Slash on OS X and
                 Linux \\
                 The Current Working Directory \\
                 Absolute vs. Relative Paths \\
                 Creating New Folders with os.makedirs() \\
                 The os.path Module \\
                 Handling Absolute and Relative Paths \\
                 Finding File Sizes and Folder Contents \\
                 Checking Path Validity \\
                 The File Reading/Writing Process \\
                 Opening Files with the open() Function \\
                 Reading the Contents of Files \\
                 Writing to Files \\
                 Saving Variables with the shelve Module \\
                 Saving Variables with the pprint.pformat() Function \\
                 Project: Generating Random Quiz Files \\
                 Step 1: Store the Quiz Data in a Dictionary \\
                 Step 2: Create the Quiz File and Shuffle the Question
                 Order \\
                 Step 3: Create the Answer Options \\
                 Step 4: Write Content to the Quiz and Answer Key Files
                 \\
                 Project: Multiclipboard \\
                 Step 1: Comments and Shelf Setup \\
                 Step 2: Save Clipboard Content with a Keyword \\
                 Step 3: List Keywords and Load a Keyword s Content \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Extending the Multiclipboard \\
                 Mad Libs \\
                 Regex Search \\
                 9. Organizing Files \\
                 The shutil Module \\
                 Copying Files and Folders \\
                 Moving and Renaming Files and Folders \\
                 Permanently Deleting Files and Folders \\
                 Safe Deletes with the send2trash Module \\
                 Walking a Directory Tree \\
                 Compressing Files with the zipfile Module \\
                 Reading ZIP Files \\
                 Extracting from ZIP Files \\
                 Creating and Adding to ZIP Files \\
                 Project: Renaming Files with American-Style Dates to
                 European-Style Dates \\
                 Step 1: Create a Regex for American-Style Dates \\
                 Step 2: Identify the Date Parts from the Filenames \\
                 Step 3: Form the New Filename and Rename the Files \\
                 Ideas for Similar Programs \\
                 Project: Backing Up a Folder into a ZIP File \\
                 Step 1: Figure Out the ZIP File s Name \\
                 Step 2: Create the New ZIP File \\
                 Step 3: Walk the Directory Tree and Add to the ZIP File
                 \\
                 Ideas for Similar Programs \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Selective Copy \\
                 Deleting Unneeded Files \\
                 Filling in the Gaps \\
                 10. Debugging \\
                 Raising Exceptions \\
                 Getting the Traceback as a String \\
                 Assertions \\
                 Using an Assertion in a Traffic Light Simulation \\
                 Disabling Assertions \\
                 Logging \\
                 Using the logging Module \\
                 Don t Debug with print() \\
                 Logging Levels \\
                 Disabling Logging \\
                 Logging to a File \\
                 IDLE s Debugger \\
                 Go \\
                 Step \\
                 Over \\
                 Out \\
                 Quit \\
                 Debugging a Number Adding Program \\
                 Breakpoints \\
                 Summary \\
                 Practice Questions \\
                 Practice Project \\
                 Debugging Coin Toss \\
                 11. Web Scraping \\
                 Project: mapit.py with the webbrowser Module \\
                 Step 1: Figure Out the URL \\
                 Step 2: Handle the Command Line Arguments \\
                 Step 3: Handle the Clipboard Content and Launch the
                 Browser \\
                 Ideas for Similar Programs \\
                 Downloading Files from the Web with the requests Module
                 \\
                 Downloading a Web Page with the requests.get() Function
                 \\
                 Checking for Errors \\
                 Saving Downloaded Files to the Hard Drive \\
                 HTML \\
                 Resources for Learning HTML \\
                 A Quick Refresher \\
                 Viewing the Source HTML of a Web Page \\
                 Opening Your Browser s Developer Tools \\
                 Using the Developer Tools to Find HTML Elements \\
                 Parsing HTML with the BeautifulSoup Module \\
                 Creating a BeautifulSoup Object from HTML \\
                 Finding an Element with the select() Method \\
                 Getting Data from an Element s Attributes \\
                 Project: I m Feeling Lucky Google Search \\
                 Step 1: Get the Command Line Arguments and Request the
                 Search Page \\
                 Step 2: Find All the Results \\
                 Step 3: Open Web Browsers for Each Result \\
                 Ideas for Similar Programs \\
                 Project: Downloading All XKCD Comics \\
                 Step 1: Design the Program \\
                 Step 2: Download the Web Page \\
                 Step 3: Find and Download the Comic Image \\
                 Step 4: Save the Image and Find the Previous Comic \\
                 Ideas for Similar Programs \\
                 Controlling the Browser with the selenium Module \\
                 Starting a Selenium-Controlled Browser \\
                 Finding Elements on the Page \\
                 Clicking the Page \\
                 Filling Out and Submitting Forms \\
                 Sending Special Keys \\
                 Clicking Browser Buttons \\
                 More Information on Selenium \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Command Line Emailer \\
                 Image Site Downloader \\
                 2048 \\
                 Link Verification \\
                 12. Working with Excel Spreadsheets \\
                 Excel Documents \\
                 Installing the openpyxl Module \\
                 Reading Excel Documents \\
                 Opening Excel Documents with OpenPyXL \\
                 Getting Sheets from the Workbook \\
                 Getting Cells from the Sheets \\
                 Converting Between Column Letters and Numbers \\
                 Getting Rows and Columns from the Sheets \\
                 Workbooks, Sheets, Cells \\
                 Project: Reading Data from a Spreadsheet \\
                 Step 1: Read the Spreadsheet Data \\
                 Step 2: Populate the Data Structure \\
                 Step 3: Write the Results to a File \\
                 Ideas for Similar Programs \\
                 Writing Excel Documents \\
                 Creating and Saving Excel Documents \\
                 Creating and Removing Sheets \\
                 Writing Values to Cells \\
                 Project: Updating a Spreadsheet \\
                 Step 1: Set Up a Data Structure with the Update
                 Information \\
                 Step 2: Check All Rows and Update Incorrect Prices \\
                 Ideas for Similar Programs \\
                 Setting the Font Style of Cells \\
                 Font Objects \\
                 Formulas \\
                 Adjusting Rows and Columns \\
                 Setting Row Height and Column Width \\
                 Merging and Unmerging Cells \\
                 Freeze Panes \\
                 Charts \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Multiplication Table Maker \\
                 Blank Row Inserter \\
                 Spreadsheet Cell Inverter \\
                 Text Files to Spreadsheet \\
                 Spreadsheet to Text Files \\
                 13. Working with PDF and word Documents \\
                 PDF Documents \\
                 Extracting Text from PDFs \\
                 Decrypting PDFs \\
                 Creating PDFs \\
                 Copying Pages \\
                 Rotating Pages \\
                 Overlaying Pages \\
                 Encrypting PDFs \\
                 Project: Combining Select Pages from Many PDFs \\
                 Step 1: Find All PDF Files \\
                 Step 2: Open Each PDF \\
                 Step 3: Add Each Page \\
                 Step 4: Save the Results \\
                 Ideas for Similar Programs \\
                 Word Documents \\
                 Reading Word Documents \\
                 Getting the Full Text from a .docx File \\
                 Styling Paragraph and Run Objects \\
                 Creating Word Documents with Nondefault Styles \\
                 Run Attributes \\
                 Writing Word Documents \\
                 Adding Headings \\
                 Adding Line and Page Breaks \\
                 Adding Pictures \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 PDF Paranoia \\
                 Custom Invitations as Word Documents \\
                 Brute-Force PDF Password Breaker \\
                 14. Working with CSV Files and JSON Data \\
                 The CSV Module \\
                 Reader Objects \\
                 Reading Data from Reader Objects in a for Loop \\
                 Writer Objects \\
                 The delimiter and lineterminator Keyword Arguments \\
                 Project: Removing the Header from CSV Files \\
                 Step 1: Loop Through Each CSV File \\
                 Step 2: Read in the CSV File \\
                 Step 3: Write Out the CSV File Without the First Row
                 \\
                 Ideas for Similar Programs \\
                 JSON and APIs \\
                 The JSON Module \\
                 Reading JSON with the loads() Function \\
                 Writing JSON with the dumps() Function \\
                 Project: Fetching Current Weather Data \\
                 Step 1: Get Location from the Command Line Argument \\
                 Step 2: Download the JSON Data \\
                 Step 3: Load JSON Data and Print Weather \\
                 Ideas for Similar Programs \\
                 Summary \\
                 Practice Questions \\
                 Practice Project \\
                 Excel-to-CSV Converter \\
                 15. Keeping Time, Scheduling Tasks, and Launching
                 Programs \\
                 The time Module \\
                 The time.time() Function \\
                 The time.sleep() Function \\
                 Rounding Numbers \\
                 Project: Super Stopwatch \\
                 Step 1: Set Up the Program to Track Times \\
                 Step 2: Track and Print Lap Times \\
                 Ideas for Similar Programs \\
                 The datetime Module \\
                 The timedelta Data Type \\
                 Pausing Until a Specific Date \\
                 Converting datetime Objects into Strings \\
                 Converting Strings into datetime Objects \\
                 Review of Python s Time Functions \\
                 Multithreading \\
                 Passing Arguments to the Thread s Target Function \\
                 Concurrency Issues \\
                 Project: Multithreaded XKCD Downloader \\
                 Step 1: Modify the Program to Use a Function \\
                 Step 2: Create and Start Threads \\
                 Step 3: Wait for All Threads to End \\
                 Launching Other Programs from Python \\
                 Passing Command Line Arguments to Popen() \\
                 Task Scheduler, launchd, and cron \\
                 Opening Websites with Python \\
                 Running Other Python Scripts \\
                 Opening Files with Default Applications \\
                 Project: Simple Countdown Program \\
                 Step 1: Count Down \\
                 Step 2: Play the Sound File \\
                 Ideas for Similar Programs \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Prettified Stopwatch \\
                 Scheduled Web Comic Downloader \\
                 16. Sending Email and Text Messages \\
                 SMTP \\
                 Sending Email \\
                 Connecting to an SMTP Server \\
                 Sending the SMTP Hello Message \\
                 Starting TLS Encryption \\
                 Logging in to the SMTP Server \\
                 Sending an Email \\
                 Disconnecting from the SMTP Server \\
                 IMAP \\
                 Retrieving and Deleting Emails with IMAP \\
                 Connecting to an IMAP Server \\
                 Logging in to the IMAP Server \\
                 Searching for Email \\
                 Selecting a Folder \\
                 Performing the Search \\
                 Size Limits \\
                 Fetching an Email and Marking It As Read \\
                 Getting Email Addresses from a Raw Message \\
                 Getting the Body from a Raw Message \\
                 Deleting Emails \\
                 Disconnecting from the IMAP Server \\
                 Project: Sending Member Dues Reminder Emails \\
                 Step 1: Open the Excel File \\
                 Step 2: Find All Unpaid Members \\
                 Step 3: Send Customized Email Reminders \\
                 Sending Text Messages with Twilio \\
                 Signing Up for a Twilio Account \\
                 Sending Text Messages \\
                 Project: Just Text Me Module \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Random Chore Assignment Emailer \\
                 Umbrella Reminder \\
                 Auto Unsubscriber \\
                 Controlling Your Computer Through Email \\
                 17. Manipulating Images \\
                 Computer Image Fundamentals \\
                 Colors and RGBA Values \\
                 Coordinates and Box Tuples \\
                 Manipulating Images with Pillow \\
                 Working with the Image Data Type \\
                 Cropping Images \\
                 Copying and Pasting Images onto Other Images \\
                 Resizing an Image \\
                 Rotating and Flipping Images \\
                 Changing Individual Pixels \\
                 Project: Adding a Logo \\
                 Step 1: Open the Logo Image \\
                 Step 2: Loop Over All Files and Open Images \\
                 Step 3: Resize the Images \\
                 Step 4: Add the Logo and Save the Changes \\
                 Ideas for Similar Programs \\
                 Drawing on Images \\
                 Drawing Shapes \\
                 Points \\
                 Lines \\
                 Rectangles \\
                 Ellipses \\
                 Polygons \\
                 Drawing Example \\
                 Drawing Text \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Extending and Fixing the Chapter Project Programs \\
                 Identifying Photo Folders on the Hard Drive \\
                 Custom Seating Cards \\
                 18. Controlling the Keyboard and Mouse with GUI
                 Automation \\
                 Installing the pyautogui Module \\
                 Staying on Track \\
                 Shutting Down Everything by Logging Out \\
                 Pauses and Fail-Safes \\
                 Controlling Mouse Movement \\
                 Moving the Mouse \\
                 Getting the Mouse Position \\
                 Project: Where Is the Mouse Right Now? \\
                 Step 1: Import the Module \\
                 Step 2: Set Up the Quit Code and Infinite Loop \\
                 Step 3: Get and Print the Mouse Coordinates \\
                 Controlling Mouse Interaction \\
                 Clicking the Mouse \\
                 Dragging the Mouse \\
                 Scrolling the Mouse \\
                 Working with the Screen \\
                 Getting a Screenshot \\
                 Analyzing the Screenshot \\
                 Project: Extending the mouseNow Program \\
                 Image Recognition \\
                 Controlling the Keyboard \\
                 Sending a String from the Keyboard \\
                 Key Names \\
                 Pressing and Releasing the Keyboard \\
                 Hotkey Combinations \\
                 Review of the PyAutoGUI Functions \\
                 Project: Automatic Form Filler \\
                 Step 1: Figure Out the Steps \\
                 Step 2: Set Up Coordinates \\
                 Step 3: Start Typing Data \\
                 Step 4: Handle Select Lists and Radio Buttons \\
                 Step 5: Submit the Form and Wait \\
                 Summary \\
                 Practice Questions \\
                 Practice Projects \\
                 Looking Busy \\
                 Instant Messenger Bot \\
                 Game-Playing Bot Tutorial \\
                 A. Installing Third-Party Modules \\
                 The pip Tool \\
                 Installing Third-Party Modules \\
                 B. Running Programs \\
                 Shebang Line \\
                 Running Python Programs on Windows \\
                 Running Python Programs on OS X and Linux \\
                 C. Answers to the Practice Questions \\
                 Chapter 1 \\
                 Chapter 2 \\
                 Chapter 3 \\
                 Chapter 4 \\
                 Chapter 5 \\
                 Chapter 6 \\
                 Chapter 7 \\
                 Chapter 8 \\
                 Chapter 9 \\
                 Chapter 10 \\
                 Chapter 11 \\
                 Chapter 12 \\
                 Chapter 13 \\
                 Chapter 14 \\
                 Chapter 15 \\
                 Chapter 16 \\
                 Chapter 17 \\
                 Chapter 18 \\
                 D. Resources \\
                 Index",
}

@Article{Trevino:2014:ANP,
  author =       "Jeffrey Trevi{\~n}o and Craig Sapp",
  title =        "Automated Notation of Piano Recordings for Historic
                 Performance Practice Study",
  journal =      j-JOCCH,
  volume =       "7",
  number =       "3",
  pages =        "17:1--17:??",
  month =        aug,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2597179",
  ISSN =         "1556-4673 (print), 1556-4711 (electronic)",
  ISSN-L =       "1556-4673",
  bibdate =      "Fri Aug 8 11:12:50 MDT 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jocch/;
                 https://www.math.utah.edu/pub/tex/bib/jocch.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "We describe a system that automatically notates a
                 comparative visualization of multiple recorded
                 performances of the same musical work. Written musical
                 scores have transmitted basic performance information
                 to musicians over the ages; however, these scores only
                 provide skeletal instructions that must be fleshed out
                 in performance, as musical notation describes phrasing,
                 articulation, dynamics, accentuation, and other
                 ornamentations in generalized and ambiguous forms.
                 Consequently, musical performances derived from the
                 same notation can vary widely from each other in the
                 same manner that a written text may be spoken with
                 intense emotion or in flat monotone. Prior to the
                 advent of recording technology, musical performances
                 were ephemeral, only occurring once, never to be heard
                 again in exactly the same rendition. As a result,
                 musical interpretations were informed only by live
                 listening. Now, with more than a century of recorded
                 performance practice, musicians can delve deeper into
                 the history of their aural art to gain inspiration and
                 insight from sources that would otherwise have been
                 inaccessible. Performers have become interested in
                 giving performances inspired by recordings of the past,
                 which often obey a musical common sense alien to the
                 standards of modern practice, and it is useful for
                 historically informed performers to describe, analyze,
                 emulate, and internalize the performance styles of the
                 past through the detailed study of recordings. Although
                 much can be learned by listening, a visual interface
                 may reveal potentially inaudible details of a
                 recording. Because performers interact daily with
                 traditional musical notation-a sophisticated, if
                 ambiguous, multidimensional visualization of musical
                 information-one approach to the design of such an
                 interface leverages performers' existing knowledge by
                 reducing the gap between data visualization and
                 traditional musical notation as much as possible. Using
                 Abjad, a Python-based tool for musical composition, the
                 symbols of conventional staff notation are augmented to
                 illustrate the intensity and temporal proximity of
                 performed musical events graphically, thus facilitating
                 the comparison of individual performances and the study
                 of changes in performance aesthetics over time.",
  acknowledgement = ack-nhfb,
  articleno =    "17",
  fjournal =     "Journal on Computing and Cultural Heritage (JOCCH)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1157",
}

@Book{Vaingast:2014:BPV,
  author =       "Shai Vaingast",
  title =        "Beginning {Python} visualization crafting visual
                 transformation scripts",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  year =         "2014",
  ISBN =         "1-4842-0053-5",
  ISBN-13 =      "978-1-4842-0053-7",
  LCCN =         "????",
  bibdate =      "Sat Oct 24 06:21:41 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Expert's voice in Python",
  URL =          "http://proquest.tech.safaribooksonline.de/9781484200520",
  acknowledgement = ack-nhfb,
  tableofcontents = "About the Author \\
                 About the Technical Reviewer \\
                 Acknowledgments \\
                 Introduction \\
                 Chapter 1: Navigating the World of Data Visualization
                 \\
                 Gathering Data \\
                 Case Study: GPS Data \\
                 Scanning Serial Ports \\
                 Recording GPS Data \\
                 Data Organization \\
                 File Format \\
                 File Naming Conventions \\
                 Data Location \\
                 Data Analysis \\
                 Walking Directories \\
                 Reading CSV Files \\
                 Analyzing GPS Data \\
                 Extracting GPS Data \\
                 Data Visualization \\
                 GPS Location Plot \\
                 Annotating the Graph \\
                 Velocity Plot \\
                 Subplots \\
                 Text \\
                 Tying It All Together \\
                 Final Notes and References \\
                 Chapter 2: The Environment \\
                 Tools of the Trade \\
                 Operating Systems \\
                 GNU/Linux \\
                 Windows \\
                 Choosing an Operating System \\
                 Then Again, Why Choose? Using Several Operating Systems
                 \\
                 The Python Environment \\
                 Versions \\
                 Python \\
                 Python Integrated Development Environments \\
                 Scientific Computing \\
                 Manually Installing a Python Package \\
                 Installation Summary \\
                 Additional Applications \\
                 Editors \\
                 A Short List of Text Editors \\
                 Spreadsheets \\
                 Word Processors \\
                 Image Viewers \\
                 Version-Control Systems \\
                 Licensing \\
                 Final Notes and References \\
                 Chapter 3: Python for Programmers \\
                 The Building Blocks \\
                 What Is Python? \\
                 Interactive Python \\
                 Invoking Python \\
                 Entering Commands \\
                 The Interactive Help System \\
                 Moving Around \\
                 Running Scripts \\
                 Data Types \\
                 Numbers \\
                 Strings \\
                 Booleans \\
                 Data Structures \\
                 Lists \\
                 Tuples \\
                 Dictionaries \\
                 Sets \\
                 Variables \\
                 Statements \\
                 Printing \\
                 User Input \\
                 Comments \\
                 Flow Control \\
                 Some Built-in Functions \\
                 Defining Functions \\
                 Generators \\
                 Generator Expressions \\
                 Object-Oriented Programming \\
                 Modules and Packages \\
                 The import Statement \\
                 Modules Installed in a System \\
                 The dir Statement \\
                 Final Notes and References \\
                 Chapter 4: Data Organization \\
                 Organizing Chaos \\
                 File Name Conventions \\
                 Date and Time in a File Name \\
                 Useful File Name Titles \\
                 File Name Extensions \\
                 File Name Convention Recap \\
                 Other Schemes \\
                 File Formats \\
                 CSV File Format \\
                 Binary Files \\
                 Readme Files \\
                 INI Files \\
                 XML and Other Formats \\
                 Locating Data Files \\
                 Organization into Directories \\
                 Searching for Files \\
                 Indexing \\
                 Catalogs \\
                 Files vs. a Database \\
                 Final Notes and References \\
                 Chapter 5: Processing Text Files \\
                 Text Is Everywhere \\
                 Text and Strings \\
                 Splitting Text \\
                 Joining Strings \\
                 Converting Strings to Numbers \\
                 Find and Replace \\
                 Stripping Strings \\
                 String Formatting \\
                 String Conditionals \\
                 More on Strings \\
                 Files \\
                 Opening a File \\
                 Closing a File \\
                 Writing Text \\
                 Reading Text \\
                 Working with Text Files \\
                 Example: Character, Word, and Line Count \\
                 Example: head and tail \\
                 Example: Splitting and Combining Files \\
                 Example: Searching Inside a Text File \\
                 Example: Working with Comments \\
                 Example: Extracting Numbers from a Text File \\
                 CSV Files \\
                 The csv Module \\
                 The csv.reader Object \\
                 The csv.writer Object \\
                 More CSV Functionality \\
                 DictReader and DictWriter Objects \\
                 Date and Time \\
                 Time Module \\
                 The struct_time Tuple \\
                 Parsing and Formatting Date and Time \\
                 The Epoch: ``Linearizing'' the Time Base \\
                 Additional Time and Date Functions \\
                 Regular Expressions \\
                 Regular Expression Patterns \\
                 Special Sequences \\
                 Alternatives \\
                 Ranges \\
                 When to Use Regular Expressions \\
                 Internationalization and Localization \\
                 Locale \\
                 Unicode Strings \\
                 Final Notes and References \\
                 Chapter 6: Graphs and Plots \\
                 Visualizing Data \\
                 The matplotlib Package \\
                 Interactive Graphs vs. Image Files \\
                 Interactive Graphs \\
                 Savings Graphs to Files \\
                 Plotting Graphs \\
                 Lines and Markers \\
                 Plotting Several Graphs on One Figure \\
                 Line Widths and Marker Sizes \\
                 Colors \\
                 Controlling the Graph \\
                 Axis \\
                 Grid and Ticks \\
                 Subplots \\
                 Erasing the Graph \\
                 Adding Text \\
                 Title \\
                 Axis Labels and Legend \\
                 Text Rendering \\
                 Mathematical Symbols and Expressions \\
                 More Graph Types \\
                 Bar Charts \\
                 Histograms \\
                 Pie Charts \\
                 Logarithmic Plots \\
                 Polar Plots \\
                 Stem Plots \\
                 Additional Graphs \\
                 Getting and Setting Values \\
                 Setting Figure and Axis Parameters \\
                 Patches \\
                 Example: Adding Arrows to a Graph \\
                 Example: Some Other Patches \\
                 3D Plots \\
                 The Basemap Toolkit \\
                 Example: French Airports \\
                 Final Notes and References \\
                 Chapter 7: Math Games \\
                 Preprocessing Data Prior to Visualization \\
                 Modules math and cmath \\
                 Example: Mandelbrot Set \\
                 Example: a Newton Fractal \\
                 Module decimal \\
                 Module fractions \\
                 Module random \\
                 Using Module random to Solve Probability Questions \\
                 Random Sequences \\
                 Module NumPy \\
                 Array Creation \\
                 Slicing, Indexing, and Reshaping \\
                 N-Dimensional Arrays \\
                 Math Functions \\
                 Array Methods and Properties \\
                 Other Useful Array Functions \\
                 Final Notes and References \\
                 Chapter 8: Science and Visualization \\
                 Numerical Analysis and Signal Processing \\
                 Finding Your Way: Variables and Functions \\
                 SciPy \\
                 Linear Algebra \\
                 Solving a System of Linear Equations \\
                 Vector and Matrix Operations \\
                 Matrix Decomposition \\
                 Additional Linear Algebra Functionality \\
                 Numerical Integration \\
                 More Integration Methods \\
                 Interpolation and Curve Fitting \\
                 Piecewise Linear Interpolation \\
                 Polynomials \\
                 Uses of Polynomials \\
                 Spline Interpolation \\
                 Solving Nonlinear Equations \\
                 Special Functions \\
                 Signal Processing \\
                 Functions find, nonzero, where and select \\
                 Functions diff and split \\
                 Waveforms \\
                 Fourier Transform \\
                 Example: FFT of a Sampled Cosine Wave \\
                 Window Functions \\
                 Filtering \\
                 Filter Design \\
                 Example: a Heart-Rate Monitor \\
                 Example: Moving Average \\
                 Final Notes and References \\
                 Chapter 9: Image Processing \\
                 Two-Dimensional Data \\
                 Reading, Writing, and Displaying Images \\
                 Reading Images from File \\
                 Image Attributes \\
                 Displaying Images \\
                 Converting File Formats \\
                 Image Manipulation \\
                 Creating New Images \\
                 Copy and Paste \\
                 Crop and Resize \\
                 Rotate \\
                 Image Annotation \\
                 Annotating with Geometrical Shapes \\
                 Text Annotations \\
                 Image Processing \\
                 Matrix Representation and Colors \\
                 Reading an Image to a NumPy Array \\
                 Example: Counting Objects (Five Parts) \\
                 Image Arithmetic \\
                 Image Filtering \\
                 Making Movies \\
                 Splitting Movies \\
                 Creating Movies from Images \\
                 Example: a Fractal Movie \\
                 Final Notes and References \\
                 Chapter 10: Advanced File Processing \\
                 More on Files \\
                 Binary Files and Random Access \\
                 Example: Reading the Nth Field \\
                 Example: Efficient Tail Implementation \\
                 Example: Creating a Fixed Size File \\
                 Example: Recording Time-Based Binary Data \\
                 Reading MATLAB Files as NumPy Arrays \\
                 Reading Text Files Directly to NumPy Arrays \\
                 Example: Reading and Writing Text Files to NumPy Arrays
                 \\
                 Object Serialization \\
                 The Pickle Module \\
                 Command-Line Parameters \\
                 argv \\
                 Example: Creating a Fixed Size File (a Stand-Alone
                 Script) \\
                 The optparse Module \\
                 The FileInput Module \\
                 File and Directory Manipulation \\
                 Module glob \\
                 Additional os Module Functionality \\
                 Additional os.path Module Functionality \\
                 Module shutil \\
                 File Compression \\
                 Example: a Compressed tar File \\
                 Comparing Files \\
                 Module filecmp \\
                 Module difflib \\
                 Final Notes and References \\
                 Appendix: Additional Source Listing \\
                 Nudge Subplots \\
                 Magic Square Arrows \\
                 Numerical Integration Visualization Source Code \\
                 Fractal Function Source Code \\
                 Index",
}

@Article{Williamson:2014:PPP,
  author =       "Todd Williamson and Ronald A. Olsson",
  title =        "{PySy}: a {Python} package for enhanced concurrent
                 programming",
  journal =      j-CCPE,
  volume =       "26",
  number =       "2",
  pages =        "309--335",
  month =        feb,
  year =         "2014",
  CODEN =        "CCPEBO",
  DOI =          "https://doi.org/10.1002/cpe.2981",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Sat Feb 8 15:45:14 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ccpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency and Computation: Practice and Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
  onlinedate =   "18 Dec 2012",
}

@Book{Yan:2014:PFB,
  author =       "Yuxing Yan",
  title =        "{Python} for finance: build real-life {Python}
                 applications for quantitative finance and financial
                 engineering",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "ix + 386",
  year =         "2014",
  ISBN =         "1-78328-438-2, 1-78328-437-4",
  ISBN-13 =      "978-1-78328-438-2, 978-1-78328-437-5",
  LCCN =         "QA76.73.P98 Y36 2014",
  bibdate =      "Sat Oct 24 06:41:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Finance; Statistical methods; Data processing;
                 Financial engineering; Python (Computer program
                 language); Finances; M{\'e}thodes statistiques;
                 Informatique; Ing{\'e}nierie financi{\`e}re; Python
                 (Langage de programmation)",
  tableofcontents = "Preface \\
                 Why Python? \\
                 A programming book written by a finance professor \\
                 Small programs oriented \\
                 Using real-world data \\
                 What this book covers \\
                 What could you achieve after reading this book? \\
                 Who this book is for \\
                 Conventions \\
                 Two ways to use the book \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Introduction and Installation of Python \\
                 Introduction to Python \\
                 Installing Python \\
                 Different versions of Python \\
                 Ways to launch Python \\
                 Launching Python with GUI \\
                 Launching Python from the Python command line \\
                 Launching Python from our own DOS window \\
                 Quitting Python \\
                 Error messages \\
                 Python language is case sensitive \\
                 Initializing the variable \\
                 Finding the help window \\
                 Finding manuals and tutorials \\
                 Finding the version of Python \\
                 Summary \\
                 Exercises \\
                 2. Using Python as an Ordinary Calculator \\
                 Assigning values to variables \\
                 Displaying the value of a variable \\
                 Error messages \\
                 Can't call a variable without assignment \\
                 Choosing meaningful names \\
                 Using dir() to find variables and functions \\
                 Deleting or unsigning a variable \\
                 Basic math operations --- addition, subtraction,
                 multiplication, and division \\
                 The power function, floor, and remainder \\
                 A true power function \\
                 Choosing appropriate precision \\
                 Finding out more information about a specific built-in
                 function \\
                 Listing all built-in functions \\
                 Importing the math module \\
                 The pi, e, log, and exponential functions \\
                 `import math' versus `from math import *' \\
                 A few frequently used functions \\
                 The print() function \\
                 The type() function \\
                 Last expression _ (underscore) \\
                 Combining two strings \\
                 The upper() function \\
                 The tuple data type \\
                 Summary \\
                 Exercises \\
                 3. Using Python as a Financial Calculator \\
                 Writing a Python function without saving it \\
                 Default input values for a function \\
                 Indentation is critical in Python \\
                 Checking the existence of our functions \\
                 Defining functions from our Python editor \\
                 Activating our function using the import function \\
                 Debugging a program from a Python editor \\
                 Two ways to call our pv_f() function \\
                 Generating our own module \\
                 Types of comments \\
                 The first type of comment \\
                 The second type of comment \\
                 Finding information about our pv_f() function \\
                 The if() function \\
                 Annuity estimation \\
                 Converting the interest rates \\
                 Continuously compounded interest rate \\
                 A data type --- list \\
                 Net present value and the NPV rule \\
                 Defining the payback period and the payback period rule
                 \\
                 Defining IRR and the IRR rule \\
                 Showing certain files in a specific subdirectory \\
                 Using Python as a financial calculator \\
                 Adding our project directory to the path \\
                 Summary \\
                 Exercises \\
                 4. 13 Lines of Python to Price a Call Option \\
                 Writing a program --- the empty shell method \\
                 Writing a program --- the comment-all-out method \\
                 Using and debugging other programs \\
                 Summary \\
                 Exercises \\
                 5. Introduction to Modules \\
                 What is a module? \\
                 Importing a module \\
                 Adopting a short name for an imported module \\
                 Showing all functions in an imported module \\
                 Comparing `import math' and `from math import *' \\
                 Deleting an imported module \\
                 Importing only a few needed functions \\
                 Finding out all built-in modules \\
                 Finding out all the available modules \\
                 Finding the location of an imported module \\
                 More information about modules \\
                 Finding a specific uninstalled module \\
                 Module dependency \\
                 Summary \\
                 Exercises \\
                 6. Introduction to NumPy and SciPy \\
                 Installation of NumPy and SciPy \\
                 Launching Python from Anaconda \\
                 Examples of using NumPy \\
                 Examples of using SciPy \\
                 Showing all functions in NumPy and SciPy \\
                 More information about a specific function \\
                 Understanding the list data type \\
                 Working with arrays of ones, zeros, and the identity
                 matrix \\
                 Performing array manipulations \\
                 Performing array operations with +, -, *, / \\
                 Performing plus and minus operations \\
                 Performing a matrix multiplication operation \\
                 Performing an item-by-item multiplication operation \\
                 The x.sum() dot function \\
                 Looping through an array \\
                 Using the help function related to modules \\
                 A list of subpackages for SciPy \\
                 Cumulative standard normal distribution \\
                 Logic relationships related to an array \\
                 Statistic submodule (stats) from SciPy \\
                 Interpolation in SciPy \\
                 Solving linear equations using SciPy \\
                 Generating random numbers with a seed \\
                 Finding a function from an imported module \\
                 Understanding optimization \\
                 Linear regression and Capital Assets Pricing Model
                 (CAPM) \\
                 Retrieving data from an external text file \\
                 The loadtxt() and getfromtxt() functions \\
                 Installing NumPy independently \\
                 Understanding the data types \\
                 Summary \\
                 Exercises \\
                 7. Visual Finance via Matplotlib \\
                 Installing matplotlib via ActivePython \\
                 Alternative installation via Anaconda \\
                 Understanding how to use matplotlib \\
                 Understanding simple and compounded interest rates \\
                 Adding texts to our graph \\
                 Working with DuPont identity \\
                 Understanding the Net Present Value (NPV) profile \\
                 Using colors effectively \\
                 Using different shapes \\
                 Graphical representation of the portfolio
                 diversification effect \\
                 Number of stocks and portfolio risk \\
                 Retrieving historical price data from Yahoo! Finance
                 \\
                 Histogram showing return distribution \\
                 Comparing stock and market returns \\
                 Understanding the time value of money \\
                 Candlesticks representation of IBM's daily price \\
                 Graphical representation of two-year price movement \\
                 IBM's intra-day graphical representations \\
                 Presenting both closing price and trading volume \\
                 Adding mathematical formulae to our graph \\
                 Adding simple images to our graphs \\
                 Saving our figure to a file \\
                 Performance comparisons among stocks \\
                 Comparing return versus volatility for several stocks
                 \\
                 Finding manuals, examples, and videos \\
                 Installing the matplotlib module independently \\
                 Summary \\
                 Exercises \\
                 8. Statistical Analysis of Time Series \\
                 Installing Pandas and statsmodels \\
                 Launching Python using the Anaconda command prompt \\
                 Launching Python using the DOS window \\
                 Launching Python using Spyder \\
                 Using Pandas and statsmodels \\
                 Using Pandas \\
                 Examples from statsmodels \\
                 Open data sources \\
                 Retrieving data to our programs \\
                 Inputting data from the clipboard \\
                 Retrieving historical price data from Yahoo! Finance
                 \\
                 Inputting data from a text file \\
                 Inputting data from an Excel file \\
                 Inputting data from a CSV file \\
                 Retrieving data from a web page \\
                 Inputting data from a MATLAB dataset \\
                 Several important functionalities \\
                 Using pd.Series() to generate one-dimensional time
                 series \\
                 Using date variables \\
                 Using the DataFrame \\
                 Return estimation \\
                 Converting daily returns to monthly returns \\
                 Converting daily returns to annual returns \\
                 Merging datasets by date \\
                 Forming an n-stock portfolio \\
                 T-test and F-test \\
                 Tests of equal means and equal variances \\
                 Testing the January effect \\
                 Many useful applications \\
                 52-week high and low trading strategy \\
                 Roll's model to estimate spread (1984) \\
                 Amihud's model for illiquidity (2002) \\
                 Pastor and Stambaugh (2003) liquidity measure \\
                 Fama-French three-factor model \\
                 Fama-MacBeth regression \\
                 Estimating rolling beta \\
                 Understanding VaR \\
                 Constructing an efficient frontier \\
                 Estimating a variance-covariance matrix \\
                 Optimization --- minimization \\
                 Constructing an optimal portfolio \\
                 Constructing an efficient frontier with n stocks \\
                 Understanding the interpolation technique \\
                 Outputting data to external files \\
                 Outputting data to a text file \\
                 Saving our data to a binary file \\
                 Reading data from a binary file \\
                 Python for high-frequency data \\
                 Spread estimated based on high-frequency data \\
                 More on using Spyder \\
                 A useful dataset \\
                 Summary \\
                 Exercise \\
                 9. The Black-Scholes-Merton Option Model \\
                 Payoff and profit/loss functions for the call and put
                 options \\
                 European versus American options \\
                 Cash flows, types of options, a right, and an
                 obligation \\
                 Normal distribution, standard normal distribution, and
                 cumulative standard normal distribution \\
                 The Black-Scholes-Merton option model on non-dividend
                 paying stocks \\
                 The p4f module for options \\
                 European options with known dividends \\
                 Various trading strategies \\
                 Covered call --- long a stock and short a call \\
                 Straddle --- buy a call and a put with the same
                 exercise prices \\
                 A calendar spread \\
                 Butterfly with calls \\
                 Relationship between input values and option values \\
                 Greek letters for options \\
                 The put-call parity and its graphical representation
                 \\
                 Binomial tree (the CRR method) and its graphical
                 representation \\
                 The binomial tree method for European options \\
                 The binomial tree method for American options \\
                 Hedging strategies \\
                 Summary \\
                 Exercises \\
                 10. Python Loops and Implied Volatility \\
                 Definition of an implied volatility \\
                 Understanding a for loop \\
                 Estimating the implied volatility by using a for loop
                 \\
                 Implied volatility function based on a European call
                 \\
                 Implied volatility based on a put option model \\
                 The enumerate() function \\
                 Estimation of IRR via a for loop \\
                 Estimation of multiple IRRs \\
                 Understanding a while loop \\
                 Using keyboard commands to stop an infinitive loop \\
                 Estimating implied volatility by using a while loop \\
                 Nested (multiple) for loops \\
                 Estimating implied volatility by using an American call
                 \\
                 Measuring efficiency by time spent in finishing a
                 program \\
                 The mechanism of a binary search \\
                 Sequential versus random access \\
                 Looping through an array/DataFrame \\
                 Assignment through a for loop \\
                 Looping through a dictionary \\
                 Retrieving option data from CBOE \\
                 Retrieving option data from Yahoo! Finance \\
                 Different expiring dates from Yahoo! Finance \\
                 Retrieving the current price from Yahoo! Finance \\
                 The put-call ratio \\
                 The put-call ratio for a short period with a trend \\
                 Summary \\
                 Exercises \\
                 11. Monte Carlo Simulation and Options \\
                 Generating random numbers from a standard normal
                 distribution \\
                 Drawing random samples from a normal (Gaussian)
                 distribution \\
                 Generating random numbers with a seed \\
                 Generating n random numbers from a normal distribution
                 \\
                 Histogram for a normal distribution \\
                 Graphical presentation of a lognormal distribution \\
                 Generating random numbers from a uniform distribution
                 \\
                 Using simulation to estimate the pi value \\
                 Generating random numbers from a Poisson distribution
                 \\
                 Selecting m stocks randomly from n given stocks \\
                 Bootstrapping with/without replacements \\
                 Distribution of annual returns \\
                 Simulation of stock price movements \\
                 Graphical presentation of stock prices at options'
                 maturity dates \\
                 Finding an efficient portfolio and frontier \\
                 Finding an efficient frontier based on two stocks \\
                 Impact of different correlations \\
                 Constructing an efficient frontier with n stocks \\
                 Geometric versus arithmetic mean \\
                 Long-term return forecasting \\
                 Pricing a call using simulation \\
                 Exotic options \\
                 Using the Monte Carlo simulation to price average
                 options \\
                 Pricing barrier options using the Monte Carlo
                 simulation \\
                 Barrier in-and-out parity \\
                 Graphical presentation of an up-and-out and up-and-in
                 parity \\
                 Pricing lookback options with floating strikes \\
                 Using the Sobol sequence to improve the efficiency \\
                 Summary \\
                 Exercises \\
                 12. Volatility Measures and GARCH \\
                 Conventional volatility measure --- standard deviation
                 \\
                 Tests of normality \\
                 Estimating fat tails \\
                 Lower partial standard deviation \\
                 Test of equivalency of volatility over two periods \\
                 Test of heteroskedasticity, Breusch, and Pagan (1979)
                 \\
                 Retrieving option data from Yahoo! Finance \\
                 Volatility smile and skewness \\
                 Graphical presentation of volatility clustering \\
                 The ARCH model \\
                 Simulating an ARCH (1) process \\
                 The GARCH (Generalized ARCH) model \\
                 Simulating a GARCH process \\
                 Simulating a GARCH (p,q) process using modified
                 garchSim() \\
                 GJR_GARCH by Glosten, Jagannanthan, and Runkle (1993)
                 \\
                 Summary \\
                 Exercises \\
                 Index",
}

@Article{Zhang:2014:AIO,
  author =       "Wei Zhang and Per Larsen and Stefan Brunthaler and
                 Michael Franz",
  title =        "Accelerating iterators in optimizing {AST}
                 interpreters",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "10",
  pages =        "727--743",
  month =        oct,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2714064.2660223",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:21 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Generators offer an elegant way to express iterators.
                 However, their performance has always been their
                 Achilles heel and has prevented widespread adoption. We
                 present techniques to efficiently implement and
                 optimize generators. We have implemented our
                 optimizations in ZipPy, a modern, light-weight AST
                 interpreter based Python 3 implementation targeting the
                 Java virtual machine. Our implementation builds on a
                 framework that optimizes AST interpreters using
                 just-in-time compilation. In such a system, it is
                 crucial that AST optimizations do not prevent
                 subsequent optimizations. Our system was carefully
                 designed to avoid this problem. We report an average
                 speedup of 3.58x for generator-bound programs. As a
                 result, using generators no longer has downsides and
                 programmers are free to enjoy their upsides.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "OOPSLA '14 conference proceedings.",
}

@Article{Anonymous:2015:BRB,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Black Hat Python}}, Justin
                 Seitz. No Starch Press. ISBN 978-1-59327-590-7}",
  journal =      j-NETWORK-SECURITY,
  volume =       "2015",
  number =       "4",
  pages =        "4--4",
  month =        apr,
  year =         "2015",
  CODEN =        "NTSCF5",
  DOI =          "https://doi.org/10.1016/S1353-4858(15)30025-8",
  ISSN =         "1353-4858 (print), 1872-9371 (electronic)",
  ISSN-L =       "1353-4858",
  bibdate =      "Mon Dec 4 17:01:18 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/network-security.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1353485815300258",
  acknowledgement = ack-nhfb,
  fjournal =     "Network Security",
  journal-URL =  "https://www.sciencedirect.com/journal/network-security",
}

@Article{Anonymous:2015:BRD,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Doing Math With Python}},
                 Amit Saha. No Starch Press. ISBN 978-1-59327-640-9}",
  journal =      j-NETWORK-SECURITY,
  volume =       "2015",
  number =       "10",
  pages =        "4--4",
  month =        oct,
  year =         "2015",
  CODEN =        "NTSCF5",
  DOI =          "https://doi.org/10.1016/S1353-4858(15)30088-X",
  ISSN =         "1353-4858 (print), 1872-9371 (electronic)",
  ISSN-L =       "1353-4858",
  bibdate =      "Mon Dec 4 17:01:25 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/network-security.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S135348581530088X",
  acknowledgement = ack-nhfb,
  fjournal =     "Network Security",
  journal-URL =  "https://www.sciencedirect.com/journal/network-security",
}

@Book{Antao:2015:BPC,
  author =       "Tiago Antao",
  title =        "Bioinformatics with {Python} cookbook",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "306 (est.)",
  year =         "2015",
  ISBN =         "1-78217-511-3, 1-78355-865-2 (e-book)",
  ISBN-13 =      "978-1-78217-511-7, 978-1-78355-865-0 (e-book)",
  LCCN =         "QA76.73.P98 .A583 2015",
  bibdate =      "Fri Oct 23 16:45:40 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why Subscribe? \\
                 Free Access for Packt account holders \\
                 Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Sections \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Python and the Surrounding Software Ecology \\
                 Introduction \\
                 Installing the required software with Anaconda \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Installing the required software with Docker \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 See also \\
                 Interfacing with R via rpy2 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Performing R magic with IPython \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 See also \\
                 2. Next-generation Sequencing \\
                 Introduction \\
                 Accessing GenBank and moving around NCBI databases \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Performing basic sequence analysis \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Working with modern sequence formats \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Working with alignment data \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Analyzing data in the variant call format \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Studying genome accessibility and filtering SNP data
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 3. Working with Genomes \\
                 Introduction \\
                 Working with high-quality reference genomes \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 See also \\
                 Dealing with low-quality genome references \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 See also \\
                 Traversing genome annotations \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 See also \\
                 Extracting genes from a reference using annotations \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 See also \\
                 Finding orthologues with the Ensembl REST API \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Retrieving gene ontology information from Ensembl \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 See also \\
                 4. Population Genetics \\
                 Introduction \\
                 Managing datasets with PLINK \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 See also \\
                 Introducing the Genepop format \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 See also \\
                 Exploring a dataset with Bio.PopGen \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 See also \\
                 Computing F-statistics \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 See also \\
                 Performing Principal Components Analysis \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 See also \\
                 Investigating population structure with Admixture \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 5. Population Genetics Simulation \\
                 Introduction \\
                 Introducing forward-time simulations \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Simulating selection \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 Simulating population structure using island and
                 stepping-stone models \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 Modeling complex demographic scenarios \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 Simulating the coalescent with Biopython and
                 fastsimcoal \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 There's more \\
                 See also \\
                 6. Phylogenetics \\
                 Introduction \\
                 Preparing the Ebola dataset \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 See also \\
                 Aligning genetic and genomic data \\
                 Getting ready \\
                 How to do it \\
                 Comparing sequences \\
                 Getting ready \\
                 How to do it \\
                 There's more \ldots{} \\
                 Reconstructing phylogenetic trees \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Playing recursively with trees \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Visualizing phylogenetic data \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 7. Using the Protein Data Bank \\
                 Introduction \\
                 Finding a protein in multiple databases \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Introducing Bio.PDB \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Extracting more information from a PDB file \\
                 Getting ready \\
                 How to do it \\
                 Computing molecular distances on a PDB file \\
                 Getting ready \\
                 How to do it \\
                 Performing geometric operations \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Implementing a basic PDB parser \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Animating with PyMol \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Parsing mmCIF files using Biopython \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 8. Other Topics in Bioinformatics \\
                 Introduction \\
                 Accessing the Global Biodiversity Information Facility
                 \\
                 How to do it \\
                 There's more \\
                 Geo-referencing GBIF datasets \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Accessing molecular-interaction databases with PSIQUIC
                 \\
                 How to do it \\
                 Plotting protein interactions with Cytoscape the hard
                 way \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 9. Python for Big Genomics Datasets \\
                 Introduction \\
                 Setting the stage for high-performance computing \\
                 Getting ready \\
                 How to do it \\
                 Designing a poor human concurrent executor \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Performing parallel computing with IPython \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Computing the median in a large dataset \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Optimizing code with Cython and Numba \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Programming with laziness \\
                 Getting ready \\
                 How to do it \\
                 There's more \\
                 Thinking with generators \\
                 Getting ready \\
                 How to do it \\
                 See also \\
                 Index",
}

@Book{Bahgat:2015:PGD,
  author =       "Karim Bahgat",
  title =        "{Python} geospatial development essentials: utilize
                 {Python} with open source libraries to build a
                 lightweight, portable, and customizable {GIS} desktop
                 application",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "192 (est.)",
  year =         "2015",
  ISBN =         "1-78217-540-7, 1-78217-441-9 (e-book)",
  ISBN-13 =      "978-1-78217-540-7, 978-1-78217-441-7 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 17:12:28 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781782175407",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Geospatial data;
                 Geographic information systems; Application software;
                 Development; COMPUTERS / General; Development.;
                 Geographic information systems.; Geospatial data.;
                 Python (Computer program language)",
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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. Preparing to Build Your Own GIS Application \\
                 Why reinvent the wheel? \\
                 Setting up your computer \\
                 Installing third-party packages \\
                 Imagining the roadmap ahead \\
                 Summary \\
                 2. Accessing Geodata \\
                 The approach \\
                 Vector data \\
                 A data interface for vector data \\
                 The vector data structure \\
                 Computing bounding boxes \\
                 Spatial indexing \\
                 Loading vector files \\
                 Shapefile \\
                 GeoJSON \\
                 File format not supported \\
                 Saving vector data \\
                 Shapefile \\
                 GeoJSON \\
                 File format not supported \\
                 Raster data \\
                 A data interface for raster data \\
                 The raster data structure \\
                 Positioning the raster in coordinate space \\
                 Nodata masking \\
                 Loading raster data \\
                 GeoTIFF \\
                 File format not supported \\
                 Saving raster data \\
                 GeoTIFF \\
                 File format not supported \\
                 Summary \\
                 3. Designing the Visual Look of Our Application \\
                 Setting up the GUI package \\
                 Creating the toolkit building blocks \\
                 Themed styling \\
                 Basic buttons \\
                 Buttons with icons \\
                 Toolbars \\
                 The Ribbon tab system \\
                 The bottom status bar \\
                 The layers pane \\
                 The Map widget \\
                 Pop-up windows \\
                 Dispatching heavy tasks to thread workers \\
                 Using the toolkit to build the GUI \\
                 Testing our application \\
                 Summary \\
                 4. Rendering Our Geodata \\
                 Rendering \\
                 Installing PyAgg \\
                 A sequence of layers \\
                 The MapCanvas drawer \\
                 Individual layer renderings \\
                 Vector layers \\
                 Raster layers \\
                 Interactively rendering our maps \\
                 Linking the MapView to the renderer \\
                 Requesting to render a map \\
                 Resizing the map in proportion to window resizing \\
                 The LayersPane as a LayerGroup \\
                 Adding layers \\
                 Editing layers in the LayersPane widget \\
                 Click-and-drag to rearrange the layer sequence \\
                 Zooming the map image \\
                 Map panning and one-time rectangle zoom \\
                 A navigation toolbar \\
                 Putting it all together \\
                 Summary \\
                 5. Managing and Organizing Geographic Data \\
                 Creating the management module \\
                 Inspecting files \\
                 Organizing files \\
                 Vector data \\
                 Splitting \\
                 Merging \\
                 Geometry cleaning \\
                 Raster data \\
                 Mosaicking \\
                 Resampling \\
                 Weaving functionality into the user interface \\
                 Layer-specific right-click functions \\
                 Defining the tool options windows \\
                 Setting up the management tab \\
                 Defining the tool options windows \\
                 Summary \\
                 6. Analyzing Geographic Data \\
                 Creating the analysis module \\
                 Analyzing data \\
                 Vector data \\
                 Overlap summary \\
                 Buffer \\
                 Raster data \\
                 Zonal statistics \\
                 Weaving functionality into the user interface \\
                 Layer-specific right-click functions \\
                 Defining the tool options windows \\
                 Setting up the analysis tab \\
                 Defining the tool options window \\
                 Summary \\
                 7. Packaging and Distributing Your Application \\
                 Attaching an application logo \\
                 The icon image file \\
                 Assigning the icon \\
                 The application start up script \\
                 Packaging your application \\
                 Installing py2exe \\
                 Developing a packaging strategy \\
                 Creating the build script \\
                 Adding the visual C runtime DLL \\
                 Creating an installer \\
                 Installing Inno Setup \\
                 Setting up your application's installer \\
                 Summary \\
                 8. Looking Forward \\
                 Improvements to the user interface \\
                 Saving and loading user sessions \\
                 File drag and drop \\
                 GUI widgets \\
                 Other variations of the user interface \\
                 Adding more GIS functionality \\
                 Basic GIS selections \\
                 More advanced visualization \\
                 Online data services \\
                 Converting between raster and vector data \\
                 Projections \\
                 Geocoding \\
                 Going the GDAL/NumPy/SciPy route \\
                 Expanding to other platforms \\
                 Touch devices \\
                 Summary \\
                 Index",
}

@Article{Bauman:2015:PTJ,
  author =       "Spenser Bauman and Carl Friedrich Bolz and Robert
                 Hirschfeld and Vasily Kirilichev and Tobias Pape and
                 Jeremy G. Siek and Sam Tobin-Hochstadt",
  title =        "{Pycket}: a tracing {JIT} for a functional language",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "9",
  pages =        "22--34",
  month =        sep,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2858949.2784740",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:43 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "We present Pycket, a high-performance tracing JIT
                 compiler for Racket. Pycket supports a wide variety of
                 the sophisticated features in Racket such as contracts,
                 continuations, classes, structures, dynamic binding,
                 and more. On average, over a standard suite of
                 benchmarks, Pycket outperforms existing compilers, both
                 Racket's JIT and other highly-optimizing Scheme
                 compilers. Further, Pycket provides much better
                 performance for Racket proxies than existing systems,
                 dramatically reducing the overhead of contracts and
                 gradual typing. We validate this claim with performance
                 evaluation on multiple existing benchmark suites. The
                 Pycket implementation is of independent interest as an
                 application of the RPython meta-tracing framework
                 (originally created for PyPy), which automatically
                 generates tracing JIT compilers from interpreters.
                 Prior work on meta-tracing focuses on bytecode
                 interpreters, whereas Pycket is a high-level
                 interpreter based on the CEK abstract machine and
                 operates directly on abstract syntax trees. Pycket
                 supports proper tail calls and first-class
                 continuations. In the setting of a functional language,
                 where recursion and higher-order functions are more
                 prevalent than explicit loops, the most significant
                 performance challenge for a tracing JIT is identifying
                 which control flows constitute a loop---we discuss two
                 strategies for identifying loops and measure their
                 impact.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '15 conference proceedings.",
}

@Book{Boschetti:2015:PDS,
  author =       "Alberto Boschetti and Luca Massaron",
  title =        "{Python} data science essentials: become an efficient
                 data science practitioner by thoroughly understanding
                 the key concepts of {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "258",
  year =         "2015",
  ISBN =         "1-78528-789-3, 1-78528-042-2",
  ISBN-13 =      "978-1-78528-789-3, 978-1-78528-042-9",
  LCCN =         "QA76.73.P98",
  bibdate =      "Wed Oct 14 08:32:16 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781785280429",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Scripting
                 languages (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 \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. First Steps \\
                 Introducing data science and Python \\
                 Installing Python \\
                 Python 2 or Python 3? \\
                 Step-by-step installation \\
                 A glance at the essential Python packages \\
                 NumPy \\
                 SciPy \\
                 pandas \\
                 Scikit-learn \\
                 IPython \\
                 Matplotlib \\
                 Statsmodels \\
                 Beautiful Soup \\
                 NetworkX \\
                 NLTK \\
                 Gensim \\
                 PyPy \\
                 The installation of packages \\
                 Package upgrades \\
                 Scientific distributions \\
                 Anaconda \\
                 Enthought Canopy \\
                 PythonXY \\
                 WinPython \\
                 Introducing IPython \\
                 The IPython Notebook \\
                 Datasets and code used in the book \\
                 Scikit-learn toy datasets \\
                 The MLdata.org public repository \\
                 LIBSVM data examples \\
                 Loading data directly from CSV or text files \\
                 Scikit-learn sample generators \\
                 Summary \\
                 2. Data Munging \\
                 The data science process \\
                 Data loading and preprocessing with pandas \\
                 Fast and easy data loading \\
                 Dealing with problematic data \\
                 Dealing with big datasets \\
                 Accessing other data formats \\
                 Data preprocessing \\
                 Data selection \\
                 Working with categorical and textual data \\
                 A special type of data --- text \\
                 Data processing with NumPy \\
                 NumPy's n-dimensional array \\
                 The basics of NumPy ndarray objects \\
                 Creating NumPy arrays \\
                 From lists to unidimensional arrays \\
                 Controlling the memory size \\
                 Heterogeneous lists \\
                 From lists to multidimensional arrays \\
                 Resizing arrays \\
                 Arrays derived from NumPy functions \\
                 Getting an array directly from a file \\
                 Extracting data from pandas \\
                 NumPy fast operation and computations \\
                 Matrix operations \\
                 Slicing and indexing with NumPy arrays \\
                 Stacking NumPy arrays \\
                 Summary \\
                 3. The Data Science Pipeline \\
                 Introducing EDA \\
                 Feature creation \\
                 Dimensionality reduction \\
                 The covariance matrix \\
                 Principal Component Analysis (PCA) \\
                 A variation of PCA for big data --- RandomizedPCA \\
                 Latent Factor Analysis (LFA) \\
                 Linear Discriminant Analysis (LDA) \\
                 Latent Semantical Analysis (LSA) \\
                 Independent Component Analysis (ICA) \\
                 Kernel PCA \\
                 Restricted Boltzmann Machine (RBM) \\
                 The detection and treatment of outliers \\
                 Univariate outlier detection \\
                 EllipticEnvelope \\
                 OneClassSVM \\
                 Scoring functions \\
                 Multilabel classification \\
                 Binary classification \\
                 Regression \\
                 Testing and validating \\
                 Cross-validation \\
                 Using cross-validation iterators \\
                 Sampling and bootstrapping \\
                 Hyper-parameters' optimization \\
                 Building custom scoring functions \\
                 Reducing the grid search runtime \\
                 Feature selection \\
                 Univariate selection \\
                 Recursive elimination \\
                 Stability and L1-based selection \\
                 Summary \\
                 4. Machine Learning \\
                 Linear and logistic regression \\
                 Naive Bayes \\
                 The k-Nearest Neighbors \\
                 Advanced nonlinear algorithms \\
                 SVM for classification \\
                 SVM for regression \\
                 Tuning SVM \\
                 Ensemble strategies \\
                 Pasting by random samples \\
                 Bagging with weak ensembles \\
                 Random Subspaces and Random Patches \\
                 Sequences of models --- AdaBoost \\
                 Gradient tree boosting (GTB) \\
                 Dealing with big data \\
                 Creating some big datasets as examples \\
                 Scalability with volume \\
                 Keeping up with velocity \\
                 Dealing with variety \\
                 A quick overview of Stochastic Gradient Descent (SGD)
                 \\
                 A peek into Natural Language Processing (NLP) \\
                 Word tokenization \\
                 Stemming \\
                 Word Tagging \\
                 Named Entity Recognition (NER) \\
                 Stopwords \\
                 A complete data science example --- text classification
                 \\
                 An overview of unsupervised learning \\
                 Summary \\
                 5. Social Network Analysis \\
                 Introduction to graph theory \\
                 Graph algorithms \\
                 Graph loading, dumping, and sampling \\
                 Summary \\
                 6. Visualization \\
                 Introducing the basics of matplotlib \\
                 Curve plotting \\
                 Using panels \\
                 Scatterplots \\
                 Histograms \\
                 Bar graphs \\
                 Image visualization \\
                 Selected graphical examples with pandas \\
                 Boxplots and histograms \\
                 Scatterplots \\
                 Parallel coordinates \\
                 Advanced data learning representation \\
                 Learning curves \\
                 Validation curves \\
                 Feature importance \\
                 GBT partial dependence plot \\
                 Summary \\
                 Index",
}

@Book{Bowles:2015:MLP,
  author =       "Michael Bowles",
  title =        "Machine learning in {Python}: essential techniques for
                 predictive analysis",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxix + 326",
  year =         "2015",
  DOI =          "https://doi.org/10.1002/9781119183600",
  ISBN =         "1-118-96174-9 (paperback), 1-119-18360-X (e-book),
                 1-118-96176-5 (e-book), 1-118-96175-7 (e-book)",
  ISBN-13 =      "978-1-118-96174-2 (paperback), 978-1-119-18360-0
                 (e-book), 978-1-118-96176-6 (e-book), 978-1-118-96175-9
                 (e-book)",
  LCCN =         "Q325.5",
  bibdate =      "Wed Oct 14 08:29:29 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  tableofcontents = "Introduction \\
                 Who This Book Is For \\
                 What This Book Covers \\
                 How This Book Is Structured \\
                 What You Need to Use This Book \\
                 Conventions \\
                 Source Code \\
                 Errata \\
                 Chapter 1 The Two Essential Algorithms for Making
                 Predictions \\
                 Why Are These Two Algorithms So Useful? \\
                 What Are Penalized Regression Methods? \\
                 What Are Ensemble Methods? \\
                 How to Decide Which Algorithm to Use \\
                 The Process Steps for Building a Predictive Model \\
                 Chapter Contents and Dependencies \\
                 Summary \\
                 References \\
                 Chapter 2 Understand the Problem by Understanding the
                 Data \\
                 The Anatomy of a New Problem \\
                 Classification Problems: Detecting Unexploded Mines
                 Using Sonar \\
                 Visualizing Properties of the Rocks versus Mines Data
                 Set \\
                 Real-Valued Predictions with Factor Variables: How Old
                 Is Your Abalone? \\
                 Real-Valued Predictions Using Real-Valued Attributes:
                 Calculate How Your Wine Tastes \\
                 Multiclass Classification Problem: What Type of Glass
                 Is That? \\
                 Summary \\
                 Reference \\
                 Chapter 3 Predictive Model Building: Balancing
                 Performance, Complexity, and Big Data \\
                 The Basic Problem: Understanding Function Approximation
                 \\
                 Factors Driving Algorithm Choices and Performance ---
                 Complexity and Data \\
                 Measuring the Performance of Predictive Models \\
                 Achieving Harmony Between Model and Data \\
                 Summary \\
                 References \\
                 Chapter 4 Penalized Linear Regression \\
                 Why Penalized Linear Regression Methods Are So Useful
                 \\
                 Penalized Linear Regression: Regulating Linear
                 Regression for Optimum Performance \\
                 Solving the Penalized Linear Regression Problem \\
                 Extensions to Linear Regression with Numeric Input \\
                 Summary \\
                 References \\
                 Chapter 5 Building Predictive Models Using Penalized
                 Linear Methods \\
                 Python Packages for Penalized Linear Regression \\
                 Multivariable Regression: Predicting Wine Taste \\
                 Binary Classification: Using Penalized Linear
                 Regression to Detect Unexploded Mines \\
                 Multiclass Classification: Classifying Crime Scene
                 Glass Samples \\
                 Summary \\
                 References \\
                 Chapter 6 Ensemble Methods \\
                 Binary Decision Trees \\
                 Bootstrap Aggregation: ``Bagging'' \\
                 Gradient Boosting \\
                 Random Forest \\
                 Summary \\
                 References \\
                 Chapter 7 Building Ensemble Models with Python \\
                 Solving Regression Problems with Python Ensemble
                 Packages \\
                 Coding Bagging to Predict Wine Taste \\
                 Incorporating Non-Numeric Attributes in Python Ensemble
                 Models \\
                 Solving Binary Classification Problems with Python
                 Ensemble Methods \\
                 Solving Multiclass Classification Problems with Python
                 Ensemble Methods \\
                 Comparing Algorithms \\
                 Summary \\
                 References \\
                 Title page \\
                 Copyright \\
                 Dedication \\
                 About the Author \\
                 About the Technical Editor \\
                 Credits \\
                 Acknowledgments \\
                 EULA",
}

@Book{Buchanan:2015:PWP,
  author =       "Cameron Buchanan",
  title =        "{Python} web penetration testing cookbook: over 60
                 indispensable {Python} recipes to ensure you always
                 have the right code on hand for web application
                 testing",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "224 (est.)",
  year =         "2015",
  ISBN =         "1-78439-990-6, 1-78439-293-6",
  ISBN-13 =      "978-1-78439-990-0, 978-1-78439-293-2",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:47:58 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781784392932",
  acknowledgement = ack-nhfb,
  remark =       ". ``Quick answers to common problems''--Cover.",
  subject =      "Python (Computer program language); Application
                 software; Testing",
  tableofcontents = "Credits \\
                 About the Authors \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 Disclamer \\
                 Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Sections \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Gathering Open Source Intelligence \\
                 Introduction \\
                 Gathering information using the Shodan API \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Scripting a Google+ API search \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \ldots{} \\
                 There's more \ldots{} \\
                 Downloading profile pictures using the Google+ API \\
                 How to do it \\
                 How it works \\
                 Harvesting additional results from the Google+ API
                 using pagination \\
                 How to do it \\
                 How it works \\
                 Getting screenshots of websites with QtWebKit \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Screenshots based on a port list \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Spidering websites \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 2. Enumeration \\
                 Introduction \\
                 Performing a ping sweep with Scapy \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Scanning with Scapy \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Checking username validity \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Brute forcing usernames \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Enumerating files \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Brute forcing passwords \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Generating e-mail addresses from names \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Finding e-mail addresses from web pages \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Finding comments in source code \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 3. Vulnerability Identification \\
                 Introduction \\
                 Automated URL-based Directory Traversal \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \\
                 Automated URL-based Cross-site scripting \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Automated parameter-based Cross-site scripting \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Automated fuzzing \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 jQuery checking \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Header-based Cross-site scripting \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Shellshock checking \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 4. SQL Injection \\
                 Introduction \\
                 Checking jitter \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Identifying URL-based SQLi \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Exploiting Boolean SQLi \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Exploiting Blind SQL Injection \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Encoding payloads \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 5. Web Header Manipulation \\
                 Introduction \\
                 Testing HTTP methods \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Fingerprinting servers through HTTP headers \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Testing for insecure headers \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Brute forcing login through the Authorization header
                 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Testing for clickjacking vulnerabilities \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Identifying alternative sites by spoofing user agents
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 Testing for insecure cookie flags \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Session fixation through a cookie injection \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 6. Image Analysis and Manipulation \\
                 Introduction \\
                 Hiding a message using LSB steganography \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Extracting messages hidden in LSB \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Hiding text in images \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Extracting text from images \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Enabling command and control using steganography \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 7. Encryption and Encoding \\
                 Introduction \\
                 Generating an MD5 hash \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Generating an SHA 1/128/256 hash \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Implementing SHA and MD5 hashes together \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Implementing SHA in a real-world scenario \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Generating a Bcrypt hash \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Cracking an MD5 hash \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Encoding with Base64 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Encoding with ROT13 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Cracking a substitution cipher \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Cracking the Atbash cipher \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Attacking one-time pad reuse \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Predicting a linear congruential generator \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Identifying hashes \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 8. Payloads and Shells \\
                 Introduction \\
                 Extracting data through HTTP requests \\
                 Getting Ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating an HTTP C2 \\
                 Getting Started \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating an FTP C2 \\
                 Getting Started \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating an Twitter C2 \\
                 Getting Started \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating a simple Netcat shell \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 9. Reporting \\
                 Introduction \\
                 Converting Nmap XML to CSV \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Extracting links from a URL to Maltego \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Extracting e-mails to Maltego \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Parsing Sslscan into CSV \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Generating graphs using plot.ly \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Index",
}

@Book{Chan:2015:LPO,
  author =       "Jamie Chan",
  title =        "Learn {Python} in one day and learn it well: {Python}
                 for beginners with hands-on project: the only book you
                 need to start coding in {Python} immediately",
  publisher =    "CreateSpace Independent Publishing",
  address =      "North Charleston, SC, USA",
  pages =        "123",
  year =         "2015",
  ISBN =         "1-5060-9438-4 (paperback)",
  ISBN-13 =      "978-1-5060-9438-0 (paperback)",
  LCCN =         "QA76.73.P98 C453 2015",
  bibdate =      "Wed Oct 14 08:42:51 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "Python, what Python? \\
                 Getting ready for Python \\
                 The world of variables and operators \\
                 Data types in Python \\
                 Making your program interactive \\
                 Making choices and decisions \\
                 Functions and modules \\
                 Working with files \\
                 Project : math and BODMAS",
}

@Book{Chandra:2015:PRE,
  author =       "Rakesh Vidya Chandra and Bala Subrahmanyam Varanasi",
  title =        "{Python} requests essentials: learn how to integrate
                 your applications seamlessly with web services using
                 {Python} requests",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "134",
  year =         "2015",
  ISBN =         "1-78439-541-2, 1-78439-231-6 (e-book)",
  ISBN-13 =      "978-1-78439-541-4, 978-1-78439-231-4 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 17:14:19 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9781784395414",
  acknowledgement = ack-nhfb,
  subject =      "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. Interacting with the Web Using Requests \\
                 Introduction to HTTP request \\
                 Python modules \\
                 Requests versus urllib2 \\
                 Essence of Requests \\
                 Making a simple request \\
                 Response content \\
                 Different types of request contents \\
                 Custom headers \\
                 Sending form-encoded data \\
                 Posting multipart encoded files \\
                 Looking up built-in response status codes \\
                 Viewing response headers \\
                 Accessing cookies with Requests \\
                 Tracking redirection of the request using request
                 history \\
                 Using timeout to keep productive usage in check \\
                 Errors and exceptions \\
                 Summary \\
                 2. Digging Deep into Requests \\
                 Persisting parameters across Requests using Session
                 objects \\
                 Revealing the structure of a request and response \\
                 Using prepared Requests \\
                 Verifying an SSL certificate with Requests \\
                 Body Content Workflow \\
                 The Keep-alive facility \\
                 Streaming uploads \\
                 Using generator for sending chunk encoded Requests \\
                 Getting the request method arguments with event hooks
                 \\
                 Iterating over streaming APIs \\
                 Encodings \\
                 HTTP verbs \\
                 Self-describing the APIs with link headers \\
                 Transport Adapter \\
                 Summary \\
                 3. Authenticating with Requests \\
                 Basic authentication \\
                 Using basic authentication with Requests \\
                 Digest authentication \\
                 Using Digest authentication with Requests \\
                 Kerberos authentication \\
                 Using Kerberos authentication with Requests \\
                 OAuth authentication \\
                 OAuth 1.0 \\
                 Using OAuth 1.0 authentication with Requests \\
                 OAuth 2.0 \\
                 Custom authentication \\
                 Summary \\
                 4. Mocking HTTP Requests Using HTTPretty \\
                 Understanding HTTPretty \\
                 Installing HTTPretty \\
                 Working with HTTPretty \\
                 Setting headers \\
                 Working with responses \\
                 Rotating responses \\
                 Streaming responses \\
                 Dynamic responses through callbacks \\
                 Summary \\
                 5. Interacting with Social Media Using Requests \\
                 API introduction \\
                 Getting started with the Twitter API \\
                 Obtaining an API Key \\
                 Creating an authentication Request \\
                 Getting your favorite tweet \\
                 Performing a simple search \\
                 Accessing the list of followers \\
                 Retweets \\
                 Accessing available trends \\
                 Updating user status \\
                 Interacting with Facebook \\
                 Getting started with the Facebook API \\
                 Obtaining a key \\
                 Getting a user profile \\
                 Retrieving a friends list \\
                 Retrieving feed \\
                 Retrieving albums \\
                 Interacting with reddit \\
                 Getting started with the reddit API \\
                 Registering a new account \\
                 Modifying account information \\
                 Performing a simple search \\
                 Searching subreddits \\
                 Summary \\
                 6. Web Scraping with Python Requests and BeautifulSoup
                 \\
                 Types of data \\
                 Structured data \\
                 Unstructured data \\
                 Semistructured data \\
                 What is web scraping? \\
                 Dos and don'ts of web scraping \\
                 Predominant steps to perform web scraping \\
                 Key web scraping tasks \\
                 What is BeautifulSoup? \\
                 Document parsers \\
                 Installation \\
                 Objects in BeautifulSoup \\
                 Tags \\
                 BeautifulSoup \\
                 NavigableString \\
                 Comments \\
                 Web scraping tasks related to BeautifulSoup \\
                 Searching the tree \\
                 Navigating within the tree \\
                 Navigating down \\
                 Navigating sideways \\
                 Navigating up \\
                 Navigating back and forth \\
                 Modifying the Tree \\
                 Building a web scraping bot --- a practical example \\
                 The web scraping bot \\
                 Identifying the URL or URLs \\
                 Using an HTTP client \\
                 Discovering the pieces of data to scrape \\
                 Utilizing a web scraping tool \\
                 Drawing the desired data \\
                 Summary \\
                 7. Implementing a Web Application with Python Using
                 Flask \\
                 What is Flask? \\
                 Getting started with Flask \\
                 Installing Flask \\
                 Installing required packages with pip \\
                 Survey --- a simple voting application using Flask \\
                 Basic file structures \\
                 Building the application \\
                 Writing models with Flask-SQLAlchemy \\
                 Defining a model \\
                 Creating a database instance \\
                 Creating survey models \\
                 Creating tables in the database \\
                 Querying database models \\
                 Views \\
                 List of all questions \\
                 New survey \\
                 Creating a new survey \\
                 Displaying a survey \\
                 Updating a survey \\
                 Deleting a survey \\
                 New vote form to caste a vote in a survey \\
                 Casting a vote to a particular choice in a survey \\
                 Templates \\
                 The base template \\
                 The list of questions template \\
                 Creating a new survey template \\
                 Showing the details of a survey template \\
                 Casting a vote template \\
                 Running the survey application \\
                 Writing unit tests to survey applications \\
                 Summary \\
                 Index",
}

@Article{Clare:2015:RFS,
  author =       "Amanda Clare",
  title =        "Review of ``{{\booktitle{A functional start to
                 computing with Python}}}'', {Ted Herman, CRC Press,
                 2014, ISBN 978-1-4665-0455-4}",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "25",
  number =       "",
  pages =        "e15",
  month =        "????",
  year =         "2015",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796815000222",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Mon Jul 22 09:36:08 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.cambridge.org/core/journals/journal-of-functional-programming/article/review-of-a-functional-start-to-computing-with-python-ted-herman-crc-press-2014-isbn-9781466504554/CDD2895726478A185EDA78AE98C30BB3",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "https://www.cambridge.org/core/journals/journal-of-functional-programming",
  onlinedate =   "08 October 2015",
}

@Book{Coelho:2015:BML,
  author =       "Luis Pedro Coelho and Willi Richert",
  title =        "Building machine learning systems with Python: get
                 more from your data through creating practical machine
                 learning systems with Python",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  edition =      "Second",
  pages =        "xi + 301",
  year =         "2015",
  ISBN =         "1-78439-277-4, 1-78439-288-X (e-book)",
  ISBN-13 =      "978-1-78439-277-2, 978-1-78439-288-8 (e-book)",
  LCCN =         "QA76.73.P98 C64 2015",
  bibdate =      "Sat Oct 24 05:48:21 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Machine learning;
                 Development",
  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 Machine Learning \\
                 Machine learning and Python --- a dream team \\
                 What the book will teach you (and what it will not) \\
                 What to do when you are stuck \\
                 Getting started \\
                 Introduction to NumPy, SciPy, and matplotlib \\
                 Installing Python \\
                 Chewing data efficiently with NumPy and intelligently
                 with SciPy \\
                 Learning NumPy \\
                 Indexing \\
                 Handling nonexisting values \\
                 Comparing the runtime \\
                 Learning SciPy \\
                 Our first (tiny) application of machine learning \\
                 Reading in the data \\
                 Preprocessing and cleaning the data \\
                 Choosing the right model and learning algorithm \\
                 Before building our first model \ldots{} \\
                 Starting with a simple straight line \\
                 Towards some advanced stuff \\
                 Stepping back to go forward --- another look at our
                 data \\
                 Training and testing \\
                 Answering our initial question \\
                 Summary \\
                 2. Classifying with Real-world Examples \\
                 The Iris dataset \\
                 Visualization is a good first step \\
                 Building our first classification model \\
                 Evaluation --- holding out data and cross-validation
                 \\
                 Building more complex classifiers \\
                 A more complex dataset and a more complex classifier
                 \\
                 Learning about the Seeds dataset \\
                 Features and feature engineering \\
                 Nearest neighbor classification \\
                 Classifying with scikit-learn \\
                 Looking at the decision boundaries \\
                 Binary and multiclass classification \\
                 Summary \\
                 3. Clustering --- Finding Related Posts \\
                 Measuring the relatedness of posts \\
                 How not to do it \\
                 How to do it \\
                 Preprocessing --- similarity measured as a similar
                 number of common words \\
                 Converting raw text into a bag of words \\
                 Counting words \\
                 Normalizing word count vectors \\
                 Removing less important words \\
                 Stemming \\
                 Installing and using NLTK \\
                 Extending the vectorizer with NLTK's stemmer \\
                 Stop words on steroids \\
                 Our achievements and goals \\
                 Clustering \\
                 K-means \\
                 Getting test data to evaluate our ideas on \\
                 Clustering posts \\
                 Solving our initial challenge \\
                 Another look at noise \\
                 Tweaking the parameters \\
                 Summary \\
                 4. Topic Modeling \\
                 Latent Dirichlet allocation \\
                 Building a topic model \\
                 Comparing documents by topics \\
                 Modeling the whole of Wikipedia \\
                 Choosing the number of topics \\
                 Summary \\
                 5. Classification --- Detecting Poor Answers \\
                 Sketching our roadmap \\
                 Learning to classify classy answers \\
                 Tuning the instance \\
                 Tuning the classifier \\
                 Fetching the data \\
                 Slimming the data down to chewable chunks \\
                 Preselection and processing of attributes \\
                 Defining what is a good answer \\
                 Creating our first classifier \\
                 Starting with kNN \\
                 Engineering the features \\
                 Training the classifier \\
                 Measuring the classifier's performance \\
                 Designing more features \\
                 Deciding how to improve \\
                 Bias-variance and their tradeoff \\
                 Fixing high bias \\
                 Fixing high variance \\
                 High bias or low bias \\
                 Using logistic regression \\
                 A bit of math with a small example \\
                 Applying logistic regression to our post classification
                 problem \\
                 Looking behind accuracy --- precision and recall \\
                 Slimming the classifier \\
                 Ship it! \\
                 Summary \\
                 6. Classification II --- Sentiment Analysis \\
                 Sketching our roadmap \\
                 Fetching the Twitter data \\
                 Introducing the Na{\"i}ve Bayes classifier \\
                 Getting to know the Bayes' theorem \\
                 Being na{\"i}ve \\
                 Using Na{\"i}ve Bayes to classify \\
                 Accounting for unseen words and other oddities \\
                 Accounting for arithmetic underflows \\
                 Creating our first classifier and tuning it \\
                 Solving an easy problem first \\
                 Using all classes \\
                 Tuning the classifier's parameters \\
                 Cleaning tweets \\
                 Taking the word types into account \\
                 Determining the word types \\
                 Successfully cheating using SentiWordNet \\
                 Our first estimator \\
                 Putting everything together \\
                 Summary \\
                 7. Regression \\
                 Predicting house prices with regression \\
                 Multidimensional regression \\
                 Cross-validation for regression \\
                 Penalized or regularized regression \\
                 L1 and L2 penalties \\
                 Using Lasso or ElasticNet in scikit-learn \\
                 Visualizing the Lasso path \\
                 P-greater-than-N scenarios \\
                 An example based on text documents \\
                 Setting hyperparameters in a principled way \\
                 Summary \\
                 8. Recommendations \\
                 Rating predictions and recommendations \\
                 Splitting into training and testing \\
                 Normalizing the training data \\
                 A neighborhood approach to recommendations \\
                 A regression approach to recommendations \\
                 Combining multiple methods \\
                 Basket analysis \\
                 Obtaining useful predictions \\
                 Analyzing supermarket shopping baskets \\
                 Association rule mining \\
                 More advanced basket analysis \\
                 Summary \\
                 9. Classification --- Music Genre Classification \\
                 Sketching our roadmap \\
                 Fetching the music data \\
                 Converting into a WAV format \\
                 Looking at music \\
                 Decomposing music into sine wave components \\
                 Using FFT to build our first classifier \\
                 Increasing experimentation agility \\
                 Training the classifier \\
                 Using a confusion matrix to measure accuracy in
                 multiclass problems \\
                 An alternative way to measure classifier performance
                 using receiver-operator characteristics \\
                 Improving classification performance with Mel Frequency
                 Cepstral Coefficients \\
                 Summary \\
                 10. Computer Vision \\
                 Introducing image processing \\
                 Loading and displaying images \\
                 Thresholding \\
                 Gaussian blurring \\
                 Putting the center in focus \\
                 Basic image classification \\
                 Computing features from images \\
                 Writing your own features \\
                 Using features to find similar images \\
                 Classifying a harder dataset \\
                 Local feature representations \\
                 Summary \\
                 11. Dimensionality Reduction \\
                 Sketching our roadmap \\
                 Selecting features \\
                 Detecting redundant features using filters \\
                 Correlation \\
                 Mutual information \\
                 Asking the model about the features using wrappers \\
                 Other feature selection methods \\
                 Feature extraction \\
                 About principal component analysis \\
                 Sketching PCA \\
                 Applying PCA \\
                 Limitations of PCA and how LDA can help \\
                 Multidimensional scaling \\
                 Summary \\
                 12. Bigger Data \\
                 Learning about big data \\
                 Using jug to break up your pipeline into tasks \\
                 An introduction to tasks in jug \\
                 Looking under the hood \\
                 Using jug for data analysis \\
                 Reusing partial results \\
                 Using Amazon Web Services \\
                 Creating your first virtual machines \\
                 Installing Python packages on Amazon Linux \\
                 Running jug on our cloud machine \\
                 Automating the generation of clusters with StarCluster
                 \\
                 Summary \\
                 A. Where to Learn More Machine Learning \\
                 Online courses \\
                 Books \\
                 Question and answer sites \\
                 Blogs \\
                 Data sources \\
                 Getting competitive \\
                 All that was left out \\
                 Summary \\
                 Index",
}

@Book{Desai:2015:PPA,
  editor =       "Pratik Desai and Saleem Ahmed and James Jones and
                 Jasmine Nadar and Vikrant Phadke",
  title =        "{Python} programming for {Arduino}: develop practical
                 {Internet of Things} prototypes and applications with
                 {Arduino} and {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "400 (est)",
  year =         "2015",
  ISBN =         "1-78328-593-1 (paperback), 1-78328-594-X (e-book)",
  ISBN-13 =      "978-1-78328-593-8 (paperback), 978-1-78328-594-5
                 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 05:43:38 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with Python and Arduino \\
                 Introduction to Python \\
                 Why we use Python \\
                 When do we use other languages \\
                 Installing Python and Setuptools \\
                 Installing Python \\
                 Linux \\
                 Ubuntu \\
                 Fedora and Red Hat \\
                 Windows \\
                 Mac OS X \\
                 Installing Setuptools \\
                 Linux \\
                 Windows \\
                 Mac OS X \\
                 Installing pip \\
                 Installing Python packages \\
                 The fundamentals of Python programming \\
                 Python operators and built-in types \\
                 Operators \\
                 Built-in types \\
                 Data structures \\
                 Lists \\
                 Tuples \\
                 Sets \\
                 Dictionaries \\
                 Controlling the flow of your program \\
                 The if statement \\
                 The for statement \\
                 The while statement \\
                 Built-in functions \\
                 Conversions \\
                 Math operations \\
                 String operations \\
                 Introduction to Arduino \\
                 History \\
                 Why Arduino? \\
                 Arduino variants \\
                 The Arduino Uno board \\
                 Installing the Arduino IDE \\
                 Linux \\
                 Mac OS X \\
                 Windows \\
                 Getting started with the Arduino IDE \\
                 What is an Arduino sketch? \\
                 Working with libraries \\
                 Using Arduino examples \\
                 Compiling and uploading sketches \\
                 Using the Serial Monitor window \\
                 Introduction to Arduino programming \\
                 Comments \\
                 Variables \\
                 Constants \\
                 Data types \\
                 Conversions \\
                 Functions and statements \\
                 The setup() function \\
                 The loop() function \\
                 The pinMode() function \\
                 Working with pins \\
                 Statements \\
                 Summary \\
                 2. Working with the Firmata Protocol and the pySerial
                 Library \\
                 Connecting the Arduino board \\
                 Linux \\
                 Mac OS X \\
                 Windows \\
                 Troubleshooting \\
                 Introducing the Firmata protocol \\
                 What is Firmata? \\
                 Uploading a Firmata sketch to the Arduino board \\
                 Testing the Firmata protocol \\
                 Getting started with pySerial \\
                 Installing pySerial \\
                 Playing with a pySerial example \\
                 Bridging pySerial and Firmata \\
                 Summary \\
                 3. The First Project --- Motion-triggered LEDs \\
                 Motion-triggered LEDs --- the project description \\
                 The project goal \\
                 The list of components \\
                 The software flow design \\
                 The hardware system design \\
                 Introducing Fritzing --- a hardware prototyping
                 software \\
                 Working with the breadboard \\
                 Designing the hardware prototype \\
                 Testing hardware connections \\
                 Method 1 --- using a standalone Arduino sketch \\
                 The project setup \\
                 The Arduino sketch \\
                 The setup() function \\
                 The loop() function \\
                 Working with custom Arduino functions \\
                 Testing \\
                 Troubleshooting \\
                 Method 2 --- using Python and Firmata \\
                 The project setup \\
                 Working with Python executable files \\
                 The Python code \\
                 Working with pyFirmata methods \\
                 Working with Python functions \\
                 Testing \\
                 Troubleshooting \\
                 Summary \\
                 4. Diving into Python-Arduino Prototyping \\
                 Prototyping \\
                 Working with pyFirmata methods \\
                 Setting up the Arduino board \\
                 Configuring Arduino pins \\
                 The direct method \\
                 Assigning pin modes \\
                 Working with pins \\
                 Reporting data \\
                 Manual operations \\
                 The write() method \\
                 The read() method \\
                 Additional functions \\
                 Upcoming functions \\
                 Prototyping templates using Firmata \\
                 Potentiometer --- continuous observation from an analog
                 input \\
                 Connections \\
                 The Python code \\
                 Buzzer --- generating sound alarm pattern \\
                 Connections \\
                 The Python code \\
                 DC motor --- controlling motor speed using PWM \\
                 Connections \\
                 The Python code \\
                 LED --- controlling LED brightness using PWM \\
                 Connections \\
                 The Python code \\
                 Servomotor --- moving the motor to a certain angle \\
                 Connections \\
                 The Python code \\
                 Prototyping with the I2C protocol \\
                 Arduino examples for I2C interfacing \\
                 Arduino coding for the TMP102 temperature sensor \\
                 Arduino coding for the BH1750 light sensor \\
                 PyMata for quick I2C prototyping \\
                 Interfacing TMP102 using PyMata \\
                 Interfacing BH1750 using PyMata \\
                 Useful pySerial commands \\
                 Connecting with the serial port \\
                 Reading a line from the port \\
                 Flushing the port to avoid buffer overflow \\
                 Closing the port \\
                 Summary \\
                 5. Working with the Python GUI \\
                 Learning Tkinter for GUI design \\
                 Your first Python GUI program \\
                 The root widget Tk() and the top-level methods \\
                 The Label() widget \\
                 The Pack geometry manager \\
                 The Button() widget --- interfacing GUI with Arduino
                 and LEDs \\
                 The Entry() widget --- providing manual user inputs \\
                 The Scale() widget --- adjusting the brightness of an
                 LED \\
                 The Grid geometry manager \\
                 The Checkbutton() widget --- selecting LEDs \\
                 The Label() widget --- monitoring I/O pins \\
                 Remaking your first Python-Arduino project with a GUI
                 \\
                 Summary \\
                 6. Storing and Plotting Arduino Data \\
                 Working with files in Python \\
                 The open() method \\
                 The write() method \\
                 The close() method \\
                 The read() method \\
                 The with statement --- Python context manager \\
                 Using CSV files to store data \\
                 Storing Arduino data in a CSV file \\
                 Getting started with matplotlib \\
                 Configuring matplotlib on Windows \\
                 Configuring matplotlib on Mac OS X \\
                 Upgrading matplotlib \\
                 Troubleshooting installation errors \\
                 Setting up matplotlib on Ubuntu \\
                 Plotting random numbers using matplotlib \\
                 Plotting data from a CSV file \\
                 Plotting real-time Arduino data \\
                 Integrating plots in the Tkinter window \\
                 Summary \\
                 7. The Midterm Project --- a Portable DIY Thermostat
                 \\
                 Thermostat --- the project description \\
                 Project background \\
                 Project goals and stages \\
                 The list of required components \\
                 Hardware design \\
                 Software flow for user experience design \\
                 Stage 1 --- prototyping the thermostat \\
                 The Arduino sketch for the thermostat \\
                 Interfacing the temperature sensor \\
                 Interfacing the humidity sensor \\
                 Interfacing the light sensor \\
                 Using Arduino interrupts \\
                 Designing the GUI and plot in Python \\
                 Using pySerial to stream sensor data in your Python
                 program \\
                 Designing the GUI using Tkinter \\
                 Plotting percentage humidity using matplotlib \\
                 Using button interrupts to control the parameters \\
                 Changing the temperature unit by pressing a button \\
                 Swapping between the GUI and the plot by pressing a
                 button \\
                 Troubleshooting \\
                 Stage 2 --- using a Raspberry Pi for the deployable
                 thermostat \\
                 What is a Raspberry Pi? \\
                 Installing the operating system and configuring the
                 Raspberry Pi \\
                 What do you need to begin using the Raspberry Pi? \\
                 Preparing an SD card \\
                 The Raspberry Pi setup process \\
                 Using a portable TFT LCD display with the Raspberry Pi
                 \\
                 Connecting the TFT LCD using GPIO \\
                 Configuring the TFT LCD with the Raspberry Pi OS \\
                 Optimizing the GUI for the TFT LCD screen \\
                 Troubleshooting \\
                 Summary \\
                 8. Introduction to Arduino Networking \\
                 Arduino and the computer networking \\
                 Networking fundamentals \\
                 Obtaining the IP address of your computer \\
                 Windows \\
                 Mac OS X \\
                 Linux \\
                 Networking extensions for Arduino \\
                 Arduino Ethernet Shield \\
                 Arduino WiFi Shield \\
                 Arduino Y{\'u}n \\
                 Arduino Ethernet library \\
                 The Ethernet class \\
                 The IPAddress class \\
                 The Server class \\
                 The Client class \\
                 Exercise 1 --- a web server, your first Arduino network
                 program \\
                 Developing web applications using Python \\
                 Python web framework --- web.py \\
                 Installing web.py \\
                 Your first Python web application \\
                 Essential web.py concepts for developing complex web
                 applications \\
                 Handling URLs \\
                 The GET and POST methods \\
                 Templates \\
                 Forms \\
                 Exercise 2 --- playing with web.py concepts using the
                 Arduino serial interface \\
                 RESTful web applications with Arduino and Python \\
                 Designing REST-based Arduino applications \\
                 Working with the GET request from Arduino \\
                 The Arduino code to generate the GET request \\
                 The HTTP server using web.py to handle the GET request
                 \\
                 Working with the POST request from Arduino \\
                 The Arduino code to generate the POST request \\
                 The HTTP server using web.py to handle the POST request
                 \\
                 Exercise 3 --- a RESTful Arduino web application \\
                 The Arduino sketch for the exercise \\
                 The web.py application to support REST requests \\
                 Why do we need a resource-constrained messaging
                 protocol? \\
                 MQTT --- A lightweight messaging protocol \\
                 Introduction to MQTT \\
                 Mosquitto --- an open source MQTT broker \\
                 Setting up Mosquitto \\
                 Getting familiar with Mosquitto \\
                 Getting started with MQTT on Arduino and Python \\
                 MQTT on Arduino using the PubSubClient library \\
                 Installing the PubSubClient library \\
                 Developing the Arduino MQTT client \\
                 MQTT on Python using paho-mqtt \\
                 Installing paho-mqtt \\
                 Using the paho-mqtt Python library \\
                 Exercise 4 --- MQTT Gateway for Arduino \\
                 Developing Arduino as the MQTT client \\
                 Developing the MQTT Gateway using Mosquitto \\
                 Extending the MQTT Gateway using web.py \\
                 Testing your Mosquitto Gateway \\
                 Summary \\
                 9. Arduino and the Internet of Things \\
                 Getting started with the IoT \\
                 Architecture of IoT web applications \\
                 Hardware design \\
                 The IoT cloud platforms \\
                 Xively --- a cloud platform for the IoT \\
                 Setting up an account on Xively \\
                 Working with Xively \\
                 Alternative IoT platforms \\
                 ThingSpeak \\
                 Carriots \\
                 Developing cloud applications using Python and Xively
                 \\
                 Interfacing Arduino with Xively \\
                 Uploading Arduino data to Xively \\
                 Downloading data to Arduino from Xively \\
                 Advanced code to upload and download data using Arduino
                 \\
                 Python --- uploading data to Xively \\
                 The basic method for sending data \\
                 Uploading data using a web interface based on web.py
                 \\
                 Python --- downloading data from Xively \\
                 The basic method for retrieving data from Xively \\
                 Retrieving data from the web.py web interface \\
                 Triggers --- custom notifications from Xively \\
                 Your own cloud platform for the IoT \\
                 Getting familiar with the Amazon AWS platform \\
                 Setting up an account on AWS \\
                 Creating a virtual instance on the AWS EC2 service \\
                 Logging into your virtual instance \\
                 Creating an IoT platform on the EC2 instance \\
                 Installing the necessary packages on AWS \\
                 Configuring the security of the virtual instance \\
                 Testing your cloud platform \\
                 Testing the Mosquitto service \\
                 Configuring and testing basic security \\
                 Uploading and testing a project on the instance \\
                 Summary \\
                 10. The Final Project --- a Remote Home Monitoring
                 System \\
                 The design methodology for IoT projects \\
                 Project overview \\
                 The project goals \\
                 The project requirements \\
                 Designing system architecture \\
                 The monitoring station \\
                 The control center \\
                 The cloud services \\
                 Defining UX flow \\
                 The list of required components \\
                 Defining the project development stages \\
                 Stage 1 --- a monitoring station using Arduino \\
                 Designing the monitoring station \\
                 The Arduino sketch for the monitoring station \\
                 Publishing sensor information \\
                 Subscribing to actuator actions \\
                 Programming an interrupt to handle the press of a
                 button \\
                 Testing \\
                 Stage 2 --- a control center using Python and the
                 Raspberry Pi \\
                 The control center architecture \\
                 The Python code for the control center \\
                 Creating the GUI using Tkinter \\
                 Communicating with the Mosquitto broker \\
                 Calculating the system's status and situation awareness
                 \\
                 Communicating with Xively \\
                 Checking and updating the buzzer's status \\
                 Testing the control center with the monitoring station
                 \\
                 Setting up the control center on the Raspberry Pi \\
                 Stage 3 --- a web application using Xively, Python, and
                 Amazon cloud service \\
                 Architecture of the cloud services \\
                 Python web application hosted on Amazon AWS \\
                 Testing the web application \\
                 Testing and troubleshooting \\
                 Extending your remote home monitoring system \\
                 Utilizing multiple monitoring stations \\
                 Extending sensory capabilities \\
                 Improving UX \\
                 Expanding cloud-based features \\
                 Improving intelligence for situation awareness \\
                 Creating an enclosure for hardware components \\
                 Summary \\
                 11. Tweet-a-PowerStrip \\
                 Project overview \\
                 Project requirements \\
                 System architecture \\
                 Required hardware components \\
                 Relays \\
                 PowerSwitch Tail \\
                 User experience flow \\
                 Development and deployment stages \\
                 Stage 1 --- a smart power strip with Arduino and relays
                 \\
                 Hardware design \\
                 The Arduino code \\
                 Stage 2 --- the Python code to process tweets \\
                 Python software flow \\
                 Setting up the Twitter application \\
                 The Python code \\
                 Testing and troubleshooting \\
                 Extending the project with additional features \\
                 Summary \\
                 Index",
}

@Article{Ding:2015:PPF,
  author =       "Hong Ding and Bharat Medasani and Wei Chen and Kristin
                 A. Persson and Maciej Haranczyk and Mark Asta",
  title =        "{PyDII}: a {Python} framework for computing
                 equilibrium intrinsic point defect concentrations and
                 extrinsic solute site preferences in intermetallic
                 compounds",
  journal =      j-COMP-PHYS-COMM,
  volume =       "193",
  number =       "??",
  pages =        "118--123",
  month =        aug,
  year =         "2015",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu May 21 16:01:20 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465515001149",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@InProceedings{Dogaru:2015:UPJ,
  author =       "I. Dogaru and R. Dogaru",
  booktitle =    "{2015 20th International Conference on Control Systems
                 and Computer Science}",
  title =        "Using {Python} and {Julia} for Efficient
                 Implementation of Natural Computing and Complexity
                 Related Algorithms",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "599--604",
  year =         "2015",
  DOI =          "https://doi.org/10.1109/CSCS.2015.37",
  bibdate =      "Thu Apr 8 07:17:08 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Julia programming language",
}

@Book{Doglio:2015:MPH,
  author =       "Fernando Doglio",
  title =        "Mastering {Python} High Performance",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "260",
  year =         "2015",
  ISBN =         "1-78398-930-0, 1-78398-931-9 (e-book)",
  ISBN-13 =      "978-1-78398-930-0, 978-1-78398-931-7 (e-book)",
  LCCN =         "T55.4-60.8",
  bibdate =      "Fri Oct 23 15:58:51 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Mastering Python High Performance \\
                 Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Profiling 101 \\
                 What is profiling? \\
                 Event-based profiling \\
                 Statistical profiling \\
                 The importance of profiling \\
                 What can we profile? \\
                 Execution time \\
                 Where are the bottlenecks? \\
                 Memory consumption and memory leaks \\
                 The risk of premature optimization \\
                 Running time complexity \\
                 Constant time --- O(1) \\
                 Linear time --- O(n) \\
                 Logarithmic time --- O(log n) \\
                 Linearithmic time --- O(nlog n) \\
                 Factorial time --- O(n!) \\
                 Quadratic time --- O(n^) \\
                 Profiling best practices \\
                 Build a regression-test suite \\
                 Mind your code \\
                 Be patient \\
                 Gather as much data as you can \\
                 Preprocess your data \\
                 Visualize your data \\
                 Summary \\
                 2. The Profilers \\
                 Getting to know our new best friends: the profilers \\
                 cProfile \\
                 A note about limitations \\
                 The API provided \\
                 The Stats class \\
                 Profiling examples \\
                 Fibonacci again \\
                 Tweet stats \\
                 line_profiler \\
                 kernprof \\
                 Some things to consider about kernprof \\
                 Profiling examples \\
                 Back to Fibonacci \\
                 Inverted index \\
                 getOffsetUpToWord \\
                 getWords \\
                 list2dict \\
                 readFileContent \\
                 saveIndex \\
                 __start__ \\
                 getOffsetUpToWord \\
                 getWords \\
                 list2dict \\
                 saveIndex \\
                 Summary \\
                 3. Going Visual --- GUIs to Help Understand Profiler
                 Output \\
                 KCacheGrind --- pyprof2calltree \\
                 Installation \\
                 Usage \\
                 A profiling example --- TweetStats \\
                 A profiling example --- Inverted Index \\
                 RunSnakeRun \\
                 Installation \\
                 Usage \\
                 Profiling examples --- the lowest common multiplier \\
                 A profiling example --- search using the inverted index
                 \\
                 Summary \\
                 4. Optimize Everything \\
                 Memoization / lookup tables \\
                 Performing a lookup on a list or linked list \\
                 Simple lookup on a dictionary \\
                 Binary search \\
                 Use cases for lookup tables \\
                 Usage of default arguments \\
                 List comprehension and generators \\
                 ctypes \\
                 Loading your own custom C library \\
                 Loading a system library \\
                 String concatenation \\
                 Other tips and tricks \\
                 Summary \\
                 5. Multithreading versus Multiprocessing \\
                 Parallelism versus concurrency \\
                 Multithreading \\
                 Threads \\
                 Creating a thread with the thread module \\
                 Working with the threading module \\
                 Interthread communication with events \\
                 Multiprocessing \\
                 Multiprocessing with Python \\
                 Exit status \\
                 Process pooling \\
                 Interprocess communication \\
                 Pipes \\
                 Events \\
                 Summary \\
                 6. Generic Optimization Options \\
                 PyPy \\
                 Installing PyPy \\
                 A Just-in-time compiler \\
                 Sandboxing \\
                 Optimizing for the JIT \\
                 Think of functions \\
                 Consider using cStringIO to concatenate strings \\
                 Actions that disable the JIT \\
                 Code sample \\
                 Cython \\
                 Installing Cython \\
                 Building a Cython module \\
                 Calling C functions \\
                 Solving naming conflicts \\
                 Defining types \\
                 Defining types during function definitions \\
                 A Cython example \\
                 When to define a type \\
                 Limitations \\
                 Generator expressions \\
                 Comparison of char* literals \\
                 Tuples as function arguments \\
                 Stack frames \\
                 How to choose the right option \\
                 When to go with Cython \\
                 When to go with PyPy \\
                 Summary \\
                 7. Lightning Fast Number Crunching with Numba,
                 Parakeet, and pandas \\
                 Numba \\
                 Installation \\
                 Using Numba \\
                 Numba's code generation \\
                 Eager compilation \\
                 Other configuration settings \\
                 No GIL \\
                 NoPython mode \\
                 Running your code on the GPU \\
                 The pandas tool \\
                 Installing pandas \\
                 Using pandas for data analysis \\
                 Parakeet \\
                 Installing Parakeet \\
                 How does Parakeet work? \\
                 Summary \\
                 8. Putting It All into Practice \\
                 The problem to solve \\
                 Getting data from the Web \\
                 Postprocessing the data \\
                 The initial code base \\
                 Analyzing the code \\
                 Scraper \\
                 Analyzer \\
                 Summary \\
                 Index",
}

@Book{Downey:2015:TPH,
  author =       "Allen B. Downey",
  title =        "Think {Python}: How to Think Like a Computer
                 Scientist",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-4919-3936-2",
  ISBN-13 =      "978-1-4919-3936-9",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 15:40:01 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 The strange history of this book \\
                 Acknowledgments \\
                 Contributor List \\
                 1. The way of the program \\
                 What is a program? \\
                 Running Python \\
                 The first program \\
                 Arithmetic operators \\
                 Values and types \\
                 Formal and natural languages \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 2. Variables, expressions and statements \\
                 Assignment statements \\
                 Variable names \\
                 Expressions and statements \\
                 Script mode \\
                 Order of operations \\
                 String operations \\
                 Comments \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 3. Functions \\
                 Function calls \\
                 Math functions \\
                 Composition \\
                 Adding new functions \\
                 Definitions and uses \\
                 Flow of execution \\
                 Parameters and arguments \\
                 Variables and parameters are local \\
                 Stack diagrams \\
                 Fruitful functions and void functions \\
                 Why functions? \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 4. Case study: interface design \\
                 The turtle module \\
                 Simple repetition \\
                 Exercises \\
                 Encapsulation \\
                 Generalization \\
                 Interface design \\
                 Refactoring \\
                 A development plan \\
                 docstring \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 5. Conditionals and recursion \\
                 Floor division and modulus \\
                 Boolean expressions \\
                 Logical operators \\
                 Conditional execution \\
                 Alternative execution \\
                 Chained conditionals \\
                 Nested conditionals \\
                 Recursion \\
                 Stack diagrams for recursive functions \\
                 Infinite recursion \\
                 Keyboard input \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 6. Fruitful functions \\
                 Return values \\
                 Incremental development \\
                 Composition \\
                 Boolean functions \\
                 More recursion \\
                 Leap of faith \\
                 One more example \\
                 Checking types \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 7. Iteration \\
                 Reassignment \\
                 Updating variables \\
                 The while statement \\
                 break \\
                 Square roots \\
                 Algorithms \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 8. Strings \\
                 A string is a sequence \\
                 len \\
                 Traversal with a for loop \\
                 String slices \\
                 Strings are immutable \\
                 Searching \\
                 Looping and counting \\
                 String methods \\
                 The in operator \\
                 String comparison \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 9. Case study: word play \\
                 Reading word lists \\
                 Exercises \\
                 Search \\
                 Looping with indices \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 10. Lists \\
                 A list is a sequence \\
                 Lists are mutable \\
                 Traversing a list \\
                 List operations \\
                 List slices \\
                 List methods \\
                 Map, filter and reduce \\
                 Deleting elements \\
                 Lists and strings \\
                 Objects and values \\
                 Aliasing \\
                 List arguments \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 11. Dictionaries \\
                 A dictionary is a mapping \\
                 Dictionary as a collection of counters \\
                 Looping and dictionaries \\
                 Reverse lookup \\
                 Dictionaries and lists \\
                 Memos \\
                 Global variables \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 12. Tuples \\
                 Tuples are immutable \\
                 Tuple assignment \\
                 Tuples as return values \\
                 Variable-length argument tuples \\
                 Lists and tuples \\
                 Dictionaries and tuples \\
                 Sequences of sequences \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 13. Case study: data structure selection \\
                 Word frequency analysis \\
                 Random numbers \\
                 Word histogram \\
                 Most common words \\
                 Optional parameters \\
                 Dictionary subtraction \\
                 Random words \\
                 Markov analysis \\
                 Data structures \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 14. Files \\
                 Persistence \\
                 Reading and writing \\
                 Format operator \\
                 Filenames and paths \\
                 Catching exceptions \\
                 Databases \\
                 Pickling \\
                 Pipes \\
                 Writing modules \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 15. Classes and objects \\
                 Programmer-defined types \\
                 Attributes \\
                 Rectangles \\
                 Instances as return values \\
                 Objects are mutable \\
                 Copying \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 16. Classes and functions \\
                 Time \\
                 Pure functions \\
                 Modifiers \\
                 Prototyping versus planning \\
                 Debugging \\
                 Glossary \\
                 Exercises \\
                 17. Classes and methods \\
                 Object-oriented features \\
                 Printing objects \\
                 Another example \\
                 A more complicated example \\
                 The init method \\
                 The __str__ method \\
                 Operator overloading \\
                 Type-based dispatch \\
                 Polymorphism \\
                 Debugging \\
                 Interface and implementation \\
                 Glossary \\
                 Exercises \\
                 18. Inheritance \\
                 Card objects \\
                 Class attributes \\
                 Comparing cards \\
                 Decks \\
                 Printing the deck \\
                 Add, remove, shuffle and sort \\
                 Inheritance \\
                 Class diagrams \\
                 Debugging \\
                 Data encapsulation \\
                 Glossary \\
                 Exercises \\
                 19. The Goodies \\
                 Conditional expressions \\
                 List comprehensions \\
                 Generator expressions \\
                 any and all \\
                 Sets \\
                 Counters \\
                 defaultdict \\
                 Named tuples \\
                 Gathering keyword args \\
                 Glossary \\
                 Exercises \\
                 20. Debugging \\
                 Syntax errors \\
                 I keep making changes and it makes no difference. \\
                 Runtime errors \\
                 My program does absolutely nothing. \\
                 My program hangs. \\
                 When I run the program I get an exception. \\
                 I added so many print statements I get inundated with
                 output. \\
                 Semantic errors \\
                 My program doesn't work. \\
                 I've got a big hairy expression and it doesn't do what
                 I expect. \\
                 I've got a function that doesn't return what I expect.
                 \\
                 I'm really, really stuck and I need help. \\
                 No, I really need help. \\
                 21. Analysis of Algorithms \\
                 Order of growth \\
                 Analysis of basic Python operations \\
                 Analysis of search algorithms \\
                 Hashtables \\
                 Glossary \\
                 Index",
}

@Book{Duffy:2015:LPT,
  author =       "Christopher Duffy",
  title =        "Learning Penetration Testing with {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "314",
  year =         "2015",
  ISBN =         "1-78528-232-8, 1-78528-955-1 (e-book)",
  ISBN-13 =      "978-1-78528-232-4, 978-1-78528-955-2 (e-book)",
  LCCN =         "T55.4-60.8",
  bibdate =      "Fri Oct 23 15:42:07 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Understanding the Penetration Testing Methodology
                 \\
                 An overview of penetration testing \\
                 Understanding what penetration testing is not \\
                 Vulnerability assessments \\
                 Reverse engineering engagements \\
                 Hacking \\
                 Assessment methodologies \\
                 The penetration testing execution standard \\
                 Pre-engagement interactions \\
                 White Box Testing \\
                 Grey Box Testing \\
                 Black Box Testing \\
                 Double Blind Testing \\
                 Intelligence gathering \\
                 Threat modeling \\
                 Vulnerability analysis \\
                 Exploitation \\
                 Post exploitation \\
                 Reporting \\
                 An example engagement \\
                 Penetration testing tools \\
                 NMAP \\
                 Metasploit \\
                 Veil \\
                 Burp Suite \\
                 Hydra \\
                 John the Ripper \\
                 Cracking Windows passwords with John \\
                 oclHashcat \\
                 Ophcrack \\
                 Mimikatz and Incognito \\
                 SMBexec \\
                 Cewl \\
                 Responder \\
                 theHarvester and Recon-NG \\
                 pwdump and fgdump \\
                 Netcat \\
                 Sysinternals tools \\
                 Summary \\
                 2. The Basics of Python Scripting \\
                 Understanding the difference between interpreted and
                 compiled languages \\
                 Python --- the good and the bad \\
                 A Python interactive interpreter versus a script \\
                 Environmental variables and PATH \\
                 Understanding dynamically typed languages \\
                 The first Python script \\
                 Developing scripts and identifying errors \\
                 Reserved words, keywords, and built-in functions \\
                 Global and local variables \\
                 Understanding a namespace \\
                 Modules and imports \\
                 Python formatting \\
                 Indentation \\
                 Python variables \\
                 Debugging variable values \\
                 String variables \\
                 Number variables \\
                 Converting string and number variables \\
                 List variables \\
                 Tuple variables \\
                 Dictionary variables \\
                 Understanding default values and constructors \\
                 Passing a variable to a string \\
                 Operators \\
                 Comparison operators \\
                 Assignment operators \\
                 Arithmetic operators \\
                 Logical and membership operators \\
                 Compound statements \\
                 The if statements \\
                 Python loops \\
                 The while loop \\
                 The for loop \\
                 The break condition \\
                 Conditional handlers \\
                 Functions \\
                 The impact of dynamically typed languages on functions
                 on functions \\
                 Curly brackets \\
                 How to comment your code \\
                 The Python style guide \\
                 Classes \\
                 Functions \\
                 Variables and instance names \\
                 Arguments and options \\
                 Your first assessor script \\
                 Summary \\
                 3. Identifying Targets with Nmap, Scapy, and Python \\
                 Understanding how systems communicate \\
                 The Ethernet frame architecture \\
                 Layer 2 in Ethernet networks \\
                 Layer 2 in wireless networks \\
                 The IP packet architecture \\
                 The TCP header architecture \\
                 Understanding how TCP works \\
                 The TCP three-way handshake \\
                 The UDP header architecture \\
                 Understanding how UDP works \\
                 Understanding Nmap \\
                 Inputting the target ranges for Nmap \\
                 Executing the different scan types \\
                 Executing TCP full connection scans \\
                 Executing SYN scans \\
                 Executing ACK scans \\
                 Executing UDP scans \\
                 Executing combined UDP and TCP scans \\
                 Skipping the operating system scans \\
                 Different output types \\
                 Understanding the Nmap Grepable output \\
                 Understanding the Nmap XML output \\
                 The Nmap scripting engine \\
                 Being efficient with Nmap scans \\
                 Determining your interface details with the netifaces
                 library \\
                 Nmap libraries for Python \\
                 The Scapy library for Python \\
                 Summary \\
                 4. Executing Credential Attacks with Python \\
                 The types of credential attacks \\
                 Defining the online credential attack \\
                 Defining the offline credential attack \\
                 Identifying the target \\
                 Creating targeted usernames \\
                 Generating and verifying usernames with help from the
                 U.S. census \\
                 Generating the usernames \\
                 Testing for users using SMTP VRFY \\
                 Creating the SMTP VRFY script \\
                 Summary \\
                 5. Exploiting Services with Python \\
                 Understanding the new age of service exploitation \\
                 Understanding the chaining of exploits \\
                 Checking for weak, default, or known passwords \\
                 Gaining root access to the system \\
                 Understanding the cracking of Linux hashes \\
                 Testing for the synchronization of account credentials
                 \\
                 Automating the exploit train with Python \\
                 Summary \\
                 6. Assessing Web Applications with Python \\
                 Identifying live applications versus open ports \\
                 Identifying hidden files and directories with Python
                 \\
                 Credential attacks with Burp Suite \\
                 Using twill to walk through the source \\
                 Understanding when to use Python for web assessments
                 \\
                 Understanding when to use specific libraries \\
                 Being efficient during web assessments \\
                 Summary \\
                 7. Cracking the Perimeter with Python \\
                 Understanding today's perimeter \\
                 Clear-text protocols \\
                 Web applications \\
                 Encrypted remote access services \\
                 Virtual Private Networks (VPNs) \\
                 Mail services \\
                 Domain Name Service (DNS) \\
                 User Datagram Protocol (UDP) services \\
                 Understanding the link between accounts and services
                 \\
                 Cracking inboxes with Burp Suite \\
                 Identifying the attack path \\
                 Understanding the limitations of perimeter scanning \\
                 Downloading backup files from a TFTP server \\
                 Determining the backup filenames \\
                 Cracking Cisco MD5 hashes \\
                 Gaining access through websites \\
                 The execution of file inclusion attacks \\
                 Verifying an RFI vulnerability \\
                 Exploiting the hosts through RFI \\
                 Summary \\
                 8. Exploit Development with Python, Metasploit, and
                 Immunity \\
                 Getting started with registers \\
                 Understanding general purpose registers \\
                 The EAX \\
                 The EBX \\
                 The ECX \\
                 The EDX \\
                 Understanding special purpose registers \\
                 The EBP \\
                 The EDI \\
                 The EIP \\
                 The ESP \\
                 Understanding the Windows memory structure \\
                 Understanding the stack and the heap \\
                 Understanding the program image and dynamic-link
                 libraries \\
                 Understanding the process environment block \\
                 Understanding the thread environment block \\
                 Kernel \\
                 Understanding memory addresses and endianness \\
                 Understanding the manipulation of the stack \\
                 Understanding immunity \\
                 Understanding basic buffer overflow \\
                 Writing a basic buffer overflow exploit \\
                 Understanding stack adjustments \\
                 Understanding the purpose of local exploits \\
                 Understanding other exploit scripts \\
                 Exploiting standalone binaries by executing scripts \\
                 Exploiting systems by TCP service \\
                 Exploiting systems by UDP service \\
                 Reversing Metasploit modules \\
                 Understanding protection mechanisms \\
                 Summary \\
                 9. Automating Reports and Tasks with Python \\
                 Understanding how to parse XML files for reports \\
                 Understanding how to create a Python class \\
                 Creating a Python script to parse an Nmap XML \\
                 Creating a Python script to generate Excel spreadsheets
                 \\
                 Summary \\
                 10. Adding Permanency to Python Tools \\
                 Understanding logging within Python \\
                 Understanding the difference between multithreading and
                 multiprocessing \\
                 Creating a multithreaded script in Python \\
                 Creating a multiprocessing script in Python \\
                 Building industry-standard tools \\
                 Summary \\
                 Index",
}

@Article{Feinberg:2015:COS,
  author =       "Jonathan Feinberg and Hans Petter Langtangen",
  title =        "\pkg{Chaospy}: an open source tool for designing
                 methods of uncertainty quantification",
  journal =      j-J-COMPUT-SCI,
  volume =       "11",
  pages =        "46--57",
  month =        nov,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2015.08.008",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  MRclass =      "68W30 (62-04)",
  MRnumber =     "3435044",
  bibdate =      "Tue Sep 19 13:53:55 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750315300119",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Book{Govindaraj:2015:TDP,
  author =       "Siddharta Govindaraj",
  title =        "Test-driven {Python} development",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "264",
  year =         "2015",
  ISBN =         "1-78398-792-8, 1-78398-793-6 (e-book)",
  ISBN-13 =      "978-1-78398-792-4, 978-1-78398-793-1 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 17:23:44 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Python (Computer
                 program language)",
  tableofcontents = "Credits \\
                 About the Author \\
                 Acknowledgments \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 Test-Driven Development \\
                 Prerequisites \\
                 Understanding test-driven development \\
                 TDD versus unit testing versus integration testing \\
                 Using TDD to build a stock alert application \\
                 Writing our first test \\
                 Analyzing the test output \\
                 Test errors versus test failures \\
                 Making the test pass \\
                 Reorganizing the test code \\
                 Running the tests after the reorganization \\
                 Summary \\
                 2. Red-Green-Refactor --- The TDD Cycle \\
                 Tests are executable requirements \\
                 Arrange-Act-Assert \\
                 Documenting our tests \\
                 Testing for exceptions \\
                 Exploring assert methods \\
                 Specific asserts versus generic asserts \\
                 Setup and teardown \\
                 Brittle tests \\
                 Refactoring the design \\
                 Refactoring tests \\
                 Exploring the Rule classes \\
                 Exercise \\
                 Summary \\
                 3. Code Smells and Refactoring \\
                 A dual crossover moving average \\
                 Implementing the dual crossover moving average \\
                 Identifying code smells \\
                 Refactoring \\
                 The Rename Variable and Rename Method refactorings \\
                 Commenting Styles \\
                 Replace Magic Literals with Constants \\
                 The Extract Method refactoring \\
                 Replace Calculation with Temporary Variable \\
                 Extract Conditional to Method \\
                 The DRY principle \\
                 Single Responsibility Principle \\
                 Extract Class \\
                 Move Method to Class \\
                 The importance of tests \\
                 Exercise \\
                 Wrapping up \\
                 Summary \\
                 4. Using Mock Objects to Test Interactions \\
                 Hand writing a simple mock \\
                 Using the Python mocking framework \\
                 Mocking objects \\
                 Mocking return values \\
                 Mocking side effects \\
                 How much mocking is too much? \\
                 Mocks versus stubs versus fakes versus spies \\
                 Patching methods \\
                 An important gotcha when patching \\
                 Tying it all together \\
                 Summary \\
                 5. Working with Legacy Code \\
                 What is legacy code? \\
                 Understanding the code \\
                 What are characterization tests? \\
                 Using the Python interactive shell to understand the
                 code \\
                 Writing a characterization test \\
                 Using pdb to understand the code \\
                 Some common pdb commands \\
                 Walking through a pdb session \\
                 Techniques to break dependencies \\
                 The Rope refactoring library \\
                 Separate initialization from execution \\
                 Use default values for parameters \\
                 Extract the method and test \\
                 Inject dependencies \\
                 Inherit and test \\
                 Stubbing local methods \\
                 Extract the method and stub \\
                 The cycle continues \\
                 Time to refactor \\
                 Long-term refactoring \\
                 Summary \\
                 6. Maintaining Your Test Suite \\
                 Goals of test maintenance \\
                 Organizing tests \\
                 Filesystem layout \\
                 Naming conventions \\
                 Test suite grouping \\
                 Making tests readable \\
                 Using docstrings \\
                 Using fixtures \\
                 Fixtures and patching \\
                 Using a custom test case class hierarchy \\
                 Writing tests closer to the domain \\
                 Writing helper methods \\
                 Writing better asserts \\
                 Using custom equality checkers \\
                 Using matchers \\
                 Summary \\
                 7. Executable Documentation with doctest \\
                 Our first doctest \\
                 Running the doctest \\
                 Test failures \\
                 Testing for exceptions \\
                 Package-level doctests \\
                 Maintaining doctests \\
                 Running a suite of doctests \\
                 Setup and teardown \\
                 Limitations of doctest \\
                 Doctest directives \\
                 How do doctests fit into the TDD process? \\
                 Summary \\
                 8. Extending unittest with nose2 \\
                 Getting started with nose2 \\
                 Writing tests for nose2 \\
                 Setup and teardown \\
                 Parameterized tests \\
                 Generated tests \\
                 Layers \\
                 nose2 plugins \\
                 Doctest support \\
                 Writing test results to an XML file \\
                 Measuring test coverage \\
                 Debugging test failures \\
                 nose2 configuration \\
                 Summary \\
                 9. Unit Testing Patterns \\
                 Pattern --- fast tests \\
                 Pattern --- running a subset of tests \\
                 Test loaders \\
                 Using the load_tests protocol \\
                 Skipping tests \\
                 Pattern --- using attributes \\
                 Attributes with vanilla unittests \\
                 Pattern --- expected failures \\
                 Pattern --- data-driven tests \\
                 Pattern --- integration and system tests \\
                 Pattern --- spies \\
                 Pattern --- asserting a sequence of calls \\
                 Pattern --- patching the open function \\
                 Pattern --- mocking with mutable args \\
                 Summary \\
                 10. Tools to Improve Test-Driven Development \\
                 TDD tools \\
                 py.test \\
                 py.test versus nose2 \\
                 Trial \\
                 Sure \\
                 PyHamcrest \\
                 Integrating with build tools \\
                 Paver \\
                 Integrating with packaging tools \\
                 Setuptools \\
                 Distutils \\
                 Integrating with continuous integration tools \\
                 Jenkins \\
                 Travis CI \\
                 Other tools \\
                 tox \\
                 Sphinx \\
                 IDE integration \\
                 Summary \\
                 A. Answers to Exercises \\
                 Red-Green-Refactor --- The TDD Cycle \\
                 Code Smells and Refactoring \\
                 B. Working with Older Python Versions \\
                 Writing code that is compatible across versions \\
                 Running tests from the command line \\
                 Running the examples in this book \\
                 Index",
}

@Book{Gupta:2015:BWA,
  author =       "Sumit Gupta",
  title =        "Building web applications with {Python} and {Neo4j}:
                 develop exciting and real-world {Python}-based web
                 applications with {Neo4j} using frameworks such as
                 {Flask}, {Py2neo}, and {Django}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "184 (est.)",
  year =         "2015",
  ISBN =         "1-78398-398-1 (print), 1-78398-399-X (e-book)",
  ISBN-13 =      "978-1-78398-398-8 (print), 978-1-78398-399-5
                 (e-book)",
  LCCN =         "QA76.76.A65",
  bibdate =      "Fri Oct 23 16:15:38 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781783983988",
  acknowledgement = ack-nhfb,
  subject =      "Application software; Development; Web applications;
                 Python (Computer program language); Development.;
                 Python (Computer program language); Web applications.",
  tableofcontents = "Building Web Applications with Python and Neo4j \\
                 Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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. Your First Query with Neo4j \\
                 Thinking in graphs for SQL developers \\
                 Comparing SQL and Cypher \\
                 Evolving graph structures from SQL models \\
                 Licensing and configuring --- Neo4j \\
                 Licensing --- Community Edition \\
                 Licensing --- Enterprise Edition \\
                 Installing Neo4J Community Edition on Linux/Unix \\
                 Installing as a Linux tar / standalone application \\
                 Installing as a Linux service \\
                 Installing Neo4j Enterprise Edition on Unix/Linux \\
                 Using the Neo4j shell \\
                 Introducing the Neo4j REST interface \\
                 Authorization and authentication \\
                 CRUD operations \\
                 Running queries from the Neo4j browser \\
                 Summary \\
                 2. Querying the Graph with Cypher \\
                 Basic anatomy of a Cypher query \\
                 Brief details of Cypher \\
                 Cypher execution phases \\
                 Parsing, validating, and generating the execution plan
                 \\
                 Locating the initial node(s) \\
                 Selecting and traversing the relationships \\
                 Changing and/or returning the values \\
                 The structure of Cypher \\
                 The read operations \\
                 MATCH \\
                 OPTIONAL MATCH \\
                 START \\
                 AGGREGATION \\
                 The create or update operations \\
                 Create \\
                 SET \\
                 MERGE \\
                 The delete operation \\
                 Pattern and pattern matching \\
                 Sample dataset \\
                 Pattern for nodes \\
                 Pattern for labels \\
                 Pattern for relationships \\
                 Pattern for properties \\
                 Using the where clause with patterns \\
                 Using patterns in the where clause \\
                 Using general clauses with patterns \\
                 The order by clause \\
                 The limit and skip clauses \\
                 The WITH clause \\
                 The UNION and UNION ALL clauses \\
                 Working with nodes and relationships \\
                 Summary \\
                 3. Mutating Graph with Cypher \\
                 Creating nodes and relationships \\
                 Working with nodes \\
                 Single node \\
                 Multiple nodes \\
                 Node with labels \\
                 Node with properties \\
                 Working with relationships \\
                 Single relationships \\
                 Multiple relationships \\
                 Relationships with properties \\
                 Nodes and relationships with full paths \\
                 Creating unique nodes and relationships \\
                 CREATE UNIQUE and MERGE \\
                 Working with constraints \\
                 Transforming nodes and relationships \\
                 Updating node properties \\
                 Updating a label \\
                 Updating relationships \\
                 Cypher query optimizations \\
                 Indexes \\
                 Index sampling \\
                 Understanding execution plans \\
                 Analyzing and optimizing queries \\
                 Summary \\
                 4. Getting Python and Neo4j to Talk Py2neo \\
                 Installing and configuring py2neo \\
                 Prerequisites \\
                 Installing py2neo \\
                 Exploring the py2neo APIs \\
                 Graph \\
                 Authentication \\
                 Node \\
                 Relationship \\
                 Cypher \\
                 Transactions \\
                 Paths \\
                 Creating a social network with py2neo \\
                 Batch imports \\
                 Unit testing \\
                 Summary \\
                 5. Build RESTful Service with Flask and Py2neo \\
                 Introducing (and installing) Flask \\
                 Setting up web applications with Flask and
                 Flask-RESTful \\
                 Your first Flask application \\
                 Displaying static content \\
                 Displaying dynamic content \\
                 Your first Flask RESTful API \\
                 JSON processing \\
                 REST APIs for social network data using py2neo \\
                 ORM for graph databases py2neo --- OGM \\
                 Social network application with Flask-RESTful and OGM
                 \\
                 Creating object model \\
                 Creating REST APIs over data models \\
                 Summary \\
                 6. Using Neo4j with Django and Neomodel \\
                 Installing and configuring Neomodel \\
                 Declaring models and properties \\
                 Defining nodes \\
                 Defining properties \\
                 Persisting and querying a social data model \\
                 Adding relationships to models \\
                 Running Cypher queries \\
                 Using Neomodel in a Django app \\
                 Signals in Neomodel \\
                 Summary \\
                 7. Deploying Neo4j in Production \\
                 Neo4j logical architecture \\
                 Disk/filesystem \\
                 Record files \\
                 Transaction logs \\
                 Caches \\
                 Core Java API \\
                 Traversal framework \\
                 REST API \\
                 Neo4j physical architecture \\
                 High availability \\
                 Fault tolerance \\
                 Data replication and data locality \\
                 Advanced settings \\
                 Monitoring the health of the Neo4J nodes \\
                 Neo4j browser \\
                 Webadmin \\
                 JMX beans \\
                 Backup and recovery \\
                 Summary \\
                 Index",
}

@Article{Harris:2015:CSP,
  author =       "Naftali Harris",
  title =        "Code Snippet: \pkg{LazySorted}: a Lazily, Partially
                 Sorted {Python} List",
  journal =      j-J-STAT-SOFT,
  volume =       "65",
  number =       "CS-1",
  pages =        "??--??",
  month =        jun,
  year =         "2015",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Fri Aug 7 11:01:06 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.jstatsoft.org/v65/c01",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
  pubdates =     "Submitted 2014-02-19; Accepted 2014-08-20",
}

@Book{Hiam:2015:LBP,
  author =       "Alexander Hiam",
  title =        "Learning {BeagleBone} {Python} programming: unleash
                 the potential of {BeagleBone} using {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-78439-970-1, 1-78439-080-1 (e-book)",
  ISBN-13 =      "978-1-78439-970-2, 978-1-78439-080-8 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:28:39 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  abstract =     "If you have experience with the Python language and
                 are interested in getting started with electronics,
                 then BeagleBone Black is the perfect platform for you
                 and this book will provide you with the information you
                 need.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); BeagleBone
                 (Computer); Microcomputers; BeagleBone (Computer);
                 Microcomputers.; Python (Computer program language)",
  tableofcontents = "Cover \\
                 Copyright \\
                 Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Table of Contents \\
                 Preface \\
                 Chapter 1: Before We Begin \\
                 Overview of the BeagleBone \\
                 General purpose input/output \\
                 Analog-to-digital converter \\
                 Pulse width modulation \\
                 Universal asynchronous receiver/transmitter \\
                 Serial peripheral interface \\
                 Inter-Integrated Circuit \\
                 Tools and additional hardware \\
                 BeagleBone design \\
                 Board comparison \\
                 Helpful resources \\
                 Summary \\
                 Chapter 2: Getting Started \\
                 Initial setup \\
                 Updating your Debian image \\
                 Connecting to your BeagleBone \\
                 The Cloud9 IDE \\
                 SSH \\
                 Connecting to the InternetEthernetNetwork forwarding
                 \\
                 Using the serial console \\
                 Updating your software \\
                 The PyBBIO library \\
                 The Adafruit\_BBIO library \\
                 Summary \\
                 Chapter 3: Digital Outputs \\
                 GPIO modules \\
                 Kernel drivers \\
                 Pin multiplexing \\
                 Interactive GPIO \\
                 Calculating resistor values for LEDs \\
                 Driving higher currents from GPIO pins \\
                 Blink \\
                 Taking advantage of the OS \\
                 Multiprocessing \\
                 Running at startup \\
                 Summary \\
                 Chapter 4: PWM and ADC Subsystems \\
                 PWM \\
                 Fading an LED \\
                 Servo motors \\
                 ADC \\
                 Voltage divider \\
                 Voltage follower \\
                 Your first robot \\
                 Summary \\
                 Chapter 5: User Input \\
                 Buttons \\
                 Pull-up/pull-down resistors \\
                 PollingInterruptsPotentiometers \\
                 Summary \\
                 Chapter 6: Program Output \\
                 LED displays \\
                 LED bar graphs \\
                 7-segment displays \\
                 The LED matrix \\
                 SMTP \\
                 Character LCD \\
                 Summary \\
                 Chapter 7: Serial Communication \\
                 Serial communication \\
                 UART \\
                 I2C \\
                 SPI \\
                 Summary \\
                 Chapter 8: Interfacing with External Devices \\
                 Accelerometers \\
                 Hooking it up \\
                 Reading data \\
                 Writing a module \\
                 Using interrupts \\
                 Summary \\
                 Chapter 9: Using the Network \\
                 TCP/IP \\
                 HTTP \\
                 IoT Services \\
                 Phant \\
                 dweet.io \\
                 Freeboard \\
                 Summary \\
                 Chapter 10: a Practical Example \\
                 Weather station \\
                 Connecting to the Internet \\
                 Weather alerts \\
                 Summary \\
                 Appendix A: BeagleBone Black Pinout \\
                 Appendix B: Disabling HDMI \\
                 Index",
}

@Book{Hill:2015:LSP,
  author =       "Christian Hill",
  title =        "Learning scientific programming with {Python}",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "vii + 452",
  year =         "2015",
  ISBN =         "1-107-07541-6 (hardcover), 1-107-42822-X (paperback)",
  ISBN-13 =      "978-1-107-07541-2 (hardcover), 978-1-107-42822-5
                 (paperback)",
  LCCN =         "Q183.9 .H58 2015",
  bibdate =      "Mon Aug 21 08:44:22 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Learn to master basic programming tasks from scratch
                 with real-life scientifically relevant examples and
                 solutions drawn from both science and engineering.
                 Students and researchers at all levels are increasingly
                 turning to the powerful Python programming language as
                 an alternative to commercial packages and this
                 fast-paced introduction moves from the basics to
                 advanced concepts in one complete volume, enabling
                 readers to quickly gain proficiency. Beginning with
                 general programming concepts such as loops and
                 functions within the core Python 3 language, and moving
                 onto the NumPy, SciPy and Matplotlib libraries for
                 numerical programming and data visualisation, this
                 textbook also discusses the use of IPython notebooks to
                 build rich-media, shareable documents for scientific
                 analysis. Including a final chapter introducing
                 challenging topics such as floating-point precision and
                 algorithm stability, and with extensive online
                 resources to support advanced study, this textbook
                 represents a targeted package for students requiring a
                 solid foundation in Python programming.",
  acknowledgement = ack-nhfb,
  author-dates = "1974--",
  subject =      "Science; Data processing; Mathematics; Python
                 (Computer program language); SCIENCE / Mathematical
                 Physics.",
  tableofcontents = "1. Introduction \\
                 2. The core Python language I \\
                 3. Interlude: simple plotting with Pylab \\
                 4. The core Python language II \\
                 5. IPython and IPython notebook \\
                 6. NumPy \\
                 7. Matplotlib \\
                 8. SciPy \\
                 9. General scientific programming \\
                 Appendix A \\
                 Solutions \\
                 Index",
}

@Book{Hilpisch:2015:PF,
  author =       "Yves J. Hilpisch",
  title =        "{Python} for finance",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xv + 586",
  year =         "2015",
  ISBN =         "1-4919-4528-1 (paperback), 1-4919-4539-7 (e-book)",
  ISBN-13 =      "978-1-4919-4528-5 (paperback), 978-1-4919-4539-1
                 (e-book)",
  LCCN =         "HG176.5 H55 2015",
  bibdate =      "Sat Oct 24 05:57:34 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Finance; Statistical methods; Data processing;
                 Financial engineering; Python (Computer program
                 language); Programming languages (Electronic
                 computers)",
  tableofcontents = "Preface \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 I. Python and Finance \\
                 1. Why Python for Finance? \\
                 What Is Python? \\
                 Brief History of Python \\
                 The Python Ecosystem \\
                 Python User Spectrum \\
                 The Scientific Stack \\
                 Technology in Finance \\
                 Technology Spending \\
                 Technology as Enabler \\
                 Technology and Talent as Barriers to Entry \\
                 Ever-Increasing Speeds, Frequencies, Data Volumes \\
                 The Rise of Real-Time Analytics \\
                 Python for Finance \\
                 Finance and Python Syntax \\
                 Efficiency and Productivity Through Python \\
                 Shorter time-to-results \\
                 Ensuring high performance \\
                 From Prototyping to Production \\
                 Conclusions \\
                 Further Reading \\
                 2. Infrastructure and Tools \\
                 Python Deployment \\
                 Anaconda \\
                 Python Quant Platform \\
                 Tools \\
                 Python \\
                 IPython \\
                 From shell to browser \\
                 Basic usage \\
                 Markdown and LaTeX \\
                 Magic commands \\
                 System shell commands \\
                 Spyder \\
                 Conclusions \\
                 Further Reading \\
                 3. Introductory Examples \\
                 Implied Volatilities \\
                 Monte Carlo Simulation \\
                 Pure Python \\
                 Vectorization with NumPy \\
                 Full Vectorization with Log Euler Scheme \\
                 Graphical Analysis \\
                 Technical Analysis \\
                 Conclusions \\
                 Further Reading \\
                 II. Financial Analytics and Development \\
                 4. Data Types and Structures \\
                 Basic Data Types \\
                 Integers \\
                 Floats \\
                 Strings \\
                 Basic Data Structures \\
                 Tuples \\
                 Lists \\
                 Excursion: Control Structures \\
                 Excursion: Functional Programming \\
                 Dicts \\
                 Sets \\
                 NumPy Data Structures \\
                 Arrays with Python Lists \\
                 Regular NumPy Arrays \\
                 Structured Arrays \\
                 Vectorization of Code \\
                 Basic Vectorization \\
                 Memory Layout \\
                 Conclusions \\
                 Further Reading \\
                 5. Data Visualization \\
                 Two-Dimensional Plotting \\
                 One-Dimensional Data Set \\
                 Two-Dimensional Data Set \\
                 Other Plot Styles \\
                 Financial Plots \\
                 3D Plotting \\
                 Conclusions \\
                 Further Reading \\
                 6. Financial Time Series \\
                 pandas Basics \\
                 First Steps with DataFrame Class \\
                 Second Steps with DataFrame Class \\
                 Basic Analytics \\
                 Series Class \\
                 GroupBy Operations \\
                 Financial Data \\
                 Regression Analysis \\
                 High-Frequency Data \\
                 Conclusions \\
                 Further Reading \\
                 7. Input/Output Operations \\
                 Basic I/O with Python \\
                 Writing Objects to Disk \\
                 Reading and Writing Text Files \\
                 SQL Databases \\
                 Writing and Reading NumPy Arrays \\
                 I/O with pandas \\
                 SQL Database \\
                 From SQL to pandas \\
                 Data as CSV File \\
                 Data as Excel File \\
                 Fast I/O with PyTables \\
                 Working with Tables \\
                 Working with Compressed Tables \\
                 Working with Arrays \\
                 Out-of-Memory Computations \\
                 Conclusions \\
                 Further Reading \\
                 8. Performance Python \\
                 Python Paradigms and Performance \\
                 Memory Layout and Performance \\
                 Parallel Computing \\
                 The Monte Carlo Algorithm \\
                 The Sequential Calculation \\
                 The Parallel Calculation \\
                 Performance Comparison \\
                 multiprocessing \\
                 Dynamic Compiling \\
                 Introductory Example \\
                 Binomial Option Pricing \\
                 Static Compiling with Cython \\
                 Generation of Random Numbers on GPUs \\
                 Conclusions \\
                 Further Reading \\
                 9. Mathematical Tools \\
                 Approximation \\
                 Regression \\
                 Monomials as basis functions \\
                 Individual basis functions \\
                 Noisy data \\
                 Unsorted data \\
                 Multiple dimensions \\
                 Interpolation \\
                 Convex Optimization \\
                 Global Optimization \\
                 Local Optimization \\
                 Constrained Optimization \\
                 Integration \\
                 Numerical Integration \\
                 Integration by Simulation \\
                 Symbolic Computation \\
                 Basics \\
                 Equations \\
                 Integration \\
                 Differentiation \\
                 Conclusions \\
                 Further Reading \\
                 10. Stochastics \\
                 Random Numbers \\
                 Simulation \\
                 Random Variables \\
                 Stochastic Processes \\
                 Geometric Brownian motion \\
                 Square-root diffusion \\
                 Stochastic volatility \\
                 Jump diffusion \\
                 Variance Reduction \\
                 Valuation \\
                 European Options \\
                 American Options \\
                 Risk Measures \\
                 Value-at-Risk \\
                 Credit Value Adjustments \\
                 Conclusions \\
                 Further Reading \\
                 11. Statistics \\
                 Normality Tests \\
                 Benchmark Case \\
                 Real-World Data \\
                 Portfolio Optimization \\
                 The Data \\
                 The Basic Theory \\
                 Portfolio Optimizations \\
                 Efficient Frontier \\
                 Capital Market Line \\
                 Principal Component Analysis \\
                 The DAX Index and Its 30 Stocks \\
                 Applying PCA \\
                 Constructing a PCA Index \\
                 Bayesian Regression \\
                 Bayes s Formula \\
                 PyMC3 \\
                 Introductory Example \\
                 Real Data \\
                 Conclusions \\
                 Further Reading \\
                 12. Excel Integration \\
                 Basic Spreadsheet Interaction \\
                 Generating Workbooks (.xls) \\
                 Generating Workbooks (.xslx) \\
                 Reading from Workbooks \\
                 Using OpenPyxl \\
                 Using pandas for Reading and Writing \\
                 Scripting Excel with Python \\
                 Installing DataNitro \\
                 Working with DataNitro \\
                 Scripting with DataNitro \\
                 Plotting with DataNitro \\
                 User-defined functions \\
                 xlwings \\
                 Conclusions \\
                 Further Reading \\
                 13. Object Orientation and Graphical User Interfaces
                 \\
                 Object Orientation \\
                 Basics of Python Classes \\
                 Simple Short Rate Class \\
                 Cash Flow Series Class \\
                 Graphical User Interfaces \\
                 Short Rate Class with GUI \\
                 Updating of Values \\
                 Cash Flow Series Class with GUI \\
                 Conclusions \\
                 Further Reading \\
                 14. Web Integration \\
                 Web Basics \\
                 ftplib \\
                 httplib \\
                 urllib \\
                 Web Plotting \\
                 Static Plots \\
                 Interactive Plots \\
                 Real-Time Plots \\
                 Real-time FX data \\
                 Real-time stock price quotes \\
                 Rapid Web Applications \\
                 Traders Chat Room \\
                 Data Modeling \\
                 The Python Code \\
                 Imports and database preliminaries \\
                 Core functionality \\
                 Templating \\
                 Styling \\
                 Web Services \\
                 The Financial Model \\
                 The Implementation \\
                 Conclusions \\
                 Further Reading \\
                 III. Derivatives Analytics Library \\
                 15. Valuation Framework \\
                 Fundamental Theorem of Asset Pricing \\
                 A Simple Example \\
                 The General Results \\
                 Risk-Neutral Discounting \\
                 Modeling and Handling Dates \\
                 Constant Short Rate \\
                 Market Environments \\
                 Conclusions \\
                 Further Reading \\
                 16. Simulation of Financial Models \\
                 Random Number Generation \\
                 Generic Simulation Class \\
                 Geometric Brownian Motion \\
                 The Simulation Class \\
                 A Use Case \\
                 Jump Diffusion \\
                 The Simulation Class \\
                 A Use Case \\
                 Square-Root Diffusion \\
                 The Simulation Class \\
                 A Use Case \\
                 Conclusions \\
                 Further Reading \\
                 17. Derivatives Valuation \\
                 Generic Valuation Class \\
                 European Exercise \\
                 The Valuation Class \\
                 A Use Case \\
                 American Exercise \\
                 Least-Squares Monte Carlo \\
                 The Valuation Class \\
                 A Use Case \\
                 Conclusions \\
                 Further Reading \\
                 18. Portfolio Valuation \\
                 Derivatives Positions \\
                 The Class \\
                 A Use Case \\
                 Derivatives Portfolios \\
                 The Class \\
                 A Use Case \\
                 Conclusions \\
                 Further Reading \\
                 19. Volatility Options \\
                 The VSTOXX Data \\
                 VSTOXX Index Data \\
                 VSTOXX Futures Data \\
                 VSTOXX Options Data \\
                 Model Calibration \\
                 Relevant Market Data \\
                 Option Modeling \\
                 Calibration Procedure \\
                 American Options on the VSTOXX \\
                 Modeling Option Positions \\
                 The Options Portfolio \\
                 Conclusions \\
                 Further Reading \\
                 A. Selected Best Practices \\
                 Python Syntax \\
                 Documentation \\
                 Unit Testing \\
                 B. Call Option Class \\
                 C. Dates and Times \\
                 Python \\
                 NumPy \\
                 pandas \\
                 Index \\
                 About the Author \\
                 Colophon",
}

@Book{Hosmer:2015:PPN,
  editor =       "Chet Hosmer and Gary C. Kessler",
  title =        "Passive {Python} network mapping: {P2NMAP}",
  publisher =    pub-SYNGRESS,
  address =      pub-SYNGRESS:adr,
  year =         "2015",
  ISBN =         "0-12-802721-5, 0-12-802742-8 (e-book)",
  ISBN-13 =      "978-0-12-802721-9, 978-0-12-802742-4 (e-book)",
  LCCN =         "TK5105.59 .H67 2015",
  bibdate =      "Fri Oct 23 17:37:58 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This book reveals a revolutionary and open source
                 method for exposing nefarious network activity. Hosmer
                 shows how to effectively and definitively passively map
                 networks. Active or probing methods to network mapping
                 have traditionally been used, but they have many
                 drawbacks - they can disrupt operations, crash systems,
                 and - most importantly - miss critical nefarious
                 activity. It provides new innovations to passive
                 network mapping, while delivering open source
                 Python-based tools that can be put into practice
                 immediately.",
  acknowledgement = ack-nhfb,
  subject =      "Computer networks; Security measures; Python (Computer
                 program language); Open source software; Peer-to-peer
                 architecture (Computer networks)",
  tableofcontents = "Dedication \\
                 Biography \\
                 Preface \\
                 Acknowledgments \\
                 1: Introduction \\
                 Abstract \\
                 Conventions Used in This Text \\
                 What is Python Passive Network Mapping or P2NMAP? \\
                 Why Does This Method Cast a Larger Net? \\
                 How Can Active Network Mapping Actually Hurt You? \\
                 Organization of the Book \\
                 Review \\
                 Summary Questions \\
                 2: What You DON T Know About Your Network \\
                 Abstract \\
                 What s Running on Your Network Might Surprise You \\
                 OS Fingerprinting \\
                 What Open Ports or Services Don t You Know About? \\
                 Who s Touching Your Network? \\
                 Review \\
                 Summary Questions \\
                 3: Capturing Network Packets Using Python \\
                 Abstract \\
                 Setting up a Python Passive Network Mapping Environment
                 \\
                 The Art of the Silent Capture \\
                 Python Source Code \\
                 Review \\
                 Summary Questions \\
                 4: Packet Capture Analysis \\
                 Abstract \\
                 Packet Capture Analysis \\
                 Setting up Options for Analysis \\
                 Performing Analysis \\
                 Review \\
                 Summary Questions \\
                 5: PCAP Extractor and OS Fingerprinting \\
                 Abstract \\
                 PCAP Extraction \\
                 Passive OS Fingerprinting \\
                 Review \\
                 Summary Questions \\
                 6: Future Considerations and Challenge Problems \\
                 Abstract \\
                 Author Observations \\
                 Author Predictions \\
                 Challenge Problems \\
                 More Information \\
                 Subject Index",
}

@Article{Hughes:2015:PSS,
  author =       "Adam Hughes and Zhaowen Liu and M. Reeves",
  title =        "\pkg{Scikit-spectra}: Explorative Spectroscopy in
                 {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "3",
  number =       "1",
  pages =        "e6--??",
  day =          "05",
  month =        jun,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.bs",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:49 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.bs/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Humer:2015:DSL,
  author =       "Christian Humer and Christian Wimmer and Christian
                 Wirth and Andreas W{\"o}{\ss} and Thomas
                 W{\"u}rthinger",
  title =        "A domain-specific language for building
                 self-optimizing {AST} interpreters",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "3",
  pages =        "123--132",
  month =        mar,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2775053.2658776",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:23 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Self-optimizing AST interpreters dynamically adapt to
                 the provided input for faster execution. This
                 adaptation includes initial tests of the input, changes
                 to AST nodes, and insertion of guards that ensure
                 assumptions still hold. Such specialization and
                 speculation is essential for the performance of dynamic
                 programming languages such as JavaScript. In
                 traditional procedural and objectoriented programming
                 languages it can be tedious to write selfoptimizing AST
                 interpreters, as those languages fail to provide
                 constructs that would specifically support that. This
                 paper introduces a declarative domain-specific language
                 (DSL) that greatly simplifies writing self-optimizing
                 AST interpreters. The DSL supports specialization of
                 operations based on types of the input and other
                 properties. It can then use these specializations
                 directly or chain them to represent the operation with
                 the minimum amount of code possible. The DSL
                 significantly reduces the complexity of expressing
                 specializations for those interpreters. We use it in
                 our high-performance implementation of JavaScript,
                 where 274 language operations have an average of about
                 4 and a maximum of 190 specializations. In addition,
                 the DSL is used in implementations of Ruby, Python, R,
                 and Smalltalk.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "GPCE '14 conference proceedings.",
}

@Book{Johansson:2015:NPP,
  author =       "Robert Johansson",
  title =        "Numerical Python: a Practical Techniques Approach for
                 Industry",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxii + 487",
  year =         "2015",
  ISBN =         "1-4842-0554-5 (paperback), 1-4842-0553-7 (e-book)",
  ISBN-13 =      "978-1-4842-0554-9 (paperback), 978-1-4842-0553-2
                 (e-book)",
  LCCN =         "????",
  bibdate =      "Wed Jun 22 09:00:29 MDT 2016",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "The expert's voice in PYTHON; Books for professionals
                 by professionals",
  URL =          "http://www.gbv.de/dms/tib-ub-hannover/841207984.pdf",
  acknowledgement = ack-nhfb,
  subject =      "Python; Numerische Mathematik",
}

@Book{Joshi:2015:OPE,
  author =       "Prateek Joshi",
  title =        "{OpenCV} with {Python} by example: build real-world
                 computer vision applications and develop cool demos
                 using {OpenCV} for {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "296 (est.)",
  year =         "2015",
  ISBN =         "1-78528-393-6, 1-78528-987-X",
  ISBN-13 =      "978-1-78528-393-2, 978-1-78528-987-3",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 15:56:15 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781785283932",
  acknowledgement = ack-nhfb,
  tableofcontents = "OpenCV with Python By Example \\
                 Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Applying Geometric Transformations to Images \\
                 Installing OpenCV-Python \\
                 Windows \\
                 Mac OS X \\
                 Linux (for Ubuntu) \\
                 Reading, displaying, and saving images \\
                 What just happened? \\
                 Loading and saving an image \\
                 Image color spaces \\
                 Converting between color spaces \\
                 What just happened? \\
                 Image translation \\
                 What just happened? \\
                 Image rotation \\
                 What just happened? \\
                 Image scaling \\
                 What just happened? \\
                 Affine transformations \\
                 What just happened? \\
                 Projective transformations \\
                 What just happened? \\
                 Image warping \\
                 Summary \\
                 2. Detecting Edges and Applying Image Filters \\
                 2D convolution \\
                 Blurring \\
                 The size of the kernel versus the blurriness \\
                 Edge detection \\
                 Motion blur \\
                 Under the hood \\
                 Sharpening \\
                 Understanding the pattern \\
                 Embossing \\
                 Erosion and dilation \\
                 Afterthought \\
                 Creating a vignette filter \\
                 What's happening underneath? \\
                 How do we move the focus around? \\
                 Enhancing the contrast in an image \\
                 How do we handle color images? \\
                 Summary \\
                 3. Cartoonizing an Image \\
                 Accessing the webcam \\
                 Under the hood \\
                 Keyboard inputs \\
                 Interacting with the application \\
                 Mouse inputs \\
                 What's happening underneath? \\
                 Interacting with a live video stream \\
                 How did we do it? \\
                 Cartoonizing an image \\
                 Deconstructing the code \\
                 Summary \\
                 4. Detecting and Tracking Different Body Parts \\
                 Using Haar cascades to detect things \\
                 What are integral images? \\
                 Detecting and tracking faces \\
                 Understanding it better \\
                 Fun with faces \\
                 Under the hood \\
                 Detecting eyes \\
                 Afterthought \\
                 Fun with eyes \\
                 Positioning the sunglasses \\
                 Detecting ears \\
                 Detecting a mouth \\
                 It's time for a moustache \\
                 Detecting a nose \\
                 Detecting pupils \\
                 Deconstructing the code \\
                 Summary \\
                 5. Extracting Features from an Image \\
                 Why do we care about keypoints? \\
                 What are keypoints? \\
                 Detecting the corners \\
                 Good Features To Track \\
                 Scale Invariant Feature Transform (SIFT) \\
                 Speeded Up Robust Features (SURF) \\
                 Features from Accelerated Segment Test (FAST) \\
                 Binary Robust Independent Elementary Features (BRIEF)
                 \\
                 Oriented FAST and Rotated BRIEF (ORB) \\
                 Summary \\
                 6. Creating a Panoramic Image \\
                 Matching keypoint descriptors \\
                 How did we match the keypoints? \\
                 Understanding the matcher object \\
                 Drawing the matching keypoints \\
                 Creating the panoramic image \\
                 Finding the overlapping regions \\
                 Stitching the images \\
                 What if the images are at an angle to each other? \\
                 Why does it look stretched? \\
                 Summary \\
                 7. Seam Carving \\
                 Why do we care about seam carving? \\
                 How does it work? \\
                 How do we define ``interesting''? \\
                 How do we compute the seams? \\
                 Can we expand an image? \\
                 Can we remove an object completely? \\
                 How did we do it? \\
                 Summary \\
                 8. Detecting Shapes and Segmenting an Image \\
                 Contour analysis and shape matching \\
                 Approximating a contour \\
                 Identifying the pizza with the slice taken out \\
                 How to censor a shape? \\
                 What is image segmentation? \\
                 How does it work? \\
                 Watershed algorithm \\
                 Summary \\
                 9. Object Tracking \\
                 Frame differencing \\
                 Colorspace based tracking \\
                 Building an interactive object tracker \\
                 Feature based tracking \\
                 Background subtraction \\
                 Summary \\
                 10. Object Recognition \\
                 Object detection versus object recognition \\
                 What is a dense feature detector? \\
                 What is a visual dictionary? \\
                 What is supervised and unsupervised learning? \\
                 What are Support Vector Machines? \\
                 What if we cannot separate the data with simple
                 straight lines? \\
                 How do we actually implement this? \\
                 What happened inside the code? \\
                 How did we build the trainer? \\
                 Summary \\
                 11. Stereo Vision and 3D Reconstruction \\
                 What is stereo correspondence? \\
                 What is epipolar geometry? \\
                 Why are the lines different as compared to SIFT? \\
                 Building the 3D map \\
                 Summary \\
                 12. Augmented Reality \\
                 What is the premise of augmented reality? \\
                 What does an augmented reality system look like? \\
                 Geometric transformations for augmented reality \\
                 What is pose estimation? \\
                 How to track planar objects? \\
                 What happened inside the code? \\
                 How to augment our reality? \\
                 Mapping coordinates from 3D to 2D \\
                 How to overlay 3D objects on a video? \\
                 Let's look at the code \\
                 Let's add some movements \\
                 Summary \\
                 Index",
}

@Book{Kasampalis:2015:MPD,
  author =       "Sakis Kasampalis",
  title =        "Mastering {Python} design patterns",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2015",
  ISBN =         "1-78398-932-7, 1-78398-933-5 (e-book)",
  ISBN-13 =      "978-1-78398-932-4, 978-1-78398-933-1 (e-book)",
  LCCN =         "QA76.73.P98 K37 2015",
  bibdate =      "Sat Oct 24 06:10:00 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This book is for Python programmers with an
                 intermediate background and an interest in design
                 patterns implemented in idiomatic Python. Programmers
                 of other languages who are interested in Python can
                 also benefit from this book, but it would be better if
                 they first read some introductory materials that
                 explain how things are done in Python.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer software;
                 Development; Development.; Python (Computer program
                 language)",
  tableofcontents = "Preface \\
                 Design patterns \\
                 Common misunderstandings about design patterns \\
                 Design patterns and Python \\
                 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. The Factory Pattern \\
                 Factory Method \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Abstract Factory \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 2. The Builder Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 3. The Prototype Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 4. The Adapter Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 5. The Decorator Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 6. The Facade Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 7. The Flyweight Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 8. The Model-View-Controller Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 9. The Proxy Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 10. The Chain of Responsibility Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 11. The Command Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 12. The Interpreter Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 13. The Observer Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 14. The State Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 15. The Strategy Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 16. The Template Pattern \\
                 A real-life example \\
                 A software example \\
                 Use cases \\
                 Implementation \\
                 Summary \\
                 Index",
}

@Book{Kazil:2015:DWU,
  author =       "Jacqueline Kazil and Katharine Jarmul",
  title =        "Data Wrangling Using {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-4919-4881-7",
  ISBN-13 =      "978-1-4919-4881-1",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 15:37:45 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 Who should read this book \\
                 Who should not read this book \\
                 How this book is organized \\
                 What is data wrangling? \\
                 What do to if you get stuck \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 1. Introduction to Python \\
                 Why Python \\
                 Getting started with Python \\
                 Which Python Version \\
                 Setting up Python on your machine \\
                 Test driving Python \\
                 Install pip \\
                 Install a code editor \\
                 Optional: Install iPython \\
                 Chapter Summary \\
                 2. Python basics \\
                 Basic data types \\
                 Strings \\
                 Integers and Floats \\
                 Data containers \\
                 Variables \\
                 Lists \\
                 Dictionaries \\
                 What can the various data types do? \\
                 String Methods: Things Strings Can Do \\
                 Numerical Methods: Things Numbers (Integers, Floats and
                 Decimals) Can Do \\
                 List Methods: Things Lists Can Do \\
                 Dictionary Methods: Things Dictionaries Can Do \\
                 Helpful tools: type, dir, and help \\
                 Type \\
                 Dir \\
                 Help \\
                 Putting it all together \\
                 What does it all mean? \\
                 Chapter Summary \\
                 3. Data meant to be read by machines \\
                 CSV data \\
                 How to import CSV data \\
                 Saving the code to a file; Running from command line
                 \\
                 JSON data \\
                 How to import JSON data \\
                 XML data \\
                 How to import XML data \\
                 Chapter Summary \\
                 4. Working with Excel Files \\
                 Installing Python Packages \\
                 Parsing Excel Files \\
                 Getting Started with Parsing \\
                 Chapter Summary \\
                 5. PDFs and Problem Solving in Python \\
                 Avoid Using PDFs \\
                 Programmatic approaches to PDF parsing \\
                 Opening and reading using Slate \\
                 Converting PDF to Text \\
                 Parsing PDFs using PDFMiner \\
                 Learning how to solve problems \\
                 Exercise: Use Table extraction, try a different library
                 \\
                 Exercise: Clean the data manually \\
                 Exercise: Try another tool \\
                 Uncommon file types \\
                 Chapter Summary \\
                 6. Acquiring & Storing Data \\
                 Not all data is created equal \\
                 Fact checking \\
                 Readability, Cleanliness, Longevity \\
                 Where to find data \\
                 Using a telephone \\
                 US Government Data \\
                 Government and Civic Open Data Worldwide \\
                 Organization & Non-Government Organization (NGO) Data
                 \\
                 Education & University Data \\
                 Medical and Scientific Data \\
                 Crowd-sourced Data & APIs \\
                 Case studies: Example Data Investigation \\
                 Ebola Crisis \\
                 Train Safety \\
                 Football Salaries \\
                 Child Labor \\
                 Storing your Data: When, Why and How? \\
                 Databases: a brief introduction \\
                 Relational Databases: MySQL and PostgreSQL \\
                 Non-relational Databases: NoSQL \\
                 Setting up your local database with Python \\
                 When to use a simple file \\
                 Cloud-storage and Python \\
                 Local storage and Python \\
                 Alternative data storage \\
                 Chapter Summary",
}

@Book{Kinder:2015:SGP,
  author =       "Jesse M. Kinder and Philip Charles Nelson",
  title =        "A student's guide to {Python} for physical modeling",
  publisher =    pub-PRINCETON,
  address =      pub-PRINCETON:adr,
  pages =        "xiii + 139",
  year =         "2015",
  ISBN =         "0-691-16958-6 (hardback), 0-691-17050-9 (paperback)",
  ISBN-13 =      "978-0-691-16958-3 (hardback), 978-0-691-17050-3
                 (paperback)",
  LCCN =         "QA76.73.P98 K54 2015",
  bibdate =      "Fri Oct 20 14:53:08 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  author-dates = "1978--",
  subject =      "Python (Computer program language)",
  tableofcontents = "Getting started with Python \\
                 Structure and control \\
                 Data in, results out \\
                 First computer lab \\
                 More Python constructions \\
                 Second computer lab \\
                 Still more techniques \\
                 Third computer lab",
}

@Book{Kinsley:2015:BPG,
  author =       "Harrison Kinsley and Will McGugan",
  title =        "Beginning {Python} Games Development: With {Pygame}",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  edition =      "Second",
  pages =        "xxii + 308 + 53",
  year =         "2015",
  DOI =          "https://doi.org/10.1007/978-1-4842-0970-7",
  ISBN =         "1-4842-0970-2, 1-4842-0971-0",
  ISBN-13 =      "978-1-4842-0970-7, 978-1-4842-0971-4",
  LCCN =         "QA75.5-76.95",
  bibdate =      "Fri Oct 23 16:50:06 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "SpringerLink: B{\"u}cher",
  URL =          "http://www.springerlink.com/content/978-1-4842-0970-7",
  acknowledgement = ack-nhfb,
  subject =      "Computer Science; Computer Science, general;
                 Computerspiel.; Pygame.; Python (Programmiersprache)",
  tableofcontents = "About the Authors \\
                 About the Technical Reviewer \\
                 Introduction \\
                 1: Introducing Python \\
                 Your First Look at Python \\
                 Numbers \\
                 Strings \\
                 Lists and Tuples \\
                 Unpacking \\
                 Loops \\
                 Python in Practice \\
                 Summary \\
                 2: Exploring Python \\
                 Creating Scripts \\
                 Working with Logic \\
                 Understanding Booleans \\
                 if Statement \\
                 and Operator \\
                 Or Operator \\
                 Not Operator \\
                 else Statement \\
                 elif Statement \\
                 Understanding Functions \\
                 Defining Functions \\
                 Default Values \\
                 Introducing Object-Oriented Programming \\
                 Using Classes \\
                 Creating an Object \\
                 Adding to our Class \\
                 Python in Practice \\
                 Using the Standard Library \\
                 Introducing import \\
                 Useful Modules for Games \\
                 Math Module \\
                 Summary \\
                 3: Introducing Pygame \\
                 History of Pygame \\
                 Installing Pygame \\
                 Using Pygame \\
                 Hello World Revisited \\
                 Understanding Events \\
                 Retrieving Events \\
                 Handling Mouse Motion Events \\
                 Handling Mouse Button Events \\
                 Handling Keyboard Events \\
                 Filtering Events \\
                 Posting Events \\
                 Opening a Display \\
                 Full-Screen Displays \\
                 Windows with No Borders \\
                 Additional Display Flags \\
                 Using the Font Module \\
                 Pygame in Action \\
                 Summary \\
                 4: Creating Visuals \\
                 Using Pixel Power \\
                 Working with Color \\
                 Representing Color in Pygame \\
                 Scaling Colors \\
                 Blending Colors \\
                 Using Images \\
                 Creating Images with an Alpha Channel \\
                 Storing Images \\
                 Working with Surface Objects \\
                 Creating Surfaces \\
                 Filling Surfaces \\
                 Getting Pixels in a Surface \\
                 Blitting \\
                 Drawing with Pygame \\
                 pygame.draw.rect \\
                 pygame.draw.polygon \\
                 pygame.draw.circle \\
                 pygame.draw.ellipse \\
                 pygame.draw.arc \\
                 pygame.draw.line \\
                 pygame.draw.lines \\
                 pygame.draw.aaline \\
                 pygame.draw.aalines \\
                 Summary \\
                 5: Making Things Move \\
                 Understanding Frame Rate \\
                 Moving in a Straight Line \\
                 It's About Time \\
                 Diagonal Movement \\
                 Exploring Vectors \\
                 Creating Vectors \\
                 Storing Vectors \\
                 Vector Magnitude \\
                 Unit Vectors \\
                 Vector Addition \\
                 Vector Subtraction \\
                 Vector Negation \\
                 Vector Multiplication and Division \\
                 Using Vectors to Create Movement \\
                 Diagonal Movement \\
                 Game Objects Vector Class \\
                 Summary \\
                 6: Accepting User Input \\
                 Controlling the Game \\
                 Understanding Keyboard Control \\
                 Detecting Key Presses \\
                 Directional Movement with Keys \\
                 Rotational Movement with Keys \\
                 Implementing Mouse Control \\
                 Rotational Movement with the Mouse \\
                 Mouse Gameplay \\
                 Implementing Joystick Control \\
                 Joystick Basics \\
                 Joystick Buttons \\
                 Joystick Direction Controls \\
                 Joystick Objects \\
                 Seeing Joysticks in Action \\
                 Summary \\
                 7: Take Me to Your Leader \\
                 Creating Artificial Intelligence for Games \\
                 What Is Intelligence? \\
                 Exploring AI \\
                 Implementing State Machines \\
                 Game Entities \\
                 Building Worlds \\
                 Ant Entity Class \\
                 Building the Brains \\
                 Summary \\
                 8: Moving into the Third Dimension \\
                 Creating the Illusion of Depth \\
                 Understanding 3D Space \\
                 Using 3D Vectors \\
                 Time-Based Movement in 3D \\
                 Projecting 3D Points \\
                 Parallel Projections \\
                 Perspective Projections \\
                 Field of View \\
                 A 3D World \\
                 Summary \\
                 9: Exploring the Third Dimension \\
                 What Is a Matrix? \\
                 Using the Matrix Class \\
                 Matrix Components \\
                 Translation Matrix \\
                 Scale Matrix \\
                 Rotation Matrix \\
                 Matrix Multiplication \\
                 Matrices in Action \\
                 Introducing OpenGL \\
                 Installing PyOpenGL \\
                 Initializing OpenGL \\
                 OpenGL Primer \\
                 Seeing OpenGL in Action \\
                 Summary \\
                 10: Making Things Go Boom \\
                 What Is Sound? \\
                 Storing Sound \\
                 Sound Formats \\
                 Creating Sound Effects \\
                 Stock Sound Effects \\
                 Playing Sounds with Pygame \\
                 Sound Objects \\
                 Sound Channels \\
                 Mixer Functions \\
                 Hearing the Mixer in Action \\
                 Playing Music with Pygame \\
                 Obtaining Music \\
                 Playing Music \\
                 Hearing Music in Action \\
                 Summary \\
                 11: Lights, Camera, Action! \\
                 Working with Textures \\
                 Uploading Textures with OpenGL \\
                 Texture Coordinates \\
                 Rendering Textures \\
                 Deleting Textures \\
                 Seeing Textures in Action \\
                 Mip Mapping \\
                 Texture Parameters \\
                 Min and Max Filters \\
                 Texture Wrapping \\
                 Working with Models \\
                 Storing Models \\
                 OBJ Format for 3D Models \\
                 Parsing OBJ Files \\
                 Material Library Files \\
                 Seeing Models in Action \\
                 Using the Model3D Class \\
                 Summary \\
                 12: Setting the Scene with OpenGL \\
                 Understanding Lighting \\
                 Enabling Lighting \\
                 Setting Light Parameters \\
                 Working with Materials \\
                 Tweaking Parameters \\
                 Managing Lights \\
                 Understanding Blending \\
                 Using Blending \\
                 Alpha Blending \\
                 Additive Blending \\
                 Subtractive Blending \\
                 Seeing Blending in Action \\
                 Blending Issues \\
                 Understanding Fog \\
                 Fog Parameters \\
                 Seeing Fog in Action \\
                 Rendering the Backdrop \\
                 Skyboxes \\
                 Seeing Skyboxes in Action \\
                 Skybox Enhancements \\
                 Where to Go for Help \\
                 Summary \\
                 Appendix A: Game Object Reference \\
                 Importing \\
                 Contributing \\
                 gameobjects.color.Color \\
                 Constructor \\
                 Attributes \\
                 Methods \\
                 Class Methods \\
                 gameobjects.matrix44.Matrix44 \\
                 Constructor \\
                 Attributes \\
                 Methods \\
                 Class Methods \\
                 gameobjects.vector2.Vector2 \\
                 Constructor \\
                 Attributes \\
                 Methods \\
                 Class Methods \\
                 gameobjects.vector3.Vector3 \\
                 Constructor \\
                 Attributes \\
                 Methods \\
                 Class Methods \\
                 Appendix B: Packaging Your Game \\
                 Creating Windows Packages \\
                 Using cx_Freeze \\
                 Building the Installer \\
                 Creating Packages for Linux \\
                 Creating Packages for the Mac \\
                 Index",
}

@Article{Koulouri:2015: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 =        feb,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2662412",
  ISSN =         "1946-6226",
  bibdate =      "Tue Feb 24 18:20:55 MST 2015",
  bibsource =    "http://www.acm.org/pubs/toce;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://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{Lambert:2015:PPT,
  author =       "Kenneth Alfred Lambert",
  title =        "{Python} programming for teens",
  publisher =    "Cengage Learning PTR",
  address =      "Boston, MA, USA",
  pages =        "xxviii + 243",
  year =         "2015",
  ISBN =         "1-305-27195-5 (paperback), 1-305-27196-3 (e-book)",
  ISBN-13 =      "978-1-305-27195-1 (paperback), 978-1-305-27196-8
                 (e-book)",
  LCCN =         "QA76.73.P98 L338 2015",
  bibdate =      "Sat Oct 24 06:52:07 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Provides information on how to program in Python,
                 including program development, the basics of using
                 classes and objects, 2-D geometry, fractals,
                 animations, recursion, and problem solving.",
  acknowledgement = ack-nhfb,
  author-dates = "1951--",
  subject =      "Python (Computer program language); Juvenile
                 literature; Python (Computer program language)",
  tableofcontents = "Dedication \\
                 Acknowledgments \\
                 About the Author \\
                 Contents \\
                 Introduction \\
                 1 Getting Started with Python \\
                 Taking Care of Preliminaries \\
                 Working with Numbers \\
                 Working with Strings \\
                 Working with Lists \\
                 Working with Dictionaries \\
                 Summary \\
                 Exercises \\
                 2 Getting Started with Turtle Graphics \\
                 Looking at the Turtle and Its World \\
                 Using Basic Movement Operations \\
                 Setting and Examining the Turtle s State \\
                 Working with Colors \\
                 Drawing Circles \\
                 Drawing Text \\
                 Using the Turtle s Window and Canvas \\
                 Using a Configuration File \\
                 Summary \\
                 Exercises \\
                 3 Control Structures: Sequencing, Iteration, and
                 Selection \\
                 Repeating a Sequence of Statements: Iteration \\
                 Asking Questions: Boolean Expressions \\
                 Making Choices: Selection Statements \\
                 Using Selection to Control Iteration \\
                 Summary \\
                 Exercises \\
                 4 Composing, Saving, and Running Programs \\
                 Exploring the Program Development Process \\
                 Composing a Program \\
                 Running a Program \\
                 Looking Behind the Scenes: How Python Runs Programs \\
                 Summary \\
                 Exercises \\
                 5 Defining Functions \\
                 Basic Elements of Function Definitions \\
                 Functions as General Solutions to Problems \\
                 Modules as Libraries of Functions \\
                 Math Topic: Graphing Functions \\
                 Refactoring a Program with Functions \\
                 Summary \\
                 Exercises \\
                 6 User Interaction with the Mouse and the Keyboard \\
                 Using Dialog-Based Input \\
                 Responding to Mouse Events \\
                 Responding to Keyboard Events \\
                 Using Module Variables \\
                 Using Two Mouse Buttons \\
                 Summary \\
                 Exercises \\
                 7 Recursion \\
                 Recursive Design \\
                 Recursive Patterns in Art: Abstract Painting \\
                 Recursive Patterns in Nature: Fractals \\
                 Summary \\
                 Exercises \\
                 8 Objects and Classes \\
                 Objects, Methods, and Classes in Turtle Graphics \\
                 A New Class: RegularPolygon \\
                 New Class: Menu Item \\
                 A Grid Class for the Game of Tic-Tac-Toe \\
                 Summary \\
                 Exercises \\
                 9 Animations \\
                 Animating the Turtle with a Timer \\
                 Animating Many Turtles \\
                 Creating Custom Turtle Shapes \\
                 Summary \\
                 Exercises \\
                 Appendix A Turtle Graphics Commands \\
                 Turtle Functions \\
                 Functions Related to the Window and Canvas \\
                 Appendix B Solutions to Exercises \\
                 Exercise Solutions for Chapter 1 \\
                 Exercise Solutions for Chapter 2 \\
                 Exercise Solutions for Chapter 3 \\
                 Exercise Solutions for Chapter 4 \\
                 Exercise Solutions for Chapter 5 \\
                 Exercise Solutions for Chapter 6 \\
                 Exercise Solutions for Chapter 7 \\
                 Exercise Solutions for Chapter 8 \\
                 Exercise Solutions for Chapter 9 \\
                 Index",
}

@Book{Lawhead:2015:QPP,
  author =       "Joel Lawhead",
  title =        "{QGIS Python} programming cookbook: over 140 recipes
                 to help you turn {QGIS} from a desktop {GIS} tool into
                 a powerful automated geospatial framework",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xii + 315",
  year =         "2015",
  ISBN =         "1-78398-498-8, 1-78398-499-6 (e-book)",
  ISBN-13 =      "978-1-78398-498-5, 978-1-78398-499-2 (e-book)",
  LCCN =         "QA76.73.P98 .L394 2015",
  bibdate =      "Sat Oct 24 05:46:12 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language);
                 Geoinformationssystem.; Open Source.; Python (Computer
                 program language)",
  tableofcontents = "Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Sections \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Automating QGIS \\
                 Introduction \\
                 Installing QGIS for development \\
                 Getting ready \\
                 How to do it \\
                 Installing PyQGIS using the Debian package manager \\
                 Installing PyQGIS using the RPM package manager \\
                 Setting the environment variables \\
                 Setting the environment variables on Windows \\
                 Setting the environment variables on Linux \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Finding the PyQGIS path on Windows \\
                 Finding the location of the QGIS Python installation on
                 other platforms \\
                 Using the QGIS Python console for interactive control
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using the Python ScriptRunner plugin \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Setting up your QGIS IDE \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 Adding the QGIS Python interpreter on Windows \\
                 Adding the PyQGIS module paths to the interpreter \\
                 Adding the PyQGIS API to the IDE \\
                 Adding environment variables \\
                 How it works \ldots{} \\
                 Debugging QGIS Python scripts \\
                 How to do it \ldots{} \\
                 Configuring QGIS \\
                 Configuring Eclipse \\
                 Testing the debugger \\
                 How it works \ldots{} \\
                 Navigating the PyQGIS API \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Creating a QGIS plugin \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Distributing a plugin \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating a standalone application \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \\
                 Storing and reading global preferences \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Storing and reading project preferences \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Accessing the script path from within your script \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 2. Querying Vector Data \\
                 Introduction \\
                 Loading a vector layer from a file sample \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Loading a vector layer from a spatial database \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Examining vector layer features \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Examining vector layer attributes \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Filtering a layer by geometry \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Filtering a layer by attributes \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Buffering a feature intermediate \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Measuring the distance between two points \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Measuring the distance along a line sample \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Calculating the area of a polygon \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a spatial index \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Calculating the bearing of a line \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Loading data from a spreadsheet \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 3. Editing Vector Data \\
                 Introduction \\
                 Creating a vector layer in memory \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \ldots{} \\
                 Adding a point feature to a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a line feature to a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a polygon feature to a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a set of attributes to a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a field to a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Joining a shapefile attribute table to a CSV file \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Moving vector layer geometry \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Changing a vector layer feature's attribute \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Deleting a vector layer feature \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Deleting a vector layer attribute \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Reprojecting a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Converting a shapefile to KML \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Merging shapefiles \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Splitting a shapefile \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Generalizing a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Dissolving vector shapes \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Performing a union on vector shapes \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Rasterizing a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 4. Using Raster Data \\
                 Introduction \\
                 Loading a raster layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Getting the cell size of a raster layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Obtaining the width and height of a raster \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Counting raster bands \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Swapping raster bands \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Querying the value of a raster at a specified point \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Reprojecting a raster \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Creating an elevation hillshade \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating vector contours from elevation data \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Sampling a raster dataset using a regular grid \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Adding elevation data to line vertices using a digital
                 elevation model \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Creating a common extent for rasters \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Resampling raster resolution \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Counting the unique values in a raster \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Mosaicing rasters \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Converting a TIFF image to a JPEG image \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating pyramids for a raster \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Converting a pixel location to a map coordinate \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Converting a map coordinate to a pixel location \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a KML image overlay for a raster \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Classifying a raster \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Converting a raster to a vector \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Georeferencing a raster from control points \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Clipping a raster using a shapefile \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 5. Creating Dynamic Maps \\
                 Introduction \\
                 Accessing the map canvas \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Changing the map units \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Iterating over layers \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Symbolizing a vector layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Rendering a single band raster using a color ramp
                 algorithm \\
                 Getting ready \\
                 How to do it \\
                 How it works \ldots{} \\
                 Creating a complex vector layer symbol \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using icons as vector layer symbols \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Creating a graduated vector layer symbol renderer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a categorized vector layer symbol \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a map bookmark \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Navigating to a map bookmark \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Setting scale-based visibility for a layer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using SVG for layer symbols \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using pie charts for symbols \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Using the OpenStreetMap service \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using the Bing aerial image service \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding real-time weather data from OpenWeatherMap \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Labeling features \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Changing map layer transparency \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding standard map tools to the canvas \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using a map tool to draw points on the canvas \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using a map tool to draw polygons or lines on the
                 canvas \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Building a custom selection tool \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a mouse coordinate tracking tool \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 6. Composing Static Maps \\
                 Introduction \\
                 Creating the simplest map renderer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Using the map composer \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \ldots{} \\
                 Adding labels to a map for printing \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a scale bar to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a north arrow to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Adding a logo to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a legend to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a custom shape to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Adding a grid to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a table to the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a world file to a map image \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Saving a map to a project \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Loading a map from a project \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 7. Interacting with the User \\
                 Introduction \\
                 Using log files \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a simple message dialog \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \ldots{} \\
                 Creating a warning dialog \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating an error dialog \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Displaying a progress bar \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \ldots{} \\
                 Creating a simple text input dialog \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a file input dialog \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \ldots{} \\
                 Creating a combobox \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating radio buttons \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating checkboxes \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating tabs \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Stepping the user through a wizard \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Keeping dialogs on top \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 8. QGIS Workflows \\
                 Introduction \\
                 Creating an NDVI \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Geocoding addresses \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Creating raster footprints \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Performing network analysis \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Routing along streets \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Tracking a GPS \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Creating a mapbook \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Finding the least cost path \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Performing nearest neighbor analysis \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a heat map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Creating a dot density map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Collecting field data \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Computing road slope using elevation data \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Geolocating photos on the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Image change detection \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 9. Other Tips and Tricks \\
                 Introduction \\
                 Creating tiles from a QGIS map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Adding a layer to geojson.io \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Rendering map layers based on rules \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating a layer style file \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using NULL values in PyQGIS \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using generators for layer queries \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using alpha values to show data density \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using the __geo_interface__ protocol \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Generating points along a line \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Using expression-based labels \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating dynamic forms in QGIS \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Calculating length for all selected lines \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Using a different status bar CRS than the map \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Creating HTML labels in QGIS \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Using OpenStreetMap's points of interest in QGIS \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Visualizing data in 3D with WebGL \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Visualizing data on a globe \\
                 Getting ready \\
                 How to do it \\
                 How it works \\
                 Index",
}

@Book{Layton:2015:LDM,
  author =       "Robert Layton",
  title =        "Learning data mining with {Python}: harness the power
                 of {Python} to analyze data and create insightful
                 predictive models",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xiv + 317",
  year =         "2015",
  ISBN =         "1-78439-605-2 (paper), 1-78439-120-4 (e-book)",
  ISBN-13 =      "978-1-78439-605-3 (paper), 978-1-78439-120-1
                 (e-book)",
  LCCN =         "QA76.73.P98 L39 2015",
  bibdate =      "Fri Oct 23 16:12:44 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Data mining",
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with Data Mining \\
                 Introducing data mining \\
                 Using Python and the IPython Notebook \\
                 Installing Python \\
                 Installing IPython \\
                 Installing scikit-learn \\
                 A simple affinity analysis example \\
                 What is affinity analysis? \\
                 Product recommendations \\
                 Loading the dataset with NumPy \\
                 Implementing a simple ranking of rules \\
                 Ranking to find the best rules \\
                 A simple classification example \\
                 What is classification? \\
                 Loading and preparing the dataset \\
                 Implementing the OneR algorithm \\
                 Testing the algorithm \\
                 Summary \\
                 2. Classifying with scikit-learn Estimators \\
                 scikit-learn estimators \\
                 Nearest neighbors \\
                 Distance metrics \\
                 Loading the dataset \\
                 Moving towards a standard workflow \\
                 Running the algorithm \\
                 Setting parameters \\
                 Preprocessing using pipelines \\
                 An example \\
                 Standard preprocessing \\
                 Putting it all together \\
                 Pipelines \\
                 Summary \\
                 3. Predicting Sports Winners with Decision Trees \\
                 Loading the dataset \\
                 Collecting the data \\
                 Using pandas to load the dataset \\
                 Cleaning up the dataset \\
                 Extracting new features \\
                 Decision trees \\
                 Parameters in decision trees \\
                 Using decision trees \\
                 Sports outcome prediction \\
                 Putting it all together \\
                 Random forests \\
                 How do ensembles work? \\
                 Parameters in Random forests \\
                 Applying Random forests \\
                 Engineering new features \\
                 Summary \\
                 4. Recommending Movies Using Affinity Analysis \\
                 Affinity analysis \\
                 Algorithms for affinity analysis \\
                 Choosing parameters \\
                 The movie recommendation problem \\
                 Obtaining the dataset \\
                 Loading with pandas \\
                 Sparse data formats \\
                 The Apriori implementation \\
                 The Apriori algorithm \\
                 Implementation \\
                 Extracting association rules \\
                 Evaluation \\
                 Summary \\
                 5. Extracting Features with Transformers \\
                 Feature extraction \\
                 Representing reality in models \\
                 Common feature patterns \\
                 Creating good features \\
                 Feature selection \\
                 Selecting the best individual features \\
                 Feature creation \\
                 Principal Component Analysis \\
                 Creating your own transformer \\
                 The transformer API \\
                 Implementation details \\
                 Unit testing \\
                 Putting it all together \\
                 Summary \\
                 6. Social Media Insight Using Naive Bayes \\
                 Disambiguation \\
                 Downloading data from a social network \\
                 Loading and classifying the dataset \\
                 Creating a replicable dataset from Twitter \\
                 Text transformers \\
                 Bag-of-words \\
                 N-grams \\
                 Other features \\
                 Naive Bayes \\
                 Bayes' theorem \\
                 Naive Bayes algorithm \\
                 How it works \\
                 Application \\
                 Extracting word counts \\
                 Converting dictionaries to a matrix \\
                 Training the Naive Bayes classifier \\
                 Putting it all together \\
                 Evaluation using the F1-score \\
                 Getting useful features from models \\
                 Summary \\
                 7. Discovering Accounts to Follow Using Graph Mining
                 \\
                 Loading the dataset \\
                 Classifying with an existing model \\
                 Getting follower information from Twitter \\
                 Building the network \\
                 Creating a graph \\
                 Creating a similarity graph \\
                 Finding subgraphs \\
                 Connected components \\
                 Optimizing criteria \\
                 Summary \\
                 8. Beating CAPTCHAs with Neural Networks \\
                 Artificial neural networks \\
                 An introduction to neural networks \\
                 Creating the dataset \\
                 Drawing basic CAPTCHAs \\
                 Splitting the image into individual letters \\
                 Creating a training dataset \\
                 Adjusting our training dataset to our methodology \\
                 Training and classifying \\
                 Back propagation \\
                 Predicting words \\
                 Improving accuracy using a dictionary \\
                 Ranking mechanisms for words \\
                 Putting it all together \\
                 Summary \\
                 9. Authorship Attribution \\
                 Attributing documents to authors \\
                 Applications and use cases \\
                 Attributing authorship \\
                 Getting the data \\
                 Function words \\
                 Counting function words \\
                 Classifying with function words \\
                 Support vector machines \\
                 Classifying with SVMs \\
                 Kernels \\
                 Character n-grams \\
                 Extracting character n-grams \\
                 Using the Enron dataset \\
                 Accessing the Enron dataset \\
                 Creating a dataset loader \\
                 Putting it all together \\
                 Evaluation \\
                 Summary \\
                 10. Clustering News Articles \\
                 Obtaining news articles \\
                 Using a Web API to get data \\
                 Reddit as a data source \\
                 Getting the data \\
                 Extracting text from arbitrary websites \\
                 Finding the stories in arbitrary websites \\
                 Putting it all together \\
                 Grouping news articles \\
                 The k-means algorithm \\
                 Evaluating the results \\
                 Extracting topic information from clusters \\
                 Using clustering algorithms as transformers \\
                 Clustering ensembles \\
                 Evidence accumulation \\
                 How it works \\
                 Implementation \\
                 Online learning \\
                 An introduction to online learning \\
                 Implementation \\
                 Summary \\
                 11. Classifying Objects in Images Using Deep Learning
                 \\
                 Object classification \\
                 Application scenario and goals \\
                 Use cases \\
                 Deep neural networks \\
                 Intuition \\
                 Implementation \\
                 An introduction to Theano \\
                 An introduction to Lasagne \\
                 Implementing neural networks with nolearn \\
                 GPU optimization \\
                 When to use GPUs for computation \\
                 Running our code on a GPU \\
                 Setting up the environment \\
                 Application \\
                 Getting the data \\
                 Creating the neural network \\
                 Putting it all together \\
                 Summary \\
                 12. Working with Big Data \\
                 Big data \\
                 Application scenario and goals \\
                 MapReduce \\
                 Intuition \\
                 A word count example \\
                 Hadoop MapReduce \\
                 Application \\
                 Getting the data \\
                 Naive Bayes prediction \\
                 The mrjob package \\
                 Extracting the blog posts \\
                 Training Naive Bayes \\
                 Putting it all together \\
                 Training on Amazon's EMR infrastructure \\
                 Summary \\
                 A. Next Steps \ldots{} \\
                 Chapter 1 --- Getting Started with Data Mining \\
                 Scikit-learn tutorials \\
                 Extending the IPython Notebook \\
                 Chapter 2 --- Classifying with scikit-learn Estimators
                 \\
                 Scalability with the nearest neighbor \\
                 More complex pipelines \\
                 Comparing classifiers \\
                 Chapter 3: Predicting Sports Winners with Decision
                 Trees \\
                 More on pandas \\
                 More complex features \\
                 Chapter 4 --- Recommending Movies Using Affinity
                 Analysis \\
                 New datasets \\
                 The Eclat algorithm \\
                 Chapter 5 --- Extracting Features with Transformers \\
                 Adding noise \\
                 Vowpal Wabbit \\
                 Chapter 6 --- Social Media Insight Using Naive Bayes
                 \\
                 Spam detection \\
                 Natural language processing and part-of-speech tagging
                 \\
                 Chapter 7 --- Discovering Accounts to Follow Using
                 Graph Mining \\
                 More complex algorithms \\
                 NetworkX \\
                 Chapter 8 --- Beating CAPTCHAs with Neural Networks \\
                 Better (worse?) CAPTCHAs \\
                 Deeper networks \\
                 Reinforcement learning \\
                 Chapter 9 --- Authorship Attribution \\
                 Increasing the sample size \\
                 Blogs dataset \\
                 Local n-grams \\
                 Chapter 10 --- Clustering News Articles \\
                 Evaluation \\
                 Temporal analysis \\
                 Real-time clusterings \\
                 Chapter 11: Classifying Objects in Images Using Deep
                 Learning \\
                 Keras and Pylearn2 \\
                 Mahotas \\
                 Chapter 12 --- Working with Big Data \\
                 Courses on Hadoop \\
                 Pydoop \\
                 Recommendation engine \\
                 More resources \\
                 Index",
}

@Book{Lentin:2015:LRU,
  author =       "Joseph Lentin",
  title =        "Learning robotics using {Python}: design, simulate,
                 program, and prototype an interactive autonomous mobile
                 robot from scratch with the help of {Python}, {ROS},
                 and {Open-CV!}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xiii + 303",
  year =         "2015",
  ISBN =         "1-78328-753-5, 1-68015-749-3 (e-book)",
  ISBN-13 =      "978-1-78328-753-6, 978-1-68015-749-9 (e-book)",
  LCCN =         "TJ211.495 .L46 2015",
  bibdate =      "Fri Oct 23 17:32:26 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "Autonomous robots; Programming; Computer vision;
                 Python (Computer program language); Programming
                 languages (Electronic computers)",
  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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Introduction to Robotics \\
                 What is a robot? \\
                 History of the term robot \\
                 Modern definition of a robot \\
                 Where do robots come from? \\
                 What can we find in a robot? \\
                 The physical body \\
                 Sensors \\
                 Effectors \\
                 Controllers \\
                 How do we build a robot? \\
                 Reactive control \\
                 Hierarchical (deliberative) control \\
                 Hybrid control \\
                 Summary \\
                 2. Mechanical Design of a Service Robot \\
                 The Requirements of a service robot \\
                 Robot drive mechanism \\
                 Selection of motors and wheels \\
                 Calculation of RPM of motors \\
                 Calculation of motor torque \\
                 The design summary \\
                 Robot chassis design \\
                 Installing LibreCAD, Blender, and MeshLab \\
                 Installing LibreCAD \\
                 Installing Blender \\
                 Installing MeshLab \\
                 Creating a 2D CAD drawing of the robot using LibreCAD
                 \\
                 The base plate design \\
                 Base plate pole design \\
                 Wheel, motor, and motor clamp design \\
                 Caster wheel design \\
                 Middle plate design \\
                 Top plate design \\
                 Working with a 3D model of the robot using Blender \\
                 Python scripting in Blender \\
                 Introduction to Blender Python APIs \\
                 Python script of the robot model \\
                 Questions \\
                 Summary \\
                 3. Working with Robot Simulation Using ROS and Gazebo
                 \\
                 Understanding robotic simulation \\
                 Mathematical modeling of the robot \\
                 Introduction to the differential steering system and
                 robot kinematics \\
                 Explaining of the forward kinematics equation \\
                 Inverse kinematics \\
                 Introduction to ROS and Gazebo \\
                 ROS Concepts \\
                 The ROS filesystem \\
                 The ROS Computation Graph \\
                 The ROS community level \\
                 Installing ROS Indigo on Ubuntu 14.04.2 \\
                 Introducing catkin \\
                 Creating an ROS package \\
                 Hello_world_publisher.py \\
                 Hello_world_subscriber.py \\
                 Introducing Gazebo \\
                 Installing Gazebo \\
                 Testing Gazebo with the ROS interface \\
                 Installing TurtleBot Robot packages on ROS Indigo \\
                 Installing TurtleBot ROS packages using the apt package
                 manager in Ubuntu \\
                 Simulating TurtleBot using Gazebo and ROS \\
                 Creating the Gazebo model from TurtleBot packages \\
                 What is a robot model, URDF, xacro, and robot state
                 publisher? \\
                 Creating a ChefBot description ROS package \\
                 chefbot_base_gazebo.urdf.xacro \\
                 kinect.urdf.xacro \\
                 chefbot_base.urdf.xacro \\
                 Simulating ChefBot and TurtleBot in a hotel environment
                 \\
                 Questions \\
                 Summary \\
                 4. Designing ChefBot Hardware \\
                 Specifications of the ChefBot hardware \\
                 Block diagram of the robot \\
                 Motor and encoder \\
                 Selecting motors, encoders, and wheels for the robot
                 \\
                 Motor driver \\
                 Selecting a motor driver/controller \\
                 Input pins \\
                 Output pins \\
                 Power supply pins \\
                 Embedded controller board \\
                 Ultrasonic sensors \\
                 Selecting the ultrasonic sensor \\
                 Inertial Measurement Unit \\
                 Kinect \\
                 Central Processing Unit \\
                 Speakers/ mic \\
                 Power supply/battery \\
                 Working of the ChefBot hardware \\
                 Questions \\
                 Summary \\
                 5. Working with Robotic Actuators and Wheel Encoders
                 \\
                 Interfacing DC geared motor with Tiva C LaunchPad \\
                 Differential wheeled robot \\
                 Installing the Energia IDE \\
                 Interfacing code \\
                 Interfacing quadrature encoder with Tiva C Launchpad
                 \\
                 Processing encoder data \\
                 Quadrature encoder interfacing code \\
                 Working with Dynamixel actuators \\
                 Questions \\
                 Summary \\
                 6. Working with Robotic Sensors \\
                 Working with ultrasonic distance sensors \\
                 Interfacing HC-SR04 to Tiva C LaunchPad \\
                 Working of HC-SR04 \\
                 Interfacing code of Tiva C LaunchPad \\
                 Interfacing Tiva C LaunchPad with Python \\
                 Working with the IR proximity sensor \\
                 Working with Inertial Measurement Unit \\
                 Inertial Navigation \\
                 Interfacing MPU 6050 with Tiva C LaunchPad \\
                 Setting up the MPU 6050 library in Energia \\
                 Interfacing code of Energia \\
                 Interfacing MPU 6050 to Launchpad with the DMP support
                 using Energia \\
                 Questions \\
                 Summary \\
                 7. Programming Vision Sensors Using Python and ROS \\
                 List of robotic vision sensors and image processing
                 libraries \\
                 Introduction to OpenCV, OpenNI, and PCL \\
                 What is OpenCV? \\
                 Installation of OpenCV from source code in Ubuntu
                 14.04.2 \\
                 Reading and displaying an image using the Python-OpenCV
                 interface \\
                 Capturing from web camera \\
                 What is OpenNI \\
                 Installing OpenNI in Ubuntu 14.04.2 \\
                 What is PCL? \\
                 Programming Kinect with Python using ROS, OpenCV, and
                 OpenNI \\
                 How to launch OpenNI driver \\
                 The ROS interface of OpenCV \\
                 Creating ROS package with OpenCV support \\
                 Displaying Kinect images using Python, ROS, and
                 cv_bridge \\
                 Working with Point Clouds using Kinect, ROS, OpenNI,
                 and PCL \\
                 Opening device and Point Cloud generation \\
                 Conversion of Point Cloud to laser scan data \\
                 Working with SLAM using ROS and Kinect \\
                 Questions \\
                 Summary \\
                 8. Working with Speech Recognition and Synthesis Using
                 Python and ROS \\
                 Understanding speech recognition \\
                 Block diagram of a speech recognition system \\
                 Speech recognition libraries \\
                 CMU Sphinx/Pocket Sphinx \\
                 Julius \\
                 Windows Speech SDK \\
                 Speech synthesis \\
                 Speech synthesis libraries \\
                 eSpeak \\
                 Festival \\
                 Working with speech recognition and synthesis in Ubuntu
                 14.04.2 using Python \\
                 Setting up Pocket Sphinx and its Python binding in
                 Ubuntu 14.04.2 \\
                 Working with Pocket Sphinx Python binding in Ubuntu
                 14.04.2 \\
                 Output \\
                 Real-time speech recognition using Pocket Sphinx,
                 GStreamer, and Python in Ubuntu 14.04.2 \\
                 Speech recognition using Julius and Python in Ubuntu
                 14.04.2 \\
                 Installation of Julius speech recognizer and Python
                 module \\
                 Python-Julius client code \\
                 Improving speech recognition accuracy in Pocket Sphinx
                 and Julius \\
                 Setting up eSpeak and Festival in Ubuntu 14.04.2 \\
                 Working with speech recognition and synthesis in
                 Windows using Python \\
                 Installation of the Speech SDK \\
                 Working with Speech recognition in ROS Indigo and
                 Python \\
                 Installation of the pocketsphinx package in ROS Indigo
                 \\
                 Working with speech synthesis in ROS Indigo and Python
                 \\
                 Questions \\
                 Summary \\
                 9. Applying Artificial Intelligence to ChefBot Using
                 Python \\
                 Block diagram of the communication system in ChefBot
                 \\
                 Introduction to AIML \\
                 Introduction to AIML tags \\
                 Introduction to PyAIML \\
                 Installing PyAIML on Ubuntu 14.04.2 \\
                 Installing PyAIML from source code \\
                 Working with AIML and Python \\
                 Loading a single AIML file from the command-line
                 argument \\
                 Working with A.L.I.C.E. AIML files \\
                 Loading AIML files into memory \\
                 Loading AIML files and saving them in brain files \\
                 Loading AIML and brain files using the Bootstrap method
                 \\
                 Integrating PyAIML into ROS \\
                 aiml_server.py \\
                 aiml_client.py \\
                 aiml_tts_client.py \\
                 aiml_speech_recog_client.py \\
                 start_chat.launch \\
                 start_tts_chat.launch \\
                 start_speech_chat.launch \\
                 Questions \\
                 Summary \\
                 10. Integration of ChefBot Hardware and Interfacing it
                 into ROS, Using Python \\
                 Building ChefBot hardware \\
                 Configuring ChefBot PC and setting ChefBot ROS packages
                 \\
                 Interfacing ChefBot sensors with Tiva C LaunchPad \\
                 Embedded code for ChefBot \\
                 Writing a ROS Python driver for ChefBot \\
                 Understanding ChefBot ROS launch files \\
                 Working with ChefBot Python nodes and launch files \\
                 Working with SLAM on ROS to build the map of the room
                 \\
                 Working with ROS localization and navigation \\
                 Questions \\
                 Summary \\
                 11. Designing a GUI for a Robot Using Qt and Python \\
                 Installing Qt on Ubuntu 14.04.2 LTS \\
                 Working with Python bindings of Qt \\
                 PyQt \\
                 Installing PyQt on Ubuntu 14.04.2 LTS \\
                 PySide \\
                 Installing PySide on Ubuntu 14.04.2 LTS \\
                 Working with PyQt and PySide \\
                 Introducing Qt Designer \\
                 Qt signals and slots \\
                 Converting a UI file into Python code \\
                 Adding a slot definition to PyQt code \\
                 Up and running of Hello World GUI application \\
                 Working with ChefBot's control GUI \\
                 Installing and working with rqt in Ubuntu 14.04.2 LTS
                 \\
                 Questions \\
                 Summary \\
                 12. The Calibration and Testing of ChefBot \\
                 The Calibration of Xbox Kinect using ROS \\
                 Calibrating the Kinect RGB camera \\
                 Calibrating the Kinect IR camera \\
                 Wheel odometry calibration \\
                 Error analysis of wheel odometry \\
                 Error correction \\
                 Calibrating the MPU 6050 \\
                 Testing of the robot using GUI \\
                 Pros and cons of the ROS navigation \\
                 Questions \\
                 Summary \\
                 Index",
}

@Book{Lott:2015:FPP,
  author =       "Steven Lott",
  title =        "Functional {Python} programming",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "361 (est.)",
  year =         "2015",
  ISBN =         "1-78439-699-0, 1-78439-761-X (e-book)",
  ISBN-13 =      "978-1-78439-699-2, 978-1-78439-761-6 (e-book)",
  LCCN =         "QA76.73.P98 .L688 2015",
  bibdate =      "Sat Oct 24 05:34:50 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib.new",
  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. Introducing Functional Programming \\
                 Identifying a paradigm \\
                 Subdividing the procedural paradigm \\
                 Using the functional paradigm \\
                 Using a functional hybrid \\
                 Looking at object creation \\
                 The stack of turtles \\
                 A classic example of functional programming \\
                 Exploratory Data Analysis \\
                 Summary \\
                 2. Introducing Some Functional Features \\
                 First-class functions \\
                 Pure functions \\
                 Higher-order functions \\
                 Immutable data \\
                 Strict and non-strict evaluation \\
                 Recursion instead of a explicit loop state \\
                 Functional type systems \\
                 Familiar territory \\
                 Saving some advanced concepts \\
                 Summary \\
                 3. Functions, Iterators, and Generators \\
                 Writing pure functions \\
                 Functions as first-class objects \\
                 Using strings \\
                 Using tuples and namedtuples \\
                 Using generator expressions \\
                 Exploring the limitations of generators \\
                 Combining generator expressions \\
                 Cleaning raw data with generator functions \\
                 Using lists, dicts, and sets \\
                 Using stateful mappings \\
                 Using the bisect module to create a mapping \\
                 Using stateful sets \\
                 Summary \\
                 4. Working with Collections \\
                 An overview of function varieties \\
                 Working with iterables \\
                 Parsing an XML file \\
                 Parsing a file at a higher level \\
                 Pairing up items from a sequence \\
                 Using the iter() function explicitly \\
                 Extending a simple loop \\
                 Applying generator expressions to scalar functions \\
                 Using any() and all() as reductions \\
                 Using len() and sum() \\
                 Using sums and counts for statistics \\
                 Using zip() to structure and flatten sequences \\
                 Unzipping a zipped sequence \\
                 Flattening sequences \\
                 Structuring flat sequences \\
                 Structuring flat sequences an alternative approach \\
                 Using reversed() to change the order \\
                 Using enumerate() to include a sequence number \\
                 Summary \\
                 5. Higher-order Functions \\
                 Using max() and min() to find extrema \\
                 Using Python lambda forms \\
                 Lambdas and the lambda calculus \\
                 Using the map() function to apply a function to a
                 collection \\
                 Working with lambda forms and map() \\
                 Using map() with multiple sequences \\
                 Using the filter() function to pass or reject data \\
                 Using filter() to identify outliers \\
                 The iter() function with a sentinel value \\
                 Using sorted() to put data in order \\
                 Writing higher-order functions \\
                 Writing higher-order mappings and filters \\
                 Unwrapping data while mapping \\
                 Wrapping additional data while mapping \\
                 Flattening data while mapping \\
                 Structuring data while filtering \\
                 Writing generator functions \\
                 Building higher-order functions with Callables \\
                 Assuring good functional design \\
                 Looking at some of the design patterns \\
                 Summary \\
                 6. Recursions and Reductions \\
                 Simple numerical recursions \\
                 Implementing tail-call optimization \\
                 Leaving recursion in place \\
                 Handling difficult tail-call optimization \\
                 Processing collections via recursion \\
                 Tail-call optimization for collections \\
                 Reductions and folding from many to one \\
                 Group-by reductions from many to fewer \\
                 Building a mapping with Counter \\
                 Building a mapping by sorting \\
                 Grouping or partitioning data by key values \\
                 Writing more general group-by reductions \\
                 Writing higher-order reductions \\
                 Writing file parsers \\
                 Parsing CSV files \\
                 Parsing plain text files with headers \\
                 Summary \\
                 7. Additional Tuple Techniques \\
                 Using an immutable namedtuple as a record \\
                 Building namedtuples with functional constructors \\
                 Avoiding stateful classes by using families of tuples
                 \\
                 Assigning statistical ranks \\
                 Wrapping instead of state changing \\
                 Rewrapping instead of state changing \\
                 Computing the Spearman rank-order correlation \\
                 Polymorphism and Pythonic pattern matching \\
                 Summary \\
                 8. The Itertools Module \\
                 Working with the infinite iterators \\
                 Counting with count() \\
                 Reiterating a cycle with cycle() \\
                 Repeating a single value with repeat() \\
                 Using the finite iterators \\
                 Assigning numbers with enumerate() \\
                 Running totals with accumulate() \\
                 Combining iterators with chain() \\
                 Partitioning an iterator with groupby() \\
                 Merging iterables with zip_longest() and zip() \\
                 Filtering with compress() \\
                 Picking subsets with islice() \\
                 Stateful filtering with dropwhile() and takewhile() \\
                 Two approaches to filtering with filterfalse() and
                 filter() \\
                 Applying a function to data via starmap() and map() \\
                 Cloning iterators with tee() \\
                 The itertools recipes \\
                 Summary \\
                 9. More Itertools Techniques \\
                 Enumerating the Cartesian product \\
                 Reducing a product \\
                 Computing distances \\
                 Getting all pixels and all colors \\
                 Performance analysis \\
                 Rearranging the problem \\
                 Combining two transformations \\
                 Permuting a collection of values \\
                 Generating all combinations \\
                 Recipes \\
                 Summary \\
                 10. The Functools Module \\
                 Function tools \\
                 Memoizing previous results with lru_cache \\
                 Defining classes with total ordering \\
                 Defining number classes \\
                 Applying partial arguments with partial() \\
                 Reducing sets of data with reduce() \\
                 Combining map() and reduce() \\
                 Using reduce() and partial() \\
                 Using map() and reduce() to sanitize raw data \\
                 Using groupby() and reduce() \\
                 Summary \\
                 11. Decorator Design Techniques \\
                 Decorators as higher-order functions \\
                 Using functool's update_wrapper() functions \\
                 Cross-cutting concerns \\
                 Composite design \\
                 Preprocessing bad data \\
                 Adding a parameter to a decorator \\
                 Implementing more complex descriptors \\
                 Recognizing design limitations \\
                 Summary \\
                 12. The Multiprocessing and Threading Modules \\
                 What concurrency really means \\
                 The boundary conditions \\
                 Sharing resources with process or threads \\
                 Where benefits will accrue \\
                 Using multiprocessing pools and tasks \\
                 Processing many large files \\
                 Parsing log files gathering the rows \\
                 Parsing log lines into namedtuples \\
                 Parsing additional fields of an Access object \\
                 Filtering the access details \\
                 Analyzing the access details \\
                 The complete analysis process \\
                 Using a multiprocessing pool for concurrent processing
                 \\
                 Using apply() to make a single request \\
                 Using map_async(), starmap_async(), and apply_async()
                 \\
                 More complex multiprocessing architectures \\
                 Using the concurrent.futures module \\
                 Using concurrent.futures thread pools \\
                 Using the threading and queue modules \\
                 Designing concurrent processing \\
                 Summary \\
                 13. Conditional Expressions and the Operator Module \\
                 Evaluating conditional expressions \\
                 Exploiting non-strict dictionary rules \\
                 Filtering true conditional expressions \\
                 Using the operator module instead of lambdas \\
                 Getting named attributes when using higher-order
                 functions \\
                 Starmapping with operators \\
                 Reducing with operators \\
                 Summary \\
                 14. The PyMonad Library \\
                 Downloading and installing \\
                 Functional composition and currying \\
                 Using curried higher-order functions \\
                 Currying the hard way \\
                 Functional composition and the PyMonad multiplication
                 operator \\
                 Functors and applicative functors \\
                 Using the lazy List() functor \\
                 Monad concepts, the bind() function and the Binary
                 Right Shift operator \\
                 Implementing simulation with monads \\
                 Additional PyMonad features \\
                 Summary \\
                 15. A Functional Approach to Web Services \\
                 The HTTP request-response model \\
                 Injecting a state via cookies \\
                 Considering a server with a functional design \\
                 Looking more deeply into the functional view \\
                 Nesting the services \\
                 The WSGI standard \\
                 Throwing exceptions during WSGI processing \\
                 Pragmatic WSGI applications \\
                 Defining web services as functions \\
                 Creating the WSGI application \\
                 Getting raw data \\
                 Applying a filter \\
                 Serializing the results \\
                 Serializing data into the JSON or CSV format \\
                 Serializing data into XML \\
                 Serializing data into HTML \\
                 Tracking usage \\
                 Summary \\
                 16. Optimizations and Improvements \\
                 Memoization and caching \\
                 Specializing memoization \\
                 Tail recursion optimizations \\
                 Optimizing storage \\
                 Optimizing accuracy \\
                 Reducing accuracy based on audience requirements \\
                 Case study making a chi-squared decision \\
                 Filtering and reducing the raw data with a Counter
                 object \\
                 Reading summarized data \\
                 Computing probabilities from a Counter object \\
                 Alternative summary approaches \\
                 Computing expected values and displaying a contingency
                 table \\
                 Computing the chi-squared value \\
                 Computing the chi-squared threshold \\
                 Computing the partial gamma value \\
                 Computing the complete gamma value \\
                 Computing the odds of a distribution being random \\
                 Summary \\
                 Index",
}

@Book{Lott:2015:PEM,
  author =       "Steven F. Lott",
  title =        "{Python} essentials: modernize existing {Python} code
                 and plan code migrations to {Python} using this
                 definitive guide",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xiv + 271",
  year =         "2015",
  ISBN =         "1-78439-814-4, 1-78439-034-8",
  ISBN-13 =      "978-1-78439-814-9, 978-1-78439-034-1",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 16:39:41 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  acknowledgement = ack-nhfb,
  subject =      "datanet; programmering; Python; programmeringssprog;
                 objektorienteret programmering",
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Installation or upgrade \\
                 Installing Python on Windows \\
                 Considering some alternatives \\
                 Upgrading to Python 3.4 in Mac OS X \\
                 Adding the Tkinter package \\
                 Upgrading to Python 3.4 in Linux \\
                 Using the Read-Evaluate-Print Loop (REPL) \\
                 Confirming that things are working \\
                 Doing simple arithmetic \\
                 Assigning results to variables \\
                 Using import to add features \\
                 Interacting with the help subsystem \\
                 Using the pydoc program \\
                 Creating simple script files \\
                 Simplified syntax rules \\
                 The Python ecosystem \\
                 The idea of extensibility via add-ons \\
                 Using the Python Package Index --- PyPI \\
                 Using pip to gather modules \\
                 Using easy_install to add modules \\
                 Installing modules manually \\
                 Looking at other Python interpreters \\
                 Summary \\
                 2. Simple Data Types \\
                 Introducing the built-in operators \\
                 Making comparisons \\
                 Using integers \\
                 Using the bit-oriented operators \\
                 Using rational numbers \\
                 Using decimal numbers \\
                 Using floating-point numbers \\
                 Using complex numbers \\
                 The numeric tower \\
                 The math libraries \\
                 Using bits and Boolean values \\
                 Working with sequences \\
                 Slicing and dicing a sequence \\
                 Using string and bytes values \\
                 Writing string literals \\
                 Using raw string literals \\
                 Using byte string literals \\
                 Using the string operators \\
                 Converting between Unicode and bytes \\
                 Using string methods \\
                 Accessing the details of a string \\
                 Parsing strings into substrings \\
                 Using the tuple collection \\
                 The None object \\
                 The consequences of immutability \\
                 Using the built-in conversion functions \\
                 Summary \\
                 3. Expressions and Output \\
                 Expressions, operators, and data types \\
                 Using operators on non-numeric data \\
                 The print() function \\
                 Examining syntax rules \\
                 Splitting, partitioning, and joining strings \\
                 Using the format() method to make more readable output
                 \\
                 Summary of the standard string libraries \\
                 Using the re module to parse strings \\
                 Using regular expressions \\
                 Creating a regular expression string \\
                 Working with Unicode, ASCII, and bytes \\
                 Using the locale module for personalization \\
                 Summary \\
                 4. Variables, Assignment and Scoping Rules \\
                 Simple assignment and variables \\
                 Multiple assignment \\
                 Using repeated assignment \\
                 Using the head, *tail assignment \\
                 Augmented assignment \\
                 The input() function \\
                 Python language concepts \\
                 Object types versus variable declarations \\
                 Avoiding confusion when naming variables \\
                 Garbage collection via reference counting \\
                 The little-used del statement \\
                 The Python namespace concept \\
                 Globals and locals \\
                 Summary \\
                 5. Logic, Comparisons, and Conditions \\
                 Boolean data and the bool() function \\
                 Comparison operators \\
                 Combining comparisons to simplify the logic \\
                 Testing float values \\
                 Comparing object IDs with the is operator \\
                 Equality and object hash values \\
                 Logic operators --- and, or, not, if-else \\
                 Short-circuit (or non-strict) evaluation \\
                 The if-elif-else statement \\
                 Adding elif clauses \\
                 The pass statement as a placeholder \\
                 The assert statement \\
                 The logic of the None object \\
                 Summary \\
                 6. More Complex Data Types \\
                 The mutability and immutability distinction \\
                 Using the list collection \\
                 Using list operators \\
                 Mutating a list with subscripts \\
                 Mutating a list with method functions \\
                 Accessing a list \\
                 Using collection functions \\
                 Using the set collection \\
                 Using set operators \\
                 Mutating a set with method functions \\
                 Using augmented assignment with sets \\
                 Accessing a set with operators and method functions \\
                 Mappings \\
                 Using dictionary operators \\
                 Using dictionary mutators \\
                 Using methods for accessing items in a mapping \\
                 Using extensions from the collections module \\
                 Processing collections with the for statement \\
                 Using literal lists in a for statement \\
                 Using the range() and enumerate() functions \\
                 Iterating with the while statement \\
                 The continue and break statements \\
                 Breaking early from a loop \\
                 Using the else clause on a loop \\
                 Summary \\
                 7. Basic Function Definitions \\
                 Looking at the five kinds of callables \\
                 Defining functions with positional parameters \\
                 Defining multiple parameters \\
                 Using the return statement \\
                 Evaluating a function with positional or keyword
                 arguments \\
                 Writing a function's docstring \\
                 Mutable and immutable argument values \\
                 Defining optional parameters via default values \\
                 A warning about mutable default values \\
                 Using the ``everything else'' notations of * and ** \\
                 Using sequences and dictionaries to fill in *args and
                 *kw \\
                 Nested function definitions \\
                 Working with namespaces \\
                 Assigning a global variable \\
                 Assigning a non-local variable \\
                 Defining lambdas \\
                 Writing additional function annotations \\
                 Summary \\
                 8. More Advanced Functions \\
                 Using the for statement with iterable collections \\
                 Iterators and iterable collections \\
                 Consequences and next steps \\
                 Using generator expressions and comprehensions \\
                 Limitations of generator expressions \\
                 Using multiple loops and conditions \\
                 Writing comprehensions \\
                 Defining generator functions with the yield statement
                 \\
                 Using the higher-order functions \\
                 Writing our own higher-order functions \\
                 Using the built-in reductions --- max, min, and reduce
                 \\
                 Three ways to sort a sequence \\
                 Sorting via a key function \\
                 Sorting via wrapping and unwrapping \\
                 Functional programming design patterns \\
                 Summary \\
                 9. Exceptions \\
                 The core exception concept \\
                 Examining the exception object \\
                 Using the try and except statements \\
                 Using nested try statements \\
                 Matching exception classes in an except clause \\
                 Matching more general exceptions \\
                 The empty except clause \\
                 Creating our own exceptions \\
                 Using a finally clause \\
                 Use cases for exceptions \\
                 Issuing warnings instead of exceptions \\
                 Permission versus forgiveness --- a Pythonic approach
                 \\
                 Summary \\
                 10. Files, Databases, Networks, and Contexts \\
                 The essential file concept \\
                 Opening text files \\
                 Filtering text lines \\
                 Working with raw bytes \\
                 Using file-like objects \\
                 Using a context manager via the with statement \\
                 Closing file-like objects with contextlib \\
                 Using the shelve module as a database \\
                 Using the sqlite database \\
                 Using object-relational mapping \\
                 Web services and Internet protocols \\
                 Physical format considerations \\
                 Summary \\
                 11. Class Definitions \\
                 Creating a class \\
                 Writing the suite of statements in a class \\
                 Using instance variables and methods \\
                 Pythonic object-oriented programming \\
                 Trying to do type casting \\
                 Designing for encapsulation and privacy \\
                 Using properties \\
                 Using inheritance to simplify class definitions \\
                 Using multiple inheritance and the mixin design pattern
                 \\
                 Using class methods and attributes \\
                 Using mutable class variables \\
                 Writing static methods \\
                 Using __slots__ to save storage \\
                 The ABCs of abstract base classes \\
                 Writing a callable class \\
                 Summary \\
                 12. Scripts, Modules, Packages, Libraries, and
                 Applications \\
                 Script file rules \\
                 Running a script by the filename \\
                 Running a script by its module name \\
                 Running a script using OS shell rules \\
                 Choosing good script names \\
                 Creating a reusable module \\
                 Creating a hybrid library/application module \\
                 Creating a package \\
                 Designing alternative implementations \\
                 Seeing the package search path \\
                 Summary \\
                 13. Metaprogramming and Decorators \\
                 Simple metaprogramming with decorators \\
                 Defining our own decorator \\
                 More complex metaprogramming with metaclasses \\
                 Summary \\
                 14. Fit and Finish --- Unit Testing, Packaging, and
                 Documentation \\
                 Writing docstrings \\
                 Writing unit tests with doctest \\
                 Using the unittest library for testing \\
                 Combining doctest and unittest \\
                 Using other add-on test libraries \\
                 Logging events and conditions \\
                 Configuring the logging system \\
                 Writing documentation with RST markup \\
                 Creating HTML documentation from an RST source \\
                 Using the Sphinx tool \\
                 Organizing Python code \\
                 Summary \\
                 15. Next Steps \\
                 Leveraging the standard library \\
                 Leveraging PyPI --- the Python Package Index \\
                 Types of applications \\
                 Building CLI applications \\
                 Getting command-line arguments with argparse \\
                 Using the cmd module for interactive applications \\
                 Building GUI applications \\
                 Using more sophisticated packages \\
                 Building web applications \\
                 Using a web framework \\
                 Building a RESTful web service with Flask \\
                 Plugging into a MapReduce framework \\
                 Summary \\
                 Index",
}

@Book{Madhavan:2015:MPD,
  author =       "Samir Madhavan",
  title =        "Mastering {Python} for data science: explore the world
                 of data science through {Python} and learn how to make
                 sense of data",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-78439-015-1, 1-78439-262-6 (e-book)",
  ISBN-13 =      "978-1-78439-015-0, 978-1-78439-262-8 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:00:59 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781784390150",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Electronic data
                 processing; Management; Data mining; COMPUTERS /
                 General",
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with Raw Data \\
                 The world of arrays with NumPy \\
                 Creating an array \\
                 Mathematical operations \\
                 Array subtraction \\
                 Squaring an array \\
                 A trigonometric function performed on the array \\
                 Conditional operations \\
                 Matrix multiplication \\
                 Indexing and slicing \\
                 Shape manipulation \\
                 Empowering data analysis with pandas \\
                 The data structure of pandas \\
                 Series \\
                 DataFrame \\
                 Panel \\
                 Inserting and exporting data \\
                 CSV \\
                 XLS \\
                 JSON \\
                 Database \\
                 Data cleansing \\
                 Checking the missing data \\
                 Filling the missing data \\
                 String operations \\
                 Merging data \\
                 Data operations \\
                 Aggregation operations \\
                 Joins \\
                 The inner join \\
                 The left outer join \\
                 The full outer join \\
                 The groupby function \\
                 Summary \\
                 2. Inferential Statistics \\
                 Various forms of distribution \\
                 A normal distribution \\
                 A normal distribution from a binomial distribution \\
                 A Poisson distribution \\
                 A Bernoulli distribution \\
                 A z-score \\
                 A p-value \\
                 One-tailed and two-tailed tests \\
                 Type 1 and Type 2 errors \\
                 A confidence interval \\
                 Correlation \\
                 Z-test vs T-test \\
                 The F distribution \\
                 The chi-square distribution \\
                 Chi-square for the goodness of fit \\
                 The chi-square test of independence \\
                 ANOVA \\
                 Summary \\
                 3. Finding a Needle in a Haystack \\
                 What is data mining? \\
                 Presenting an analysis \\
                 Studying the Titanic \\
                 Which passenger class has the maximum number of
                 survivors? \\
                 What is the distribution of survivors based on gender
                 among the various classes? \\
                 What is the distribution of nonsurvivors among the
                 various classes who have family aboard the ship? \\
                 What was the survival percentage among different age
                 groups? \\
                 Summary \\
                 4. Making Sense of Data through Advanced Visualization
                 \\
                 Controlling the line properties of a chart \\
                 Using keyword arguments \\
                 Using the setter methods \\
                 Using the setp() command \\
                 Creating multiple plots \\
                 Playing with text \\
                 Styling your plots \\
                 Box plots \\
                 Heatmaps \\
                 Scatter plots with histograms \\
                 A scatter plot matrix \\
                 Area plots \\
                 Bubble charts \\
                 Hexagon bin plots \\
                 Trellis plots \\
                 A 3D plot of a surface \\
                 Summary \\
                 5. Uncovering Machine Learning \\
                 Different types of machine learning \\
                 Supervised learning \\
                 Unsupervised learning \\
                 Reinforcement learning \\
                 Decision trees \\
                 Linear regression \\
                 Logistic regression \\
                 The naive Bayes classifier \\
                 The k-means clustering \\
                 Hierarchical clustering \\
                 Summary \\
                 6. Performing Predictions with a Linear Regression \\
                 Simple linear regression \\
                 Multiple regression \\
                 Training and testing a model \\
                 Summary \\
                 7. Estimating the Likelihood of Events \\
                 Logistic regression \\
                 Data preparation \\
                 Creating training and testing sets \\
                 Building a model \\
                 Model evaluation \\
                 Evaluating a model based on test data \\
                 Model building and evaluation with SciKit \\
                 Summary \\
                 8. Generating Recommendations with Collaborative
                 Filtering \\
                 Recommendation data \\
                 User-based collaborative filtering \\
                 Finding similar users \\
                 The Euclidean distance score \\
                 The Pearson correlation score \\
                 Ranking the users \\
                 Recommending items \\
                 Item-based collaborative filtering \\
                 Summary \\
                 9. Pushing Boundaries with Ensemble Models \\
                 The census income dataset \\
                 Exploring the census data \\
                 Hypothesis 1: People who are older earn more \\
                 Hypothesis 2: Income bias based on working class \\
                 Hypothesis 3: People with more education earn more \\
                 Hypothesis 4: Married people tend to earn more \\
                 Hypothesis 5: There is a bias in income based on race
                 \\
                 Hypothesis 6: There is a bias in the income based on
                 occupation \\
                 Hypothesis 7: Men earn more \\
                 Hypothesis 8: People who clock in more hours earn more
                 \\
                 Hypothesis 9: There is a bias in income based on the
                 country of origin \\
                 Decision trees \\
                 Random forests \\
                 Summary \\
                 10. Applying Segmentation with k-means Clustering \\
                 The k-means algorithm and its working \\
                 A simple example \\
                 The k-means clustering with countries \\
                 Determining the number of clusters \\
                 Clustering the countries \\
                 Summary \\
                 11. Analyzing Unstructured Data with Text Mining \\
                 Preprocessing data \\
                 Creating a wordcloud \\
                 Word and sentence tokenization \\
                 Parts of speech tagging \\
                 Stemming and lemmatization \\
                 Stemming \\
                 Lemmatization \\
                 The Stanford Named Entity Recognizer \\
                 Performing sentiment analysis on world leaders using
                 Twitter \\
                 Summary \\
                 12. Leveraging Python in the World of Big Data \\
                 What is Hadoop? \\
                 The programming model \\
                 The MapReduce architecture \\
                 The Hadoop DFS \\
                 Hadoop's DFS architecture \\
                 Python MapReduce \\
                 The basic word count \\
                 A sentiment score for each review \\
                 The overall sentiment score \\
                 Deploying the MapReduce code on Hadoop \\
                 File handling with Hadoopy \\
                 Pig \\
                 Python with Apache Spark \\
                 Scoring the sentiment \\
                 The overall sentiment \\
                 Summary \\
                 Index",
}

@Book{Malthe-Sorenssen:2015:EMU,
  author =       "Anders Malthe-S{\o}renssen",
  title =        "Elementary mechanics using {Python}: a modern course
                 combining analytical and numerical techniques",
  publisher =    "Springer",
  address =      "Cham, Switzerland",
  pages =        "xiii + 590",
  year =         "2015",
  DOI =          "https://doi.org/10.1007/978-3-319-19596-4",
  ISBN =         "3-319-19595-6 (print), 3-319-19596-4 (e-book)",
  ISBN-13 =      "978-3-319-19595-7 (print), 978-3-319-19596-4
                 (e-book)",
  ISSN =         "2192-4791 (print), 2192-4805 (electronic)",
  ISSN-L =       "2192-4805",
  LCCN =         "QA805 .M35 2015",
  bibdate =      "Mon Apr 18 10:02:34 MDT 2016",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Undergraduate lecture notes in physics",
  abstract =     "This book --- specifically developed as a novel
                 textbook on elementary classical mechanics --- shows
                 how analytical and numerical methods can be seamlessly
                 integrated to solve physics problems. This approach
                 allows students to solve more advanced and applied
                 problems at an earlier stage and equips them to deal
                 with real-world examples well beyond the typical
                 special cases treated in standard textbooks. Another
                 advantage of this approach is that students are brought
                 closer to the way physics is actually discovered and
                 applied, as they are introduced right from the start to
                 a more exploratory way of understanding phenomena and
                 of developing their physical concepts. While not a
                 requirement, it is advantageous for the reader to have
                 some prior knowledge of scientific programming with a
                 scripting-type language. This edition of the book uses
                 Python, and a chapter devoted to the basics of
                 scientific programming with Python is included. A
                 parallel edition using Matlab instead of Python is also
                 available. Last but not least, each chapter is
                 accompanied by an extensive set of course-tested
                 exercises and solutions.",
  acknowledgement = ack-nhfb,
  author-dates = "1969--",
  subject =      "Mechanics; Mathematical models; Python (Computer
                 program language); Physics; Numerical and Computational
                 Physics; Mathematical Methods in Physics; Mathematical
                 models; Python (Computer program language)",
  tableofcontents = "Introduction \\
                 Getting started with programming \\
                 Units and measurement \\
                 Motion in one dimension \\
                 Forces in one dimension \\
                 Motion in two and three dimensions \\
                 Forces in two and three dimensions \\
                 Constrained motion \\
                 Forces and constrained motion \\
                 Work \\
                 Energy \\
                 Momentum, impulse, and collisions \\
                 Multiparticle systems \\
                 Rotational motion \\
                 Rotation of rigid bodies \\
                 Dynamics of rigid bodies \\
                 Proofs \\
                 Solutions \\
                 Index",
}

@Article{Marr:2015:TVP,
  author =       "Stefan Marr and St{\'e}phane Ducasse",
  title =        "Tracing vs. partial evaluation: comparing
                 meta-compilation approaches for self-optimizing
                 interpreters",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "10",
  pages =        "821--839",
  month =        oct,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2858965.2814275",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:43 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Tracing and partial evaluation have been proposed as
                 meta-compilation techniques for interpreters to make
                 just-in-time compilation language-independent. They
                 promise that programs executing on simple interpreters
                 can reach performance of the same order of magnitude as
                 if they would be executed on state-of-the-art virtual
                 machines with highly optimizing just-in-time compilers
                 built for a specific language. Tracing and partial
                 evaluation approach this meta-compilation from two ends
                 of a spectrum, resulting in different sets of
                 tradeoffs. This study investigates both approaches in
                 the context of self-optimizing interpreters, a
                 technique for building fast abstract-syntax-tree
                 interpreters. Based on RPython for tracing and Truffle
                 for partial evaluation, we assess the two approaches by
                 comparing the impact of various optimizations on the
                 performance of an interpreter for SOM, an
                 object-oriented dynamically-typed language. The goal is
                 to determine whether either approach yields clear
                 performance or engineering benefits. We find that
                 tracing and partial evaluation both reach roughly the
                 same level of performance. SOM based on meta-tracing is
                 on average 3x slower than Java, while SOM based on
                 partial evaluation is on average 2.3x slower than Java.
                 With respect to the engineering, tracing has however
                 significant benefits, because it requires language
                 implementers to apply fewer optimizations to reach the
                 same level of performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "OOPSLA '15 conference proceedings.",
}

@Book{Mehta:2015:MPS,
  author =       "Hemant Kumar Mehta",
  title =        "Mastering {Python} scientific computing: a complete
                 guide for {Python} programmers to master scientific
                 computing using {Python APIs} and tools",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-78328-883-3, 1-78328-882-5",
  ISBN-13 =      "978-1-78328-883-0, 978-1-78328-882-3",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 15:54:07 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781783288823",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer science",
  tableofcontents = "Mastering Python Scientific Computing \\
                 Table of Contents \\
                 Mastering Python Scientific Computing \\
                 Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. The Landscape of Scientific Computing --- and Why
                 Python? \\
                 Definition of scientific computing \\
                 A simple flow of the scientific computation process \\
                 Examples from scientific/engineering domains \\
                 A strategy for solving complex problems \\
                 Approximation, errors, and associated concepts and
                 terms \\
                 Error analysis \\
                 Conditioning, stability, and accuracy \\
                 Backward and forward error analysis \\
                 Is it okay to ignore these errors? \\
                 Computer arithmetic and floating-point numbers \\
                 The background of the Python programming language \\
                 The guiding principles of the Python language \\
                 Why Python for scientific computing? \\
                 Compact and readable code \\
                 Holistic language design \\
                 Free and open source \\
                 Language interoperability \\
                 Portable and extensible \\
                 Hierarchical module system \\
                 Graphical user interface packages \\
                 Data structures \\
                 Python's testing framework \\
                 Available libraries \\
                 The downsides of Python \\
                 Summary \\
                 2. A Deeper Dive into Scientific Workflows and the
                 Ingredients of Scientific Computing Recipes \\
                 Mathematical components of scientific computations \\
                 A system of linear equations \\
                 A system of nonlinear equations \\
                 Optimization \\
                 Interpolation \\
                 Extrapolation \\
                 Numerical integration \\
                 Numerical differentiation \\
                 Differential equations \\
                 The initial value problem \\
                 The boundary value problem \\
                 Random number generator \\
                 Python scientific computing \\
                 Introduction to NumPy \\
                 The SciPy library \\
                 The SciPy Subpackage \\
                 Data analysis using pandas \\
                 A brief idea of interactive programming using IPython
                 \\
                 IPython parallel computing \\
                 IPython Notebook \\
                 Symbolic computing using SymPy \\
                 The features of SymPy \\
                 Why SymPy? \\
                 The plotting library \\
                 Summary \\
                 3. Efficiently Fabricating and Managing Scientific Data
                 \\
                 The basic concepts of data \\
                 Data storage software and toolkits \\
                 Files \\
                 Structured files \\
                 Unstructured files \\
                 Database \\
                 Possible operations on data \\
                 Scientific data format \\
                 Ready-to-use standard datasets \\
                 Data generation \\
                 Synthetic data generation (fabrication) \\
                 Using Python's built-in functions for random number
                 generation \\
                 Bookkeeping functions \\
                 Functions for integer random number generation \\
                 Functions for sequences \\
                 Statistical-distribution-based functions \\
                 Nondeterministic random number generator \\
                 Designing and implementing random number generators
                 based on statistical distributions \\
                 A program with simple logic to generate five-digit
                 random numbers \\
                 A brief note about large-scale datasets \\
                 Summary \\
                 4. Scientific Computing APIs for Python \\
                 Numerical scientific computing in Python \\
                 The NumPy package \\
                 The ndarrays data structure \\
                 File handling \\
                 Some sample NumPy programs \\
                 The SciPy package \\
                 The optimization package \\
                 The interpolation package \\
                 Integration and differential equations in SciPy \\
                 The stats module \\
                 Clustering package and spatial algorithms in SciPy \\
                 Image processing in SciPy \\
                 Sample SciPy programs \\
                 Statistics using SciPy \\
                 Optimization in SciPy \\
                 Image processing using SciPy \\
                 Symbolic computations using SymPy \\
                 Computer Algebra System \\
                 Features of a general-purpose CAS \\
                 A brief idea of SymPy \\
                 Core capability \\
                 Polynomials \\
                 Calculus \\
                 Solving equations \\
                 Discrete math \\
                 Matrices \\
                 Geometry \\
                 Plotting \\
                 Physics \\
                 Statistics \\
                 Printing \\
                 SymPy modules \\
                 Simple exemplary programs \\
                 Basic symbol manipulation \\
                 Expression expansion in SymPy \\
                 Simplification of an expression or formula \\
                 Simple integrations \\
                 APIs and toolkits for data analysis and visualization
                 \\
                 Data analysis and manipulation using pandas \\
                 Important data structures of pandas \\
                 Special features of pandas \\
                 Data visualization using matplotlib \\
                 Interactive computing in Python using IPython \\
                 Sample data analysis and visualization programs \\
                 Summary \\
                 5. Performing Numerical Computing \\
                 The NumPy fundamental objects \\
                 The ndarray object \\
                 The attributes of an array \\
                 Basic operations on arrays \\
                 Special operations on arrays (shape change and
                 conversion) \\
                 Classes associated with arrays \\
                 The matrix sub class \\
                 Masked array \\
                 The structured/recor array \\
                 The universal function object \\
                 Attributes \\
                 Methods \\
                 Various available ufunc \\
                 The NumPy mathematical modules \\
                 Introduction to SciPy \\
                 Mathematical functions in SciPy \\
                 Advanced modules/packages \\
                 Integration \\
                 Signal processing (scipy.signal) \\
                 Fourier transforms (scipy.fftpack) \\
                 Spatial data structures and algorithms (scipy.spatial)
                 \\
                 Optimization (scipy.optimize) \\
                 Interpolation (scipy.interpolate) \\
                 Linear algebra (scipy.linalg) \\
                 Sparse eigenvalue problems with ARPACK \\
                 Statistics (scipy.stats) \\
                 Multidimensional image processing (scipy.ndimage) \\
                 Clustering \\
                 Curve fitting \\
                 File I/O (scipy.io) \\
                 Summary \\
                 6. Applying Python for Symbolic Computing \\
                 Symbols, expressions, and basic arithmetic \\
                 Equation solving \\
                 Functions for rational numbers, exponentials, and
                 logarithms \\
                 Polynomials \\
                 Trigonometry and complex numbers \\
                 Linear algebra \\
                 Calculus \\
                 Vectors \\
                 The physics module \\
                 Hydrogen wave functions \\
                 Matrices and Pauli algebra \\
                 The quantum harmonic oscillator in 1-D and 3-D \\
                 Second quantization \\
                 High-energy Physics \\
                 Mechanics \\
                 Pretty printing \\
                 LaTeX Printing \\
                 The cryptography module \\
                 Parsing input \\
                 The logic module \\
                 The geometry module \\
                 Symbolic integrals \\
                 Polynomial manipulation \\
                 Sets \\
                 The simplify and collect operations \\
                 Summary \\
                 7. Data Analysis and Visualization \\
                 Matplotlib \\
                 The architecture of matplotlib \\
                 The scripting layer (pyplot) \\
                 The artist layer \\
                 The backend layer \\
                 Graphics with matplotlib \\
                 Output generation \\
                 The pandas library \\
                 Series \\
                 DataFrame \\
                 Panel \\
                 The common functionality among the data structures \\
                 Time series and date functions \\
                 Handling missing data \\
                 I/O operations \\
                 Working on CSV files \\
                 Ready-to-eat datasets \\
                 The pandas plotting \\
                 IPython \\
                 The IPython console and system shell \\
                 The operating system interface \\
                 Nonblocking plotting \\
                 Debugging \\
                 IPython Notebook \\
                 Summary \\
                 8. Parallel and Large-scale Scientific Computing \\
                 Parallel computing using IPython \\
                 The architecture of IPython parallel computing \\
                 The components of parallel computing \\
                 The IPython engine \\
                 The IPython controller \\
                 IPython view and interfaces \\
                 The IPython client \\
                 Example of performing parallel computing \\
                 A parallel decorator \\
                 IPython's magic functions \\
                 Activating specific views \\
                 Engines and QtConsole \\
                 Advanced features of IPython \\
                 Fault-tolerant execution \\
                 Dynamic load balancing \\
                 Pushing and pulling objects between clients and engines
                 \\
                 Database support for storing the requests and results
                 \\
                 Using MPI in IPython \\
                 Managing dependencies among tasks \\
                 Functional dependency \\
                 Decorators for functional dependency \\
                 Graph dependency \\
                 Impossible dependencies \\
                 The DAG dependency and the NetworkX library \\
                 Using IPython on an Amazon EC2 cluster with StarCluster
                 \\
                 A note on security of IPython \\
                 Well-known parallel programming styles \\
                 Issues in parallel programming \\
                 Parallel programming \\
                 Concurrent programming \\
                 Distributed programming \\
                 Multiprocessing in Python \\
                 Multithreading in Python \\
                 Hadoop-based MapReduce in Python \\
                 Spark in Python \\
                 Summary \\
                 9. Revisiting Real-life Case Studies \\
                 Scientific computing applications developed in Python
                 \\
                 The one Laptop per Child project used Python for their
                 user interface \\
                 ExpEYES --- eyes for science \\
                 A weather prediction application in Python \\
                 An aircraft conceptual designing tool and API in Python
                 \\
                 OpenQuake Engine \\
                 SMS Siemag AG application for energy efficiency \\
                 Automated code generator for analysis of High-energy
                 Physics data \\
                 Python for computational chemistry applications \\
                 Python for developing a Blind Audio Tactile Mapping
                 System \\
                 TAPTools for air traffic control \\
                 Energy-efficient lights with an embedded system \\
                 Scientific computing libraries developed in Python \\
                 A maritime designing API by Tribon \\
                 Molecular Modeling Toolkit \\
                 Standard Python packages \\
                 Summary \\
                 10. Best Practices for Scientific Computing \\
                 The best practices for designing \\
                 The implementation of best practices \\
                 The best practices for data management and application
                 deployment \\
                 The best practices to achieving high performance \\
                 The best practices for data privacy and security \\
                 Testing and maintenance best practices \\
                 General Python best practices \\
                 Summary \\
                 Index",
}

@Book{Miller:2015:MDS,
  author =       "Thomas W. Miller",
  title =        "Marketing data science: modeling techniques in
                 predictive analytics with {R} and {Python}",
  publisher =    "Pearson Education",
  address =      "Old Tappan, NJ, USA",
  pages =        "????",
  year =         "2015",
  ISBN =         "0-13-388766-9, 0-13-388762-6",
  ISBN-13 =      "978-0-13-388766-2, 978-0-13-388762-4,
                 978-0-13-388655-9",
  LCCN =         "HF5415",
  bibdate =      "Fri Oct 23 17:30:28 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9780133887662",
  acknowledgement = ack-nhfb,
  subject =      "Marketing; Data processing; Mathematical models; R
                 (Computer program language); Python (Computer program
                 language); Data mining; Data mining.; Data processing.;
                 Mathematical models.; Python (Computer program
                 language); R (Computer program language)",
  tableofcontents = "Preface \\
                 Figures \\
                 Tables \\
                 Exhibits \\
                 1. Understanding Markets \\
                 2. Predicting Consumer Choice \\
                 3. Targeting Current Customers \\
                 4. Finding New Customers \\
                 5. Retaining Customers \\
                 6. Positioning Products \\
                 7. Developing New Products \\
                 8. Promoting Products \\
                 9. Recommending Products \\
                 10. Assessing Brands and Prices \\
                 11. Utilizing Social Networks \\
                 12. Watching Competitors \\
                 13. Predicting Sales \\
                 14. Redefining Marketing Research \\
                 A. Data Science Methods \\
                 A.1 Database Systems and Data Preparation \\
                 A.2 Classical and Bayesian Statistics \\
                 A.3 Regression and Classification \\
                 A.4 Data Mining and Machine Learning \\
                 A.5 Data Visualization \\
                 A.6 Text and Sentiment Analysis \\
                 A.7 Time Series and Market Response Models \\
                 B. Marketing Data Sources \\
                 B.1 Measurement Theory \\
                 B.2 Levels of Measurement \\
                 B.3 Sampling \\
                 B.4 Marketing Databases \\
                 B.5 World Wide Web \\
                 B.6 Social Media \\
                 B.7 Surveys \\
                 B.8 Experiments \\
                 B.9 Interviews \\
                 B.10 Focus Groups \\
                 B.11 Field Research \\
                 C. Case Studies \\
                 C.1 AT&T Choice Study \\
                 C.2 Anonymous Microsoft Web Data \\
                 C.3 Bank Marketing Study \\
                 C.4 Boston Housing Study \\
                 C.5 Computer Choice Study \\
                 C.6 DriveTime Sedans \\
                 C.7 Lydia E. Pinkham Medicine Company \\
                 C.8 Procter & Gamble Laundry Soaps \\
                 C.9 Return of the Bobbleheads \\
                 C.10 Studenmund's Restaurants \\
                 C.11 Sydney Transportation Study \\
                 C.12 ToutBay Begins Again \\
                 C.13 Two Month's Salary \\
                 C.14 Wisconsin Dells \\
                 C.15 Wisconsin Lottery Sales \\
                 C.16 Wikipedia Votes \\
                 D. Code and Utilities \\
                 Bibliography \\
                 Index \\
                 Code Snippets",
}

@Book{Minichino:2015:LOC,
  author =       "Joe Minichino and Joseph Howse",
  title =        "Learning {OpenCV 3} computer vision with {Python}:
                 unleash the power of computer vision with {Python}
                 using {OpenCV}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "",
  year =         "2015",
  ISBN =         "1-78528-977-2, 1-78528-384-7",
  ISBN-13 =      "978-1-78528-977-4, 978-1-78528-384-0",
  LCCN =         "TA1634",
  bibdate =      "Fri Oct 23 15:44:56 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781785283840",
  acknowledgement = ack-nhfb,
  subject =      "Computer vision; Python (Computer program language)",
  tableofcontents = "Learning OpenCV 3 Computer Vision with Python
                 Second Edition \\
                 Table of Contents \\
                 Learning OpenCV 3 Computer Vision with Python Second
                 Edition \\
                 Credits \\
                 About the Authors \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 OpenCV \\
                 Choosing and using the right setup tools \\
                 Installation on Windows \\
                 Using binary installers (no support for depth cameras)
                 \\
                 Using CMake and compilers \\
                 Installing on OS X \\
                 Using MacPorts with ready-made packages \\
                 Using MacPorts with your own custom packages \\
                 Using Homebrew with ready-made packages (no support for
                 depth cameras) \\
                 Using Homebrew with your own custom packages \\
                 Installation on Ubuntu and its derivatives \\
                 Using the Ubuntu repository (no support for depth
                 cameras) \\
                 Building OpenCV from a source \\
                 Installation on other Unix-like systems \\
                 Installing the Contrib modules \\
                 Running samples \\
                 Finding documentation, help, and updates \\
                 Summary \\
                 2. Handling Files, Cameras, and GUIs \\
                 Basic I/O scripts \\
                 Reading/writing an image file \\
                 Converting between an image and raw bytes \\
                 Accessing image data with numpy.array \\
                 Reading/writing a video file \\
                 Capturing camera frames \\
                 Displaying images in a window \\
                 Displaying camera frames in a window \\
                 Project Cameo (face tracking and image manipulation)
                 \\
                 Cameo --- an object-oriented design \\
                 Abstracting a video stream with managers.CaptureManager
                 \\
                 Abstracting a window and keyboard with
                 managers.WindowManager \\
                 Applying everything with cameo.Cameo \\
                 Summary \\
                 3. Processing Images with OpenCV 3 \\
                 Converting between different color spaces \\
                 A quick note on BGR \\
                 The Fourier Transform \\
                 High pass filter \\
                 Low pass filter \\
                 Creating modules \\
                 Edge detection \\
                 Custom kernels --- getting convoluted \\
                 Modifying the application \\
                 Edge detection with Canny \\
                 Contour detection \\
                 Contours --- bounding box, minimum area rectangle, and
                 minimum enclosing circle \\
                 Contours --- convex contours and the Douglas-Peucker
                 algorithm \\
                 Line and circle detection \\
                 Line detection \\
                 Circle detection \\
                 Detecting shapes \\
                 Summary \\
                 4. Depth Estimation and Segmentation \\
                 Creating modules \\
                 Capturing frames from a depth camera \\
                 Creating a mask from a disparity map \\
                 Masking a copy operation \\
                 Depth estimation with a normal camera \\
                 Object segmentation using the Watershed and GrabCut
                 algorithms \\
                 Example of foreground detection with GrabCut \\
                 Image segmentation with the Watershed algorithm \\
                 Summary \\
                 5. Detecting and Recognizing Faces \\
                 Conceptualizing Haar cascades \\
                 Getting Haar cascade data \\
                 Using OpenCV to perform face detection \\
                 Performing face detection on a still image \\
                 Performing face detection on a video \\
                 Performing face recognition \\
                 Generating the data for face recognition \\
                 Recognizing faces \\
                 Preparing the training data \\
                 Loading the data and recognizing faces \\
                 Performing an Eigenfaces recognition \\
                 Performing face recognition with Fisherfaces \\
                 Performing face recognition with LBPH \\
                 Discarding results with confidence score \\
                 Summary \\
                 6. Retrieving Images and Searching Using Image
                 Descriptors \\
                 Feature detection algorithms \\
                 Defining features \\
                 Detecting features --- corners \\
                 Feature extraction and description using DoG and SIFT
                 \\
                 Anatomy of a keypoint \\
                 Feature extraction and detection using Fast Hessian and
                 SURF \\
                 ORB feature detection and feature matching \\
                 FAST \\
                 BRIEF \\
                 Brute-Force matching \\
                 Feature matching with ORB \\
                 Using K-Nearest Neighbors matching \\
                 FLANN-based matching \\
                 FLANN matching with homography \\
                 A sample application --- tattoo forensics \\
                 Saving image descriptors to file \\
                 Scanning for matches \\
                 Summary \\
                 7. Detecting and Recognizing Objects \\
                 Object detection and recognition techniques \\
                 HOG descriptors \\
                 The scale issue \\
                 The location issue \\
                 Image pyramid \\
                 Sliding windows \\
                 Non-maximum (or non-maxima) suppression \\
                 Support vector machines \\
                 People detection \\
                 Creating and training an object detector \\
                 Bag-of-words \\
                 BOW in computer vision \\
                 The k-means clustering \\
                 Detecting cars \\
                 What did we just do? \\
                 SVM and sliding windows \\
                 Example --- car detection in a scene \\
                 Examining detector.py \\
                 Associating training data with classes \\
                 Dude, where's my car? \\
                 Summary \\
                 8. Tracking Objects \\
                 Detecting moving objects \\
                 Basic motion detection \\
                 Background subtractors --- KNN, MOG2, and GMG \\
                 Meanshift and CAMShift \\
                 Color histograms \\
                 The calcHist function \\
                 The calcBackProject function \\
                 In summary \\
                 Back to the code \\
                 CAMShift \\
                 The Kalman filter \\
                 Predict and update \\
                 An example \\
                 A real-life example --- tracking pedestrians \\
                 The application workflow \\
                 A brief digression --- functional versus
                 object-oriented programming \\
                 The Pedestrian class \\
                 The main program \\
                 Where do we go from here? \\
                 Summary \\
                 9. Neural Networks with OpenCV --- an Introduction \\
                 Artificial neural networks \\
                 Neurons and perceptrons \\
                 The structure of an ANN \\
                 Network layers by example \\
                 The input layer \\
                 The output layer \\
                 The hidden layer \\
                 The learning algorithms \\
                 ANNs in OpenCV \\
                 ANN-imal classification \\
                 Training epochs \\
                 Handwritten digit recognition with ANNs \\
                 MNIST --- the handwritten digit database \\
                 Customized training data \\
                 The initial parameters \\
                 The input layer \\
                 The hidden layer \\
                 The output layer \\
                 Training epochs \\
                 Other parameters \\
                 Mini-libraries \\
                 The main file \\
                 Possible improvements and potential applications \\
                 Improvements \\
                 Potential applications \\
                 Summary \\
                 To boldly go \ldots{} \\
                 Index",
}

@Book{Mitchell:2015:WSP,
  author =       "Ryan Mitchell",
  title =        "Web scraping with {Python}: collecting data from the
                 modern web",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xiii + 238",
  year =         "2015",
  ISBN =         "1-4919-1029-1 (paperback), 1-4919-1028-3",
  ISBN-13 =      "978-1-4919-1029-0 (paperback), 978-1-4919-1028-3",
  LCCN =         "QA76.73.P98",
  bibdate =      "Wed Oct 14 07:37:03 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9781491910283",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Data mining;
                 Automatic data collection systems; Automatic data
                 collection systems.; Data mining.; Python (Computer
                 program language)",
  tableofcontents = "Preface \\
                 What Is Web Scraping? \\
                 Why Web Scraping? \\
                 About This Book \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 I. Building Scrapers \\
                 1. Your First Web Scraper \\
                 Connecting \\
                 An Introduction to BeautifulSoup \\
                 Installing BeautifulSoup \\
                 Running BeautifulSoup \\
                 Connecting Reliably \\
                 2. Advanced HTML Parsing \\
                 You Don't Always Need a Hammer \\
                 Another Serving of BeautifulSoup \\
                 find() and findAll() with BeautifulSoup \\
                 Other BeautifulSoup Objects \\
                 Navigating Trees \\
                 Regular Expressions \\
                 Regular Expressions and BeautifulSoup \\
                 Accessing Attributes \\
                 Lambda Expressions \\
                 Beyond BeautifulSoup \\
                 3. Starting to Crawl \\
                 Traversing a Single Domain \\
                 Crawling an Entire Site \\
                 Collecting Data Across an Entire Site \\
                 Crawling Across the Internet \\
                 Crawling with Scrapy \\
                 4. Using APIs \\
                 How APIs Work \\
                 Common Conventions \\
                 Methods \\
                 Authentication \\
                 Responses \\
                 API Calls \\
                 Echo Nest \\
                 A Few Examples \\
                 Twitter \\
                 Getting Started \\
                 A Few Examples \\
                 Google APIs \\
                 Getting Started \\
                 A Few Examples \\
                 Parsing JSON \\
                 Bringing It All Back Home \\
                 More About APIs \\
                 5. Storing Data \\
                 Media Files \\
                 Storing Data to CSV \\
                 MySQL \\
                 Installing MySQL \\
                 Some Basic Commands \\
                 Integrating with Python \\
                 Database Techniques and Good Practice \\
                 ``Six Degrees'' in MySQL \\
                 Email \\
                 6. Reading Documents \\
                 Document Encoding \\
                 Text \\
                 Text Encoding and the Global Internet \\
                 CSV \\
                 Reading CSV Files \\
                 PDF \\
                 Microsoft Word and docx \\
                 II. Advanced Scraping \\
                 7. Cleaning Your Dirty Data \\
                 Cleaning in Code \\
                 Data Normalization \\
                 Cleaning After the Fact \\
                 OpenRefine \\
                 8. Reading and Writing Natural Languages \\
                 Summarizing Data \\
                 Markov Models \\
                 Six Degrees of Wikipedia: Conclusion \\
                 Natural Language Toolkit \\
                 Installation and Setup \\
                 Statistical Analysis with NLTK \\
                 Lexicographical Analysis with NLTK \\
                 Additional Resources \\
                 9. Crawling Through Forms and Logins \\
                 Python Requests Library \\
                 Submitting a Basic Form \\
                 Radio Buttons, Checkboxes, and Other Inputs \\
                 Submitting Files and Images \\
                 Handling Logins and Cookies \\
                 HTTP Basic Access Authentication \\
                 Other Form Problems \\
                 10. Scraping JavaScript \\
                 A Brief Introduction to JavaScript \\
                 Common JavaScript Libraries \\
                 Ajax and Dynamic HTML \\
                 Executing JavaScript in Python with Selenium \\
                 Handling Redirects \\
                 11. Image Processing and Text Recognition \\
                 Overview of Libraries \\
                 Pillow \\
                 Tesseract \\
                 NumPy \\
                 Processing Well-Formatted Text \\
                 Scraping Text from Images on Websites \\
                 Reading CAPTCHAs and Training Tesseract \\
                 Training Tesseract \\
                 Retrieving CAPTCHAs and Submitting Solutions \\
                 12. Avoiding Scraping Traps \\
                 A Note on Ethics \\
                 Looking Like a Human \\
                 Adjust Your Headers \\
                 Handling Cookies \\
                 Timing Is Everything \\
                 Common Form Security Features \\
                 Hidden Input Field Values \\
                 Avoiding Honeypots \\
                 The Human Checklist \\
                 13. Testing Your Website with Scrapers \\
                 An Introduction to Testing \\
                 What Are Unit Tests? \\
                 Python unittest \\
                 Testing Wikipedia \\
                 Testing with Selenium \\
                 Interacting with the Site \\
                 Unittest or Selenium? \\
                 14. Scraping Remotely \\
                 Why Use Remote Servers? \\
                 Avoiding IP Address Blocking \\
                 Portability and Extensibility \\
                 Tor \\
                 PySocks \\
                 Remote Hosting \\
                 Running from a Website Hosting Account \\
                 Running from the Cloud \\
                 Additional Resources \\
                 Moving Forward \\
                 A. Python at a Glance \\
                 Installation and ``Hello, World!'' \\
                 B. The Internet at a Glance \\
                 C. The Legalities and Ethics of Web Scraping \\
                 Trademarks, Copyrights, Patents, Oh My! \\
                 Copyright Law \\
                 Trespass to Chattels \\
                 The Computer Fraud and Abuse Act \\
                 robots.txt and Terms of Service \\
                 Three Web Scrapers \\
                 eBay versus Bidder's Edge and Trespass to Chattels \\
                 United States v. Auernheimer and The Computer Fraud and
                 Abuse Act \\
                 Field v. Google: Copyright and robots.txt \\
                 Index",
}

@Book{Mohit:2015:PPT,
  author =       "Raj Mohit",
  title =        "{Python} penetration testing essentials",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2015",
  ISBN =         "1-78439-858-6, 1-78439-588-9 (e-book)",
  ISBN-13 =      "978-1-78439-858-3, 978-1-78439-588-9 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 06:07:52 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  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. Python with Penetration Testing and Networking \\
                 Introducing the scope of pentesting \\
                 The need for pentesting \\
                 Components to be tested \\
                 Qualities of a good pentester \\
                 Defining the scope of pentesting \\
                 Approaches to pentesting \\
                 Introducing Python scripting \\
                 Understanding the tests and tools you'll need \\
                 Learning the common testing platforms with Python \\
                 Network sockets \\
                 Server socket methods \\
                 Client socket methods \\
                 General socket methods \\
                 Moving on to the practical \\
                 Socket exceptions \\
                 Useful socket methods \\
                 Summary \\
                 2. Scanning Pentesting \\
                 How to check live systems in a network and the concept
                 of a live system \\
                 Ping sweep \\
                 The TCP scan concept and its implementation using a
                 Python script \\
                 How to create an efficient IP scanner \\
                 What are the services running on the target machine?
                 \\
                 The concept of a port scanner \\
                 How to create an efficient port scanner \\
                 Summary \\
                 3. Sniffing and Penetration Testing \\
                 Introducing a network sniffer \\
                 Passive sniffing \\
                 Active sniffing \\
                 Implementing a network sniffer using Python \\
                 Format characters \\
                 Learning about packet crafting \\
                 Introducing ARP spoofing and implementing it using
                 Python \\
                 The ARP request \\
                 The ARP reply \\
                 The ARP cache \\
                 Testing the security system using custom packet
                 crafting and injection \\
                 Network disassociation \\
                 A half-open scan \\
                 The FIN scan \\
                 ACK flag scanning \\
                 Ping of death \\
                 Summary \\
                 4. Wireless Pentesting \\
                 Wireless SSID finding and wireless traffic analysis by
                 Python \\
                 Detecting clients of an AP \\
                 Wireless attacks \\
                 The deauthentication (deauth) attacks \\
                 The MAC flooding attack \\
                 How the switch uses the CAM tables \\
                 The MAC flood logic \\
                 Summary \\
                 5. Foot Printing of a Web Server and a Web Application
                 \\
                 The concept of foot printing of a web server \\
                 Introducing information gathering \\
                 Checking the HTTP header \\
                 Information gathering of a website from SmartWhois by
                 the parser BeautifulSoup \\
                 Banner grabbing of a website \\
                 Hardening of a web server \\
                 Summary \\
                 6. Client-side and DDoS Attacks \\
                 Introducing client-side validation \\
                 Tampering with the client-side parameter with Python
                 \\
                 Effects of parameter tampering on business \\
                 Introducing DoS and DDoS \\
                 Single IP single port \\
                 Single IP multiple port \\
                 Multiple IP multiple port \\
                 Detection of DDoS \\
                 Summary \\
                 7. Pentesting of SQLI and XSS \\
                 Introducing the SQL injection attack \\
                 Types of SQL injections \\
                 Simple SQL injection \\
                 Blind SQL injection \\
                 Understanding the SQL injection attack by a Python
                 script \\
                 Learning about Cross-Site scripting \\
                 Persistent or stored XSS \\
                 Nonpersistent or reflected XSS \\
                 Summary \\
                 Index",
}

@Article{Myridis:2015:IPA,
  author =       "Nikolaos E. Myridis",
  title =        "{{\booktitle{Image processing and acquisition using
                 Python}}, by Ravishankar Chityala and Sridevi
                 Pudipeddi}, {Scope}: textbook. {Level}: general
                 readership, undergraduate, teacher",
  journal =      j-CONTEMP-PHYS,
  volume =       "56",
  number =       "2",
  pages =        "243--243",
  year =         "2015",
  CODEN =        "CTPHAF",
  DOI =          "https://doi.org/10.1080/00107514.2014.999709",
  ISSN =         "0010-7514 (print), 1366-5812 (electronic)",
  ISSN-L =       "0010-7514",
  bibdate =      "Thu Feb 18 20:09:27 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/contempphys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Contemporary Physics",
  journal-URL =  "http://www.tandfonline.com/loi/tcph20",
}

@Book{Nelli:2015:PDA,
  author =       "Fabio Nelli",
  title =        "{Python} data analytics: data analysis and science
                 using {Pandas}, {matplotlib}, and the {Python}
                 programming language",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxi + 337",
  year =         "2015",
  DOI =          "https://doi.org/10.1007/978-1-4842-0958-5",
  ISBN =         "1-4842-0959-1 (paperback), 1-4842-0958-3 (e-book)",
  ISBN-13 =      "978-1-4842-0959-2 (paperback), 978-1-4842-0958-5
                 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 15:22:12 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "The expert's voice in Python",
  abstract =     "Python Data Analytics will help you tackle the world
                 of data acquisition and analysis using the power of the
                 Python language. At the heart of this book lies the
                 coverage of pandas, an open source, BSD-licensed
                 library providing high-performance, easy-to-use data
                 structures and data analysis tools for the Python
                 programming language. Author Fabio Nelli expertly shows
                 the strength of the Python programming language when
                 applied to processing, managing and retrieving
                 information. Inside, you will see how intuitive and
                 flexible it is to discover and communicate meaningful
                 patterns of data using Python scripts, reporting
                 systems, and data export. This book examines how to go
                 about obtaining, processing, storing, managing and
                 analyzing data using the Python programming language.
                 You will use Python and other open source tools to
                 wrangle data and tease out interesting and important
                 trends in that data that will allow you to predict
                 future patterns. Whether you are dealing with sales
                 data, investment data (stocks, bonds, etc.), medical
                 data, web page usage, or any other type of data set,
                 Python can be used to interpret, analyze, and glean
                 information from a pile of numbers and statistics. This
                 book is an invaluable reference with its examples of
                 storing and accessing data in a database; it walks you
                 through the process of report generation; it provides
                 three real world case studies or examples that you can
                 take with you for your everyday analysis needs.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Data mining;
                 COMPUTERS / Programming Languages / Python; Data
                 mining.; Python (Computer program language)",
  tableofcontents = "About the Author \\
                 About the Technical Reviewer \\
                 Acknowledgments \\
                 1: an Introduction to Data Analysis \\
                 Data Analysis \\
                 Knowledge Domains of the Data Analyst \\
                 Computer Science \\
                 Mathematics and Statistics \\
                 Machine Learning and Artificial Intelligence \\
                 Professional Fields of Application \\
                 Understanding the Nature of the Data \\
                 When the Data Become Information \\
                 When the Information Becomes Knowledge \\
                 Types of Data \\
                 The Data Analysis Process \\
                 Problem Definition \\
                 Data Extraction \\
                 Data Preparation \\
                 Data Exploration/Visualization \\
                 Predictive Modeling \\
                 Model Validation \\
                 Deployment \\
                 Quantitative and Qualitative Data Analysis \\
                 Open Data \\
                 Python and Data Analysis \\
                 Conclusions \\
                 2: Introduction to the Python s World \\
                 Python The Programming Language \\
                 Python The Interpreter \\
                 Cython \\
                 Jython \\
                 PyPy \\
                 Python 2 and Python 3 \\
                 Installing Python \\
                 Python Distributions \\
                 Anaconda \\
                 Enthought Canopy \\
                 Python(x,y) \\
                 Using Python \\
                 Python Shell \\
                 Run an Entire Program Code \\
                 Implement the Code Using an IDE \\
                 Interact with Python \\
                 Writing Python Code \\
                 Make Calculations \\
                 Import New Libraries and Functions \\
                 Functional Programming (Only for Python 3.4) \\
                 Indentation \\
                 IPython \\
                 IPython Shell \\
                 IPython Qt-Console \\
                 PyPI The Python Package Index \\
                 The IDEs for Python \\
                 IDLE (Integrated DeveLopment Environment) \\
                 Spyder \\
                 Eclipse (pyDev) \\
                 Sublime \\
                 Liclipse \\
                 NinjaIDE \\
                 Komodo IDE \\
                 SciPy \\
                 NumPy \\
                 Pandas \\
                 matplotlib \\
                 Conclusions \\
                 3: The NumPy Library \\
                 NumPy: a Little History \\
                 The NumPy Installation \\
                 Ndarray: The Heart of the Library \\
                 Create an Array \\
                 Types of Data \\
                 The dtype Option \\
                 Intrinsic Creation of an Array \\
                 Basic Operations \\
                 Arithmetic Operators \\
                 The Matrix Product \\
                 Increment and Decrement Operators \\
                 Universal Functions (ufunc) \\
                 Aggregate Functions \\
                 Indexing, Slicing, and Iterating \\
                 Indexing \\
                 Slicing \\
                 Iterating an Array \\
                 Conditions and Boolean Arrays \\
                 Shape Manipulation \\
                 Array Manipulation \\
                 Joining Arrays \\
                 Splitting Arrays \\
                 General Concepts \\
                 Copies or Views of Objects \\
                 Vectorization \\
                 Broadcasting \\
                 Structured Arrays \\
                 Reading and Writing Array Data on Files \\
                 Loading and Saving Data in Binary Files \\
                 Reading File with Tabular Data \\
                 Conclusions \\
                 4: The pandas Library An Introduction \\
                 pandas: The Python Data Analysis Library \\
                 Installation \\
                 Installation from Anaconda \\
                 Installation from PyPI \\
                 Installation on Linux \\
                 Installation from Source \\
                 A Module Repository for Windows \\
                 Test Your pandas Installation \\
                 Getting Started with pandas \\
                 Introduction to pandas Data Structures \\
                 The Series \\
                 The DataFrame \\
                 The Index Objects \\
                 Other Functionalities on Indexes \\
                 Reindexing \\
                 Dropping \\
                 Arithmetic and Data Alignment \\
                 Operations between Data Structures \\
                 Flexible Arithmetic Methods \\
                 Operations between DataFrame and Series \\
                 Function Application and Mapping \\
                 Functions by Element \\
                 Functions by Row or Column \\
                 Statistics Functions \\
                 Sorting and Ranking \\
                 Correlation and Covariance \\
                 Not a Number Data \\
                 Assigning a NaN Value \\
                 Filtering Out NaN Values \\
                 Filling in NaN Occurrences \\
                 Hierarchical Indexing and Leveling \\
                 Reordering and Sorting Levels \\
                 Summary Statistic by Level \\
                 Conclusions \\
                 5: pandas: Reading and Writing Data \\
                 I/O API Tools \\
                 CSV and Textual Files \\
                 Reading Data in CSV or Text Files \\
                 Using RegExp for Parsing TXT Files \\
                 Reading TXT Files into Parts or Partially \\
                 Writing Data in CSV \\
                 Reading and Writing HTML Files \\
                 Writing Data in HTML \\
                 Reading Data from an HTML File \\
                 Reading Data from XML \\
                 Reading and Writing Data on Microsoft Excel Files \\
                 JSON Data \\
                 The Format HDF5 \\
                 Pickle Python Object Serialization \\
                 Serialize a Python Object with cPickle \\
                 Pickling with pandas \\
                 Interacting with Databases \\
                 Loading and Writing Data with SQLite3 \\
                 Loading and Writing Data with PostgreSQL \\
                 Reading and Writing Data with a NoSQL Database: MongoDB
                 \\
                 Conclusions \\
                 6: pandas in Depth: Data Manipulation \\
                 Data Preparation \\
                 Merging \\
                 Concatenating \\
                 Combining \\
                 Pivoting \\
                 Removing \\
                 Data Transformation \\
                 Removing Duplicates \\
                 Mapping \\
                 Discretization and Binning \\
                 Detecting and Filtering Outliers \\
                 Permutation \\
                 String Manipulation \\
                 Built-in Methods for Manipulation of Strings \\
                 Regular Expressions \\
                 Data Aggregation \\
                 GroupBy \\
                 A Practical Example \\
                 Hierarchical Grouping \\
                 Group Iteration \\
                 Chain of Transformations \\
                 Functions on Groups \\
                 Advanced Data Aggregation \\
                 Conclusions \\
                 7: Data Visualization with matplotlib \\
                 The matplotlib Library \\
                 Installation \\
                 IPython and IPython QtConsole \\
                 matplotlib Architecture \\
                 Backend Layer \\
                 Artist Layer \\
                 Scripting Layer (pyplot) \\
                 pylab and pyplot \\
                 pyplot \\
                 A Simple Interactive Chart \\
                 Set the Properties of the Plot \\
                 matplotlib and NumPy \\
                 Using the kwargs \\
                 Working with Multiple Figures and Axes \\
                 Adding Further Elements to the Chart \\
                 Adding Text \\
                 Adding a Grid \\
                 Adding a Legend \\
                 Saving Your Charts \\
                 Saving the Code \\
                 Converting Your Session as an HTML File \\
                 Saving Your Chart Directly as an Image \\
                 Handling Date Values \\
                 Chart Typology \\
                 Line Chart \\
                 Line Charts with pandas \\
                 Histogram \\
                 Bar Chart \\
                 Horizontal Bar Chart \\
                 Multiserial Bar Chart \\
                 Multiseries Bar Chart with pandas DataFrame \\
                 Multiseries Stacked Bar Charts \\
                 Stacked Bar Charts with pandas DataFrame \\
                 Other Bar Chart Representations \\
                 Pie Charts \\
                 Pie Charts with pandas DataFrame \\
                 Advanced Charts \\
                 Contour Plot \\
                 Polar Chart \\
                 mplot3d \\
                 3D Surfaces \\
                 Scatter Plot in 3D \\
                 Bar Chart 3D \\
                 Multi-Panel Plots \\
                 Display Subplots within Other Subplots \\
                 Grids of Subplots \\
                 Conclusions \\
                 8: Machine Learning with scikit-learn \\
                 The scikit-learn Library \\
                 Machine Learning \\
                 Supervised and Unsupervised Learning \\
                 Training Set and Testing Set \\
                 Supervised Learning with scikit-learn \\
                 The Iris Flower Dataset \\
                 The PCA Decomposition \\
                 K-Nearest Neighbors Classifier \\
                 Diabetes Dataset \\
                 Linear Regression: The Least Square Regression \\
                 Support Vector Machines (SVMs) \\
                 Support Vector Classification (SVC) \\
                 Nonlinear SVC \\
                 Plotting Different SVM Classifiers Using the Iris
                 Dataset \\
                 Support Vector Regression (SVR) \\
                 Conclusions \\
                 9: an Example Meteorological Data \\
                 A Hypothesis to Be Tested: The Influence of the
                 Proximity of the Sea \\
                 The System in the Study: The Adriatic Sea and the Po
                 Valley \\
                 Data Source \\
                 Data Analysis on IPython Notebook \\
                 The RoseWind \\
                 Calculating the Distribution of the Wind Speed Means
                 \\
                 Conclusions \\
                 10: Embedding the JavaScript D3 Library in IPython
                 Notebook \\
                 The Open Data Source for Demographics \\
                 The JavaScript D3 Library \\
                 Drawing a Clustered Bar Chart \\
                 The Choropleth Maps \\
                 The Choropleth Map of the US Population in 2014 \\
                 Conclusions \\
                 11: Recognizing Handwritten Digits \\
                 Handwriting Recognition \\
                 Recognizing Handwritten Digits with scikit-learn \\
                 The Digits Dataset \\
                 Learning and Predicting \\
                 Conclusions \\
                 Appendix A: Writing Mathematical Expressions with LaTeX
                 \\
                 With matplotlib \\
                 With IPython Notebook in a Markdown Cell \\
                 With IPython Notebook in a Python 2 Cell \\
                 Subscripts and Superscripts \\
                 Fractions, Binomials, and Stacked Numbers \\
                 Radicals \\
                 Fonts \\
                 Accents \\
                 Appendix B: Open Data Sources \\
                 Political and Government Data \\
                 Health Data \\
                 Social Data \\
                 Miscellaneous and Public Data Sets \\
                 Financial Data \\
                 Climatic Data \\
                 Sports Data \\
                 Publications, Newspapers, and Books \\
                 Musical Data \\
                 Index",
}

@Book{Nixon:2015:GSP,
  author =       "Dan Nixon",
  title =        "Getting started with {Python} and {Raspberry Pi}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-78355-159-3",
  ISBN-13 =      "978-1-78355-159-0",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 15:47:02 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Getting Started with Python and Raspberry Pi \\
                 Table of Contents \\
                 Getting Started with Python and Raspberry Pi \\
                 Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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. Your First Steps with Python on the Pi \\
                 Installing and setting up Raspbian \\
                 Writing to the SD card \\
                 Windows \\
                 Linux and Mac \\
                 Booting the Pi for the first time \\
                 The Python development tools \\
                 Python 2 versus Python 3 \\
                 Running some simple Python scripts \\
                 Summary \\
                 2. Understanding Control Flow and Data Types \\
                 Data in Python \\
                 Numerical types \\
                 Operations on numerical types \\
                 String manipulation \\
                 String functions \\
                 String formatting \\
                 String templates \\
                 Control flow operators \\
                 Using functions \\
                 Summary \\
                 3. Working with Data Structures and I/O \\
                 Data structures \\
                 Lists \\
                 Creating lists \\
                 List operations \\
                 Dictionaries \\
                 Creating dictionaries \\
                 Dictionary operations \\
                 Sets \\
                 Set operations \\
                 Frozen sets \\
                 Tuples \\
                 Input/output \\
                 The os.path module \\
                 Reading and writing files \\
                 Summary \\
                 4. Understanding Object-oriented Programming and
                 Threading \\
                 Object-oriented programming \\
                 Classes in Python \\
                 Operation.py \\
                 Calculator.py \\
                 Using the module \\
                 Inheritance \\
                 Threading \\
                 Locks \\
                 Summary \\
                 5. Packaging Code with setuptools \\
                 Using packages in your Python code \\
                 Importing modules \\
                 Installing modules manually \\
                 Installing modules using pip \\
                 Installing modules using apt \\
                 Packaging your own Python modules \\
                 Packaging a library \\
                 Adding an entry point \\
                 Summary \\
                 6. Accessing the GPIO Pins \\
                 Digital electronics \\
                 The GPIO library \\
                 Single LED output \\
                 PWM output \\
                 Multiple outputs \\
                 Basic switch \\
                 Switch using interrupt \\
                 Universal Asynchronous Receiver/Transmitter (UART) \\
                 Setting up the serial port \\
                 Using pySerial \\
                 Additional libraries \\
                 Summary \\
                 7. Using the Camera Module \\
                 Setting up the camera module \\
                 Installing and testing the Python library \\
                 Writing applications for the camera \\
                 A time lapse recorder \\
                 A point-and-shoot camera \\
                 An image effect randomizer \\
                 Summary \\
                 8. Extracting Data from the Internet \\
                 Using urllib2 to download data \\
                 Parsing JSON APIs \\
                 Parsing XML APIs \\
                 The DOM method \\
                 The SAX method \\
                 Parsing a web page using BeautifulSoup \\
                 Summary \\
                 9. Creating Command-line Interfaces \\
                 Unit conversion application \\
                 Command-line interface \\
                 Summary \\
                 10. Debugging Applications with PDB and Log Files \\
                 The Python debugger \\
                 Writing log files \\
                 Unit testing \\
                 Summary \\
                 11. Designing Your GUI with Qt \\
                 Setting up the codebase \\
                 Building the UI with Qt Designer \\
                 Writing the UI code \\
                 Launching the UI \\
                 Packaging the code \\
                 Summary \\
                 Index",
}

@Book{Phillips:2015:POO,
  author =       "Dusty Phillips",
  title =        "{Python 3} object-oriented programming: unleash the
                 power of {Python 3} objects",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  edition =      "Second",
  pages =        "xii + 431",
  year =         "2015",
  ISBN =         "1-78439-878-0, 1-78439-878-0",
  ISBN-13 =      "978-1-78439-878-1, 978-1-78439-878-1",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:07:45 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science); Object-oriented
                 programming languages",
  tableofcontents = "About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 Introduction to the second edition \\
                 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. Object-oriented Design \\
                 Introducing object-oriented \\
                 Objects and classes \\
                 Specifying attributes and behaviors \\
                 Data describes objects \\
                 Behaviors are actions \\
                 Hiding details and creating the public interface \\
                 Composition \\
                 Inheritance \\
                 Inheritance provides abstraction \\
                 Multiple inheritance \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 2. Objects in Python \\
                 Creating Python classes \\
                 Adding attributes \\
                 Making it do something \\
                 Talking to yourself \\
                 More arguments \\
                 Initializing the object \\
                 Explaining yourself \\
                 Modules and packages \\
                 Organizing the modules \\
                 Absolute imports \\
                 Relative imports \\
                 Organizing module contents \\
                 Who can access my data? \\
                 Third-party libraries \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 3. When Objects Are Alike \\
                 Basic inheritance \\
                 Extending built-ins \\
                 Overriding and super \\
                 Multiple inheritance \\
                 The diamond problem \\
                 Different sets of arguments \\
                 Polymorphism \\
                 Abstract base classes \\
                 Using an abstract base class \\
                 Creating an abstract base class \\
                 Demystifying the magic \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 4. Expecting the Unexpected \\
                 Raising exceptions \\
                 Raising an exception \\
                 The effects of an exception \\
                 Handling exceptions \\
                 The exception hierarchy \\
                 Defining our own exceptions \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 5. When to Use Object-oriented Programming \\
                 Treat objects as objects \\
                 Adding behavior to class data with properties \\
                 Properties in detail \\
                 Decorators --- another way to create properties \\
                 Deciding when to use properties \\
                 Manager objects \\
                 Removing duplicate code \\
                 In practice \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 6. Python Data Structures \\
                 Empty objects \\
                 Tuples and named tuples \\
                 Named tuples \\
                 Dictionaries \\
                 Dictionary use cases \\
                 Using defaultdict \\
                 Counter \\
                 Lists \\
                 Sorting lists \\
                 Sets \\
                 Extending built-ins \\
                 Queues \\
                 FIFO queues \\
                 LIFO queues \\
                 Priority queues \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 7. Python Object-oriented Shortcuts \\
                 Python built-in functions \\
                 The len() function \\
                 Reversed \\
                 Enumerate \\
                 File I/O \\
                 Placing it in context \\
                 An alternative to method overloading \\
                 Default arguments \\
                 Variable argument lists \\
                 Unpacking arguments \\
                 Functions are objects too \\
                 Using functions as attributes \\
                 Callable objects \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 8. Strings and Serialization \\
                 Strings \\
                 String manipulation \\
                 String formatting \\
                 Escaping braces \\
                 Keyword arguments \\
                 Container lookups \\
                 Object lookups \\
                 Making it look right \\
                 Strings are Unicode \\
                 Converting bytes to text \\
                 Converting text to bytes \\
                 Mutable byte strings \\
                 Regular expressions \\
                 Matching patterns \\
                 Matching a selection of characters \\
                 Escaping characters \\
                 Matching multiple characters \\
                 Grouping patterns together \\
                 Getting information from regular expressions \\
                 Making repeated regular expressions efficient \\
                 Serializing objects \\
                 Customizing pickles \\
                 Serializing web objects \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 9. The Iterator Pattern \\
                 Design patterns in brief \\
                 Iterators \\
                 The iterator protocol \\
                 Comprehensions \\
                 List comprehensions \\
                 Set and dictionary comprehensions \\
                 Generator expressions \\
                 Generators \\
                 Yield items from another iterable \\
                 Coroutines \\
                 Back to log parsing \\
                 Closing coroutines and throwing exceptions \\
                 The relationship between coroutines, generators, and
                 functions \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 10. Python Design Patterns I \\
                 The decorator pattern \\
                 A decorator example \\
                 Decorators in Python \\
                 The observer pattern \\
                 An observer example \\
                 The strategy pattern \\
                 A strategy example \\
                 Strategy in Python \\
                 The state pattern \\
                 A state example \\
                 State versus strategy \\
                 State transition as coroutines \\
                 The singleton pattern \\
                 Singleton implementation \\
                 The template pattern \\
                 A template example \\
                 Exercises \\
                 Summary \\
                 11. Python Design Patterns II \\
                 The adapter pattern \\
                 The facade pattern \\
                 The flyweight pattern \\
                 The command pattern \\
                 The abstract factory pattern \\
                 The composite pattern \\
                 Exercises \\
                 Summary \\
                 12. Testing Object-oriented Programs \\
                 Why test? \\
                 Test-driven development \\
                 Unit testing \\
                 Assertion methods \\
                 Reducing boilerplate and cleaning up \\
                 Organizing and running tests \\
                 Ignoring broken tests \\
                 Testing with py.test \\
                 One way to do setup and cleanup \\
                 A completely different way to set up variables \\
                 Skipping tests with py.test \\
                 Imitating expensive objects \\
                 How much testing is enough? \\
                 Case study \\
                 Implementing it \\
                 Exercises \\
                 Summary \\
                 13. Concurrency \\
                 Threads \\
                 The many problems with threads \\
                 Shared memory \\
                 The global interpreter lock \\
                 Thread overhead \\
                 Multiprocessing \\
                 Multiprocessing pools \\
                 Queues \\
                 The problems with multiprocessing \\
                 Futures \\
                 AsyncIO \\
                 AsyncIO in action \\
                 Reading an AsyncIO future \\
                 AsyncIO for networking \\
                 Using executors to wrap blocking code \\
                 Streams \\
                 Executors \\
                 Case study \\
                 Exercises \\
                 Summary \\
                 Index",
}

@Book{Pippi:2015:PGA,
  author =       "Massimiliano Pippi",
  title =        "{Python} for {Google App Engine}: master the full
                 range of development features provided by {Google App
                 Engine} to build and run scalable web applications in
                 {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "198 (est)",
  year =         "2015",
  ISBN =         "1-78439-819-5 (paperback), 1-78439-237-5 (e-book)",
  ISBN-13 =      "978-1-78439-819-4 (paperback), 978-1-78439-237-6
                 (e-book)",
  LCCN =         "TK5105.8885.G643 .P577 2015",
  bibdate =      "Sat Oct 24 06:05:47 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  acknowledgement = ack-nhfb,
  subject =      "Web site development; Computer programs; Application
                 software; Development; Python (Computer program
                 language); COMPUTERS / General; Development.; Python
                 (Computer program language); Computer 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started \\
                 The cloud computing stack SaaS, PaaS, and IaaS \\
                 Google Cloud Platform \\
                 Hosting + Compute \\
                 Storage \\
                 BigQuery \\
                 Services \\
                 What Google App Engine does \\
                 The runtime environment \\
                 The services \\
                 Making our first Python application \\
                 Download and installation \\
                 Installing on Windows \\
                 Installing on Mac OS X \\
                 Installing on Linux \\
                 App Engine Launcher \\
                 Creating the application \\
                 The app.yaml configuration file \\
                 The main.py application script \\
                 Running the development server \\
                 Uploading the application to App Engine \\
                 Google Developer Console \\
                 Development Console \\
                 Summary \\
                 2. A More Complex Application \\
                 Experimenting on the Notes application \\
                 Authenticating users \\
                 HTML templates with Jinja2 \\
                 Handling forms \\
                 Persisting data in Datastore \\
                 Defining the models \\
                 Basic querying \\
                 Transactions \\
                 Using static files \\
                 Summary \\
                 3. Storing and Processing Users' Data \\
                 Uploading files to Google Cloud Storage \\
                 Installing Cloud Storage Client Library \\
                 Adding a form to upload images \\
                 Serving files from Cloud Storage \\
                 Serving files through Google's Content Delivery Network
                 \\
                 Serving images \\
                 Serving other types of files \\
                 Transforming images with the Images service \\
                 Processing long jobs with the task queue \\
                 Scheduling tasks with Cron \\
                 Sending notification e-mails \\
                 Receiving users' data as e-mail messages \\
                 Summary \\
                 4. Improving Application Performance \\
                 Advanced use of Datastore \\
                 More on properties arrange composite data with
                 StructuredProperty \\
                 More on queries save space with projections and
                 optimize iterations with mapping \\
                 Projection queries \\
                 Mapping \\
                 NDB asynchronous operations \\
                 Caching \\
                 Backup and restore functionalities \\
                 Indexing \\
                 Using Memcache \\
                 Breaking our application into modules \\
                 Summary \\
                 5. Storing Data in Google Cloud SQL \\
                 Creating a Cloud SQL instance \\
                 Configuring access \\
                 Setting the root password \\
                 Connecting to the instance with the MySQL console \\
                 Creating the notes database \\
                 Creating a dedicated user \\
                 Creating tables \\
                 Connecting to the instance from our application \\
                 Loading and saving data \\
                 Using the local MySQL installation for development \\
                 Summary \\
                 6. Using Channels to Implement a Real-time Application
                 \\
                 Understanding how the Channel API works \\
                 Making our application real time \\
                 Implementing the server \\
                 The JavaScript code for clients \\
                 Tracking connections and disconnections \\
                 Summary \\
                 7. Building an Application with Django \\
                 Setting up the local environment \\
                 Configuring a virtual environment \\
                 Installing dependencies \\
                 Rewriting our application using Django 1.7 \\
                 Using Google Cloud SQL as a database backend \\
                 Creating a reusable application in Django \\
                 Views and templates \\
                 Authenticating users with Django \\
                 Using the ORM and migrations system \\
                 Processing forms with the Forms API \\
                 Uploading files to Google Cloud Storage \\
                 Summary \\
                 8. Exposing a REST API with Google Cloud Endpoints \\
                 Reasons to use a REST API \\
                 Designing and building the API \\
                 Resources, URLs, HTTP verbs, and response code \\
                 Defining resource representations \\
                 Implementing API endpoints \\
                 Testing the API with API Explorer \\
                 Protecting an endpoint with OAuth2 \\
                 Summary \\
                 Index",
}

@Book{Ramalho:2015:FPC,
  author =       "Luciano Ramalho",
  title =        "Fluent {Python}: clear, concise, and effective
                 programming",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxiv + 743",
  year =         "2015",
  ISBN =         "1-4919-4600-8 (paperback), 1-4919-4623-7,
                 1-4919-4625-3 (e-book), 1-4919-4626-1 (e-book)",
  ISBN-13 =      "978-1-4919-4600-8 (paperback), 978-1-4919-4623-7,
                 978-1-4919-4625-1 (e-book), 978-1-4919-4626-8
                 (e-book)",
  LCCN =         "AA76.73.P98",
  bibdate =      "Wed Oct 14 08:34:48 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781491946237",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming languages",
  tableofcontents = "Dedication \\
                 Preface \\
                 Who This Book Is For \\
                 Who This Book Is Not For \\
                 How This Book Is Organized \\
                 Hands-On Approach \\
                 Hardware Used for Timings \\
                 Soapbox: My Personal Perspective \\
                 Python Jargon \\
                 Python Version Covered \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 I. Prologue \\
                 1. The Python Data Model \\
                 A Pythonic Card Deck \\
                 How Special Methods Are Used \\
                 Emulating Numeric Types \\
                 String Representation \\
                 Arithmetic Operators \\
                 Boolean Value of a Custom Type \\
                 Overview of Special Methods \\
                 Why len Is Not a Method \\
                 Chapter Summary \\
                 Further Reading \\
                 II. Data Structures \\
                 2. An Array of Sequences \\
                 Overview of Built-In Sequences \\
                 List Comprehensions and Generator Expressions \\
                 List Comprehensions and Readability \\
                 Listcomps Versus map and filter \\
                 Cartesian Products \\
                 Generator Expressions \\
                 Tuples Are Not Just Immutable Lists \\
                 Tuples as Records \\
                 Tuple Unpacking \\
                 Using * to grab excess items \\
                 Nested Tuple Unpacking \\
                 Named Tuples \\
                 Tuples as Immutable Lists \\
                 Slicing \\
                 Why Slices and Range Exclude the Last Item \\
                 Slice Objects \\
                 Multidimensional Slicing and Ellipsis \\
                 Assigning to Slices \\
                 Using + and * with Sequences \\
                 Building Lists of Lists \\
                 Augmented Assignment with Sequences \\
                 A += Assignment Puzzler \\
                 list.sort and the sorted Built-In Function \\
                 Managing Ordered Sequences with bisect \\
                 Searching with bisect \\
                 Inserting with bisect.insort \\
                 When a List Is Not the Answer \\
                 Arrays \\
                 Memory Views \\
                 NumPy and SciPy \\
                 Deques and Other Queues \\
                 Chapter Summary \\
                 Further Reading \\
                 3. Dictionaries and Sets \\
                 Generic Mapping Types \\
                 dict Comprehensions \\
                 Overview of Common Mapping Methods \\
                 Handling Missing Keys with setdefault \\
                 Mappings with Flexible Key Lookup \\
                 defaultdict: Another Take on Missing Keys \\
                 The __missing__ Method \\
                 Variations of dict \\
                 Subclassing UserDict \\
                 Immutable Mappings \\
                 Set Theory \\
                 set Literals \\
                 Set Comprehensions \\
                 Set Operations \\
                 dict and set Under the Hood \\
                 A Performance Experiment \\
                 Hash Tables in Dictionaries \\
                 Hashes and equality \\
                 The hash table algorithm \\
                 Practical Consequences of How dict Works \\
                 Keys must be hashable objects \\
                 dicts have significant memory overhead \\
                 Key search is very fast \\
                 Key ordering depends on insertion order \\
                 Adding items to a dict may change the order of existing
                 keys \\
                 How Sets Work --- Practical Consequences \\
                 Chapter Summary \\
                 Further Reading \\
                 4. Text versus Bytes \\
                 Character Issues \\
                 Byte Essentials \\
                 Structs and Memory Views \\
                 Basic Encoders/Decoders \\
                 Understanding Encode/Decode Problems \\
                 Coping with UnicodeEncodeError \\
                 Coping with UnicodeDecodeError \\
                 SyntaxError When Loading Modules with Unexpected
                 Encoding \\
                 How to Discover the Encoding of a Byte Sequence \\
                 BOM: a Useful Gremlin \\
                 Handling Text Files \\
                 Encoding Defaults: a Madhouse \\
                 Normalizing Unicode for Saner Comparisons \\
                 Case Folding \\
                 Utility Functions for Normalized Text Matching \\
                 Extreme ``Normalization'': Taking Out Diacritics \\
                 Sorting Unicode Text \\
                 Sorting with the Unicode Collation Algorithm \\
                 The Unicode Database \\
                 Dual-Mode str and bytes APIs \\
                 str Versus bytes in Regular Expressions \\
                 str Versus bytes on os Functions \\
                 Chapter Summary \\
                 Further Reading \\
                 III. Functions as Objects \\
                 5. First-Class Functions \\
                 Treating a Function Like an Object \\
                 Higher-Order Functions \\
                 Modern Replacements for map, filter, and reduce \\
                 Anonymous Functions \\
                 The Seven Flavors of Callable Objects \\
                 User-Defined Callable Types \\
                 Function Introspection \\
                 From Positional to Keyword-Only Parameters \\
                 Retrieving Information About Parameters \\
                 Function Annotations \\
                 Packages for Functional Programming \\
                 The operator Module \\
                 Freezing Arguments with functools.partial \\
                 Chapter Summary \\
                 Further Reading \\
                 6. Design Patterns with First-Class Functions \\
                 Case Study: Refactoring Strategy \\
                 Classic Strategy \\
                 Function-Oriented Strategy \\
                 Choosing the Best Strategy: Simple Approach \\
                 Finding Strategies in a Module \\
                 Command \\
                 Chapter Summary \\
                 Further Reading \\
                 7. Function Decorators and Closures \\
                 Decorators 101 \\
                 When Python Executes Decorators \\
                 Decorator-Enhanced Strategy Pattern \\
                 Variable Scope Rules \\
                 Closures \\
                 The nonlocal Declaration \\
                 Implementing a Simple Decorator \\
                 How It Works \\
                 Decorators in the Standard Library \\
                 Memoization with functools.lru_cache \\
                 Generic Functions with Single Dispatch \\
                 Stacked Decorators \\
                 Parameterized Decorators \\
                 A Parameterized Registration Decorator \\
                 The Parameterized Clock Decorator \\
                 Chapter Summary \\
                 Further Reading \\
                 IV. Object-Oriented Idioms \\
                 8. Object References, Mutability, and Recycling \\
                 Variables Are Not Boxes \\
                 Identity, Equality, and Aliases \\
                 Choosing Between == and is \\
                 The Relative Immutability of Tuples \\
                 Copies Are Shallow by Default \\
                 Deep and Shallow Copies of Arbitrary Objects \\
                 Function Parameters as References \\
                 Mutable Types as Parameter Defaults: Bad Idea \\
                 Defensive Programming with Mutable Parameters \\
                 del and Garbage Collection \\
                 Weak References \\
                 The WeakValueDictionary Skit \\
                 Limitations of Weak References \\
                 Tricks Python Plays with Immutables \\
                 Chapter Summary \\
                 Further Reading \\
                 9. A Pythonic Object \\
                 Object Representations \\
                 Vector Class Redux \\
                 An Alternative Constructor \\
                 classmethod Versus staticmethod \\
                 Formatted Displays \\
                 A Hashable Vector2d \\
                 Private and ``Protected'' Attributes in Python \\
                 Saving Space with the __slots__ Class Attribute \\
                 The Problems with __slots__ \\
                 Overriding Class Attributes \\
                 Chapter Summary \\
                 Further Reading \\
                 10. Sequence Hacking, Hashing, and Slicing \\
                 Vector: a User-Defined Sequence Type \\
                 Vector Take #1: Vector2d Compatible \\
                 Protocols and Duck Typing \\
                 Vector Take #2: a Sliceable Sequence \\
                 How Slicing Works \\
                 A Slice-Aware __getitem__ \\
                 Vector Take #3: Dynamic Attribute Access \\
                 Vector Take #4: Hashing and a Faster == \\
                 Vector Take #5: Formatting \\
                 Chapter Summary \\
                 Further Reading \\
                 11. Interfaces: From Protocols to ABCs \\
                 Interfaces and Protocols in Python Culture \\
                 Python Digs Sequences \\
                 Monkey-Patching to Implement a Protocol at Runtime \\
                 Alex Martelli's Waterfowl \\
                 Subclassing an ABC \\
                 ABCs in the Standard Library \\
                 ABCs in collections.abc \\
                 The Numbers Tower of ABCs \\
                 Defining and Using an ABC \\
                 ABC Syntax Details \\
                 Subclassing the Tombola ABC \\
                 A Virtual Subclass of Tombola \\
                 How the Tombola Subclasses Were Tested \\
                 Usage of register in Practice \\
                 Geese Can Behave as Ducks \\
                 Chapter Summary \\
                 Further Reading \\
                 12. Inheritance: For Good or For Worse \\
                 Subclassing Built-In Types Is Tricky \\
                 Multiple Inheritance and Method Resolution Order \\
                 Multiple Inheritance in the Real World \\
                 Coping with Multiple Inheritance \\
                 1. Distinguish Interface Inheritance from
                 Implementation Inheritance \\
                 2. Make Interfaces Explicit with ABCs \\
                 3. Use Mixins for Code Reuse \\
                 4. Make Mixins Explicit by Naming \\
                 5. An ABC May Also Be a Mixin; The Reverse Is Not True
                 \\
                 6. Don't Subclass from More Than One Concrete Class \\
                 7. Provide Aggregate Classes to Users \\
                 8. ``Favor Object Composition Over Class Inheritance.''
                 \\
                 Tkinter: The Good, the Bad, and the Ugly \\
                 A Modern Example: Mixins in Django Generic Views \\
                 Chapter Summary \\
                 Further Reading \\
                 13. Operator Overloading: Doing It Right \\
                 Operator Overloading 101 \\
                 Unary Operators \\
                 Overloading + for Vector Addition \\
                 Overloading * for Scalar Multiplication \\
                 Rich Comparison Operators \\
                 Augmented Assignment Operators \\
                 Chapter Summary \\
                 Further Reading \\
                 V. Control Flow \\
                 14. Iterables, Iterators, and Generators \\
                 Sentence Take #1: a Sequence of Words \\
                 Why Sequences Are Iterable: The iter Function \\
                 Iterables Versus Iterators \\
                 Sentence Take #2: a Classic Interior \\
                 Making Sentence an Iterator: Bad Idea \\
                 Sentence Take #3: a Generator Function \\
                 How a Generator Function Works \\
                 Sentence Take #4: a Lazy Implementation \\
                 Sentence Take #5: a Generator Expression \\
                 Generator Expressions: When to Use Them \\
                 Another Example: Arithmetic Progression Generator \\
                 Arithmetic Progression with itertools \\
                 Generator Functions in the Standard Library \\
                 New Syntax in Python 3.3: yield from \\
                 Iterable Reducing Functions \\
                 A Closer Look at the iter Function \\
                 Case Study: Generators in a Database Conversion Utility
                 \\
                 Generators as Coroutines \\
                 Chapter Summary \\
                 Further Reading \\
                 15. Context Managers and else Blocks \\
                 Do This, Then That: else Blocks Beyond if \\
                 Context Managers and with Blocks \\
                 The contextlib Utilities \\
                 Using @contextmanager \\
                 Chapter Summary \\
                 Further Reading \\
                 16. Coroutines \\
                 How Coroutines Evolved from Generators \\
                 Basic Behavior of a Generator Used as a Coroutine \\
                 Example: Coroutine to Compute a Running Average \\
                 Decorators for Coroutine Priming \\
                 Coroutine Termination and Exception Handling \\
                 Returning a Value from a Coroutine \\
                 Using yield from \\
                 The Meaning of yield from \\
                 Use Case: Coroutines for Discrete Event Simulation \\
                 About Discrete Event Simulations \\
                 The Taxi Fleet Simulation \\
                 Chapter Summary \\
                 Further Reading \\
                 17. Concurrency with Futures \\
                 Example: Web Downloads in Three Styles \\
                 A Sequential Download Script \\
                 Downloading with concurrent.futures \\
                 Where Are the Futures? \\
                 Blocking I/O and the GIL \\
                 Launching Processes with concurrent.futures \\
                 Experimenting with Executor.map \\
                 Downloads with Progress Display and Error Handling \\
                 Error Handling in the flags2 Examples \\
                 Using futures.as_completed \\
                 Threading and Multiprocessing Alternatives \\
                 Chapter Summary \\
                 Further Reading \\
                 18. Concurrency with asyncio \\
                 Thread Versus Coroutine: a Comparison \\
                 asyncio.Future: Nonblocking by Design \\
                 Yielding from Futures, Tasks, and Coroutines \\
                 Downloading with asyncio and aiohttp \\
                 Running Circling Around Blocking Calls \\
                 Enhancing the asyncio downloader Script \\
                 Using asyncio.as_completed \\
                 Using an Executor to Avoid Blocking the Event Loop \\
                 From Callbacks to Futures and Coroutines \\
                 Doing Multiple Requests for Each Download \\
                 Writing asyncio Servers \\
                 An asyncio TCP Server \\
                 An aiohttp Web Server \\
                 Smarter Clients for Better Concurrency \\
                 Chapter Summary \\
                 Further Reading \\
                 VI. Metaprogramming \\
                 19. Dynamic Attributes and Properties \\
                 Data Wrangling with Dynamic Attributes \\
                 Exploring JSON-Like Data with Dynamic Attributes \\
                 The Invalid Attribute Name Problem \\
                 Flexible Object Creation with __new__ \\
                 Restructuring the OSCON Feed with shelve \\
                 Linked Record Retrieval with Properties \\
                 Using a Property for Attribute Validation \\
                 LineItem Take #1: Class for an Item in an Order \\
                 LineItem Take #2: a Validating Property \\
                 A Proper Look at Properties \\
                 Properties Override Instance Attributes \\
                 Property Documentation \\
                 Coding a Property Factory \\
                 Handling Attribute Deletion \\
                 Essential Attributes and Functions for Attribute
                 Handling \\
                 Special Attributes that Affect Attribute Handling \\
                 Built-In Functions for Attribute Handling \\
                 Special Methods for Attribute Handling \\
                 Chapter Summary \\
                 Further Reading \\
                 20. Attribute Descriptors \\
                 Descriptor Example: Attribute Validation \\
                 LineItem Take #3: a Simple Descriptor \\
                 LineItem Take #4: Automatic Storage Attribute Names \\
                 LineItem Take #5: a New Descriptor Type \\
                 Overriding Versus Nonoverriding Descriptors \\
                 Overriding Descriptor \\
                 Overriding Descriptor Without __get__ \\
                 Nonoverriding Descriptor \\
                 Overwriting a Descriptor in the Class \\
                 Methods Are Descriptors \\
                 Descriptor Usage Tips \\
                 Descriptor docstring and Overriding Deletion \\
                 Chapter Summary \\
                 Further Reading \\
                 21. Class Metaprogramming \\
                 A Class Factory \\
                 A Class Decorator for Customizing Descriptors \\
                 What Happens When: Import Time Versus Runtime \\
                 The Evaluation Time Exercises \\
                 Solution for scenario #1 \\
                 Solution for scenario #2 \\
                 Metaclasses 101 \\
                 The Metaclass Evaluation Time Exercise \\
                 Solution for scenario #3 \\
                 Solution for scenario #4 \\
                 A Metaclass for Customizing Descriptors \\
                 The Metaclass __prepare__ Special Method \\
                 Classes as Objects \\
                 Chapter Summary \\
                 Further Reading \\
                 Afterword \\
                 Further Reading \\
                 A. Support Scripts \\
                 Chapter 3: in Operator Performance Test \\
                 Chapter 3: Compare the Bit Patterns of Hashes \\
                 Chapter 9: RAM Usage With and Without __slots__ \\
                 Chapter 14: isis2json.py Database Conversion Script \\
                 Chapter 16: Taxi Fleet Discrete Event Simulation \\
                 Chapter 17: Cryptographic Examples \\
                 Chapter 17: flags2 HTTP Client Examples \\
                 Chapter 19: OSCON Schedule Scripts and Tests \\
                 Python Jargon \\
                 Index \\
                 Colophon",
}

@Book{Raschka:2015:PML,
  author =       "Sebastian Raschka and Randal S. Olson",
  title =        "{Python} machine learning: unlock deeper insights into
                 machine learning with this vital guide to cutting-edge
                 predictive analytics",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "1-78355-514-9, 1-78355-513-0",
  ISBN-13 =      "978-1-78355-514-7, 978-1-78355-513-0",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 15:51:58 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781783555130",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Machine learning",
  tableofcontents = "Python Machine Learning \\
                 Table of Contents \\
                 Python Machine Learning \\
                 Credits \\
                 Foreword \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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. Giving Computers the Ability to Learn from Data \\
                 Building intelligent machines to transform data into
                 knowledge \\
                 The three different types of machine learning \\
                 Making predictions about the future with supervised
                 learning \\
                 Classification for predicting class labels \\
                 Regression for predicting continuous outcomes \\
                 Solving interactive problems with reinforcement
                 learning \\
                 Discovering hidden structures with unsupervised
                 learning \\
                 Finding subgroups with clustering \\
                 Dimensionality reduction for data compression \\
                 An introduction to the basic terminology and notations
                 \\
                 A roadmap for building machine learning systems \\
                 Preprocessing --- getting data into shape \\
                 Training and selecting a predictive model \\
                 Evaluating models and predicting unseen data instances
                 \\
                 Using Python for machine learning \\
                 Installing Python packages \\
                 Summary \\
                 2. Training Machine Learning Algorithms for
                 Classification \\
                 Artificial neurons --- a brief glimpse into the early
                 history of machine learning \\
                 Implementing a perceptron learning algorithm in Python
                 \\
                 Training a perceptron model on the Iris dataset \\
                 Adaptive linear neurons and the convergence of learning
                 \\
                 Minimizing cost functions with gradient descent \\
                 Implementing an Adaptive Linear Neuron in Python \\
                 Large scale machine learning and stochastic gradient
                 descent \\
                 Summary \\
                 3. A Tour of Machine Learning Classifiers Using
                 Scikit-learn \\
                 Choosing a classification algorithm \\
                 First steps with scikit-learn \\
                 Training a perceptron via scikit-learn \\
                 Modeling class probabilities via logistic regression
                 \\
                 Logistic regression intuition and conditional
                 probabilities \\
                 Learning the weights of the logistic cost function \\
                 Training a logistic regression model with scikit-learn
                 \\
                 Tackling overfitting via regularization \\
                 Maximum margin classification with support vector
                 machines \\
                 Maximum margin intuition \\
                 Dealing with the nonlinearly separable case using slack
                 variables \\
                 Alternative implementations in scikit-learn \\
                 Solving nonlinear problems using a kernel SVM \\
                 Using the kernel trick to find separating hyperplanes
                 in higher dimensional space \\
                 Decision tree learning \\
                 Maximizing information gain --- getting the most bang
                 for the buck \\
                 Building a decision tree \\
                 Combining weak to strong learners via random forests
                 \\
                 K-nearest neighbors --- a lazy learning algorithm \\
                 Summary \\
                 4. Building Good Training Sets --- Data Preprocessing
                 \\
                 Dealing with missing data \\
                 Eliminating samples or features with missing values \\
                 Imputing missing values \\
                 Understanding the scikit-learn estimator API \\
                 Handling categorical data \\
                 Mapping ordinal features \\
                 Encoding class labels \\
                 Performing one-hot encoding on nominal features \\
                 Partitioning a dataset in training and test sets \\
                 Bringing features onto the same scale \\
                 Selecting meaningful features \\
                 Sparse solutions with L1 regularization \\
                 Sequential feature selection algorithms \\
                 Assessing feature importance with random forests \\
                 Summary \\
                 5. Compressing Data via Dimensionality Reduction \\
                 Unsupervised dimensionality reduction via principal
                 component analysis \\
                 Total and explained variance \\
                 Feature transformation \\
                 Principal component analysis in scikit-learn \\
                 Supervised data compression via linear discriminant
                 analysis \\
                 Computing the scatter matrices \\
                 Selecting linear discriminants for the new feature
                 subspace \\
                 Projecting samples onto the new feature space \\
                 LDA via scikit-learn \\
                 Using kernel principal component analysis for nonlinear
                 mappings \\
                 Kernel functions and the kernel trick \\
                 Implementing a kernel principal component analysis in
                 Python \\
                 Example 1 --- separating half-moon shapes \\
                 Example 2 --- separating concentric circles \\
                 Projecting new data points \\
                 Kernel principal component analysis in scikit-learn \\
                 Summary \\
                 6. Learning Best Practices for Model Evaluation and
                 Hyperparameter Tuning \\
                 Streamlining workflows with pipelines \\
                 Loading the Breast Cancer Wisconsin dataset \\
                 Combining transformers and estimators in a pipeline \\
                 Using k-fold cross-validation to assess model
                 performance \\
                 The holdout method \\
                 K-fold cross-validation \\
                 Debugging algorithms with learning and validation
                 curves \\
                 Diagnosing bias and variance problems with learning
                 curves \\
                 Addressing overfitting and underfitting with validation
                 curves \\
                 Fine-tuning machine learning models via grid search \\
                 Tuning hyperparameters via grid search \\
                 Algorithm selection with nested cross-validation \\
                 Looking at different performance evaluation metrics \\
                 Reading a confusion matrix \\
                 Optimizing the precision and recall of a classification
                 model \\
                 Plotting a receiver operating characteristic \\
                 The scoring metrics for multiclass classification \\
                 Summary \\
                 7. Combining Different Models for Ensemble Learning \\
                 Learning with ensembles \\
                 Implementing a simple majority vote classifier \\
                 Combining different algorithms for classification with
                 majority vote \\
                 Evaluating and tuning the ensemble classifier \\
                 Bagging --- building an ensemble of classifiers from
                 bootstrap samples \\
                 Leveraging weak learners via adaptive boosting \\
                 Summary \\
                 8. Applying Machine Learning to Sentiment Analysis \\
                 Obtaining the IMDb movie review dataset \\
                 Introducing the bag-of-words model \\
                 Transforming words into feature vectors \\
                 Assessing word relevancy via term frequency-inverse
                 document frequency \\
                 Cleaning text data \\
                 Processing documents into tokens \\
                 Training a logistic regression model for document
                 classification \\
                 Working with bigger data --- online algorithms and
                 out-of-core learning \\
                 Summary \\
                 9. Embedding a Machine Learning Model into a Web
                 Application \\
                 Serializing fitted scikit-learn estimators \\
                 Setting up a SQLite database for data storage \\
                 Developing a web application with Flask \\
                 Our first Flask web application \\
                 Form validation and rendering \\
                 Turning the movie classifier into a web application \\
                 Deploying the web application to a public server \\
                 Updating the movie review classifier \\
                 Summary \\
                 10. Predicting Continuous Target Variables with
                 Regression Analysis \\
                 Introducing a simple linear regression model \\
                 Exploring the Housing Dataset \\
                 Visualizing the important characteristics of a dataset
                 \\
                 Implementing an ordinary least squares linear
                 regression model \\
                 Solving regression for regression parameters with
                 gradient descent \\
                 Estimating the coefficient of a regression model via
                 scikit-learn \\
                 Fitting a robust regression model using RANSAC \\
                 Evaluating the performance of linear regression models
                 \\
                 Using regularized methods for regression \\
                 Turning a linear regression model into a curve
                 --polynomial regression \\
                 Modeling nonlinear relationships in the Housing Dataset
                 \\
                 Dealing with nonlinear relationships using random
                 forests \\
                 Decision tree regression \\
                 Random forest regression \\
                 Summary \\
                 11. Working with Unlabeled Data --- Clustering Analysis
                 \\
                 Grouping objects by similarity using k-means \\
                 K-means++ \\
                 Hard versus soft clustering \\
                 Using the elbow method to find the optimal number of
                 clusters \\
                 Quantifying the quality of clustering via silhouette
                 plots \\
                 Organizing clusters as a hierarchical tree \\
                 Performing hierarchical clustering on a distance matrix
                 \\
                 Attaching dendrograms to a heat map \\
                 Applying agglomerative clustering via scikit-learn \\
                 Locating regions of high density via DBSCAN \\
                 Summary \\
                 12. Training Artificial Neural Networks for Image
                 Recognition \\
                 Modeling complex functions with artificial neural
                 networks \\
                 Single-layer neural network recap \\
                 Introducing the multi-layer neural network architecture
                 \\
                 Activating a neural network via forward propagation \\
                 Classifying handwritten digits \\
                 Obtaining the MNIST dataset \\
                 Implementing a multi-layer perceptron \\
                 Training an artificial neural network \\
                 Computing the logistic cost function \\
                 Training neural networks via backpropagation \\
                 Developing your intuition for backpropagation \\
                 Debugging neural networks with gradient checking \\
                 Convergence in neural networks \\
                 Other neural network architectures \\
                 Convolutional Neural Networks \\
                 Recurrent Neural Networks \\
                 A few last words about neural network implementation
                 \\
                 Summary \\
                 13. Parallelizing Neural Network Training with Theano
                 \\
                 Building, compiling, and running expressions with
                 Theano \\
                 What is Theano? \\
                 First steps with Theano \\
                 Configuring Theano \\
                 Working with array structures \\
                 Wrapping things up --- a linear regression example \\
                 Choosing activation functions for feedforward neural
                 networks \\
                 Logistic function recap \\
                 Estimating probabilities in multi-class classification
                 via the softmax function \\
                 Broadening the output spectrum by using a hyperbolic
                 tangent \\
                 Training neural networks efficiently using Keras \\
                 Summary \\
                 Index",
}

@Article{Redondo:2015:CEC,
  author =       "Jose Manuel Redondo and Francisco Ortin",
  title =        "A Comprehensive Evaluation of Common {Python}
                 Implementations",
  journal =      j-IEEE-SOFTWARE,
  volume =       "32",
  number =       "4",
  pages =        "76--84",
  month =        jul # "\slash " # aug,
  year =         "2015",
  CODEN =        "IESOEG",
  DOI =          "https://doi.org/10.1109/MS.2014.104",
  ISSN =         "0740-7459 (print), 1937-4194 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Mon Aug 3 15:03:36 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.computer.org/csdl/mags/so/2015/04/mso2015040076-abs.html",
  abstract-URL = "http://www.computer.org/csdl/mags/so/2015/04/mso2015040076-abs.html",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
  journalabr =   "IEEE Software",
}

@Book{Richardson:2015:AP,
  author =       "Craig Richardson",
  title =        "Adventures in {Python}",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "282",
  year =         "2015",
  ISBN =         "1-118-95185-9, 1-118-95179-4",
  ISBN-13 =      "978-1-118-95185-9, 978-1-118-95179-8",
  LCCN =         "QA76.73.P98",
  bibdate =      "Sat Oct 24 05:38:16 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Object-oriented
                 programming (Computer science); Application software;
                 Development",
  tableofcontents = "About the Author \\
                 Introduction \\
                 What Is Programming? \\
                 What Is Python and What Can You Do With It? \\
                 Who Should Read This Book? \\
                 What You Will Learn \\
                 What You Will Need for the Projects \\
                 How This Book Is Organised \\
                 Setting Up Python \\
                 Creating Your First Program \\
                 The Companion Website \\
                 Conventions \\
                 Reaching Out \\
                 Adventure 1: Diving into Python \\
                 What Is Programming? \\
                 Opening IDLE \\
                 Returning to Your First Python Program \\
                 It Isn t Working Grrr! \\
                 Using a File Editor \\
                 Asking Questions with Variables \\
                 Making the Program Make Decisions: Conditionals \\
                 Repeating Code with Loops \\
                 Praise Generator \\
                 A Bigger Adventure: Spaceship Control Console \\
                 Adventure 2: Drawing with Turtle Graphics \\
                 Getting Started with Turtle \\
                 Using Variables to Change Angles and Lengths \\
                 Using Addition to Draw a Spiral \\
                 Saving Some Space with Loops \\
                 A Shape with 360 Sides: Drawing a Circle \\
                 Creating Functions to Reuse Your Code \\
                 Shape Presets \\
                 Adding Randomly Generated Pictures \\
                 Adventure 3: Windows, Buttons, and Other GUI Stuff \\
                 Creating Buttons \\
                 Creating Text Boxes \\
                 Building a Random Sentence Generator \\
                 Programming a Guessing Game \\
                 Adventure 4: More GUI Elements with Tkinter \\
                 Creating Sliders \\
                 How Colours Work on Computers and as Hexadecimal Values
                 \\
                 Changing the Canvas Colour \\
                 Making the Colour Picker \\
                 Adding a Text Box \\
                 Creating a Click Speed Game \\
                 Adventure 5: Drawing Shapes with PyGame \\
                 Installing PyGame \\
                 My First PyGame \\
                 Creating Rectangles \\
                 Creating Ellipses \\
                 Saving Your Images \\
                 Adventure 6: Adding Keyboard Input with PyGame \\
                 Using Keyboard Input \\
                 Other Keys You Can Use \\
                 Creating the Game \\
                 Adventure 7: Creative Ways to Use a Mouse with PyGame
                 \\
                 Getting the Mouse Position \\
                 Making a Mesh \\
                 Creating Mouse Trails \\
                 Adventure 8: Using Images with PyGame \\
                 Loading an Image \\
                 Adding a Moustache to a Photograph \\
                 Making Sprites \\
                 Adventure 9: Using Sounds and Music with PyGame \\
                 Playing Sounds \\
                 Using Music with Python \\
                 Adding Sounds and Music to a Game \\
                 Adventure 10: Your Really Big Adventure \\
                 Writing the Program for the Game \\
                 Debugging the Game \\
                 Summary \\
                 Appendix A: Installing and Downloading the Proper Files
                 \\
                 Installing PyGame \\
                 Downloading the Files for Adventures 8, 9 and 10 \\
                 Glossary \\
                 End User License Agreement",
}

@Book{RodasdePaz:2015:PGP,
  author =       "Alejandro {Rodas de Paz} and Joseph Howse",
  title =        "{Python} game programming by example: a pragmatic
                 guide for developing your own games with {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "230 (est.)",
  year =         "2015",
  ISBN =         "1-78528-153-4, 1-78528-391-X (e-book)",
  ISBN-13 =      "978-1-78528-153-2, 978-1-78528-391-8 (e-book)",
  LCCN =         "QA76.76.C672",
  bibdate =      "Fri Oct 23 15:49:13 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781785281532",
  acknowledgement = ack-nhfb,
  subject =      "Computer games; Programming; Python (Computer program
                 language)",
  tableofcontents = "Python Game Programming By Example \\
                 Credits \\
                 About the Authors \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Hello, Pong! \\
                 Installing Python \\
                 An overview of Breakout \\
                 The basic GUI layout \\
                 Diving into the Canvas widget \\
                 Basic game objects \\
                 The Ball class \\
                 The Paddle class \\
                 The Brick class \\
                 Adding the Breakout items \\
                 Movement and collisions \\
                 Starting the game \\
                 Playing Breakout \\
                 Summary \\
                 2. Cocos Invaders \\
                 Installing cocos2d \\
                 Getting started with cocos2d \\
                 Handling user input \\
                 Updating the scene \\
                 Processing collisions \\
                 Creating game assets \\
                 Space Invaders design \\
                 The PlayerCannon and GameLayer classes \\
                 Invaders! \\
                 Shoot'em up! \\
                 Adding an HUD \\
                 Extra feature --- the mystery ship \\
                 Summary \\
                 3. Building a Tower Defense Game \\
                 The tower defense gameplay \\
                 Cocos2d actions \\
                 Interval actions \\
                 Instant actions \\
                 Combining actions \\
                 Custom actions \\
                 Adding a main menu \\
                 Tile maps \\
                 Tiled Map Editor \\
                 Loading tiles \\
                 The scenario definition \\
                 The scenario class \\
                 Transitions between scenes \\
                 Game over cut scene \\
                 The tower defense actors \\
                 Turrets and slots \\
                 Enemies \\
                 Bunker \\
                 Game scene \\
                 The HUD class \\
                 Assembling the scene \\
                 Summary \\
                 4. Steering Behaviors \\
                 NumPy installation \\
                 The ParticleSystem class \\
                 A quick demonstration \\
                 Implementing steering behaviors \\
                 Seek and flee \\
                 Arrival \\
                 Pursuit and evade \\
                 Wander \\
                 Obstacle avoidance \\
                 Gravitation game \\
                 Basic game objects \\
                 Planets and pickups \\
                 Player and enemies \\
                 Explosions \\
                 The game layer \\
                 Summary \\
                 5. Pygame and 3D \\
                 Installing packages \\
                 Getting started with OpenGL \\
                 Initializing the window \\
                 Drawing shapes \\
                 Running the demo \\
                 Refactoring our OpenGL program \\
                 Processing the user input \\
                 Adding the Pygame library \\
                 Pygame 101 \\
                 Pygame integration \\
                 Drawing with OpenGL \\
                 The Cube class \\
                 Enabling face culling \\
                 Basic collision detection game \\
                 Summary \\
                 6. PyPlatformer \\
                 An introduction to game design \\
                 Level design \\
                 Platformer skills \\
                 Component-based game engines \\
                 Introducing Pymunk \\
                 Building a game framework \\
                 Adding physics \\
                 Renderable components \\
                 The Camera component \\
                 The InputManager module \\
                 The Game class \\
                 Developing PyPlatformer \\
                 Creating the platforms \\
                 Adding pickups \\
                 Shooting! \\
                 The Player class and its components \\
                 The PyPlatformer class \\
                 Summary \\
                 7. Augmenting a Board Game with Computer Vision \\
                 Planning the Checkers application \\
                 Setting up OpenCV and other dependencies \\
                 Windows \\
                 Mac \\
                 Debian and its derivatives, including Raspbian, Ubuntu,
                 and Linux Mint \\
                 Fedora and its derivatives, including RHEL and CentOS
                 \\
                 OpenSUSE and its derivatives \\
                 Supporting multiple versions of OpenCV \\
                 Configuring cameras \\
                 Working with colors \\
                 Building the analyzer \\
                 Providing access to the images and classification
                 results \\
                 Providing access to parameters for the user to
                 configure \\
                 Initializing the entire model of the game \\
                 Updating the entire model of the game \\
                 Capturing and converting an image \\
                 Detecting the board's corners and tracking their motion
                 \\
                 Creating and analyzing the bird's-eye view of the board
                 \\
                 Analyzing the dominant colors in a square \\
                 Classifying the contents of a square \\
                 Drawing text \\
                 Converting OpenCV images for wxPython \\
                 Building the GUI application \\
                 Creating a window and binding events \\
                 Creating and laying out images in the GUI \\
                 Creating and laying out controls \\
                 Nesting layouts and setting the root layout \\
                 Starting a background thread \\
                 Closing a window and stopping a background thread \\
                 Configuring the analyzer based on user input \\
                 Updating and showing images \\
                 Running the application \\
                 Troubleshooting the project in real-world conditions
                 \\
                 Further reading on OpenCV \\
                 Summary \\
                 Index",
}

@Book{Saha:2015:DMP,
  author =       "Amit Saha",
  title =        "Doing math with {Python}: use programming to explore
                 algebra, statistics, calculus, and more!",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "xvii + 244",
  year =         "2015",
  ISBN =         "1-59327-640-0 (paperback)",
  ISBN-13 =      "978-1-59327-640-9 (paperback)",
  LCCN =         "QA20.C65 S24 2015",
  bibdate =      "Fri Oct 23 16:03:07 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Uses the Python programming language as a tool to
                 explore high school level mathematics like statistics,
                 geometry, probability, and calculus by writing programs
                 to find derivatives, solve equations graphically,
                 manipulate algebraic expressions, and examine
                 projectile motion. Covers programming concepts
                 including using functions, handling user input, and
                 reading and manipulating data.",
  acknowledgement = ack-nhfb,
  subject =      "Mathematics; Study and teaching; Data processing;
                 Python (Computer program language); Computer
                 programming",
  tableofcontents = "Acknowledgments \\
                 Introduction \\
                 Who Should Read This Book \\
                 What's in This Book? \\
                 Scripts, Solutions, and Hints \\
                 Chapter 1: Working with Numbers \\
                 Basic Mathematical Operations \\
                 Labels: Attaching Names to Numbers \\
                 Different Kinds of Numbers \\
                 Working with Fractions \\
                 Complex Numbers \\
                 Getting User Input \\
                 Handling Exceptions and Invalid Input \\
                 Fractions and Complex Numbers as Input \\
                 Writing Programs That Do the Math for You \\
                 Calculating the Factors of an Integer \\
                 Generating Multiplication Tables \\
                 Converting Units of Measurement \\
                 Finding the Roots of a Quadratic Equation \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: Even-Odd Vending Machine \\
                 #2: Enhanced Multiplication Table Generator \\
                 #3: Enhanced Unit Converter \\
                 #4: Fraction Calculator \\
                 #5: Give Exit Power to the User \\
                 Chapter 2: Visualizing Data with Graphs \\
                 Understanding the Cartesian Coordinate Plane \\
                 Working with Lists and Tuples \\
                 Iterating over a List or Tuple \\
                 Creating Graphs with Matplotlib \\
                 Marking Points on Your Graph \\
                 Graphing the Average Annual Temperature in New York
                 City \\
                 Comparing the Monthly Temperature Trends of New York
                 City \\
                 Customizing Graphs \\
                 Adding a Title and Labels \\
                 Customizing the Axes \\
                 Plotting Using pyplot \\
                 Saving the Plots \\
                 Plotting with Formulas \\
                 Newton's Law of Universal Gravitation \\
                 Projectile Motion \\
                 Generating Equally Spaced Floating Point Numbers \\
                 Drawing the Trajectory \\
                 Comparing the Trajectory at Different Initial
                 Velocities \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: How Does the Temperature Vary During the Day? \\
                 #2: Exploring a Quadratic Function Visually \\
                 #3: Enhanced Projectile Trajectory Comparison Program
                 \\
                 #4: Visualizing Your Expenses \\
                 #5: Exploring the Relationship Between the Fibonacci
                 Sequence and the Golden Ratio \\
                 Chapter 3: Describing Data with Statistics \\
                 Finding the Mean \\
                 Finding the Median \\
                 Finding the Mode and Creating a Frequency Table \\
                 Finding the Most Common Elements \\
                 Finding the Mode \\
                 Creating a Frequency Table \\
                 Measuring the Dispersion \\
                 Finding the Range of a Set of Numbers \\
                 Finding the Variance and Standard Deviation \\
                 Calculating the Correlation Between Two Data Sets \\
                 Calculating the Correlation Coefficient \\
                 High School Grades and Performance on College Admission
                 Tests \\
                 Scatter Plots \\
                 Reading Data from Files \\
                 Reading Data from a Text File \\
                 Reading Data from a CSV File \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: Better Correlation Coefficient --- Finding Program
                 \\
                 #2: Statistics Calculator \\
                 #3: Experiment with Other CSV Data \\
                 #4: Finding the Percentile \\
                 #5: Creating a Grouped Frequency Table \\
                 Chapter 4: Algebra and Symbolic Math with SymPy \\
                 Defining Symbols and Symbolic Operations \\
                 Working with Expressions \\
                 Factorizing and Expanding Expressions \\
                 Pretty Printing \\
                 Printing a Series \\
                 Substituting in Values \\
                 Calculating the Value of a Series \\
                 Converting Strings to Mathematical Expressions \\
                 Expression Multiplier \\
                 Solving Equations \\
                 Solving Quadratic Equations \\
                 Solving for One Variable in Terms of Others \\
                 Solving a System of Linear Equations \\
                 Plotting Using SymPy \\
                 Plotting Expressions Input by the User \\
                 Plotting Multiple Functions \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: Factor Finder \\
                 #2: Graphical Equation Solver \\
                 #3: Summing a Series \\
                 #4: Solving Single-Variable Inequalities \\
                 Hints: Handy Functions \\
                 Chapter 5: Playing with Sets and Probability \\
                 What's a Set? \\
                 Set Construction \\
                 Checking Whether a Number Is in a Set \\
                 Creating an Empty Set \\
                 Creating Sets from Lists or Tuples \\
                 Set Repetition and Order \\
                 Subsets, Supersets, and Power Sets \\
                 Set Operations \\
                 Union and Intersection \\
                 Cartesian Product \\
                 Applying a Formula to Multiple Sets of Variables \\
                 Different Gravity, Different Results \\
                 Probability \\
                 Probability of Event A or Event B \\
                 Probability of Event A and Event B \\
                 Generating Random Numbers \\
                 Simulating a Die Roll \\
                 Can You Roll That Score? \\
                 Is the Target Score Possible? \\
                 Nonuniform Random Numbers \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: Using Venn Diagrams to Visualize Relationships
                 Between Sets \\
                 #2: Law of Large Numbers \\
                 #3: How Many Tosses Before You Run Out of Money? \\
                 #4: Shuffling a Deck of Cards \\
                 #5: Estimating the Area of a Circle \\
                 Estimating the Value of Pi \\
                 Chapter 6: Drawing Geometric Shapes and Fractals \\
                 Drawing Geometric Shapes with Matplotlib's Patches \\
                 Drawing a Circle \\
                 Creating Animated Figures \\
                 Animating a Projectile's Trajectory \\
                 Drawing Fractals \\
                 Transformations of Points in a Plane \\
                 Drawing the Barnsley Fern \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: Packing Circles into a Square \\
                 #2: Drawing the Sierpi{\'n}ski Triangle \\
                 #3: Exploring H{\'e}non's Function \\
                 #4: Drawing the Mandelbrot Set \\
                 The imshow() Function \\
                 Creating a List of Lists \\
                 Drawing the Mandelbrot Set \\
                 Chapter 7: Solving Calculus Problems \\
                 What Is a Function? \\
                 Domain and Range of a Function \\
                 An Overview of Common Mathematical Functions \\
                 Assumptions in SymPy \\
                 Finding the Limit of Functions \\
                 Continuous Compound Interest \\
                 Instantaneous Rate of Change \\
                 Finding the Derivative of Functions \\
                 A Derivative Calculator \\
                 Calculating Partial Derivatives \\
                 Higher-Order Derivatives and Finding the Maxima and
                 Minima \\
                 Finding the Global Maximum Using Gradient Ascent \\
                 A Generic Program for Gradient Ascent \\
                 A Word of Warning About the Initial Value \\
                 The Role of the Step Size and Epsilon \\
                 Finding the Integrals of Functions \\
                 Probability Density Functions \\
                 What You Learned \\
                 Programming Challenges \\
                 #1: Verify the Continuity of a Function at a Point \\
                 #2: Implement the Gradient Descent \\
                 #3: Area Between Two Curves \\
                 #4: Finding the Length of a Curve \\
                 Afterword \\
                 Things to Explore Next \\
                 Project Euler \\
                 Python Documentation \\
                 Books \\
                 Getting Help \\
                 Conclusion \\
                 Appendix A: Software Installation \\
                 Microsoft Windows \\
                 Updating SymPy \\
                 Installing matplotlib-venn \\
                 Starting the Python Shell \\
                 Linux \\
                 Updating SymPy \\
                 Installing matplotlib-venn \\
                 Starting the Python Shell \\
                 Mac OS X \\
                 Updating SymPy \\
                 Installing matplotlib-venn \\
                 Starting the Python Shell \\
                 Appendix B: Overview of Python Topics \\
                 if __name__ == '__main__' \\
                 List Comprehensions \\
                 Dictionary Data Structure \\
                 Multiple Return Values \\
                 Exception Handling \\
                 Specifying Multiple Exception Types \\
                 The else Block \\
                 Reading Files in Python \\
                 Reading All the Lines at Once \\
                 Specifying the Filename as Input \\
                 Handling Errors When Reading Files \\
                 Reusing Code \\
                 Index \\
                 Footnotes \\
                 Chapter 3: Describing Data with Statistics \\
                 Chapter 6: Drawing Geometric Shapes and Fractals \\
                 Chapter 7: Solving Calculus Problems \\
                 Afterword \\
                 Resources \\
                 About the Author",
  zz-isbn =      "1-59327-640-0",
}

@Book{Sanderson:2015:PGA,
  author =       "Dan Sanderson",
  title =        "Programming {Google App Engine} with {Python}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxi + 439",
  year =         "2015",
  ISBN =         "1-4919-0025-3, 1-4919-0024-5, 1-4919-0368-6 (e-book),
                 1-4919-0367-8 (e-book)",
  ISBN-13 =      "978-1-4919-0025-3, 978-1-4919-0024-6,
                 978-1-4919-0368-1 (e-book), 978-1-4919-0367-4
                 (e-book)",
  LCCN =         "TK5105.88813",
  bibdate =      "Fri Oct 23 17:18:15 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Google Apps; Google Apps.; Application software;
                 Development; Web site development; Computer programs;
                 Python (Computer program language)",
  tableofcontents = "Preface \\
                 A Brief History of App Engine \\
                 Using This Book \\
                 Conventions Used in This Book \\
                 Using Code Samples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 1. Introducing Google App Engine \\
                 The Runtime Environment \\
                 The Static File Servers \\
                 Frontend Caches \\
                 Cloud Datastore \\
                 Entities and Properties \\
                 Queries and Indexes \\
                 Transactions \\
                 The Services \\
                 Google Accounts, OpenID, and OAuth \\
                 Google Cloud Endpoints \\
                 Task Queues and Cron Jobs \\
                 Namespaces \\
                 Developer Tools \\
                 The Cloud Console \\
                 Getting Started \\
                 2. Creating an Application \\
                 Setting Up the Cloud SDK \\
                 Installing the SDK \\
                 A brief tour of the Launcher \\
                 Developing the Application \\
                 The User Preferences Pattern \\
                 Developing the App \\
                 Introducing the webapp framework \\
                 Users and Google Accounts \\
                 Web forms and the datastore \\
                 Caching with memcache \\
                 The Development Console \\
                 The Python Interactive Console \\
                 Registering the Application \\
                 The Project ID and Name \\
                 Uploading the Application \\
                 Using Two-Step Verification \\
                 Introducing the Cloud Console \\
                 3. Configuring an Application \\
                 The App Engine Architecture \\
                 Configuring a Python App \\
                 Runtime Versions \\
                 Domain Names \\
                 App IDs and Versions \\
                 Multithreading \\
                 Request Handlers \\
                 Static Files and Resource Files \\
                 MIME types \\
                 Cache expiration \\
                 Secure Connections \\
                 Authorization with Google Accounts \\
                 Environment Variables \\
                 Inbound Services \\
                 Custom Error Responses \\
                 Cloud Console Custom Pages \\
                 More Features \\
                 Python Libraries \\
                 Built-in Handlers \\
                 Includes \\
                 4. Request Handlers, Instances, and Modules \\
                 The Runtime Environment \\
                 The Sandbox \\
                 Quotas and Limits \\
                 Request limits \\
                 Service limits \\
                 Deployment limits \\
                 Billable quotas \\
                 The Python Runtime Environment \\
                 The Request Handler Abstraction \\
                 Introducing Instances \\
                 Request Scheduling and Pending Latency \\
                 Warm-up Requests \\
                 Resident Instances \\
                 The Instances Console \\
                 Instance Hours and Billing \\
                 Instance Classes \\
                 5. Datastore Entities \\
                 Entities, Keys, and Properties \\
                 Introducing the Python Datastore API \\
                 Property Values \\
                 Strings, Text, and Bytes \\
                 Unset Versus the Null Value \\
                 Multivalued Properties \\
                 Keys and Key Objects \\
                 Using Entities \\
                 Getting Entities Using Keys \\
                 Inspecting Entity Objects \\
                 Saving Entities \\
                 Deleting Entities \\
                 Allocating System IDs \\
                 The Development Server and the Datastore \\
                 6. Datastore Queries \\
                 Queries and Kinds \\
                 Query Results and Keys \\
                 GQL \\
                 The Query API \\
                 The Query Class \\
                 GQL in Code \\
                 Retrieving Results \\
                 Keys-Only Queries \\
                 Introducing Indexes \\
                 Automatic Indexes and Simple Queries \\
                 All Entities of a Kind \\
                 One Equality Filter \\
                 Greater-Than and Less-Than Filters \\
                 One Sort Order \\
                 Queries on Keys \\
                 Kindless Queries \\
                 Custom Indexes and Complex Queries \\
                 Multiple Sort Orders \\
                 Filters on Multiple Properties \\
                 Multiple Equality Filters \\
                 Not-Equal and IN Filters \\
                 Unset and Nonindexed Properties \\
                 Sort Orders and Value Types \\
                 Queries and Multivalued Properties \\
                 MVPs in Code \\
                 MVPs and Equality Filters \\
                 MVPs and Inequality Filters \\
                 MVPs and Sort Orders \\
                 Exploding Indexes \\
                 Query Cursors \\
                 Projection Queries \\
                 Configuring Indexes \\
                 7. Datastore Transactions \\
                 Entities and Entity Groups \\
                 Keys, Paths, and Ancestors \\
                 Ancestor Queries \\
                 What Can Happen in a Transaction \\
                 Transactional Reads \\
                 Eventually Consistent Reads \\
                 Transactions in Python \\
                 How Entities Are Updated \\
                 How Entities Are Read \\
                 Batch Updates \\
                 How Indexes Are Updated \\
                 Cross-Group Transactions \\
                 8. Data Modeling with ndb \\
                 9. Datastore Administration \\
                 Inspecting the Datastore \\
                 Managing Indexes \\
                 The Datastore Admin Panel \\
                 Accessing Metadata from the App \\
                 Querying Statistics \\
                 Querying Metadata \\
                 Index Status and Queries \\
                 Entity Group Versions \\
                 Remote Controls \\
                 Setting Up the Remote API \\
                 Using the Remote Shell Tool \\
                 Using the Remote API from a Script \\
                 10. The Memory Cache \\
                 Calling Memcache from Python \\
                 Keys and Values \\
                 Setting Values \\
                 Setting Values that Expire \\
                 Adding and Replacing Values \\
                 Getting Values \\
                 Deleting Values \\
                 Locking a Deleted Key \\
                 Atomic Increment and Decrement \\
                 Compare and Set \\
                 Batching Calls to Memcache \\
                 Memcache and the Datastore \\
                 Memcache Administration \\
                 Cache Statistics \\
                 Flushing the Memcache \\
                 11. Large Data and Google Cloud Storage \\
                 12. Fetching URLs and Web Resources \\
                 Fetching URLs \\
                 Outgoing HTTP Requests \\
                 The URL \\
                 The HTTP Method and Payload \\
                 Request Headers \\
                 HTTP Over SSL (HTTPS) \\
                 Request and Response Sizes \\
                 Request Deadlines \\
                 Handling Redirects \\
                 Response Objects \\
                 13. Sending and Receiving Email Messages \\
                 Sending Email Messages \\
                 Sending Email from the Development Server \\
                 Sender Addresses \\
                 Recipients \\
                 Attachments \\
                 Sending Email \\
                 Receiving Email Messages \\
                 14. Sending and Receiving Instant Messages with XMPP
                 \\
                 Inviting a User to Chat \\
                 Sending Chat Messages \\
                 Receiving Chat Messages \\
                 Handling Commands over Chat \\
                 Handling Error Messages \\
                 Managing Presence \\
                 Managing Subscriptions \\
                 Managing Presence Updates \\
                 Probing for Presence \\
                 15. Task Queues and Scheduled Tasks \\
                 Configuring Task Queues \\
                 Enqueuing a Task \\
                 Task Parameters \\
                 Payloads \\
                 Task Names \\
                 Countdowns and ETAs \\
                 Push Queues \\
                 Task Requests \\
                 Processing Rates and Token Buckets \\
                 Retrying Push Tasks \\
                 Pull Queues \\
                 Enqueuing Tasks to Pull Queues \\
                 Leasing and Deleting Tasks \\
                 Retrying Pull Queue Tasks \\
                 Transactional Task Enqueuing \\
                 Task Chaining \\
                 Task Queue Administration \\
                 Deferring Work \\
                 Scheduled Tasks \\
                 Configuring Scheduled Tasks \\
                 Specifying Schedules \\
                 16. Optimizing Service Calls \\
                 Calling Services Asynchronously \\
                 Asynchronous Calls in Python \\
                 Datastore \\
                 Memcache \\
                 Blobstore \\
                 URL Fetch \\
                 Using callbacks \\
                 Visualizing Calls with AppStats \\
                 Installing AppStats \\
                 Using the AppStats Console \\
                 17. The Django Web Application Framework \\
                 Using the Bundled Django Library \\
                 Creating a Django Project \\
                 Hooking It Up to App Engine \\
                 Creating a Django App \\
                 Using Django Templates \\
                 Using Django Forms \\
                 The django-nonrel Project \\
                 18. Managing Request Logs \\
                 Writing to the Log \\
                 Viewing Recent Logs \\
                 Downloading Logs \\
                 Logs Retention \\
                 Querying Logs from the App \\
                 Flushing the Log Buffer \\
                 19. Deploying and Managing Applications \\
                 Uploading an Application \\
                 Using Versions \\
                 Managing Service Configuration \\
                 Application Settings \\
                 Managing Developers \\
                 Quotas and Billing \\
                 Getting Help \\
                 About the Author",
}

@Book{Sarker:2015:LPN,
  author =       "M. O. Faruque Sarker and Sam Washington",
  title =        "Learning {Python} network programming: utilize {Python
                 3} to get network applications up and running quickly
                 and easily",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "320 (est.)",
  year =         "2015",
  ISBN =         "1-78439-600-1, 1-78439-115-8 (e-book)",
  ISBN-13 =      "978-1-78439-600-8, 978-1-78439-115-7 (e-book)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 17:16:08 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9781784396008",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Scripting
                 languages (Computer science); Python (Computer program
                 language); Scripting languages (Computer science)",
  tableofcontents = "Preface \\
                 1: Network Programming and Python \\
                 An introduction to TCP/IP networks \\
                 IP addresses \\
                 Network Interfaces \\
                 Assigning IP addresses \\
                 IP addresses on the Internet \\
                 Packets \\
                 Networks \\
                 Routing with IP \\
                 DNS \\
                 The protocol stack or why the Internet is like a cake
                 \\
                 Layer 4 --- TCP and UDP \\
                 Network ports \\
                 UDP \\
                 TCP \\
                 UDP versus TCP \\
                 Layer 5 --- The application layer \\
                 On to Python! \\
                 Network programming with Python \\
                 Breaking a few eggs \\
                 Taking it from the top \\
                 Downloading an RFC. Looking deeper \\
                 Programming for TCP/IP networks \\
                 Firewalls \\
                 Network Address Translation \\
                 IPv6 \\
                 Summary \\
                 2: HTTP and Working with the Web \\
                 Request and response \\
                 Requests with urllib \\
                 Response objects \\
                 Status codes \\
                 Handling problems \\
                 HTTP headers \\
                 Customizing requests \\
                 Content compression \\
                 Multiple values \\
                 Content negotiation \\
                 Content types \\
                 User agents \\
                 Cookies \\
                 Cookie handling \\
                 Know your cookies \\
                 Redirects \\
                 URLs \\
                 Paths and relative URLs \\
                 Query strings \\
                 URL encoding \\
                 URLs in summary \\
                 HTTP methods \\
                 The HEAD method \\
                 The POST method \\
                 Formal inspection \\
                 HTTPS \\
                 The Requests library. Handling errors with Requests \\
                 Summary \\
                 3: APIs in Action \\
                 Getting started with XML \\
                 The XML APIs \\
                 The basics of ElementTree \\
                 Pretty printing \\
                 Element attributes \\
                 Converting to text \\
                 The Amazon S3 API \\
                 Registering with AWS \\
                 Authentication \\
                 Setting up an AWS user \\
                 Regions \\
                 S3 buckets and objects \\
                 An S3 command-line client \\
                 Creating a bucket with the API \\
                 Uploading a file \\
                 Retrieving an uploaded file through a web browser \\
                 Displaying an uploaded file in a web browser \\
                 Downloading a file with the API \\
                 Parsing XML and handling errors \\
                 Parsing XML \\
                 Finding elements \\
                 Handling errors. Further enhancements \\
                 The Boto package \\
                 Wrapping up with S3 \\
                 JSON \\
                 Encoding and decoding \\
                 Using dicts with JSON \\
                 Other object types \\
                 The Twitter API \\
                 A Twitter world clock \\
                 Authentication for Twitter \\
                 Registering your application for the Twitter API \\
                 Authenticating requests \\
                 A Twitter client \\
                 Polling for Tweets \\
                 Processing the tweets \\
                 Rate limits \\
                 Sending a reply \\
                 Final touches \\
                 Taking it further \\
                 Polling and the Twitter streaming APIs \\
                 Alternative oAuth flows \\
                 HTML and screen scraping \\
                 HTML parsers \\
                 Show me the data \\
                 Parsing HTML with lxml \\
                 Zeroing in \\
                 Searching with XPath \\
                 XPath conditions. Pulling it together \\
                 With great power\ldots{} \\
                 Choosing a User Agent \\
                 The Robots.txt file \\
                 Summary \\
                 4: Engaging with E-mails \\
                 E-mail terminologies \\
                 Sending e-mails with SMTP \\
                 Composing an e-mail message \\
                 Sending an e-mail message \\
                 Sending e-mails securely with TLS \\
                 Retrieving e-mails by using POP3 with poplib \\
                 Retrieving e-mails by using IMAP with imaplib \\
                 Sending e-mail attachments \\
                 Sending e-mails via the logging module \\
                 Summary \\
                 5: Interacting with Remote Systems \\
                 Secure shell --- access using Python \\
                 Inspecting the SSH packets \\
                 Transferring files through SFTP \\
                 Transferring files with FTP",
}

@Book{Sedgewick:2015:IPP,
  author =       "Robert Sedgewick and Kevin Daniel Wayne and Robert
                 Dondero",
  title =        "Introduction to programming in {Python}: an
                 interdisciplinary approach",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "0-13-407653-2, 0-13-407643-5",
  ISBN-13 =      "978-0-13-407653-9, 978-0-13-407643-0",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 17:33:54 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9780134076539",
  acknowledgement = ack-nhfb,
  author-dates = "1946--",
  subject =      "Python (Computer program language); Computer
                 programming; Computer programming.; Python (Computer
                 program language)",
  tableofcontents = "Preface \\
                 Coverage \\
                 Use in the Curriculum \\
                 Prerequisites \\
                 Goals \\
                 Booksite \\
                 Acknowledgments \\
                 Chapter One. Elements of Programming \\
                 1.1 Your First Program \\
                 Programming in Python \\
                 Input and output \\
                 Q\&A \\
                 Exercises \\
                 1.2 Built-in Types of Data \\
                 Definitions \\
                 Strings \\
                 Integers \\
                 Floating-point numbers \\
                 Booleans \\
                 Comparisons \\
                 Functions and APIs \\
                 Type conversion \\
                 Summary \\
                 Q\&A (strings) \\
                 Q\&A (integers) \\
                 Q\&A (floating-point numbers) \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 1.3 Conditionals and Loops \\
                 If statements \\
                 Else clauses \\
                 While statements \\
                 For statements \\
                 Nesting \\
                 Applications \\
                 Loop and a half \\
                 Infinite loops \\
                 Summary \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 1.4 Arrays \\
                 Arrays in Python \\
                 Array aliases and copies \\
                 System support for arrays \\
                 Sample applications of arrays \\
                 Coupon collector \\
                 Sieve of Eratosthenes \\
                 Two-dimensional arrays \\
                 Example: self-avoiding random walks \\
                 Summary \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 1.5 Input and Output \\
                 Bird s-eye view \\
                 Standard output \\
                 Standard input \\
                 Redirection and piping \\
                 Standard drawing \\
                 Animation \\
                 Standard audio \\
                 Summary \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 1.6 Case Study: Random Web Surfer \\
                 Input format \\
                 Transition matrix \\
                 Simulation \\
                 Mixing a Markov chain \\
                 Lessons \\
                 Exercises \\
                 Creative Exercises \\
                 Chapter Two. Functions and Modules \\
                 2.1 Defining Functions \\
                 Using and defining functions \\
                 Implementing mathematical functions \\
                 Using functions to organize code \\
                 Passing arguments and returning values \\
                 Example: superposition of sound waves \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 2.2 Modules and Clients \\
                 Using functions in other programs \\
                 Modular programming abstractions \\
                 Random numbers \\
                 Array-processing API \\
                 Iterated function systems \\
                 Standard statistics \\
                 Modular programming \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 2.3 Recursion \\
                 Your first recursive program \\
                 Mathematical induction \\
                 Euclid s algorithm \\
                 Towers of Hanoi \\
                 Function-call trees \\
                 Exponential time \\
                 Gray codes \\
                 Recursive graphics \\
                 Brownian bridge \\
                 Pitfalls of recursion \\
                 Perspective \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 2.4 Case Study: Percolation \\
                 Percolation \\
                 Basic scaffolding \\
                 Vertical percolation \\
                 Testing \\
                 Estimating probabilities \\
                 Recursive solution for percolation \\
                 Adaptive plot \\
                 Lessons \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 Chapter Three. Object-Oriented Programming \\
                 3.1 Using Data Types \\
                 Methods \\
                 String processing \\
                 String-processing application: genomics \\
                 A user-defined data type \\
                 Color \\
                 Digital image processing \\
                 Input and output revisited \\
                 Memory management \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 3.2 Creating Data Types \\
                 Basic elements of a data type \\
                 Stopwatch \\
                 Histogram \\
                 Turtle graphics \\
                 Complex numbers \\
                 Mandelbrot set \\
                 Commercial data processing \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 3.3 Designing Data Types \\
                 Designing APIs \\
                 Encapsulation \\
                 Immutability \\
                 Example: spatial vectors \\
                 Tuples \\
                 Polymorphism \\
                 Overloading \\
                 Functions are objects \\
                 Inheritance \\
                 Application: data mining \\
                 Design-by-contract \\
                 Q\&A \\
                 Exercises \\
                 Data-Type Design Exercises \\
                 Creative Exercises \\
                 3.4 Case Study: N-Body Simulation \\
                 N-body simulation \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 Chapter Four. Algorithms and Data Structures \\
                 4.1 Performance \\
                 Scientific method \\
                 Observations \\
                 Hypotheses \\
                 Order of growth classifications \\
                 Predictions \\
                 Caveats \\
                 Performance guarantees \\
                 Python lists and arrays \\
                 Strings \\
                 Memory \\
                 Perspective \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 4.2 Sorting and Searching \\
                 Binary search \\
                 Insertion sort \\
                 Mergesort \\
                 Python system sort \\
                 Application: frequency counts \\
                 Lessons \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 4.3 Stacks and Queues \\
                 Pushdown stacks \\
                 Python list (resizing array) implementation of a stack
                 \\
                 Linked-list implementation of a stack \\
                 Stack applications \\
                 FIFO queues \\
                 Queue applications \\
                 Resource allocation \\
                 Q\&A \\
                 Exercises \\
                 Linked-List Exercises \\
                 Creative Exercises \\
                 4.4 Symbol Tables \\
                 API \\
                 Symbol table clients \\
                 Elementary symbol-table implementations \\
                 Hash tables \\
                 Binary search trees \\
                 Performance characteristics of BSTs \\
                 Traversing a BST \\
                 Iterables \\
                 Ordered symbol table operations \\
                 Dictionary data type \\
                 Set data type \\
                 Perspective \\
                 Q\&A \\
                 Exercises \\
                 Binary Tree Exercises \\
                 Creative Exercises \\
                 4.5 Case Study: Small-World Phenomenon \\
                 Graphs \\
                 Graph data type \\
                 Graph client example \\
                 Shortest paths in graphs \\
                 Small-world graphs \\
                 Lessons \\
                 Q\&A \\
                 Exercises \\
                 Creative Exercises \\
                 Context \\
                 Standard Python modules \\
                 Programming environments \\
                 Scientific computing \\
                 Computer systems \\
                 Theoretical computer science \\
                 Glossary \\
                 Index \\
                 APIs \\
                 Code Snippets",
}

@Article{Severance:2015:GVRa,
  author =       "Charles Severance",
  title =        "{Guido van Rossum}: The Early Years of {Python}",
  journal =      j-COMPUTER,
  volume =       "48",
  number =       "2",
  pages =        "7--9",
  month =        feb,
  year =         "2015",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Tue Jun 9 06:31:43 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://csdl.computer.org/csdl/mags/co/2015/02/mco2015020007.html",
  abstract-URL = "http://csdl.computer.org/csdl/mags/co/2015/02/mco2015020007-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/computer",
}

@Article{Severance:2015:GVRb,
  author =       "Charles Severance",
  title =        "{Guido van Rossum}: The Modern Era of {Python}",
  journal =      j-COMPUTER,
  volume =       "48",
  number =       "3",
  pages =        "8--10",
  month =        mar,
  year =         "2015",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Tue Jun 9 06:31:46 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://csdl.computer.org/csdl/mags/co/2015/03/mco2015030008.html",
  abstract-URL = "http://csdl.computer.org/csdl/mags/co/2015/03/mco2015030008-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/computer",
}

@Article{Shein:2015:NPB,
  author =       "Esther Shein",
  title =        "News: {Python} for beginners",
  journal =      j-CACM,
  volume =       "58",
  number =       "3",
  pages =        "19--21",
  month =        mar,
  year =         "2015",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/2716560",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Wed Feb 25 17:28:17 MST 2015",
  bibsource =    "http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://cacm.acm.org/magazines/2015/3/183588/fulltext",
  abstract =     "A survey found the language in use in introductory
                 programming classes in the top U.S. computer science
                 schools.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
}

@Book{Sherrington:2015:MJD,
  author =       "Malcolm Sherrington",
  title =        "Mastering {Julia}: develop your analytical and
                 programming skills further in {Julia} to solve complex
                 data processing problems",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xiv + 385",
  year =         "2015",
  ISBN =         "1-78355-331-6 (paperback), 1-78355-332-4 (e-book)",
  ISBN-13 =      "978-1-78355-331-0 (paperback), 978-1-78355-332-7
                 (e-book)",
  LCCN =         "QA76.7 .S547 2015; QA76.73.J8 S54 2015",
  bibdate =      "Thu Apr 8 10:58:21 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This hands-on guide is aimed at practitioners of data
                 science. The book assumes some previous skills with
                 Julia and skills in coding in a scripting language such
                 as Python or R, or a compiled language such as C or
                 Java.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 1: The Julia Environment \\
                 Introduction \\
                 Philosophy \\
                 Role in data science and big data \\
                 Comparison with other languages \\
                 Features \\
                 Getting started \\
                 Julia sources \\
                 Building from source \\
                 Installing on CentOS \\
                 Mac OS X and Windows \\
                 Exploring the source stack \\
                 Juno \\
                 IJulia \\
                 A quick look at some Julia \\
                 Julia via the console \\
                 Installing some packages \\
                 A bit of graphics creating more realistic graphics with
                 Winston \\
                 My benchmarks \\
                 Package management \\
                 Listing, adding, and removing \\
                 Choosing and exploring packages \\
                 Statistics and mathematics \\
                 Graphics \\
                 Web and networking \\
                 Database and specialist packages \\
                 How to uninstall Julia \\
                 Adding an unregistered package \\
                 What makes Julia special \\
                 Parallel processing \\
                 Multiple dispatch \\
                 Homoiconic macros \\
                 Interlanguage cooperation \\
                 Summary \\
                 2: Developing in Julia \\
                 Integers, bits, bytes, and bools \\
                 Integers \\
                 Logical and arithmetic operators \\
                 Booleans \\
                 Arrays \\
                 Operations on matrices \\
                 Elemental operations \\
                 A simple Markov chain \\
                 cat and mouse \\
                 Char and strings \\
                 Characters \\
                 Strings \\
                 Unicode support \\
                 Regular expressions \\
                 Byte array literals \\
                 Version literals \\
                 An example \\
                 Real, complex, and rational numbers \\
                 Reals \\
                 Operators and built-in functions \\
                 Special values \\
                 BigFloats \\
                 Rationals \\
                 Complex numbers \\
                 Juliasets \\
                 Composite types \\
                 More about matrices \\
                 Vectorized and devectorized code \\
                 Multidimensional arrays \\
                 Broadcasting \\
                 Sparse matrices \\
                 Data arrays and data frames \\
                 Dictionaries, sets, and others \\
                 Dictionaries \\
                 Sets \\
                 Other data structures \\
                 Summary \\
                 3: Types and Dispatch \\
                 Functions \\
                 First-class objects \\
                 Passing arguments \\
                 Default and optional arguments \\
                 Variable argument list \\
                 Named parameters \\
                 Scope \\
                 The Queen's problem \\
                 Julia's type system \\
                 A look at the rational type \\
                 A vehicle datatype \\
                 Typealias and unions \\
                 Enumerations (revisited) \\
                 Multiple dispatch \\
                 Parametric types \\
                 Conversion and promotion \\
                 Conversion \\
                 Promotion \\
                 A fixed vector module \\
                 Summary \\
                 4: Interoperability \\
                 Interfacing with other programming environments \\
                 Calling C and Fortran \\
                 Mapping C types \\
                 Calling a Fortran routine \\
                 Calling curl to retrieve a web page \\
                 Python \\
                 Some others to watch \\
                 The Julia API \\
                 Calling API from C \\
                 Metaprogramming \\
                 Symbols \\
                 Macros \\
                 Testing \\
                 Error handling \\
                 The enum macro \\
                 Tasks \\
                 Parallel operations \\
                 Distributed arrays \\
                 A simple MapReduce \\
                 Executing commands \\
                 Running commands \\
                 Working with the filesystem \\
                 Redirection and pipes \\
                 Perl one-liners \\
                 Summary \\
                 5: Working with Data \\
                 Basic I/O \\
                 Terminal I/O \\
                 Disk files \\
                 Text processing \\
                 Binary files \\
                 Structured datasets \\
                 CSV and DLM files \\
                 HDF5 \\
                 XML files \\
                 DataFrames and RDatasets \\
                 The DataFrames package \\
                 DataFrames \\
                 RDatasets \\
                 Subsetting, sorting, and joining data \\
                 Statistics \\
                 Simple statistics \\
                 Samples and estimations \\
                 Pandas \\
                 Selected topics \\
                 Time series \\
                 Distributions \\
                 Kernel density \\
                 Hypothesis testing \\
                 GLM \\
                 Summary",
}

@Book{Slatkin:2015:EPS,
  author =       "Brett Slatkin",
  title =        "Effective {Python}: 59 specific ways to write better
                 {Python}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "????",
  year =         "2015",
  ISBN =         "0-13-403441-4",
  ISBN-13 =      "978-0-13-403441-6, 978-0-13-403428-7",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 15:24:45 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Effective software development series",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Computer
                 programming; Computer programming.; Python (Computer
                 program language)",
}

@Article{Smigaj:2015:SBI,
  author =       "Wojciech {\'S}migaj and Timo Betcke and Simon Arridge
                 and Joel Phillips and Martin Schweiger",
  title =        "Solving Boundary Integral Problems with {BEM++}",
  journal =      j-TOMS,
  volume =       "41",
  number =       "2",
  pages =        "6:1--6:40",
  month =        jan,
  year =         "2015",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/2590830",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Feb 4 17:49:11 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "Many important partial differential equation problems
                 in homogeneous media, such as those of acoustic or
                 electromagnetic wave propagation, can be represented in
                 the form of integral equations on the boundary of the
                 domain of interest. In order to solve such problems,
                 the boundary element method (BEM) can be applied. The
                 advantage compared to domain-discretisation-based
                 methods such as finite element methods is that only a
                 discretisation of the boundary is necessary, which
                 significantly reduces the number of unknowns. Yet, BEM
                 formulations are much more difficult to implement than
                 finite element methods. In this article, we present
                 BEM++, a novel open-source library for the solution of
                 boundary integral equations for Laplace, Helmholtz and
                 Maxwell problems in three space dimensions. BEM++ is a
                 C++ library with Python bindings for all important
                 features, making it possible to integrate the library
                 into other C++ projects or to use it directly via
                 Python scripts. The internal structure and design
                 decisions for BEM++ are discussed. Several examples are
                 presented to demonstrate the performance of the library
                 for larger problems.",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Book{Smith:2015:C,
  author =       "Kurt W. Smith",
  title =        "{Cython}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "240",
  year =         "2015",
  ISBN =         "1-4919-0155-1",
  ISBN-13 =      "978-1-4919-0155-7",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 15:09:59 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/9781491901731",
  tableofcontents = "Dedication \\
                 Preface \\
                 Who Should Read This Book? \\
                 Who Should Not Read This Book? \\
                 Outline \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 Safari Books Online \\
                 How to Contact Us \\
                 Acknowledgments \\
                 1. Cython Essentials \\
                 Comparing Python, C, and Cython \\
                 Tempering our Enthusiasm \\
                 Wrapping C Code with Cython \\
                 Summary \\
                 2. Compiling and Running Cython Code \\
                 The Cython Compilation Pipeline \\
                 The Standard Way: Using Distutils with cythonize \\
                 Interactive Cython with IPython and cython Magic \\
                 Compiling on-the-fly with pyximport \\
                 Roll-Your-Own and Compiling by Hand \\
                 Using Cython with Other Build Systems \\
                 Compiler Directives \\
                 Summary \\
                 3. Cython in Depth \\
                 Interpreted vs. Compiled Execution \\
                 Dynamic vs. Static Typing \\
                 Static Type Declaration with cdef \\
                 Cython s Three Kinds of Functions \\
                 Type Coercion and Casting \\
                 Declaring and Using structs, unions, and enums \\
                 Type Aliasing with ctypedef \\
                 Cython for Loops and while Loops \\
                 The Cython Preprocessor \\
                 Bridging the Python 2 and Python 3 Divide \\
                 Summary \\
                 4. Cython in Practice: N-Body Simulation \\
                 Overview of the N-Body Python Code \\
                 Converting to Cython \\
                 Summary \\
                 5. Cython and Extension Types \\
                 Comparing Python Classes and Extension Types \\
                 Extension Types in Cython \\
                 Type Attributes and Access Control \\
                 C-level Initialization and Finalization \\
                 cdef and cpdef Methods \\
                 Inheritance and Subclassing \\
                 Extension Type Properties in Cython \\
                 Special Methods are Even More Special \\
                 Summary \\
                 6. Organizing Cython Code \\
                 Cython Implementation (pyx) and Declaration (pxd) Files
                 \\
                 The cimport Statement \\
                 Include Files and the include Statement \\
                 Organizing and Compiling Cython Modules Inside Python
                 Packages \\
                 Summary \\
                 7. Wrapping C Libraries with Cython \\
                 Declaring External C Code in Cython \\
                 Declaring External C Functions and typedefs \\
                 Declaring and Wrapping C structs, unions, and enums \\
                 Wrapping C Functions \\
                 Wrapping C structs with Extension Types \\
                 Constants, Other Modifiers, and Controlling What Cython
                 Generates \\
                 Error Checking and Raising Exceptions \\
                 Callbacks \\
                 Summary \\
                 8. Wrapping C++ Libraries with Cython \\
                 Simple Example: MT_RNG Class \\
                 C++ Exceptions \\
                 Stack and Heap Allocation of C++ Instances \\
                 Working with C++ Class Hierarchies \\
                 C++ Templates \\
                 Memory Management, RAII, and Smart Pointers \\
                 Summary \\
                 9. Cython Profiling Tools \\
                 Cython Runtime Profiling \\
                 Performance Profiling and Annotations \\
                 Summary \\
                 10. Cython, NumPy, and Typed Memoryviews \\
                 The Power of the New Buffer Protocol \\
                 Typed Memoryviews \\
                 Wrapping C and C++ Arrays \\
                 Summary \\
                 11. Cython in Practice: Spectral Norm \\
                 Overview of the Spectral Norm Python Code \\
                 Performance Profiling \\
                 Cythonizing Our Code \\
                 Comparing to the C Implementation \\
                 Summary \\
                 12. Parallel Programming with Cython \\
                 Thread-based Parallelism and the Global Interpreter
                 Lock \\
                 Using prange to Parallelize Loops \\
                 Using prange for Reductions \\
                 Parallel Programming Pointers and Pitfalls \\
                 Summary \\
                 13. Cython in Context \\
                 Cython vs. Project X \\
                 Summary \\
                 Index \\
                 About the Author \\
                 Colophon",
}

@Book{Stevens:2015:PPB,
  author =       "Tim Stevens and Wayne Boucher",
  title =        "{Python} programming for biology, bioinformatics, and
                 beyond",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "viii + 702 + 8",
  year =         "2015",
  DOI =          "https://doi.org/10.1017/CBO9780511843556",
  ISBN =         "0-521-89583-9 (hardcover), 0-521-72009-5 (paperback)",
  ISBN-13 =      "978-0-521-89583-5 (hardcover), 978-0-521-72009-0
                 (paperback)",
  LCCN =         "QH324.2 .S727 2014",
  bibdate =      "Wed Oct 14 10:25:49 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  author-dates = "1976--",
  subject =      "Biology; Data processing; Python (Computer program
                 language)",
  tableofcontents = "Frontmatter / i--iv \\
                 Contents / v--viii \\
                 Preface / ix--ix \\
                 Acknowledgements / x--x \\
                 1: Prologue / 1--4 \\
                 2: a beginners guide / 5--16 \\
                 3: Python basics / 17--42 \\
                 4: Program control and logic / 43--62 \\
                 5: Functions / 63--77 \\
                 6: Files / 78--99 \\
                 7: Object orientation / 100--116 \\
                 8: Object data modelling / 117--136 \\
                 9: Mathematics / 137--159 \\
                 10: Coding tips / 160--180 \\
                 11: Biological sequences / 181--207 \\
                 12: Pairwise sequence alignments / 208--231 \\
                 13: Multiple-sequence alignments / 232--243 \\
                 14: Sequence variation and evolution / 244--277 \\
                 15: Macromolecular structures / 278--315 \\
                 16: Array data / 316--340 \\
                 17: High-throughput sequence analyses / 341--360 \\
                 18: Images / 361--381 \\
                 19: Signal processing / 382--400 \\
                 20: Databases / 401--420 \\
                 21: Probability / 421--453 \\
                 22: Statistics / 454--485 \\
                 23: Clustering and discrimination / 486--510 \\
                 24: Machine learning / 511--544 \\
                 25: Hard problems / 545--565 \\
                 26: Graphical interfaces / 566--581 \\
                 27: Improving speed / 582--605 \\
                 Appendices / 606--606 \\
                 Appendix 1: Simplified language reference / 607--620
                 \\
                 Appendix 2: Selected standard type methods and
                 operations / 621--633 \\
                 Appendix 3: Standard module highlights / 634--652 \\
                 Appendix 4: String formatting / 653--657 \\
                 Appendix 5: Regular expressions / 658--667 \\
                 Appendix 6: Further statistics / 668--670 \\
                 Glossary / 671--695 \\
                 Index / 696--702",
}

@Book{Toms:2015:AAG,
  author =       "Silas Toms",
  title =        "{ArcPy} and {ArcGIS-geospatial} analysis with
                 {Python}: use the {ArcPy} module to automate the
                 analysis and mapping of geospatial data in {ArcGIS}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "224 (est.)",
  year =         "2015",
  ISBN =         "1-78398-866-5, 1-78398-867-3 (e-book)",
  ISBN-13 =      "978-1-78398-866-2, 978-1-78398-867-9 (e-book)",
  LCCN =         "G70.212",
  bibdate =      "Sat Oct 24 05:39:48 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781783988662",
  acknowledgement = ack-nhfb,
  subject =      "ArcGIS; ArcGIS.; Geographic information systems;
                 Python (Computer program language); Geographic
                 information systems.; 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 \\
                 Downloading the color images of this book \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Introduction to Python for ArcGIS \\
                 Overview of Python \\
                 Python as a programming language \\
                 Interpreted language \\
                 Standard (built-in) library \\
                 The glue language \\
                 Wrapper modules \\
                 The basics of Python \\
                 Import statements \\
                 Variables \\
                 For loops \\
                 If/Elif/Else statements \\
                 While statements \\
                 Comments \\
                 Data types \\
                 Strings \\
                 Integers \\
                 Floats \\
                 Lists \\
                 Tuples \\
                 Dictionaries \\
                 Iterable data types \\
                 Other important concepts \\
                 Indentation \\
                 Functions \\
                 Keywords \\
                 Namespaces \\
                 Zero-based indexing \\
                 Important Python Modules for GIS Analysis \\
                 The ArcPy module \\
                 The Operating System (OS) module \\
                 The Python System (SYS) module \\
                 The XLRD and XLWT modules \\
                 Commonly used built-in functions \\
                 Commonly used standard library modules \\
                 Summary \\
                 2. Configuring the Python Environment \\
                 What is a Python script? \\
                 How Python executes a script \\
                 What is the Python interpreter? \\
                 Where is the Python interpreter located? \\
                 Which Python interpreter should be used? \\
                 How does the computer know where the interpreter is?
                 \\
                 Make Python scripts executable when clicked on \\
                 Integrated Development Environments (IDEs) \\
                 IDLE \\
                 PythonWin \\
                 Aptana Studio 3 \\
                 IDE summary \\
                 Python folder structure \\
                 Where modules reside \\
                 Using Python's sys module to add a module \\
                 The sys.path.append() method \\
                 Summary \\
                 3. Creating the First Python Script \\
                 Prerequisites \\
                 ModelBuilder \\
                 Creating a model and exporting to Python \\
                 Modeling the Select and Buffer tools \\
                 Adding the Intersect tool \\
                 Tallying the analysis results \\
                 Exporting the model and adjusting the script \\
                 The automatically generated script \\
                 File paths in Python \\
                 Continuing the script analysis: the ArcPy tools \\
                 The Intersect tool and string manipulation \\
                 The string manipulation method 1 --- string addition
                 \\
                 The string manipulation method 2 --- string formatting
                 #1 \\
                 The string manipulation method 3 --- string formatting
                 #2 \\
                 Adjusting the Script \\
                 Adding the CSV module to the script \\
                 Accessing the data: Using a cursor \\
                 The final script \\
                 Summary \\
                 4. Complex ArcPy Scripts and Generalizing Functions \\
                 Python functions --- Avoid repeating code \\
                 Technical definition of functions \\
                 A first function \\
                 Functions with parameters \\
                 Using functions to replace repetitive code \\
                 More generalization of the functions \\
                 Summary \\
                 5. ArcPy Cursors --- Search, Insert, and Update \\
                 The data access module \\
                 Attribute field interactions \\
                 Update cursors \\
                 Updating the shape field \\
                 Adjusting a point location \\
                 Deleting a row using an Update Cursor \\
                 Using an Insert Cursor \\
                 Inserting a polyline geometry \\
                 Inserting a polygon geometry \\
                 Summary \\
                 6. Working with ArcPy Geometry Objects \\
                 ArcPy geometry object classes \\
                 ArcPy Point objects \\
                 ArcPy Array objects \\
                 ArcPy Polyline objects \\
                 ArcPy Polygon objects \\
                 Polygon object buffers \\
                 Other Polygon object methods \\
                 ArcPy geometry objects \\
                 ArcPy PointGeometry objects \\
                 Summary \\
                 7. Creating a Script Tool \\
                 Adding dynamic parameters to a script \\
                 Displaying script messages using arcpy.AddMessage \\
                 Adding dynamic components to the script \\
                 Creating a Script tool \\
                 Labelling and defining parameters \\
                 Adding data types \\
                 Adding the Bus Stop feature class as a parameter \\
                 Adding the Census Block feature class as a parameter
                 \\
                 Adding the Census Block field as a parameter \\
                 Adding the output spreadsheet as a parameter \\
                 Adding the spreadsheet field names as a parameter \\
                 Adding the SQL Statement as a parameter \\
                 Adding the bus stop fields as a parameter \\
                 Inspecting the final script \\
                 Running the Script Tool \\
                 Summary \\
                 8. Introduction to ArcPy.Mapping \\
                 Using ArcPy with map documents \\
                 Inspecting and replacing layer sources \\
                 Fixing the broken links \\
                 Fixing the links of individual layers \\
                 Exporting to PDF from an MXD \\
                 Adjusting map document elements \\
                 Automated map document adjustment \\
                 The variables \\
                 The map document object and the text elements \\
                 The layer objects \\
                 Replacing the data sources \\
                 Adjusting layer visibility \\
                 Generating a buffer from the bus stops feature class
                 \\
                 Intersecting the bus stop buffer and census blocks \\
                 Populating the selected bus stop and buffer feature
                 classes \\
                 Updating the text elements \\
                 Exporting the adjusted map to PDF \\
                 Running the script in the Python Window \\
                 Summary \\
                 9. More ArcPy.Mapping Techniques \\
                 Using arcpy.mapping to control Layer objects \\
                 Layer object methods and properties \\
                 Definition queries \\
                 Controlling the data frame window extent and scale \\
                 Adding a Layer object \\
                 Exporting the maps \\
                 Summary \\
                 10. Advanced Geometry Object Methods \\
                 Creating a Python module \\
                 The __init__.py file \\
                 Adding advanced analysis components \\
                 Advanced Polygon object methods \\
                 Generating random points to represent population \\
                 Using the functions within a script \\
                 Creating an XLS using XLWT \\
                 Summary \\
                 11. Network Analyst and Spatial Analyst with ArcPy \\
                 The Network Analyst extension \\
                 Using Network Analyst \\
                 Creating a Feature Dataset \\
                 Importing the datasets \\
                 Creating the Network Dataset \\
                 Accessing the Network Dataset using ArcPy \\
                 Breaking down the script \\
                 The Network Analyst module \\
                 Accessing the Spatial Analyst Extension \\
                 Adding elevation to the bus stops \\
                 Using Map Algebra to generate elevation in feet \\
                 Adding in the bus stops and getting elevation values
                 \\
                 The final result \\
                 Summary \\
                 12. The End of the Beginning \\
                 Getting field information from feature classes \\
                 Accessing the ListFields' properties \\
                 List comprehensions \\
                 Creating the field information functions \\
                 Querying feature class information \\
                 Generating File Geodatabases and feature classes \\
                 Generating a feature class \\
                 Setting up the script tool parameters \\
                 Environmental settings \\
                 Resolution and tolerance settings \\
                 Summary \\
                 Index",
}

@Book{Ulloa:2015:KIA,
  author =       "Roberto Ulloa",
  title =        "{Kivy} --- interactive applications and games in
                 {Python}: create responsive cross-platform {UI/UX}
                 applications and games in {Python} and using the open
                 source {Kivy} library",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  edition =      "Second",
  pages =        "206 (est.)",
  year =         "2015",
  ISBN =         "1-78528-692-7, 1-78528-438-X",
  ISBN-13 =      "978-1-78528-692-6, 978-1-78528-438-0",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:42:59 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781785286926",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Application
                 software; Development; Cross-platform software
                 development; Development.; Cross-platform software
                 development.; Python (Computer program language)",
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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. GUI Basics --- Building an Interface \\
                 Basic interface --- Hello World! \\
                 Basic widgets --- labels and buttons \\
                 Layouts \\
                 Embedding layouts \\
                 PageLayout --- swiping pages \\
                 Our project --- Comic Creator \\
                 Summary \\
                 2. Graphics --- the Canvas \\
                 Understanding the canvas \\
                 Drawing basic shapes \\
                 Adding images, colors, and backgrounds \\
                 Structuring graphic instructions \\
                 Rotating, translating, and scaling the coordinate space
                 \\
                 Comic Creator: PushMatrix and PopMatrix \\
                 Summary \\
                 3. Widget Events --- Binding Actions \\
                 Attributes, ID, and root \\
                 Basic widget events --- dragging the stickman \\
                 Localizing coordinates --- adding stickmen \\
                 Binding and unbinding events --- sizing limbs and heads
                 \\
                 Binding events in the Kivy language \\
                 Creating your own events --- the magical properties \\
                 Kivy and its properties \\
                 Summary \\
                 4. Improving the User Experience \\
                 ScreenManager --- selecting colors for the figures \\
                 Color control on the canvas --- coloring figures \\
                 StencilView --- limiting the drawing space \\
                 Scatter --- multi-touching to drag, rotate, and scale
                 \\
                 Recording gestures --- line, circle, and cross \\
                 Recognizing gestures --- drawing with the finger \\
                 Behaviors --- enhancing widget's functionality \\
                 Style --- decorating the interface \\
                 Factory --- replacing a vertex instruction \\
                 Summary \\
                 5. Invaders Revenge --- an Interactive Multi-touch Game
                 \\
                 Invaders Revenge --- an animated multi-touch game \\
                 Atlas --- An efficient management of images \\
                 Boom --- simple sound effects \\
                 Ammo --- simple animation \\
                 Invader --- transitions for animations \\
                 Dock --- automatic binding in the Kivy language \\
                 Fleet --- infinite concatenation of animations \\
                 Scheduling events with the clock \\
                 Shooter --- multi-touch control \\
                 Invasion --- moving the shooter with the keyboard \\
                 Combining animations with '+' and '&' \\
                 Summary \\
                 6. Kivy Player --- a TED Video Streamer \\
                 Video --- play, pause, and stop \\
                 AsyncImage --- creating a cover for the video \\
                 Subtitles --- tracking the video progression \\
                 Control bar --- adding buttons to control the video \\
                 Slider --- including a progression bar \\
                 Animation --- hiding a widget \\
                 Kivy inspector --- debugging interfaces \\
                 ActionBar --- a responsive bar \\
                 LoadDialog --- displaying a directory of files \\
                 ScrollView --- displaying a list of videos \\
                 Search --- query the TED Developer API \\
                 Summary \\
                 Index",
}

@Article{Verschelde:2015:PHC,
  author =       "Jan Verschelde and Xiangcheng Yu",
  title =        "Polynomial homotopy continuation on {GPUs}",
  journal =      j-ACM-COMM-COMP-ALGEBRA,
  volume =       "49",
  number =       "4",
  pages =        "130--133",
  month =        dec,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2893803.2893810",
  ISSN =         "1932-2232 (print), 1932-2240 (electronic)",
  ISSN-L =       "1932-2232",
  bibdate =      "Wed Feb 17 16:05:57 MST 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsam.bib",
  abstract =     "The purpose of the software presentation is to
                 announce a library to track many solution paths defined
                 by a polynomial homotopy on a Graphics Processing Unit
                 (GPU). Developed on NVIDIA graphics cards with CUDA
                 SDKs, our code is released under the GNU GPL license.
                 Via the C interface to PHCpack, we can call our GPU
                 library from Python.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Communications in Computer Algebra",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1000",
}

@Article{Vitousek:2015:DEG,
  author =       "Michael M. Vitousek and Andrew M. Kent and Jeremy G.
                 Siek and Jim Baker",
  title =        "Design and evaluation of gradual typing for {Python}",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "2",
  pages =        "45--56",
  month =        feb,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2775052.2661101",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:21 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Combining static and dynamic typing within the same
                 language offers clear benefits to programmers. It
                 provides dynamic typing in situations that require
                 rapid prototyping, heterogeneous data structures, and
                 reflection, while supporting static typing when safety,
                 modularity, and efficiency are primary concerns. Siek
                 and Taha (2006) introduced an approach to combining
                 static and dynamic typing in a fine-grained manner
                 through the notion of type consistency in the static
                 semantics and run-time casts in the dynamic semantics.
                 However, many open questions remain regarding the
                 semantics of gradually typed languages. In this paper
                 we present Reticulated Python, a system for
                 experimenting with gradual-typed dialects of Python.
                 The dialects are syntactically identical to Python 3
                 but give static and dynamic semantics to the type
                 annotations already present in Python 3. Reticulated
                 Python consists of a typechecker and a source-to-source
                 translator from Reticulated Python to Python 3. Using
                 Reticulated Python, we evaluate a gradual type system
                 and three approaches to the dynamic semantics of
                 mutable objects: the traditional semantics based on
                 Siek and Taha (2007) and Herman et al. (2007) and two
                 new designs. We evaluate these designs in the context
                 of several third-party Python programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '14 conference proceedings.",
}

@Book{Weiming:2015:MPF,
  author =       "James Ma Weiming",
  title =        "Mastering {Python} for finance: understand, design,
                 and implement state-of-the-art mathematical and
                 statistical applications used in finance with
                 {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "xv + 312",
  year =         "2015",
  ISBN =         "1-78439-451-3",
  ISBN-13 =      "978-1-78439-451-6",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 17:26:50 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  acknowledgement = ack-nhfb,
  remark =       "{\'I}ndices.",
  subject =      "Python (Lenguaje de programaci{\'o}n); Finanzas;
                 M{\'e}todos estad{\'i}sticos; Procesamiento en lenguaje
                 natural (Inform{\'a}tica)",
  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 for Financial Applications \\
                 Is Python for me? \\
                 Free and open source \\
                 High-level, powerful, and flexible \\
                 A wealth of standard libraries \\
                 Objected-oriented versus functional programming \\
                 The object-oriented approach \\
                 The functional approach \\
                 Which approach should I use? \\
                 Which Python version should I use? \\
                 Introducing IPython \\
                 Getting IPython \\
                 Using pip \\
                 The IPython Notebook \\
                 Notebook documents \\
                 Running the IPython Notebook \\
                 Creating a new notebook \\
                 Notebook cells \\
                 Code cell \\
                 Markdown cell \\
                 Raw NBConvert cell \\
                 Heading cells \\
                 Simple exercises with IPython Notebook \\
                 Creating a notebook with heading and Markdown cells \\
                 Saving notebooks \\
                 Mathematical operations in cells \\
                 Displaying graphs \\
                 Inserting equations \\
                 Displaying images \\
                 Inserting YouTube videos \\
                 Working with HTML \\
                 The pandas DataFrame object as an HTML table \\
                 Notebook for finance \\
                 Summary \\
                 2. The Importance of Linearity in Finance \\
                 The capital asset pricing model and the security market
                 line \\
                 The Arbitrage Pricing Theory model \\
                 Multivariate linear regression of factor models \\
                 Linear optimization \\
                 Getting PuLP \\
                 A simple linear optimization problem \\
                 Outcomes of linear programs \\
                 Integer programming \\
                 An example of an integer programming model with binary
                 conditions \\
                 A different approach with binary conditions \\
                 Solving linear equations using matrices \\
                 The LU decomposition \\
                 The Cholesky decomposition \\
                 The QR decomposition \\
                 Solving with other matrix algebra methods \\
                 The Jacobi method \\
                 The Gauss-Seidel method \\
                 Summary \\
                 3. Nonlinearity in Finance \\
                 Nonlinearity modeling \\
                 Examples of nonlinear models \\
                 The implied volatility model \\
                 The Markov regime-switching model \\
                 The threshold autoregressive model \\
                 Smooth transition models \\
                 An introduction to root-finding \\
                 Incremental search \\
                 The bisection method \\
                 Newton's method \\
                 The secant method \\
                 Combining root-finding methods \\
                 SciPy implementations \\
                 Root-finding scalar functions \\
                 General nonlinear solvers \\
                 Summary \\
                 4. Numerical Procedures \\
                 Introduction to options \\
                 Binomial trees in options pricing \\
                 Pricing European options \\
                 Are these formulas relevant to stocks? What about
                 futures? \\
                 Writing the StockOption class \\
                 Writing the BinomialEuropeanOption class \\
                 Pricing American options with the BinomialTreeOption
                 class \\
                 The Cox-Ross-Rubinstein model \\
                 Writing the BinomialCRROption class \\
                 Using a Leisen-Reimer tree \\
                 Writing the BinomialLROption class \\
                 The Greeks for free \\
                 Writing the BinomialLRWithGreeks class \\
                 Trinomial trees in options pricing \\
                 Writing the TrinomialTreeOption class \\
                 Lattices in options pricing \\
                 Using a binomial lattice \\
                 Writing the BinomialCRROption class \\
                 Using the trinomial lattice \\
                 Writing the TrinomialLattice class \\
                 Finite differences in options pricing \\
                 The explicit method \\
                 Writing the FiniteDifferences class \\
                 Writing the FDExplicitEu class \\
                 The implicit method \\
                 Writing the FDImplicitEu class \\
                 The Crank-Nicolson method \\
                 Writing the FDCnEu class \\
                 Pricing exotic barrier options \\
                 A down-and-out option \\
                 Writing the FDCnDo class \\
                 American options pricing with finite differences \\
                 Writing the FDCnAm class \\
                 Putting it all together --- implied volatility modeling
                 \\
                 Implied volatilities of AAPL American put option \\
                 Summary \\
                 5. Interest Rates and Derivatives \\
                 Fixed-income securities \\
                 Yield curves \\
                 Valuing a zero-coupon bond \\
                 Spot and zero rates \\
                 Bootstrapping a yield curve \\
                 Forward rates \\
                 Calculating the yield to maturity \\
                 Calculating the price of a bond \\
                 Bond duration \\
                 Bond convexity \\
                 Short-rate modeling \\
                 The Vasicek model \\
                 The Cox-Ingersoll-Ross model \\
                 The Rendleman and Bartter model \\
                 The Brennan and Schwartz model \\
                 Bond options \\
                 Callable bonds \\
                 Puttable bonds \\
                 Convertible bonds \\
                 Preferred stocks \\
                 Pricing a callable bond option \\
                 Pricing a zero-coupon bond by the Vasicek model \\
                 Value of early-exercise \\
                 Policy iteration by finite differences \\
                 Other considerations in callable bond pricing \\
                 Summary \\
                 6. Interactive Financial Analytics with Python and
                 VSTOXX \\
                 Volatility derivatives \\
                 STOXX and the Eurex \\
                 The EURO STOXX 50 Index \\
                 The VSTOXX \\
                 The VIX \\
                 Gathering the EUROX STOXX 50 Index and VSTOXX data \\
                 Merging the data \\
                 Financial analytics of SX5E and V2TX \\
                 Correlation between SX5E and V2TX \\
                 Calculating the VSTOXX sub-indices \\
                 Getting the OESX data \\
                 Formulas to calculate the VSTOXX sub-index \\
                 Implementation of the VSTOXX sub-index value \\
                 Analyzing the results \\
                 Calculating the VSTOXX main index \\
                 Summary \\
                 7. Big Data with Python \\
                 Introducing big data \\
                 Hadoop for big data \\
                 HDFS \\
                 YARN \\
                 MapReduce \\
                 Is big data for me? \\
                 Getting Apache Hadoop \\
                 Getting a QuickStart VM from Cloudera \\
                 Getting VirtualBox \\
                 Running Cloudera VM on VirtualBox \\
                 A word count program in Hadoop \\
                 Downloading sample data \\
                 The map program \\
                 The reduce program \\
                 Testing our scripts \\
                 Running MapReduce on Hadoop \\
                 Hue for browsing HDFS \\
                 Going deeper --- Hadoop for finance \\
                 Obtaining IBM stock prices from Yahoo! Finance \\
                 Modifying the map program \\
                 Testing our map program with IBM stock prices \\
                 Running MapReduce to count intraday price changes \\
                 Performing analysis on our MapReduce results \\
                 Introducing NoSQL \\
                 Getting MongoDB \\
                 Creating the data directory and running MongoDB \\
                 Running MongoDB from Windows \\
                 Running MongoDB from Mac OS X \\
                 Getting PyMongo \\
                 Running a test connection \\
                 Getting a database \\
                 Getting a collection \\
                 Inserting a document \\
                 Fetching a single document \\
                 Deleting documents \\
                 Batch-inserting documents \\
                 Counting documents in the collection \\
                 Finding documents \\
                 Sorting documents \\
                 Conclusion \\
                 Summary \\
                 8. Algorithmic Trading \\
                 Introduction to algorithmic trading \\
                 List of trading platforms with public API \\
                 Which is the best programming language to use? \\
                 System functionalities \\
                 Algorithmic trading with Interactive Brokers and IbPy
                 \\
                 Getting Interactive Brokers' Trader WorkStation \\
                 Getting IbPy --- the IB API wrapper \\
                 A simple order routing mechanism \\
                 Building a mean-reverting algorithmic trading system
                 \\
                 Setting up the main program \\
                 Handling events \\
                 Implementing the mean-reverting algorithm \\
                 Tracking our positions \\
                 Forex trading with OANDA API \\
                 What is REST? \\
                 Setting up an OANDA account \\
                 Exploring the API \\
                 Getting oandapy --- the OANDA REST API wrapper \\
                 Getting and parsing rates data \\
                 Sending an order \\
                 Building a trend-following forex trading platform \\
                 Setting up the main program \\
                 Handling events \\
                 Implementing the trend-following algorithm \\
                 Tracking our positions \\
                 VaR for risk management \\
                 Summary \\
                 9. Backtesting \\
                 An introduction to backtesting \\
                 Concerns in backtesting \\
                 Concept of an event-driven backtesting system \\
                 Designing and implementing a backtesting system \\
                 The TickData class \\
                 The MarketData class \\
                 The MarketDataSource class \\
                 The Order class \\
                 The Position class \\
                 The Strategy class \\
                 The MeanRevertingStrategy class \\
                 The Backtester class \\
                 Running our backtesting system \\
                 Improving your backtesting system \\
                 Ten considerations for a backtesting model \\
                 Resources restricting your model \\
                 Criteria of evaluation of the model \\
                 Estimating the quality of backtest parameters \\
                 Be prepared to face model risk \\
                 Performance of a backtest with in-sample data \\
                 Addressing common pitfalls in backtesting \\
                 Have a common sense idea of your model \\
                 Understanding the context for the model \\
                 Make sure you have the right data \\
                 Data mine your results \\
                 Discussion of algorithms in backtesting \\
                 K-means clustering \\
                 K-nearest neighbor machine learning algorithm \\
                 Classification and regression tree analysis \\
                 The 2k factorial design \\
                 The genetic algorithm \\
                 Summary \\
                 10. Excel with Python \\
                 Overview of COM \\
                 Excel for finance \\
                 Building a COM server \\
                 Prerequisites \\
                 Getting the pythoncom module \\
                 Building the Black-Scholes model COM server \\
                 Registering and unregistering the COM server \\
                 Building the Cox-Ross-Rubinstein binomial tree model
                 COM server \\
                 Building the trinomial lattice model COM server \\
                 Building the COM client in Excel \\
                 Setting up the VBA code \\
                 Setting up the cells \\
                 What else can I do with COM? \\
                 Summary \\
                 Index",
}

@Article{Weppner:2015:DPS,
  author =       "Stephen Weppner",
  title =        "A different perspective on scientific programming
                 [review of {``Annotated algorithms in Python; with
                 applications in physics, biology, and finance' (Di
                 Pierro, M.; 2013)}]",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "17",
  number =       "1",
  pages =        "6--7",
  month =        jan # "\slash " # feb,
  year =         "2015",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Feb 13 08:04:42 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://csdl.computer.org/csdl/mags/cs/2015/01/mcs2015010006.pdf",
  abstract-URL = "http://csdl.computer.org/csdl/mags/cs/2015/01/mcs2015010006-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Westra:2015:PGA,
  author =       "Erik Westra",
  title =        "{Python} geospatial analysis essentials: process,
                 analyze, and display geospatial data using {Python}
                 libraries and related tools",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "ume",
  year =         "2015",
  ISBN =         "1-78355-389-8, 1-78217-451-6",
  ISBN-13 =      "978-1-78355-389-1, 978-1-78217-451-6",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:53:32 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community experience distilled",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781782174516",
  acknowledgement = ack-nhfb,
  tableofcontents = "Credits \\
                 About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why subscribe? \\
                 Free access for Packt account holders \\
                 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. Geospatial Analysis and Techniques \\
                 About geospatial analysis \\
                 Understanding geospatial data \\
                 Setting up your Python installation \\
                 Installing GDAL \\
                 Installing Shapely \\
                 Obtaining some geospatial data \\
                 Unlocking the shapefile \\
                 Analyzing the data \\
                 A program to identify neighboring countries \\
                 Summary \\
                 2. Geospatial Data \\
                 Geospatial data quality \\
                 Types of geospatial data \\
                 Shapefiles \\
                 Well-known text \\
                 Well-known binary \\
                 Spatial databases \\
                 Geospatial microformats \\
                 GeoJSON \\
                 GML \\
                 Digital elevation models \\
                 Raster basemaps \\
                 Multiband raster files \\
                 Sources of freely available geospatial data \\
                 Natural Earth Data \\
                 OpenStreetMap \\
                 US Census Bureau \\
                 World Borders Dataset \\
                 GLOBE \\
                 National Elevation Dataset \\
                 Reading and writing geospatial data using Python \\
                 Reading vector data \\
                 Writing vector data \\
                 Reading raster data \\
                 Writing raster data \\
                 Dealing with spatial reference systems \\
                 WGS84 \\
                 Universal Transverse Mercator \\
                 Describing spatial reference systems \\
                 Transforming coordinates \\
                 Calculating lengths and areas \\
                 Geospatial data errors and how to fix them \\
                 Points \\
                 LineStrings \\
                 Linear Rings \\
                 Polygons \\
                 MultiPolygons \\
                 Fixing invalid geometries \\
                 Summary \\
                 3. Spatial Databases \\
                 Spatial database concepts \\
                 Installing a spatial database \\
                 Installing PostgreSQL \\
                 Installing PostGIS \\
                 Installing psycopg2 \\
                 Accessing PostGIS from Python \\
                 Setting up a spatial database \\
                 Importing spatial data \\
                 Querying spatial data \\
                 Manipulating spatial data \\
                 Exporting spatial data \\
                 Summary \\
                 4. Creating Maps \\
                 Introducing Mapnik \\
                 Installing Mapnik \\
                 A taste of Mapnik \\
                 Building a map \\
                 Styling a map \\
                 Learning Mapnik \\
                 Datasources \\
                 Symbolizers \\
                 PointSymbolizer \\
                 LineSymbolizer \\
                 PolygonSymbolizer \\
                 TextSymbolizer \\
                 RasterSymbolizer \\
                 Map rendering \\
                 A working example \\
                 Next steps \\
                 Summary \\
                 5. Analyzing Geospatial Data \\
                 Libraries for spatial analysis \\
                 PyProj \\
                 NetworkX \\
                 Spatial analysis recipes \\
                 Calculating and comparing coordinates \\
                 Calculating lengths \\
                 Calculating areas \\
                 Calculating shortest paths \\
                 Summary \\
                 6. Building a Complete Geospatial Analysis System \\
                 Matching GPS data against a map \\
                 An overview of the GPS Heatmap system \\
                 Obtaining the necessary data \\
                 Obtaining GPS data \\
                 Downloading the road data \\
                 Implementing the GPS Heatmap system \\
                 Initializing the database \\
                 Importing the road data \\
                 Splitting the road data into segments \\
                 Constructing a network of directed road segments \\
                 Implementing the map matching algorithm \\
                 Generating the GPS heatmap \\
                 Further improvements \\
                 Summary \\
                 Index",
}

@Article{Wittek:2015:ANS,
  author =       "Peter Wittek",
  title =        "Algorithm 950: {Ncpol2sdpa} --- Sparse Semidefinite
                 Programming Relaxations for Polynomial Optimization
                 Problems of Noncommuting Variables",
  journal =      j-TOMS,
  volume =       "41",
  number =       "3",
  pages =        "21:1--21:12",
  month =        jun,
  year =         "2015",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/2699464",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Jun 3 17:59:32 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  abstract =     "A hierarchy of semidefinite programming (SDP)
                 relaxations approximates the global optimum of
                 polynomial optimization problems of noncommuting
                 variables. Generating the relaxation, however, is a
                 computationally demanding task, and only problems of
                 commuting variables have efficient generators. We
                 develop an implementation for problems of noncommuting
                 variables that creates the relaxation to be solved by
                 SDPA --- a high-performance solver that runs in a
                 distributed environment. We further exploit the
                 inherent sparsity of optimization problems in quantum
                 physics to reduce the complexity of the resulting
                 relaxations. Constrained problems with a relaxation of
                 order two may contain up to a hundred variables. The
                 implementation is available in Python. The tool helps
                 solve such as finding the ground state energy or
                 testing quantum correlations.",
  acknowledgement = ack-nhfb,
  articleno =    "21",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Yesylevskyy:2015:SNU,
  author =       "Semen O. Yesylevskyy",
  title =        "Software News and Updates: {Pteros 2.0}: {Evolution}
                 of the fast parallel molecular analysis library for
                 {C++} and {Python}",
  journal =      j-J-COMPUT-CHEM,
  volume =       "36",
  number =       "19",
  pages =        "1480--1488",
  day =          "15",
  month =        jul,
  year =         "2015",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.23943",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Sat Jul 25 20:32:35 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "14 May 2015",
}

@Book{Zaccone:2015:PPP,
  author =       "Giancarlo Zaccone",
  title =        "{Python} parallel programming cookbook: master
                 efficient parallel programming to build powerful
                 applications using {Python}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "286 (est.)",
  year =         "2015",
  ISBN =         "1-78528-958-6, 1-78528-672-2",
  ISBN-13 =      "978-1-78528-958-3, 978-1-78528-672-8",
  LCCN =         "QA76.73.P98",
  bibdate =      "Fri Oct 23 16:05:51 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Quick answers to common problems",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781785289583",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Parallel
                 programming (Computer science); Application software;
                 Development",
  tableofcontents = "About the Author \\
                 About the Reviewers \\
                 www.PacktPub.com \\
                 Support files, eBooks, discount offers, and more \\
                 Why Subscribe? \\
                 Free Access for Packt account holders \\
                 Preface \\
                 What this book covers \\
                 What you need for this book \\
                 Who this book is for \\
                 Sections \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 See also \\
                 Conventions \\
                 Reader feedback \\
                 Customer support \\
                 Downloading the example code \\
                 Errata \\
                 Piracy \\
                 Questions \\
                 1. Getting Started with Parallel Computing and Python
                 \\
                 Introduction \\
                 The parallel computing memory architecture \\
                 SISD \\
                 MISD \\
                 SIMD \\
                 MIMD \\
                 Memory organization \\
                 Shared memory \\
                 Distributed memory \\
                 Massively parallel processing \\
                 A cluster of workstations \\
                 The heterogeneous architecture \\
                 Parallel programming models \\
                 The shared memory model \\
                 The multithread model \\
                 The message passing model \\
                 The data parallel model \\
                 How to design a parallel program \\
                 Task decomposition \\
                 Task assignment \\
                 Agglomeration \\
                 Mapping \\
                 Dynamic mapping \\
                 Manager/worker \\
                 Hierarchical manager/worker \\
                 Decentralize \\
                 How to evaluate the performance of a parallel program
                 \\
                 Speedup \\
                 Efficiency \\
                 Scaling \\
                 Amdahl's law \\
                 Gustafson's law \\
                 Introducing Python \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 Python in a parallel world \\
                 Introducing processes and threads \\
                 Start working with processes in Python \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Start working with threads in Python \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 2. Thread-based Parallelism \\
                 Introduction \\
                 Using the Python threading module \\
                 How to define a thread \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 How to determine the current thread \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 How to use a thread in a subclass \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Thread synchronization with Lock and RLock \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Thread synchronization with RLock \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Thread synchronization with semaphores \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Thread synchronization with a condition \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Thread synchronization with an event \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using the with statement \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Thread communication using a queue \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Evaluating the performance of multithread applications
                 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 The first test \\
                 The second test \\
                 The third test \\
                 The fourth test \\
                 There's more \ldots{} \\
                 3. Process-based Parallelism \\
                 Introduction \\
                 How to spawn a process \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 How to name a process \\
                 How to do it \\
                 How it works \\
                 How to run a process in the background \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 How to kill a process \\
                 How to do it \\
                 How it works \\
                 How to use a process in a subclass \\
                 How to do it \\
                 How it works \\
                 How to exchange objects between processes \\
                 Using queue to exchange objects \\
                 How to do it \\
                 How it works \\
                 There's more \\
                 Using pipes to exchange objects \\
                 How to do it \\
                 How it works \\
                 How to synchronize processes \\
                 How to do it \\
                 How it works \\
                 How to manage a state between processes \\
                 How to do it \\
                 How it works \\
                 How to use a process pool \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using the mpi4py Python module \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Point-to-point communication \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Avoiding deadlock problems \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Collective communication using broadcast \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Collective communication using scatter \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Collective communication using gather \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Collective communication using Alltoall \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The reduction operation \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 How to optimize communication \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 4. Asynchronous Programming \\
                 Introduction \\
                 Using the concurrent.futures Python modules \\
                 Dealing with the process and thread pool \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Event loop management with Asyncio \\
                 What is an event loop \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Handling coroutines with Asyncio \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Task manipulation with Asyncio \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Dealing with Asyncio and Futures \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 5. Distributed Python \\
                 Introduction \\
                 Using Celery to distribute tasks \\
                 How to do it \ldots{} \\
                 See also \\
                 How to create a task with Celery \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Scientific computing with SCOOP \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Handling map functions with SCOOP \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Remote Method Invocation with Pyro4 \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Chaining objects with Pyro4 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Developing a client-server application with Pyro4 \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Communicating sequential processes with PyCSP \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Using MapReduce with Disco \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 A remote procedure call with RPyC \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 6. GPU Programming with Python \\
                 Introduction \\
                 Using the PyCUDA module \\
                 A hybrid programming model \\
                 The kernel and thread hierarchy \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 See also \\
                 How to build a PyCUDA application \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Understanding the PyCUDA memory model with matrix
                 manipulation \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Kernel invocations with GPUArray \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Evaluating element-wise expressions with PyCUDA \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 The MapReduce operation with PyCUDA \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 GPU programming with NumbaPro \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Using GPU-accelerated libraries with NumbaPro \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 There's more \ldots{} \\
                 Using the PyOpenCL module \\
                 Getting ready \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 How to build a PyOpenCL application \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Evaluating element-wise expressions with PyOpenCl \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Testing your GPU application with PyOpenCL \\
                 How to do it \ldots{} \\
                 How it works \ldots{} \\
                 Index",
}

@Article{Aakerblom:2016:MPP,
  author =       "Beatrice {\AA}kerblom and Tobias Wrigstad",
  title =        "Measuring polymorphism in {Python} programs",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "2",
  pages =        "114--128",
  month =        feb,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2936313.2816717",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 9 17:13:58 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Following the increased popularity of dynamic
                 languages and their increased use in critical software,
                 there have been many proposals to retrofit static type
                 system to these languages to improve possibilities to
                 catch bugs and improve performance. A key question for
                 any type system is whether the types should be
                 structural, for more expressiveness, or nominal, to
                 carry more meaning for the programmer. For retrofitted
                 type systems, it seems the current trend is using
                 structural types. This paper attempts to answer the
                 question to what extent this extra expressiveness is
                 needed, and how the possible polymorphism in dynamic
                 code is used in practise. We study polymorphism in 36
                 real-world open source Python programs and approximate
                 to what extent nominal and structural types could be
                 used to type these programs. The study is based on
                 collecting traces from multiple runs of the programs
                 and analysing the polymorphic degrees of targets at
                 more than 7 million call-sites. Our results show that
                 while polymorphism is used in all programs, the
                 programs are to a great extent monomorphic. The
                 polymorphism found is evenly distributed across
                 libraries and program-specific code and occur both
                 during program start-up and normal execution. Most
                 programs contain a few ``megamorphic'' call-sites where
                 receiver types vary widely. The non-monomorphic parts
                 of the programs can to some extent be typed with
                 nominal or structural types, but none of the approaches
                 can type entire programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '15 conference proceedings.",
}

@Book{Balbaert:2016:JHP,
  author =       "Ivo Balbaert and Avik Sengupta and Malcolm
                 Sherrington",
  title =        "{Julia}: high performance programming: learning path:
                 leverage the power of {Julia} to design and develop
                 high performing programs",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "697",
  year =         "2016",
  ISBN =         "1-78712-570-X, 1-78712-610-2 (e-book)",
  ISBN-13 =      "978-1-78712-570-4, 978-1-78712-610-7 (e-book)",
  LCCN =         "QA76.7 .B353 2016",
  bibdate =      "Thu Apr 8 16:55:30 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Learning path",
  abstract =     "Leverage the power of Julia to design and develop high
                 performing programs About This Book Get to know the
                 best techniques to create blazingly fast programs with
                 Julia Stand out from the crowd by developing code that
                 runs faster than your peers' code Complete an extensive
                 data science project through the entire cycle from ETL
                 to analytics and data visualization Who This Book Is
                 For This learning path is for data scientists and for
                 all those who work in technical and scientific
                 computation projects. It will be great for Julia
                 developers who are interested in high-performance
                 technical computing. This learning path assumes that
                 you already have some basic working knowledge of
                 Julia's syntax and high-level dynamic languages such as
                 MATLAB, R, Python, or Ruby. What You Will Learn Set up
                 your Julia environment to achieve the highest
                 productivity Solve your tasks in a high-level dynamic
                 language and use types for your data only when needed
                 Apply Julia to tackle problems concurrently and in a
                 distributed environment Get a sense of the
                 possibilities and limitations of Julia's performance
                 Use Julia arrays to write high performance code Build a
                 data science project through the entire cycle of ETL,
                 analytics, and data visualization Display graphics and
                 visualizations to carry out modeling and simulation in
                 Julia Develop your own packages and contribute to the
                 Julia Community In Detail In this learning path, you
                 will learn to use an interesting and dynamic
                 programming language - Julia! You will get a chance to
                 tackle your numerical and data problems with Julia.
                 You'll begin the journey by setting up a running Julia
                 platform before exploring its various built-in types.
                 We'll then move on to the various functions and
                 constructs in Julia. We'll walk through the two
                 important collection types - arrays and matrices in
                 Julia. You will dive into how Julia uses type
                 information to achieve its performance goals, and how
                 to use multiple dispatch to help the compiler emit high
                 performance machine code. You will see how Julia's
                 design makes code fast, and you'll see its distributed
                 computing capabilities. By the end of this learning
                 path, you will see how data works using simple
                 statistics and analytics, and you'll discover its high
                 and dynamic performance - its real strength, which
                 makes it particularly useful in highly intensive
                 computing tasks. This learning path combines some of
                 the best that Packt has to offer in one complete,
                 curated package.",
  acknowledgement = ack-nhfb,
  keywords =     "Closures and anonymous functions.",
  subject =      "Programming languages; Julia; Computer programming;
                 COMPUTERS; General.; Computer programming.",
  tableofcontents = "Preface \\
                 Table of Contents \\
                 Module 1: Getting Started with Julia \\
                 The Rationale for Julia \\
                 The scope of Julia \\
                 Julia's place among the other programming languages \\
                 A comparison with other languages for the data
                 scientist \\
                 Useful links \\
                 Summary \\
                 1: Installing the Julia Platform \\
                 Installing Julia \\
                 Working with Julia's shell \\
                 Startup options and Julia scripts \\
                 Packages \\
                 Installing and working with Julia Studio \\
                 Installing and working with IJulia \\
                 Installing Sublime-IJulia \\
                 Installing Juno \\
                 Other editors and IDEs \\
                 How Julia works \\
                 Summary \\
                 2: Variables, Types, and Operations \\
                 Variables, naming conventions, and comments \\
                 Types \\
                 Integers \\
                 Floating point numbers \\
                 Elementary mathematical functions and operations \\
                 Rational and complex numbers \\
                 Characters \\
                 Strings \\
                 Regular expressions \\
                 Ranges and arrays \\
                 Dates and times \\
                 Scope and constants \\
                 Summary \\
                 3: Functions \\
                 Defining functions \\
                 Optional and keyword arguments \\
                 Anonymous functions \\
                 First-class functions and closures \\
                 Recursive functions \\
                 Map, filter, and list comprehensions \\
                 Generic functions and multiple dispatch \\
                 Summary \\
                 4: Control Flow \\
                 Conditional evaluation \\
                 Repeated evaluation \\
                 Exception handling \\
                 Scope revisited \\
                 Tasks \\
                 Summary \\
                 5: Collection Types \\
                 Matrices \\
                 Tuples \\
                 Dictionaries \\
                 Sets \\
                 Example project \\
                 word frequency \\
                 Summary \\
                 6: More on Types, Methods, and Modules \\
                 Type annotations and conversions \\
                 The type hierarchy \\
                 subtypes and supertypes \\
                 User-defined and composite types \\
                 Types and collections \\
                 inner constructors \\
                 Type unions \\
                 Parametric types and methods \\
                 Standard modules and paths \\
                 Summary \\
                 7: Metaprogramming in Julia \\
                 Expressions and symbols \\
                 Eval and interpolation \\
                 Defining macros \\
                 Built-in macros \\
                 Reflection capabilities \\
                 Summary \\
                 8: I/O, Networking, and Parallel Computing \\
                 Basic input and output \\
                 Working with files \\
                 Using DataFrames \\
                 Working with TCP sockets and servers \\
                 Interacting with databases \\
                 Parallel operations and computing \\
                 Summary \\
                 9: Running External Programs \\
                 Running shell commands \\
                 Calling C and FORTRAN \\
                 Calling Python \\
                 Performance tips \\
                 Summary \\
                 10: The Standard Library and Packages \\
                 Digging deeper into the standard library \\
                 Julia's package manager \\
                 Publishing a package \\
                 Graphics in Julia \\
                 Using Gadfly on data \\
                 Summary \\
                 Appendix: List of Macros and Packages \\
                 Macros \\
                 List of packages \\
                 Module 2: Julia High Performance \\
                 1: Julia is Fast \\
                 Julia \\
                 fast and dynamic \\
                 Designed for speed \\
                 How fast can Julia be? \\
                 Summary \\
                 2: Analyzing Julia Performance \\
                 Timing Julia code \\
                 The Julia profiler \\
                 Analyzing memory allocation \\
                 Statistically accurate benchmarking \\
                 Summary \\
                 3: Types in Julia \\
                 The Julia type system \\
                 Type-stability \\
                 Kernel methods \\
                 Types in storage locations \\
                 Summary \\
                 4: Functions and Macros \\
                 Structuring Julia Code for High Performance \\
                 Using globals \\
                 Inlining",
}

@Article{Bauer:2016:PEM,
  author =       "Martin Bauer and Florian Schornbaum and Christian
                 Godenschwager and Matthias Markl and Daniela Anderl and
                 Harald K{\"o}stler and Ulrich R{\"u}de",
  title =        "A {Python} extension for the massively parallel
                 multiphysics simulation framework {waLBerla}",
  journal =      j-INT-J-PAR-EMER-DIST-SYS,
  volume =       "31",
  number =       "6",
  pages =        "529--542",
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1080/17445760.2015.1118478",
  ISSN =         "1744-5760 (print), 1744-5779 (electronic)",
  ISSN-L =       "1744-5760",
  bibdate =      "Tue Nov 15 11:55:07 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/intjparemerdistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 http://www.tandfonline.com/toc/gpaa20/31/6",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Parallel, Emergent and
                 Distributed Systems: IJPEDS",
  journal-URL =  "http://www.tandfonline.com/loi/gpaa20",
  onlinedate =   "01 Sep 2015",
}

@Article{Beckham:2016:PWC,
  author =       "Christopher Beckham and Mark Hall and Eibe Frank",
  title =        "\pkg{WekaPyScript}: Classification, Regression, and
                 Filter Schemes for {WEKA} Implemented in {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "4",
  number =       "1",
  pages =        "e33--??",
  day =          "08",
  month =        aug,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.108",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.108/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Constantine:2016:PPA,
  author =       "Paul Constantine and Ryan Howard and Andrew Glaws and
                 Zachary Grey and Paul Diaz and Leslie Fletcher",
  title =        "\pkg{Python} Active-subspaces Utility Library",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "5",
  pages =        "79:1--79:1",
  month =        sep,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00079",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00079",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "29 September 2016",
  ORCID-numbers = "Paul Constantine / 0000-0003-3726-6307",
}

@Article{Cooper:2016:PPP,
  author =       "Christopher D. Cooper and Natalia C. Clementi and
                 Gilbert Forsyth and Lorena A. Barba",
  title =        "\pkg{PyGBe}: {Python}, {GPUs} and Boundary elements
                 for biomolecular electrostatics",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "4",
  pages =        "43:1--43:1",
  month =        aug,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00043",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00043",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "18 August 2016",
  ORCID-numbers = "Christopher D. Cooper / 0000-0003-0282-8998; Natalia
                 C. Clementi / 0000-0002-0575-5520; Gilbert Forsyth /
                 0000-0002-4983-1978; Lorena A. Barba /
                 0000-0001-5812-2711",
}

@Article{Dagkakis:2016:MOS,
  author =       "Georgios Dagkakis and Ioannis Papagiannopoulos and
                 Cathal Heavey",
  title =        "{ManPy}: an open-source software tool for building
                 discrete event simulation models of manufacturing
                 systems",
  journal =      j-SPE,
  volume =       "46",
  number =       "7",
  pages =        "955--981",
  month =        jul,
  year =         "2016",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2347",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Jan 30 07:39:48 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "discrete event simulation, open source, Python, SimPy,
                 ManPy",
}

@Article{Feeley:2016:CML,
  author =       "Marc Feeley",
  title =        "Compiling for multi-language task migration",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "2",
  pages =        "63--77",
  month =        feb,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2936313.2816713",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 9 17:13:58 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Task migration allows a running program to continue
                 its execution in a different destination environment.
                 Increasingly, execution environments are defined by
                 combinations of cultural and technological constraints,
                 affecting the choice of host language, libraries and
                 tools. A compiler supporting multiple target
                 environments and task migration must be able to marshal
                 continuations and then unmarshal and continue their
                 execution, ideally, even if the language of the
                 destination environment is different. In this paper, we
                 propose a compilation approach based on a virtual
                 machine that strikes a balance between implementation
                 portability and efficiency. We explain its
                 implementation within a Scheme compiler targeting
                 JavaScript, PHP, Python, Ruby and Java --- some of the
                 most popular host languages for web applications. As
                 our experiments show, this approach compares well with
                 other Scheme compilers targeting high-level languages
                 in terms of execution speed, being sometimes up to 3
                 orders of magnitude faster.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '15 conference proceedings.",
}

@Article{Foreman-Mackey:2016:PCP,
  author =       "Daniel Foreman-Mackey",
  title =        "\pkg{corner.py}: Scatterplot matrices in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "2",
  pages =        "24:1--24:2",
  month =        jun,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00024",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00024",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "08 June 2016",
  ORCID-numbers = "Daniel Foreman-Mackey / 0000-0002-9328-5652",
}

@Article{Greenhill:2016:PPP,
  author =       "Simon J. Greenhill",
  title =        "\pkg{Phylogemetric}: a {Python} library for
                 calculating phylogenetic network metrics",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "2",
  pages =        "28:1--28:1",
  month =        jun,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00028",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00028",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 June 2016",
  ORCID-numbers = "Simon J. Greenhill / 0000-0001-7832-6156",
}

@Article{Gutierrez:2016:IDO,
  author =       "Christopher N. Gutierrez and Mohammed H. Almeshekah
                 and Eugene H. Spafford and Mikhail J. Atallah and Jeff
                 Avery",
  title =        "Inhibiting and Detecting Offline Password Cracking
                 Using {ErsatzPasswords}",
  journal =      j-TOPS,
  volume =       "19",
  number =       "3",
  pages =        "9:1--9:??",
  month =        dec,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2996457",
  ISSN =         "2471-2566 (print), 2471-2574 (electronic)",
  ISSN-L =       "2471-2566",
  bibdate =      "Mon Apr 3 09:09:39 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tops.bib",
  abstract =     "In this work, we present a simple, yet effective and
                 practical scheme to improve the security of stored
                 password hashes, increasing the difficulty to crack
                 passwords and exposing cracking attempts. We utilize a
                 hardware-dependent function (HDF), such as a physically
                 unclonable function (PUF) or a hardware security module
                 (HSM), at the authentication server to inhibit offline
                 password discovery. Additionally, a deception mechanism
                 is incorporated to alert administrators of cracking
                 attempts. Using an HDF to generate password hashes
                 hinders attackers from recovering the true passwords
                 without constant access to the HDF. Our scheme can
                 integrate with legacy systems without needing
                 additional servers, changing the structure of the
                 hashed password file, nor modifying client machines.
                 When using our scheme, the structure of the hashed
                 passwords file, e.g., etc/shadow or etc/master.passwd,
                 will appear no different than traditional hashed
                 password files.$^1$ However, when attackers exfiltrate
                 the hashed password file and attempt to crack it, the
                 passwords they will receive are ErsatzPasswords-``fake
                 passwords.'' The ErsatzPasswords scheme is flexible by
                 design, enabling it to be integrated into existing
                 authentication systems without changes to user
                 experience. The proposed scheme is integrated into the
                 pam\_unix module as well as two client/server
                 authentication schemes: Lightweight Directory Access
                 Protocol (LDAP) authentication and the Pythia
                 pseudorandom function (PRF) Service [Everspaugh et al.
                 2015]. The core library to support ErsatzPasswords
                 written in C and Python consists of 255 and 103 lines
                 of code, respectively. The integration of
                 ErsatzPasswords into each explored authentication
                 system required less than 100 lines of additional code.
                 Experimental evaluation of ErsatzPasswords shows an
                 increase in authentication latency on the order of
                 100ms, which maybe acceptable for real world systems.
                 We also describe a framework for implementing
                 ErsatzPasswords using a Trusted Platform Module
                 (TPM).",
  acknowledgement = ack-nhfb,
  articleno =    "9",
  fjournal =     "ACM Transactions on Privacy and Security (TOPS)",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J1547",
}

@Book{Guttag:2016:ICP,
  author =       "John Guttag",
  title =        "Introduction to Computation and Programming Using
                 {Python}: with Application to Understanding Data",
  publisher =    pub-MIT,
  address =      pub-MIT:adr,
  edition =      "Second",
  pages =        "xvii + 447",
  year =         "2016",
  ISBN =         "0-262-52962-9 (paperback), 0-262-33738-X (e-book)",
  ISBN-13 =      "978-0-262-52962-4 (paperback), 978-0-262-33738-0
                 (e-book)",
  LCCN =         "QA76.73.P98 G88 2016",
  bibdate =      "Tue Jun 5 11:01:20 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/benfords-law.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "This book introduces students with little or no prior
                 programming experience to the art of computational
                 problem solving using Python and various Python
                 libraries, including PyLab. It provides students with
                 skills that will enable them to make productive use of
                 computational techniques, including some of the tools
                 and techniques of data science for using computation to
                 model and interpret data. The book is based on an MIT
                 course (which became the most popular course offered
                 through MIT's OpenCourseWare) and was developed for use
                 not only in a conventional classroom but in a massive
                 open online course (MOOC). This new edition has been
                 updated for Python 3, reorganized to make it easier to
                 use for courses that cover only a subset of the
                 material, and offers additional material including five
                 new chapters. Students are introduced to Python and the
                 basics of programming in the context of such
                 computational concepts and techniques as exhaustive
                 enumeration, bisection search, and efficient
                 approximation algorithms. Although it covers such
                 traditional topics as computational complexity and
                 simple algorithms, the book focuses on a wide range of
                 topics not found in most introductory texts, including
                 information visualization, simulations to model
                 randomness, computational techniques to understand
                 data, and statistical techniques that inform (and
                 misinform) as well as two related but relatively
                 advanced topics: optimization problems and dynamic
                 programming. This edition offers expanded material on
                 statistics and machine learning and new chapters on
                 Frequentist and Bayesian statistics.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Textbooks;
                 Computer programming",
  tableofcontents = "Preface \\
                 1. Introduction \\
                 2: Introduction to Python: The basic elements of Python
                 \\
                 Objects, expressions, and numerical types \\
                 Variables and assignment \\
                 Python IDE's \\
                 Branching programs \\
                 Strings and input \\
                 Input \\
                 A digression about character encoding \\
                 Iteration \\
                 3: Some simple numerical programs: Exhaustive
                 enumeration \\
                 For loops \\
                 Approximate solutions and bisection search \\
                 Few words about using floats \\
                 Newton--Raphson \\
                 4: Functions, scoping, and abstraction: Functions and
                 scoping \\
                 Function definitions \\
                 Keyword arguments and default values \\
                 Scoping \\
                 Specifications \\
                 Recursion \\
                 Fibonacci numbers \\
                 Palindromes \\
                 Global variables \\
                 Modules \\
                 Files \\
                 5: Structured types, mutability, and higher-order
                 functions: Tuples \\
                 Sequences and multiple assignment \\
                 Ranges \\
                 Lists and mutability \\
                 Cloning \\
                 List comprehension \\
                 Functions as objects \\
                 Strings, tuples, ranges, and lists \\
                 Dictionaries \\
                 6: Testing and debugging: Testing \\
                 Black-box testing \\
                 Glass-box testing \\
                 Conducting tests \\
                 Debugging \\
                 Learning to debug \\
                 Designing the experiment \\
                 When the going gets tough \\
                 When you have found ``the'' bug \\
                 7: Exceptions and assertions: Handling exceptions \\
                 Exceptions as a control flow mechanism \\
                 Assertions \\
                 8: Classes and object-oriented programming: Abstract
                 data types and classes \\
                 Designing programs using abstract data types \\
                 Using classes to keep track of students and faculty \\
                 Inheritance \\
                 Multiple levels of inheritance \\
                 Substitution principle \\
                 Encapsulation and information hiding \\
                 Generators \\
                 Mortgages, an extended example \\
                 9: a simplistic introduction to algorithmic complexity:
                 Thinking about computational complexity \\
                 Asymptotic notation \\
                 Some important complexity classes \\
                 Constant complexity \\
                 Logarithmic complexity \\
                 Linear complexity \\
                 Log-linear complexity \\
                 Polynomial complexity \\
                 Exponential complexity \\
                 Comparisons of complexity classes \\
                 10: Some simple algorithms and data structures: Search
                 algorithms \\
                 Linear search and using indirection to access elements
                 \\
                 Binary search and exploiting assumptions \\
                 Sorting algorithms \\
                 Merge sort \\
                 Exploiting functions as parameters \\
                 Sorting in Python \\
                 Hash tables \\
                 11: Plotting and more about classes: Plotting using
                 PyLab \\
                 Plotting mortgages, an extended example \\
                 12: Knapsack and graph optimization problems: Knapsack
                 problems \\
                 Greedy algorithms \\
                 Optimal solution to the 0/1 Knapsack problem \\
                 Graph optimization problems \\
                 Some classic graph-theoretic problems \\
                 Shortest path : depth-first search and breadth-first
                 search \\
                 13: Dynamic programming: Fibonacci sequences, revisited
                 \\
                 Dynamic programming and the 0/1 Knapsack problem \\
                 Dynamic programming and divide-and-conquer \\
                 14: Random walks and more about data visualization:
                 Random walks \\
                 The drunkard's walk \\
                 Biased random walks \\
                 Treacherous fields \\
                 15: Stochastic programs, probability, and
                 distributions: Stochastic programs \\
                 Calculating simple probabilities \\
                 Inferential statistics \\
                 Distributions \\
                 Probability distributions \\
                 Normal distributions \\
                 Continuous and discrete uniform distributions \\
                 Binomial and multinomial distributions \\
                 Exponential and geometric distributions \\
                 Benford's distribution \\
                 Hashing and collisions \\
                 How often does the better team win? \\
                 16: Monte Carlo stimulation: Pascal's problem \\
                 Pass or don't pass? \\
                 Using table lookup to improve performance \\
                 Finding pi \\
                 Some closing remarks about simulation models \\
                 17: Sampling and confidence intervals: Sampling the
                 Boston Marathon \\
                 Central limit theorem \\
                 Standard error of the mean \\
                 18: Understanding experimental data: The behavior of
                 springs \\
                 Using linear regression to find a fit \\
                 The behavior of projectiles \\
                 Coefficient of determination \\
                 Using a computational model \\
                 Fitting exponentially distributed data \\
                 When theory is missing \\
                 19: Randomized trials and hypothesis checking: Checking
                 significance \\
                 Beware of P-values \\
                 One-tail and one-sample tests \\
                 Significant or not? \\
                 Which N? \\
                 Multiple hypotheses \\
                 20: Conditional probability and Bayesian statistics. :
                 Conditional probabilities \\
                 Bayes' theorem \\
                 Bayesian updating \\
                 21: Lies, damned lies, and statistics: Garbage in
                 garbage out (GIGO) \\
                 Tests are imperfect \\
                 Pictures can be deceiving \\
                 Cum hoc ergo propter hoc \\
                 Statistical measures don't tell the whole story \\
                 Sampling bias \\
                 Context matters \\
                 Beware of extrapolation \\
                 Texas sharpshooter fallacy \\
                 Percentages can confuse \\
                 Statistically significant differences can be
                 insignificant \\
                 Regressive fallacy \\
                 Just beware \\
                 22: a quick look at machine learning: Feature vectors
                 \\
                 Distance metrics \\
                 23: Clustering: Class cluster \\
                 K-means clustering \\
                 A contrived example \\
                 A less contrived example \\
                 24: Classification methods: Evaluating classifiers \\
                 Predicting the gender of runners \\
                 K-nearest neighbors \\
                 Regression-based classifiers \\
                 Surviving the Titanic \\
                 Wrapping up \\
                 Python 3.5 quick reference",
}

@Book{Haslwanter:2016:ISP,
  author =       "Thomas Haslwanter",
  title =        "An Introduction to Statistics with {Python}: With
                 Applications in the Life Sciences",
  publisher =    "Springer International Publishing",
  address =      "Cham, Switzerland",
  pages =        "xvii + 278",
  year =         "2016",
  DOI =          "https://doi.org/10.1007/978-3-319-28316-6",
  ISBN =         "3-319-28315-4 (hardcover), 3-319-28316-2 (e-book)",
  ISBN-13 =      "978-3-319-28315-9 (hardcover), 978-3-319-28316-6
                 (e-book)",
  ISSN =         "1431-8784",
  LCCN =         "QA276.4 .H38 2016",
  bibdate =      "Wed Oct 20 10:29:26 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Statistics and Computing",
  abstract =     "This text book provides an introduction to the free
                 software Python and its use for statistical data
                 analysis. It covers common statistical tests for
                 continuous, discrete and categorical data, as well as
                 linear regression analysis and topics from survival
                 analysis and Bayesian statistics. Working code and data
                 for Python solutions for each test, together with
                 easy-to-follow Python examples, can be reproduced by
                 the reader and reinforce their immediate understanding
                 of the topic. With recent advances in the Python
                 ecosystem, Python has become a popular language for
                 scientific computing, offering a powerful environment
                 for statistical data analysis and an interesting
                 alternative to R. The book is intended for master and
                 PhD students, mainly from the life and medical
                 sciences, with a basic knowledge of statistics. As it
                 also provides some statistics background, the book can
                 be used by anyone who wants to perform a statistical
                 data analysis.",
  acknowledgement = ack-nhfb,
  subject =      "Programming languages (Electronic computers);
                 Biometry; Computer science; Mathematics; Statistics;
                 Biometry.; Mathematics.; Programming languages
                 (Electronic computers); Statistics.",
  tableofcontents = "Python and Statistics \\
                 Why Statistics? \\
                 Python \\
                 Data input \\
                 Display of statistical data \\
                 Distributions and hypothesis tests \\
                 Background \\
                 Distributions of one variable \\
                 Hypothesis tests \\
                 Tests of means of numerical data \\
                 Tests on categorical data \\
                 Analysis of survival times \\
                 Statistical modelling \\
                 Linear regression models \\
                 Multivariate data analysis \\
                 Tests on discrete data \\
                 Bayesian statistics",
}

@Article{Helmus:2016:PAR,
  author =       "Jonathan Helmus and Scott Collis",
  title =        "The {Python ARM Radar Toolkit (\pkg{Py-ART})}, a
                 Library for Working with Weather Radar Data in the
                 {Python} Programming Language",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "4",
  number =       "1",
  pages =        "e25--??",
  day =          "18",
  month =        jul,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.119",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.119/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Hermann:2016:SNU,
  author =       "Gunter Hermann and Vincent Pohl and Jean Christophe
                 Tremblay and Beate Paulus and Hans-Christian Hege and
                 Axel Schild",
  title =        "Software News and Updates: {ORBKIT}: a modular
                 {Python} toolbox for cross-platform postprocessing of
                 quantum chemical wavefunction data",
  journal =      j-J-COMPUT-CHEM,
  volume =       "37",
  number =       "16",
  pages =        "1511--1520",
  day =          "15",
  month =        jun,
  year =         "2016",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.24358",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Fri Jun 3 07:11:07 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
}

@Article{Hewitt:2016:MWA,
  author =       "Brett Hewitt and Moi Hoon Yap and Robyn Grant",
  title =        "{Manual Whisker Annotator (MWA)}: A Modular
                 Open-Source Tool",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "4",
  number =       "1",
  pages =        "e16--??",
  day =          "28",
  month =        apr,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.93",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.93/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Holtgrewe:2016:PVP,
  author =       "Manuel Holtgrewe and Dieter Beule",
  title =        "\pkg{VCFPy}: a {Python 3} library with good support
                 for both reading and writing {VCF}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "6",
  pages =        "85:1--85:1",
  month =        oct,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00085",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00085",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "25 October 2016",
  ORCID-numbers = "Manuel Holtgrewe / 0000-0002-3051-1763; Dieter Beule
                 / 0000-0002-3284-0632",
}

@Article{Hynninen:2016:OOP,
  author =       "T. Hynninen and L. Himanen and V. Parkkinen and T.
                 Musso and J. Corander and A. S. Foster",
  title =        "An object oriented {Python} interface for atomistic
                 simulations",
  journal =      j-COMP-PHYS-COMM,
  volume =       "198",
  number =       "??",
  pages =        "230--237",
  month =        jan,
  year =         "2016",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Dec 3 07:20:37 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465515003483",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Jirjies:2016:PPI,
  author =       "Saman Jirjies and Garrick Wallstrom and Rolf U. Halden
                 and Matthew Scotch",
  title =        "\pkg{pyJacqQ}: {Python} Implementation of {Jacquez}'s
                 {$Q$}-Statistics for Space-Time Clustering of Disease
                 Exposure in Case-Control Studies",
  journal =      j-J-STAT-SOFT,
  volume =       "74",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "2016",
  CODEN =        "JSSOBK",
  DOI =          "https://doi.org/10.18637/jss.v74.i06",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Sat Nov 5 09:38:13 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.jstatsoft.org/index.php/jss/article/view/v074i06;
                 https://www.jstatsoft.org/index.php/jss/article/view/v074i06/v74i06.pdf",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
}

@Book{Joshi:2016:JDS,
  author =       "Anshul Joshi",
  title =        "{Julia} for data science: explore the world of data
                 science from scratch with {Julia} by your side",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "339",
  year =         "2016",
  ISBN =         "1-78355-386-3 (e-book), 1-78528-969-1",
  ISBN-13 =      "978-1-78355-386-0 (e-book), 978-1-78528-969-9",
  LCCN =         "QA76.73.J8; T55.4-60.8",
  bibdate =      "Fri Apr 9 05:20:49 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Explore the world of data science from scratch with
                 Julia by your side About This Book An in-depth
                 exploration of Julia's growing ecosystem of packages
                 Work with the most powerful open-source libraries for
                 deep learning, data wrangling, and data visualization
                 Learn about deep learning using \pkg{Mocha.jl} and give
                 speed and high performance to data analysis on large
                 data sets Who This Book Is For This book is aimed at
                 data analysts and aspiring data scientists who have a
                 basic knowledge of Julia or are completely new to it.
                 The book also appeals to those competent in R and
                 Python and wish to adopt Julia to improve their skills
                 set in Data Science. It would be beneficial if the
                 readers have a good background in statistics and
                 computational mathematics. What You Will Learn Apply
                 statistical models in Julia for data-driven decisions
                 Understanding the process of data munging and data
                 preparation using Julia Explore techniques to visualize
                 data using Julia and D3 based packages Using Julia to
                 create self-learning systems using cutting edge machine
                 learning algorithms Create supervised and unsupervised
                 machine learning systems using Julia. Also, explore
                 ensemble models Build a recommendation engine in Julia
                 Dive into Julia's deep learning framework and build a
                 system using Mocha.jl In Detail Julia is a fast and
                 high performing language that's perfectly suited to
                 data science with a mature package ecosystem and is now
                 feature complete. It is a good tool for a data science
                 practitioner. There was a famous post at Harvard
                 Business Review that Data Scientist is the sexiest job
                 of the 21st century.
                 (https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century).
                 This book will help you get familiarised with Julia's
                 rich ecosystem, which is continuously evolving,
                 allowing you to stay on top of your game. This book
                 contains the essentials of data science and gives a
                 high-level overview of advanced statistics and
                 techniques. You will dive in and will work on
                 generating insights by performing inferential
                 statistics, and will reveal hidden patterns and trends
                 using data mining. This has the practical coverage of
                 statistics and machine learning. You will develop
                 knowledge to build statistical models and machine
                 learning systems in Julia with attractive
                 visualizations. You will then delve into the world of
                 Deep learning in Julia and will understand the
                 framework, \pkg{Mocha.jl} with which you can create
                 artificial neural networks and implement deep
                 learning.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Data structures
                 (Computer science); Information visualization;
                 COMPUTERS / Data Modeling and Design; Data structures
                 (Computer science); Information visualization; Julia
                 (Computer program language)",
  tableofcontents = "Preface \\
                 1: The Groundwork \\
                 Julia's Environment \\
                 Julia is different \\
                 Setting up the environment \\
                 Installing Julia (Linux) \\
                 Installing Julia (Mac) \\
                 Installing Julia (Windows) \\
                 Exploring the source code \\
                 Using REPL \\
                 Using Jupyter Notebook \\
                 Package management \\
                 Pkg.status() \\
                 package status \\
                 Pkg.add() -{\`E}adding packages \\
                 Working with unregistered packages \\
                 Pkg.update() -{\`E}package update \\
                 METADATA repository \\
                 Developing packages \\
                 Creating a new package \\
                 Parallel computation using Julia \\
                 Julia's key feature \\
                 multiple dispatch \\
                 Methods in multiple dispatch \\
                 Ambiguities \\
                 method definitions \\
                 Facilitating language interoperability \\
                 Calling Python code in Julia \\
                 Summary \\
                 References \\
                 2: Data Munging \\
                 What is data munging? \\
                 The data munging process \\
                 What is a DataFrame? \\
                 The NA data type and its importance \\
                 DataArray series-like data structure \\
                 DataFrames tabular data structures \\
                 Installation and using DataFrames.jl \\
                 Writing the data to a file \\
                 Working with DataFrames \\
                 Understanding DataFrames joins \\
                 The Split-Apply-Combine strategy \\
                 Reshaping the data \\
                 Sorting a datasetFormula \\
                 a special data type for mathematical expressions \\
                 Pooling data \\
                 Web scraping \\
                 Summary \\
                 References \\
                 3: Data Exploration \\
                 Sampling \\
                 Population \\
                 Weight vectors \\
                 Inferring column types \\
                 Basic statistical summaries \\
                 Calculating the mean of the array or dataframe \\
                 Scalar statistics \\
                 Standard deviations and variances \\
                 Measures of variation \\
                 Z-scores \\
                 Entropy \\
                 Quantiles \\
                 Modes \\
                 Summary of datasets \\
                 Scatter matrix and covariance \\
                 Computing deviations \\
                 Rankings \\
                 Counting functions \\
                 Histograms \\
                 Correlation analysis \\
                 Summary \\
                 References \\
                 4: Deep Dive into Inferential Statistics \\
                 Installation \\
                 Understanding the sampling distribution \\
                 Understanding the normal distribution \\
                 Parameter estimation \\
                 Type hierarchy in \pkg{Distributions.jl} \\
                 Understanding Sampleable \\
                 Representing probabilistic distributions \\
                 Univariate distributions \\
                 Retrieving parameters \\
                 Statistical functions \\
                 Evaluation of probability \\
                 Sampling in Univariate distributions \\
                 Understanding Discrete Univariate distributions and
                 types \\
                 Bernoulli distribution \\
                 Binomial distribution \\
                 Continuous distributions \\
                 Cauchy distribution \\
                 Chi distribution \\
                 Chi-square distribution \\
                 Truncated distributions \\
                 Truncated normal distributions \\
                 Understanding multivariate distributions \\
                 Multinomial distribution \\
                 Multivariate normal distribution \\
                 Dirichlet distribution \\
                 Understanding matrixvariate distributions \\
                 Wishart distribution \\
                 Inverse-Wishart distribution \\
                 Distribution fitting \\
                 Distribution selection \\
                 Symmetrical distributions \\
                 Skew distributions to the right \\
                 Skew distributions to the left \\
                 Maximum Likelihood Estimation \\
                 Sufficient statistics \\
                 Maximum-a-Posteriori estimation \\
                 Confidence interval \\
                 Interpreting the confidence intervals \\
                 Usage \\
                 Understanding z-score",
}

@Article{Korosov:2016:PNS,
  author =       "Anton Korosov and Morten Hansen and Knut-Frode
                 Dagestad and Asuka Yamakawa and Aleksander Vines and
                 Maik Riechert",
  title =        "\pkg{Nansat}: a Scientist-Orientated {Python} Package
                 for Geospatial Data Processing",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "4",
  number =       "1",
  pages =        "e39--??",
  day =          "24",
  month =        oct,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.120",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.120/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Leskovec:2016:SGP,
  author =       "Jure Leskovec and Rok Sosic",
  title =        "{SNAP}: a General-Purpose Network Analysis and
                 Graph-Mining Library",
  journal =      j-TIST,
  volume =       "8",
  number =       "1",
  pages =        "1:1--1:??",
  month =        oct,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2898361",
  ISSN =         "2157-6904 (print), 2157-6912 (electronic)",
  ISSN-L =       "2157-6904",
  bibdate =      "Mon Apr 3 11:19:57 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tist.bib",
  abstract =     "Large networks are becoming a widely used abstraction
                 for studying complex systems in a broad set of
                 disciplines, ranging from social-network analysis to
                 molecular biology and neuroscience. Despite an
                 increasing need to analyze and manipulate large
                 networks, only a limited number of tools are available
                 for this task. Here, we describe the Stanford Network
                 Analysis Platform (SNAP), a general-purpose,
                 high-performance system that provides easy-to-use,
                 high-level operations for analysis and manipulation of
                 large networks. We present SNAP functionality, describe
                 its implementational details, and give performance
                 benchmarks. SNAP has been developed for single
                 big-memory machines, and it balances the trade-off
                 between maximum performance, compact in-memory graph
                 representation, and the ability to handle dynamic
                 graphs in which nodes and edges are being added or
                 removed over time. SNAP can process massive networks
                 with hundreds of millions of nodes and billions of
                 edges. SNAP offers over 140 different graph algorithms
                 that can efficiently manipulate large graphs, calculate
                 structural properties, generate regular and random
                 graphs, and handle attributes and metadata on nodes and
                 edges. Besides being able to handle large graphs, an
                 additional strength of SNAP is that networks and their
                 attributes are fully dynamic; they can be modified
                 during the computation at low cost. SNAP is provided as
                 an open-source library in C++ as well as a module in
                 Python. We also describe the Stanford Large Network
                 Dataset, a set of social and information real-world
                 networks and datasets, which we make publicly
                 available. The collection is a complementary resource
                 to our SNAP software and is widely used for development
                 and benchmarking of graph analytics algorithms.",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "ACM Transactions on Intelligent Systems and Technology
                 (TIST)",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1318",
}

@Article{Matloff:2016:BRN,
  author =       "Norman Matloff",
  title =        "Book Review: {{\booktitle{Numerical Python: a
                 Practical Techniques Approach for Industry}}}",
  journal =      j-J-STAT-SOFT,
  volume =       "70",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "2016",
  CODEN =        "JSSOBK",
  DOI =          "https://doi.org/10.18637/jss.v70.b04",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Mon Jun 20 10:46:23 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.jstatsoft.org/index.php/jss/article/view/v070b04;
                 https://www.jstatsoft.org/index.php/jss/article/view/v070b04/v70b04.pdf",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
}

@Article{McFee:2016:PRE,
  author =       "Brian McFee",
  title =        "\pkg{resampy}: efficient sample rate conversion in
                 {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "8",
  pages =        "125:1--125:1",
  month =        dec,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00125",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00125",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "05 December 2016",
  ORCID-numbers = "Brian McFee / 0000-0001-6261-9747",
}

@Article{McKinley:2016:PWU,
  author =       "Kathryn S. McKinley",
  title =        "Programming the world of uncertain things (keynote)",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "1",
  pages =        "1--2",
  month =        jan,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2914770.2843895",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 9 17:13:57 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Computing has entered the era of uncertain data, in
                 which hardware and software generate and reason about
                 estimates. Applications use estimates from sensors,
                 machine learning, big data, humans, and approximate
                 hardware and software. Unfortunately, developers face
                 pervasive correctness, programmability, and
                 optimization problems due to estimates. Most
                 programming languages unfortunately make these problems
                 worse. We propose a new programming abstraction called
                 {Uncertain$<$T$>$} embedded into languages, such as
                 C\#, C++, Java, Python, and JavaScript. Applications
                 that consume estimates use familiar discrete operations
                 for their estimates; overloaded conditional operators
                 specify hypothesis tests and applications use them
                 control false positives and negatives; and new
                 compositional operators express domain knowledge. By
                 carefully restricting the expressiveness, the runtime
                 automatically implements correct statistical reasoning
                 at conditionals, relieving developers of the need to
                 implement or deeply understand statistics. We
                 demonstrate substantial programmability, correctness,
                 and efficiency benefits of this programming model for
                 GPS sensor navigation, approximate computing, machine
                 learning, and xBox.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '16 conference proceedings.",
}

@Article{Meller:2016:PDM,
  author =       "Yosef Meller and Alex Liberzon",
  title =        "Particle Data Management Software for {$3$D} Particle
                 Tracking Velocimetry and Related Applications --- The
                 \pkg{Flowtracks} Package",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "4",
  number =       "1",
  pages =        "e23--??",
  day =          "16",
  month =        jun,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.101",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.101/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Mortensen:2016:HPP,
  author =       "Mikael Mortensen and Hans Petter Langtangen",
  title =        "High performance {Python} for direct numerical
                 simulations of turbulent flows",
  journal =      j-COMP-PHYS-COMM,
  volume =       "203",
  number =       "??",
  pages =        "53--65",
  month =        jun,
  year =         "2016",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Apr 18 08:17:17 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465516300200",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Mulansky:2016:PPP,
  author =       "Mario Mulansky and Thomas Kreuz",
  title =        "\pkg{PySpike} --- a {Python} library for analyzing
                 spike train synchrony",
  journal =      j-SOFTWAREX,
  volume =       "5",
  number =       "??",
  pages =        "178--182",
  month =        "????",
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2016.07.006",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:31 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711016300255",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Pape:2016:LIS,
  author =       "Tobias Pape and Tim Felgentreff and Robert Hirschfeld
                 and Anton Gulenko and Carl Friedrich Bolz",
  title =        "Language-independent storage strategies for tracing
                 {JIT}-based virtual machines",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "2",
  pages =        "104--113",
  month =        feb,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2936313.2816716",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 9 17:13:58 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  abstract =     "Storage strategies have been proposed as a run-time
                 optimization for the PyPy Python implementation and
                 have shown promising results for optimizing execution
                 speed and memory requirements. However, it remained
                 unclear whether the approach works equally well in
                 other dynamic languages. Furthermore, while PyPy is
                 based on RPython, a language to write VMs with reusable
                 components such as a tracing just-in-time compiler and
                 garbage collection, the strategies design itself was
                 not generalized to be reusable across languages
                 implemented using that same toolchain. In this paper,
                 we present a general design and implementation for
                 storage strategies and show how they can be reused
                 across different RPython-based languages. We evaluate
                 the performance of our implementation for RSqueak, an
                 RPython-based VM for Squeak/Smalltalk and show that
                 storage strategies may indeed offer performance
                 benefits for certain workloads in other dynamic
                 programming languages.We furthermore evaluate the
                 generality of our implementation by applying it to
                 Topaz, a Ruby VM, and Pycket, a Racket
                 implementation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '15 conference proceedings.",
}

@Article{Pataky:2016:RSO,
  author =       "Todd C. Pataky",
  title =        "\pkg{rft1d}: Smooth One-Dimensional Random Field
                 Upcrossing Probabilities in {Python}",
  journal =      j-J-STAT-SOFT,
  volume =       "71",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "2016",
  CODEN =        "JSSOBK",
  DOI =          "https://doi.org/10.18637/jss.v71.i07",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Sat Nov 5 09:38:02 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.jstatsoft.org/index.php/jss/article/view/v071i07;
                 https://www.jstatsoft.org/index.php/jss/article/view/v071i07/v71i07.pdf",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
}

@Article{Poore:2016:API,
  author =       "Geoffrey Poore",
  title =        "Advances in {Python\TeX} with an introduction to {\tt
                 fvextra}",
  journal =      j-TUGboat,
  volume =       "37",
  number =       "2",
  pages =        "187--192",
  year =         "2016",
  ISSN =         "0896-3207",
  bibdate =      "Mon Nov 21 05:54:45 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  acknowledgement = ack-bnb # " and " # ack-nhfb,
}

@Article{Raychev:2016:PMC,
  author =       "Veselin Raychev and Pavol Bielik and Martin Vechev",
  title =        "Probabilistic model for code with decision trees",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "10",
  pages =        "731--747",
  month =        oct,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3022671.2984041",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:13 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "In this paper we introduce a new approach for learning
                 precise and general probabilistic models of code based
                 on decision tree learning. Our approach directly
                 benefits an emerging class of statistical programming
                 tools which leverage probabilistic models of code
                 learned over large codebases (e.g., GitHub) to make
                 predictions about new programs (e.g., code completion,
                 repair, etc). The key idea is to phrase the problem of
                 learning a probabilistic model of code as learning a
                 decision tree in a domain specific language over
                 abstract syntax trees (called TGen). This allows us to
                 condition the prediction of a program element on a
                 dynamically computed context. Further, our problem
                 formulation enables us to easily instantiate known
                 decision tree learning algorithms such as ID3, but also
                 to obtain new variants we refer to as ID3+ and E13, not
                 previously explored and ones that outperform ID3 in
                 prediction accuracy. Our approach is general and can be
                 used to learn a probabilistic model of any programming
                 language. We implemented our approach in a system
                 called Deep3 and evaluated it for the challenging task
                 of learning probabilistic models of JavaScript and
                 Python. Our experimental results indicate that Deep3
                 predicts elements of JavaScript and Python code with
                 precision above 82\% and 69\%, respectively. Further,
                 Deep3 often significantly outperforms state-of-the-art
                 approaches in overall prediction accuracy.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "OOPSLA '16 conference proceedings.",
}

@Article{Ren:2016:JTS,
  author =       "Brianna M. Ren and Jeffrey S. Foster",
  title =        "Just-in-time static type checking for dynamic
                 languages",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "6",
  pages =        "462--476",
  month =        jun,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2980983.2908127",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Sep 5 07:32:25 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Dynamic languages such as Ruby, Python, and JavaScript
                 have many compelling benefits, but the lack of static
                 types means subtle errors can remain latent in code for
                 a long time. While many researchers have developed
                 various systems to bring some of the benefits of static
                 types to dynamic languages, prior approaches have
                 trouble dealing with metaprogramming, which generates
                 code as the program executes. In this paper, we propose
                 Hummingbird, a new system that uses a novel technique,
                 just-in-time static type checking, to type check Ruby
                 code even in the presence of metaprogramming. In
                 Hummingbird, method type signatures are gathered
                 dynamically at run-time, as those methods are created.
                 When a method is called, Hummingbird statically type
                 checks the method body against current type signatures.
                 Thus, Hummingbird provides thorough static checks on a
                 per-method basis, while also allowing arbitrarily
                 complex metaprogramming. For performance, Hummingbird
                 memoizes the static type checking pass, invalidating
                 cached checks only if necessary. We formalize
                 Hummingbird using a core, Ruby-like language and prove
                 it sound. To evaluate Hummingbird, we applied it to six
                 apps, including three that use Ruby on Rails, a
                 powerful framework that relies heavily on
                 metaprogramming. We found that all apps typecheck
                 successfully using Hummingbird, and that Hummingbird's
                 performance overhead is reasonable. We applied
                 Hummingbird to earlier versions of one Rails app and
                 found several type errors that had been introduced and
                 then fixed. Lastly, we demonstrate using Hummingbird in
                 Rails development mode to typecheck an app as live
                 updates are applied to it.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '16 conference proceedings.",
}

@Book{Rohit:2016:JC,
  author =       "Jalem Raj Rohit",
  title =        "{Julia} Cookbook",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "v + 157",
  year =         "2016",
  ISBN =         "1-78588-201-5, 1-78588-363-1 (e-book)",
  ISBN-13 =      "978-1-78588-201-2, 978-1-78588-363-7 (e-book)",
  LCCN =         "QA76.73.J8; T55.4-60.8",
  bibdate =      "Thu Apr 8 11:05:21 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://sbiproxy.uqac.ca/login?url=https://international.scholarvox.com/book/88843406",
  abstract =     "Over 40 recipes to get you up and running with
                 programming using Julia. About This Book Follow a
                 practical approach to learn Julia programming the easy
                 way Get an extensive coverage of Julia's packages for
                 statistical analysis This recipe-based approach will
                 help you get familiar with the key concepts in Julia.
                 Who This Book Is For: This book is for data scientists
                 and data analysts who are familiar with the basics of
                 the Julia language. Prior experience of working with
                 high-level languages such as MATLAB, Python, R, or Ruby
                 is expected. What You Will Learn Extract and handle
                 your data with Julia Uncover the concepts of
                 metaprogramming in Julia Conduct statistical analysis
                 with \pkg{StatsBase.jl} and \pkg{Distributions.jl}.
                 Build your data science models Find out how to
                 visualize your data with Gadfly Explore big data
                 concepts in Julia. In Detail Want to handle everything
                 that Julia can throw at you and get the most of it
                 every day? This practical guide to programming with
                 Julia for performing numerical computation will make
                 you more productive and able work with data more
                 efficiently. The book starts with the main features of
                 Julia to help you quickly refresh your knowledge of
                 functions, modules, and arrays. We'll also show you how
                 to utilize the Julia language to identify, retrieve,
                 and transform data sets so you can perform data
                 analysis and data manipulation. Later on, you'll see
                 how to optimize data science programs with parallel
                 computing and memory allocation. You'll get familiar
                 with the concepts of package development and networking
                 to solve numerical problems using the Julia platform.
                 This book includes recipes on identifying and
                 classifying data science problems, data modelling, data
                 analysis, data manipulation, meta-programming,
                 multidimensional arrays, and parallel computing. By the
                 end of the book, you will acquire the skills to work
                 more effectively with your data. Style and approach
                 This book has a recipe-based approach to help you grasp
                 the concepts of Julia programming.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Programming
                 languages (Electronic computers); Julia (Computer
                 program language); Programming languages (Electronic
                 computers)",
  tableofcontents = "About the Author \\
                 About the Reviewer \\
                 www.PacktPub.com \\
                 Table of Contents \\
                 Preface \\
                 1: Extracting and Handling Data \\
                 Introduction \\
                 Why should we use Julia for data science? \\
                 Handling data with CSV files \\
                 Getting ready \\
                 How to do it and Handling data with TSV files \\
                 Getting ready \\
                 How to do it and Working with databases in Julia \\
                 Getting ready \\
                 How to do it and MySQL \\
                 PostgreSQL \\
                 There's more and MySQL \\
                 PostgreSQL \\
                 SQLite \\
                 Interacting with the Web \\
                 Getting ready \\
                 How to do it and GET request \\
                 There's more and \ldots{} \\
                 2: Metaprogramming \\
                 Introduction \\
                 Representation of a Julia program \\
                 Getting ready \\
                 How to do it and How it works \\
                 There's more \\
                 Symbols and expressions \\
                 Symbols \\
                 Getting ready \\
                 How to do it and How it works \\
                 There's more \\
                 Quoting \\
                 How to do it and How it works \\
                 Interpolation \\
                 How to do it and How it works \\
                 There's more \\
                 The Eval function \\
                 Getting ready \\
                 How to do it and How it works \\
                 Macros \\
                 Getting ready \\
                 How to do it and How it works \\
                 Metaprogramming with DataFrames \\
                 Getting ready \\
                 How to do it and How it works \\
                 3: Statistics with Julia \\
                 Introduction \\
                 Basic statistics concepts \\
                 Getting ready \\
                 How to do it and How it works \\
                 Descriptive statistics \\
                 Getting ready \\
                 How to do it and How it works \\
                 Deviation metrics \\
                 Getting ready \\
                 How to do it and How it works \\
                 Sampling \\
                 Getting ready \\
                 How to do it and How it works \\
                 Correlation analysis \\
                 Getting ready \\
                 How to do it and How it works \\
                 4: Building Data Science Models \\
                 Introduction \\
                 Dimensionality reduction \\
                 Getting ready \\
                 How to do it and How it works \\
                 Linear discriminant analysis \\
                 Getting ready \\
                 How to do it and How it works \\
                 Data preprocessing \\
                 Getting ready \\
                 How to do it and How it works \\
                 Linear regression \\
                 Getting ready \\
                 How to do it and How it works \\
                 Classification Getting ready \\
                 How to do it and How it works \\
                 Performance evaluation and model selection \\
                 Getting ready \\
                 How to do it and How it works \\
                 Cross validation \\
                 Getting ready \\
                 How to do it and How it works \\
                 Distances \\
                 Getting ready \\
                 How to do it and How it works \\
                 Distributions \\
                 Getting ready \\
                 How to do it and How it works \\
                 Time series analysis \\
                 Getting ready \\
                 How to do it and How it works \\
                 5: Working with Visualizations \\
                 Introduction \\
                 Plotting basic arrays \\
                 Getting ready \\
                 How to do it and How it works \\
                 Plotting dataframes \\
                 Getting ready \\
                 How to do it and How it works \\
                 Plotting functions \\
                 Getting ready \\
                 How to do it and how it works \\
                 Exploratory data analytics through plots \\
                 Getting ready \\
                 How to do it and How it works \\
                 Line plots \\
                 Getting ready \\
                 How to do it and How it works \\
                 Scatter plots \\
                 Getting ready \\
                 How to do it and How it works \\
                 Histograms \\
                 Getting ready \\
                 How to do it and How it works \\
                 Aesthetic customizations \\
                 Getting ready \\
                 How to do it and How it works \\
                 6: Parallel Computing \\
                 Introduction \\
                 Basic concepts of parallel computing \\
                 Getting ready \\
                 How to do it and How it works \\
                 Data movement \\
                 Getting ready \\
                 How to do it and How it works \\
                 Parallel maps and loop operations \\
                 Getting ready",
}

@Article{Simon:2016:PIA,
  author =       "Cory M. Simon and Berend Smit and Maciej Haranczyk",
  title =        "{pyIAST}: Ideal adsorbed solution theory {(IAST)}
                 {Python} package",
  journal =      j-COMP-PHYS-COMM,
  volume =       "200",
  number =       "??",
  pages =        "364--380",
  month =        mar,
  year =         "2016",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Jan 21 15:04:34 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465515004403",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Siqueira:2016:PPP,
  author =       "Abel Soares Siqueira and Raniere Costa da Silva and
                 Luiz-Rafael Santos",
  title =        "\pkg{Perprof-py}: a {Python} Package for Performance
                 Profile of Mathematical Optimization Software",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "4",
  number =       "1",
  pages =        "e12--??",
  day =          "22",
  month =        apr,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.81",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.81/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Tauber:2016:PPP,
  author =       "J. K. Tauber",
  title =        "\pkg{pyuca}: a {Python} implementation of the {Unicode
                 Collation Algorithm}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "1",
  number =       "1",
  pages =        "21:1--21:1",
  month =        may,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00021",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00021",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "18 May 2016",
  ORCID-numbers = "J. K. Tauber / 0000-0001-6534-8866",
}

@Article{Tien:2016:PPM,
  author =       "Vivienne Tien",
  title =        "{Python} and Physical Modeling",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "18",
  number =       "3",
  pages =        "8--10",
  month =        may # "\slash " # jun,
  year =         "2016",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Wed Jun 8 08:55:26 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Vanderplas:2016:PDS,
  author =       "Jake Vanderplas",
  title =        "{Python} Data Science Handbook",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "????",
  year =         "2016",
  ISBN =         "1-4919-1205-7",
  ISBN-13 =      "978-1-4919-1205-8",
  LCCN =         "????",
  bibdate =      "Fri Oct 23 15:34:40 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 What Is Data Science? \\
                 Who Is This Book For? \\
                 What to Expect from This Book \\
                 Why Python? \\
                 Python 2 vs Python 3 \\
                 Other Miscellany \\
                 Setting Up Your Computer \\
                 Installing from Source \\
                 Using the pip: the Python Package Index \\
                 Using System Distributions \\
                 Third-party Distributions \\
                 My Recommendation: Anaconda & conda \\
                 1. A Whirlwind Tour of the Python Language \\
                 Python is Glue \\
                 The Zen of Python \\
                 How to Run Python Code \\
                 The Python Interpreter \\
                 The IPython Interpreter \\
                 Self-contained Python Scripts \\
                 The IPython Notebook \\
                 A Quick Tour of Python Language Syntax \\
                 Comments are marked by # \\
                 End-of-line Terminates a Statement \\
                 Semicolon can Optionally Terminate a Statement \\
                 Indentation: Whitespace Matters! \\
                 Whitespace Within Lines Does Not Matter \\
                 Parentheses are for Grouping or Calling \\
                 Finishing Up and Learning More \\
                 Sidebar: Note on the print() Function \\
                 Basic Python Semantics: Variables and Objects \\
                 Python Variables are Pointers \\
                 Everything is an Object \\
                 Basic Python Semantics: Operators \\
                 Arithmetic Operations \\
                 Bitwise Operations \\
                 Assignment Operations \\
                 Comparison Operations \\
                 Boolean Operations \\
                 Identity and Membership Operators \\
                 Summary \\
                 Built-in Types: Simple Values \\
                 Numeric Types \\
                 String Type \\
                 None Type \\
                 Boolean Type \\
                 Built-in Data Structures \\
                 Lists \\
                 Tuples \\
                 Dictionaries \\
                 Sets \\
                 More Specialized Data Structures \\
                 Control Flow \\
                 Conditional Statements: if-elif-else: \\
                 for loops \\
                 while loops \\
                 break and continue: Fine Tuning Your Loops \\
                 Loops With an else Block \\
                 Defining and Using Functions \\
                 Using Functions \\
                 Defining Functions \\
                 Default Argument Values \\
                 *args and **kwargs: Flexible Arguments \\
                 Anonymous (lambda) Functions \\
                 Errors and Exceptions \\
                 Runtime Errors \\
                 Catching Exceptions: try and except \\
                 Raising Exceptions: raise \\
                 Advanced Topics \\
                 try except else finally \\
                 Iterators \\
                 Iterating over lists \\
                 range(): a List is Not Always a List \\
                 Useful Iterators \\
                 Advanced Iterators: itertools \\
                 List Comprehensions \\
                 Basic List Comprehensions \\
                 Multiple Iteration \\
                 Conditionals on the Iterator \\
                 Conditionals on the Value \\
                 Other Types of Comprehensions \\
                 Dict Comprehension \\
                 Generator Expressions \\
                 Generators \\
                 List Comprehensions vs Generator Expressions \\
                 Generator Functions: yield \\
                 Example: Prime Number Generator \\
                 Modules and Packages \\
                 Loading Modules: the import Statement \\
                 Python s Standard Library \\
                 Third-party modules \\
                 String Manipulation and Regular Expressions \\
                 Simple String Manipulation in Python \\
                 Format Strings \\
                 Flexible Pattern Matching with Regular Expressions \\
                 Further Python Resources \\
                 More Advanced Python Language Features \\
                 More Built-in Modules \\
                 More Third-Party Modules \\
                 2. IPython: Beyond Normal Python \\
                 Shell or Notebook? \\
                 Launching the IPython Shell \\
                 Launching the IPython Notebook \\
                 Help and Documentation in IPython \\
                 Accessing Documentation with `?' \\
                 Accessing Source Code with `??' \\
                 Exploring Modules with Tab-Completion \\
                 Keyboard Shortcuts in the IPython Shell \\
                 Navigation shortcuts \\
                 Text Entry Shortcuts \\
                 Command History Shortcuts \\
                 Miscellaneous Shortcuts \\
                 IPython Magic Commands \\
                 Pasting Code Blocks: \%paste and \%cpaste \\
                 Running External Code: \%run \\
                 Timing Code Execution: \%timeit \\
                 Help on Magic Functions: ?, \%magic, and \%lsmagic \\
                 Input and Output History \\
                 IPython s In and Out Objects \\
                 Underscore Shortcuts and Previous Outputs \\
                 Suppressing Output \\
                 Related Magic Commands \\
                 IPython and Shell Commands \\
                 Quick Introduction to the Shell \\
                 Shell Commands in IPython \\
                 Passing Values To and From the Shell \\
                 Shell-related Magic Commands \\
                 Errors and Debugging \\
                 Controlling Exceptions: \%xmode \\
                 Debugging: When Reading Tracebacks is Not Enough \\
                 Profiling and Timing Code \\
                 Timing Code Snippets: \%timeit and \%time \\
                 Profiling Full Scripts: \%prun \\
                 Line-by-line Profiling with \%lprun \\
                 Profiling Memory Use: \%memit and \%mprun \\
                 More IPython Resources \\
                 Web Resources \\
                 Books \\
                 3. Introduction to NumPy \\
                 Reminder about Built-in Documentation \\
                 Understanding Data Types in Python \\
                 A Python Integer is More than just an Integer \\
                 A Python List is More than just a List \\
                 Fixed-type arrays in Python \\
                 Creating Arrays from Python Lists \\
                 Creating arrays from scratch \\
                 NumPy Standard Data Types \\
                 The Basics of NumPy Arrays \\
                 NumPy Array Attributes \\
                 Array Indexing: Accessing Single Elements \\
                 Array Slicing: Accessing Subarrays \\
                 Reshaping of Arrays \\
                 Array Concatenation and Splitting \\
                 Summary \\
                 Random Number Generation \\
                 Understanding a Simple Random Sequence \\
                 Built-in tools: Python s random module \\
                 Efficient Random Numbers: numpy.random \\
                 Simultaneously Using Multiple Chains \\
                 Random Numbers: Further Resources \\
                 Computation on NumPy Arrays: Universal Functions \\
                 The Slowness of Loops \\
                 Introducing UFuncs \\
                 Exploring NumPy s UFuncs \\
                 Advanced Ufunc Features \\
                 Finding More \\
                 Aggregations: Min, Max, and Everything In Between \\
                 Examples of NumPy Aggregates \\
                 Example: How Tall is the Average US President? \\
                 Computation on Arrays: Broadcasting \\
                 Introducing Broadcasting \\
                 Rules of Broadcasting \\
                 Broadcasting in Practice \\
                 Utility Routines for Broadcasting \\
                 Comparisons, Masks, and Boolean Logic \\
                 Example: Counting Rainy Days \\
                 Comparison Operators as ufuncs \\
                 Working with Boolean Arrays \\
                 Returning to Seattle s Rain \\
                 Boolean Arrays as Masks \\
                 Sidebar: `&' vs. `and' \\
                 Fancy Indexing \\
                 Exploring Fancy Indexing \\
                 Combined Indexing \\
                 Generating Indices: np.where \\
                 Example: Selecting Random Points \\
                 Modifying values with Fancy Indexing \\
                 Example: Binning data \\
                 Numpy Indexing Tricks \\
                 np.mgrid: Convenient Multi-dimensional Mesh Grids \\
                 np.ogrid: Convenient Open Grids \\
                 np.ix_: Open Index Grids \\
                 np.r_: concatenation along rows \\
                 np.c_: concatenation along columns \\
                 Why Index Tricks? \\
                 Sorting Arrays \\
                 Sidebar: Big-O Notation \\
                 Fast Sorts in Python \\
                 Fast Sorts in NumPy: np.sort and np.argsort \\
                 Partial Sorts: Partitioning \\
                 Example: K Nearest Neighbors \\
                 Searching and Counting Values In Arrays \\
                 Python Standard Library Tools \\
                 Searching for Values in NumPy Arrays \\
                 Counting and Binning \\
                 Structured Data: NumPy s Structured Arrays \\
                 Creating Structured Arrays \\
                 More Advanced Compound Types \\
                 RecordArrays: Structured Arrays with a Twist \\
                 On to Pandas \\
                 4. Introduction to Pandas \\
                 Installing and Using Pandas \\
                 Reminder about Built-in Documentation \\
                 Introducing Pandas Objects \\
                 Pandas Series \\
                 Pandas DataFrame \\
                 Pandas Index \\
                 Looking Forward \\
                 Data Indexing and Selection \\
                 Data Selection in Series \\
                 Data Selection in DataFrame \\
                 Operations in Pandas \\
                 Ufuncs: Index Preservation \\
                 UFuncs: Index Alignment \\
                 Ufuncs: Operations between DataFrame and Series \\
                 Summary \\
                 Handling Missing Data \\
                 Tradeoffs in Missing Data Conventions \\
                 Missing Data in Pandas \\
                 Operating on Null Values \\
                 Summary \\
                 Hierarchical Indexing \\
                 A Multiply-Indexed Series \\
                 Aside: Panel Data \\
                 Methods of MultiIndex Creation \\
                 Indexing and Slicing a MultiIndex \\
                 Rearranging Multi-Indices \\
                 Data Aggregations on Multi-Indices \\
                 Summary \\
                 Combining Datasets: Concat & Append \\
                 Recall: Concatenation of NumPy Arrays \\
                 Simple Concatenation with pd.concat \\
                 Combining Datasets: Merge and Join \\
                 Relational Algebra \\
                 Categories of Joins \\
                 Specification of the Merge Key \\
                 Specifying Set Arithmetic for Joins \\
                 Overlapping Column Names: The suffixes Keyword \\
                 Example: US States Data \\
                 Aggregation and Grouping \\
                 Planets Data \\
                 Simple Aggregation in Pandas \\
                 Group By: Split, Apply, Combine \\
                 Pivot Tables \\
                 Motivating Pivot Tables \\
                 Pivot Tables By Hand \\
                 Pivot Table Syntax \\
                 Example: Birthrate Data \\
                 Vectorized String Operations \\
                 Introducing Pandas String Operations \\
                 Tables of Pandas String Methods \\
                 Further Information \\
                 Example: Recipe Database \\
                 Working with Time Series \\
                 Dates and Times in Python \\
                 Pandas TimeSeries: Indexing by Time \\
                 Pandas TimeSeries Data Structures \\
                 Frequencies and Offsets \\
                 Resampling, Shifting, and Windowing \\
                 Where to Learn More \\
                 Example: Visualizing Seattle Bicycle Counts \\
                 High-Performance Pandas: eval() and query() \\
                 Motivating query() and eval(): Compound Expressions \\
                 pandas.eval() for Efficient Operations \\
                 DataFrame.eval() for Column-wise Operations \\
                 DataFrame.query() Method \\
                 Performance: When to Use these functions \\
                 Learning More \\
                 Further Resources",
}

@Article{Varley:2016:EPP,
  author =       "Ryan Varley",
  title =        "{ExoData}: a {Python} package to handle large
                 exoplanet catalogue data",
  journal =      j-COMP-PHYS-COMM,
  volume =       "207",
  number =       "??",
  pages =        "298--309",
  month =        oct,
  year =         "2016",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Aug 30 18:08:51 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465516301254",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Virmani:2016:CFU,
  author =       "Vineet Virmani",
  title =        "Computational Finance Using {QuantLib-Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "18",
  number =       "2",
  pages =        "78--88",
  month =        mar # "\slash " # apr,
  year =         "2016",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2016.28",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Wed Jun 8 08:55:26 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Yang:2016:PDI,
  author =       "Jean Yang and Travis Hance and Thomas H. Austin and
                 Armando Solar-Lezama and Cormac Flanagan and Stephen
                 Chong",
  title =        "Precise, dynamic information flow for database-backed
                 applications",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "6",
  pages =        "631--647",
  month =        jun,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2980983.2908098",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Sep 5 07:32:25 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "We present an approach for dynamic information flow
                 control across the application and database. Our
                 approach reduces the amount of policy code required,
                 yields formal guarantees across the application and
                 database, works with existing relational database
                 implementations, and scales for realistic applications.
                 In this paper, we present a programming model that
                 factors out information flow policies from application
                 code and database queries, a dynamic semantics for the
                 underlying $^J D B$ core language, and proofs of
                 termination-insensitive non-interference and policy
                 compliance for the semantics. We implement these ideas
                 in Jacqueline, a Python web framework, and demonstrate
                 feasibility through three application case studies: a
                 course manager, a health record system, and a
                 conference management system used to run an academic
                 workshop. We show that in comparison to traditional
                 applications with hand-coded policy checks, Jacqueline
                 applications have (1) a smaller trusted computing base,
                 (2) fewer lines of policy code, and (3) reasonable,
                 often negligible, additional overheads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '16 conference proceedings.",
}

@Article{Yang:2016:VAV,
  author =       "Yuting Yang and Sam Prestwood and Connelly Barnes",
  title =        "{VizGen}: accelerating visual computing prototypes in
                 dynamic languages",
  journal =      j-TOG,
  volume =       "35",
  number =       "6",
  pages =        "206:1--206:??",
  month =        nov,
  year =         "2016",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/2980179.2982403",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Thu Nov 17 08:53:11 MST 2016",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "This paper introduces a novel domain-specific
                 compiler, which translates visual computing programs
                 written in dynamic languages to highly efficient code.
                 We define ``dynamic'' languages as those such as Python
                 and MATLAB, which feature dynamic typing and flexible
                 array operations. Such language features can be useful
                 for rapid prototyping, however, the dynamic computation
                 model introduces significant overheads in program
                 execution time. We introduce a compiler framework for
                 accelerating visual computing programs, such as
                 graphics and vision programs, written in
                 general-purpose dynamic languages. Our compiler allows
                 substantial performance gains (frequently orders of
                 magnitude) over general compilers for dynamic languages
                 by specializing the compiler for visual computation.
                 Specifically, our compiler takes advantage of three key
                 properties of visual computing programs, which permit
                 optimizations: (1) many array data structures have
                 small, constant, or bounded size, (2) many operations
                 on visual data are supported in hardware or are
                 embarrassingly parallel, and (3) humans are not
                 sensitive to small numerical errors in visual outputs
                 due to changing floating-point precisions. Our compiler
                 integrates program transformations that have been
                 described previously, and improves existing
                 transformations to handle visual programs that perform
                 complicated array computations. In particular, we show
                 that dependent type analysis can be used to infer sizes
                 and guide optimizations for many small-sized array
                 operations that arise in visual programs. Programmers
                 who are not experts on visual computation can use our
                 compiler to produce more efficient Python programs than
                 if they write manually parallelized C, with fewer lines
                 of application logic.",
  acknowledgement = ack-nhfb,
  articleno =    "206",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
}

@Article{Barrios:2017:DIG,
  author =       "David Barrios and Carlos Prieto",
  title =        "{D3GB}: an Interactive Genome Browser for {R},
                 {Python}, and {WordPress}",
  journal =      j-J-COMPUT-BIOL,
  volume =       "24",
  number =       "5",
  pages =        "447--449",
  month =        may,
  year =         "2017",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.2016.0213",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Sat Jun 1 09:52:53 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.2016.0213;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.2016.0213",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "16 February 2017",
}

@Article{Batut:2017:PEP,
  author =       "B{\'e}r{\'e}nice Batut and Bj{\"o}rn Gr{\"u}ning",
  title =        "\pkg{ENASearch}: a {Python} library for interacting
                 with {ENA}'s {API}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "18",
  pages =        "418:1--418:1",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00418",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00418",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "25 October 2017",
  ORCID-numbers = "B{\'e}r{\'e}nice Batut / 0000-0001-9852-1987;
                 Bj{\"o}rn Gr{\"u}ning / 0000-0002-3079-6586",
}

@Article{Binder:2017:QMP,
  author =       "Jan M. Binder and Alexander Stark and Nikolas Tomek
                 and Jochen Scheuer and Florian Frank and Kay D. Jahnke
                 and Christoph M{\"u}ller and Simon Schmitt and Mathias
                 H. Metsch and Thomas Unden and Tobias Gehring and
                 Alexander Huck and Ulrik L. Andersen and Lachlan J.
                 Rogers Fedor Jelezko",
  title =        "\pkg{Qudi}: a modular {Python} suite for experiment
                 control and data processing",
  journal =      j-SOFTWAREX,
  volume =       "6",
  number =       "??",
  pages =        "81--84",
  month =        "????",
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2017.02.001",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:33 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711017300055",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Boeing:2017:POP,
  author =       "Geoff Boeing",
  title =        "\pkg{OSMnx}: a {Python} package to work with
                 graph-theoretic {OpenStreetMap} street networks",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "12",
  pages =        "215:1--215:4",
  month =        apr,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00215",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00215",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "24 April 2017",
  ORCID-numbers = "Geoff Boeing / 0000-0003-1851-6411",
}

@Article{Bonetta:2017:FJF,
  author =       "Daniele Bonetta and Matthias Brantner",
  title =        "{FAD.js}: fast {JSON} data access using {JIT}-based
                 speculative optimizations",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "10",
  number =       "12",
  pages =        "1778--1789",
  month =        aug,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3137765.3137782",
  ISSN =         "2150-8097",
  bibdate =      "Tue Oct 10 17:16:19 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "JSON is one of the most popular data encoding formats,
                 with wide adoption in Databases and BigData frameworks
                 as well as native support in popular programming
                 languages such as JavaScript/Node.js, Python, and R.
                 Nevertheless, JSON data processing can easily become a
                 performance bottleneck in data-intensive applications
                 because of parse and serialization overhead. In this
                 paper, we introduce F ad.js, a runtime system for
                 efficient processing of JSON objects in data-intensive
                 applications. Fad.js is based on (1) speculative
                 just-in-time (JIT) compilation and (2) selective access
                 to data. Experiments show that applications using
                 Fad.js achieve speedups up to 2.7x for encoding and
                 9.9x for decoding JSON data when compared to
                 state-of-the art JSON processing libraries.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Cass:2017:WTH,
  author =       "Stephen Cass",
  title =        "Wearable tech for {Halloween} --- The {Gemma MO}'s
                 embedded {Python} lets you change your code on the fly
                 [Resources Tools]",
  journal =      j-IEEE-SPECTRUM,
  volume =       "54",
  number =       "10",
  pages =        "15--16",
  month =        oct,
  year =         "2017",
  CODEN =        "IEESAM",
  DOI =          "https://doi.org/10.1109/MSPEC.2017.8048828",
  ISSN =         "0018-9235 (print), 1939-9340 (electronic)",
  ISSN-L =       "0018-9235",
  bibdate =      "Sat Jan 18 07:02:09 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeespectrum2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Spectrum",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
  keywords =     "Adafruit Industries; Arduino Uno; CircuitPython;
                 editorial advisory board; embedded devices; Gemma M0;
                 Halloween; IEEE Spectrum; Limor Fried;
                 microcontrollers; Python language; wearable computers;
                 wearable microcontrollers; wearable tech",
}

@Article{Chilenski:2017:EME,
  author =       "M. A. Chilenski and I. C. Faust and J. R. Walk",
  title =        "{eqtools}: Modular, extensible, open-source,
                 cross-machine {Python} tools for working with magnetic
                 equilibria",
  journal =      j-COMP-PHYS-COMM,
  volume =       "210",
  number =       "??",
  pages =        "155--162",
  month =        jan,
  year =         "2017",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Dec 1 14:31:09 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046551630282X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Ching:2017:XOS,
  author =       "Daniel J. Ching and Dog{\u{a}} G{\"u}rsoy",
  title =        "{XDesign}: an open-source software package for
                 designing {X}-ray imaging phantoms and experiments",
  journal =      "Journal of Synchrotron Radiation",
  volume =       "24",
  number =       "2",
  pages =        "537--544",
  year =         "2017",
  DOI =          "https://doi.org/10.1107/S1600577517001928",
  ISSN =         "0909-0495 (print), 1600-5775 (electronic)",
  ISSN-L =       "0909-0495",
  bibdate =      "Tue Jan 30 07:39:48 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "tomography, data acquisition, simulation, phantom,
                 scanning X-ray probe, reconstruction, quality,
                 open-source, Python, experiment design",
}

@Article{Clementi:2017:PPL,
  author =       "Natalia C. Clementi and Gilbert Forsyth and
                 Christopher D. Cooper and Lorena A. Barba",
  title =        "\pkg{PyGBe-LSPR}: {Python} and {GPU} Boundary-integral
                 solver for electrostatics",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "19",
  pages =        "306:1--306:2",
  month =        nov,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00306",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00306",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "30 November 2017",
  ORCID-numbers = "Natalia C. Clementi / 0000-0002-0575-5520; Gilbert
                 Forsyth / 0000-0002-4983-1978; Christopher D. Cooper /
                 0000-0003-0282-8998; Lorena A. Barba /
                 0000-0001-5812-2711",
}

@Article{Coelho:2017:PJS,
  author =       "Luis Pedro Coelho",
  title =        "\pkg{Jug}: Software for Parallel Reproducible
                 Computation in {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "5",
  number =       "1",
  pages =        "30--??",
  day =          "27",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.161",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.161/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Cokelaer:2017:PSSb,
  author =       "Thomas Cokelaer and Juergen Hasch",
  title =        "\pkg{'Spectrum'}: Spectral Analysis in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "18",
  pages =        "348:1--348:2",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00348",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00348",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "27 October 2017",
  ORCID-numbers = "Thomas Cokelaer / 0000-0001-6286-1138; Juergen Hasch
                 / 0000-0002-9457-1220",
}

@Article{Dawe:2017:PRI,
  author =       "Edmund Noel Dawe and Piti Ongmongkolkul and Giordon
                 Stark",
  title =        "\pkg{root\_numpy}: The interface between \pkg{ROOT}
                 and \pkg{NumPy}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "16",
  pages =        "307:1--307:2",
  month =        aug,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00307",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00307",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "13 August 2017",
  ORCID-numbers = "Edmund Noel Dawe / 0000-0003-0202-3284; Giordon Stark
                 / 0000-0001-6616-3433",
}

@Article{Diem:2017:PVP,
  author =       "Alexandra K. Diem and Neil W. Bressloff",
  title =        "\pkg{VaMpy}: a {Python} Package to Solve {$1$D} Blood
                 Flow Problems",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "5",
  number =       "1",
  pages =        "17--??",
  day =          "08",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.159",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.159/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Fichera:2017:PFP,
  author =       "Loris Fichera and Fabrizio Messina and Giuseppe
                 Pappalardo and Corrado Santoro",
  title =        "A {Python} framework for programming autonomous robots
                 using a declarative approach",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "139",
  number =       "??",
  pages =        "36--55",
  day =          "1",
  month =        jun,
  year =         "2017",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Thu Mar 16 14:46:55 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642317300242",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Filguiera:2017:DPF,
  author =       "Rosa Filguiera and Amrey Krause and Malcolm Atkinson
                 and Iraklis Klampanos and Alexander Moreno",
  title =        "{\tt dispel4py}: a {Python} framework for
                 data-intensive scientific computing",
  journal =      j-IJHPCA,
  volume =       "31",
  number =       "4",
  pages =        "316--334",
  month =        jul,
  year =         "2017",
  CODEN =        "IHPCFL",
  ISSN =         "1094-3420 (print), 1741-2846 (electronic)",
  ISSN-L =       "1094-3420",
  bibdate =      "Fri Aug 18 07:58:10 MDT 2017",
  bibsource =    "http://hpc.sagepub.com/;
                 https://www.math.utah.edu/pub/tex/bib/ijsa.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of High Performance Computing
                 Applications",
  journal-URL =  "http://hpc.sagepub.com/content/by/year",
}

@Article{Fortunato:2017:PPP,
  author =       "Michael E. Fortunato and Coray M. Colina",
  title =        "\pkg{pysimm}: a {Python} package for simulation of
                 molecular systems",
  journal =      j-SOFTWAREX,
  volume =       "6",
  number =       "??",
  pages =        "1--6",
  month =        "????",
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2016.12.002",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:33 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  note =         "See update \cite{Demidov:2018:UPP}.",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711016300395",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Gavran:2017:AMR,
  author =       "Ivan Gavran and Rupak Majumdar and Indranil Saha",
  title =        "{Antlab}: a Multi-Robot Task Server",
  journal =      j-TECS,
  volume =       "16",
  number =       "5s",
  pages =        "190:1--190:??",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3126513",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Thu Oct 17 18:16:33 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  abstract =     "We present Antlab, an end-to-end system that takes
                 streams of user task requests and executes them using
                 collections of robots. In Antlab, each request is
                 specified declaratively in linear temporal logic
                 extended with quantifiers over robots. The user does
                 not program robots individually, nor know how many
                 robots are available at any time or the precise state
                 of the robots. The Antlab runtime system manages the
                 set of robots, schedules robots to perform tasks,
                 automatically synthesizes robot motion plans from the
                 task specification, and manages the co-ordinated
                 execution of the plan. We provide a constraint-based
                 formulation for simultaneous task assignment and plan
                 generation for multiple robots working together to
                 satisfy a task specification. In order to scalably
                 handle multiple concurrent tasks, we take a separation
                 of concerns view to plan generation. First, we solve
                 each planning problem in isolation, with an ``ideal
                 world'' hypothesis that says there are no unspecified
                 dynamic obstacles or adversarial environment actions.
                 Second, to deal with imprecisions of the real world, we
                 implement the plans in receding horizon fashion on top
                 of a standard robot navigation stack. The motion
                 planner dynamically detects environment actions or
                 dynamic obstacles from the environment or from other
                 robots and locally corrects the ideal planned path. It
                 triggers a re-planning step dynamically if the current
                 path deviates from the planned path or if planner
                 assumptions are violated. We have implemented Antlab as
                 a C++ and Python library on top of robots running on
                 ROS, using SMT-based and AI planning-based
                 implementations for task and path planning. We
                 evaluated Antlab both in simulation as well as on a set
                 of TurtleBot robots. We demonstrate that it can provide
                 a scalable and robust infrastructure for declarative
                 multi-robot programming.",
  acknowledgement = ack-nhfb,
  articleno =    "190",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J840",
}

@Article{Haghighi:2017:PPP,
  author =       "Sepand Haghighi",
  title =        "\pkg{Pyrgg}: {Python Random Graph Generator}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "17",
  pages =        "331:1--331:2",
  month =        sep,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00331",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00331",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 September 2017",
  ORCID-numbers = "Sepand Haghighi / 0000-0001-9450-2375",
}

@Article{Hazelton:2017:PPI,
  author =       "Bryna J. Hazelton and Daniel C. Jacobs and Jonathan C.
                 Pober and Adam P. Beardsley",
  title =        "\pkg{pyuvdata}: an interface for astronomical
                 interferometeric datasets in python",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "10",
  pages =        "140:1--140:1",
  month =        feb,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00140",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00140",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "22 February 2017",
  ORCID-numbers = "Bryna J. Hazelton / 0000-0001-7532-645X; Daniel C.
                 Jacobs / 0000-0002-0917-2269; Jonathan C. Pober /
                 0000-0002-3492-0433; Adam P. Beardsley /
                 0000-0001-9428-8233",
}

@Article{Herman:2017:PSO,
  author =       "Jon Herman and Will Usher",
  title =        "\pkg{SALib}: an open-source {Python} library for
                 Sensitivity Analysis",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "9",
  pages =        "97:1--97:2",
  month =        jan,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00097",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00097",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "10 January 2017",
  ORCID-numbers = "Jon Herman / 0000-0002-4081-3175; Will Usher /
                 0000-0001-9367-1791",
}

@Article{Heusser:2017:PQP,
  author =       "Andrew C. Heusser and Paxton C. Fitzpatrick and
                 Campbell E. Field and Kirsten Ziman and Jeremy R.
                 Manning",
  title =        "\pkg{Quail}: a {Python} toolbox for analyzing and
                 plotting free recall data",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "18",
  pages =        "424:1--424:2",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00424",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00424",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "06 October 2017",
  ORCID-numbers = "Andrew C. Heusser / 0000-0001-6353-688X; Paxton C.
                 Fitzpatrick / 0000-0003-0205-3088; Campbell E. Field /
                 0000-0001-7260-635X; Kirsten Ziman /
                 0000-0002-8942-3362; Jeremy R. Manning /
                 0000-0001-7613-4732",
}

@Article{Hoyer:2017:PXL,
  author =       "Stephan Hoyer and Joe Hamman",
  title =        "\pkg{xarray}: {$N$-$D$} labeled Arrays and Datasets in
                 {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "5",
  number =       "1",
  pages =        "10--??",
  day =          "05",
  month =        apr,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.148",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.148/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Ishak:2017:BRSa,
  author =       "B. Ishak",
  title =        "Book Review: {{\booktitle{Statistics, data mining, and
                 machine learning in astronomy: a practical Python guide
                 for the analysis of survey data}}, by Zeljko
                 Ivezi{\'c}, Andrew J. Connolly, Jacob T. VanderPlas and
                 Alexander Gray}",
  journal =      j-CONTEMP-PHYS,
  volume =       "58",
  number =       "1",
  pages =        "99--99",
  year =         "2017",
  CODEN =        "CTPHAF",
  DOI =          "https://doi.org/10.1080/00107514.2016.1246478",
  ISSN =         "0010-7514 (print), 1366-5812 (electronic)",
  ISSN-L =       "0010-7514",
  bibdate =      "Sat Feb 18 07:24:40 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/contempphys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Contemporary Physics",
  journal-URL =  "http://www.tandfonline.com/loi/tcph20",
  onlinedate =   "20 Jan 2017",
}

@Article{Jimenez:2017:PPB,
  author =       "Jos{\'e} Jim{\'e}nez and Josep Ginebra",
  title =        "\pkg{pyGPGO}: {Bayesian} Optimization for {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "19",
  pages =        "431:1--431:3",
  month =        nov,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00431",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00431",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "02 November 2017",
  ORCID-numbers = "Jos{\'e} Jim{\'e}nez / 0000-0002-5335-7834; Josep
                 Ginebra / 0000-0001-9521-9635",
}

@Article{Kirsanskas:2017:QOS,
  author =       "Gediminas Kirsanskas and Jonas Nyvold Pedersen and
                 Olov Karlstr{\"o}m and Martin Leijnse and Andreas
                 Wacker",
  title =        "{QmeQ 1.0}: an open-source {Python} package for
                 calculations of transport through quantum dot devices",
  journal =      j-COMP-PHYS-COMM,
  volume =       "221",
  number =       "??",
  pages =        "317--342",
  month =        dec,
  year =         "2017",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Oct 16 14:20:16 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465517302515",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Lakshminarayanan:2017:BRL,
  author =       "Vasudevan Lakshminarayanan",
  title =        "Book Review: {{\booktitle{Learning scientific
                 programming with Python}}, by Christian Hill}",
  journal =      j-CONTEMP-PHYS,
  volume =       "58",
  number =       "3",
  pages =        "282--284",
  year =         "2017",
  CODEN =        "CTPHAF",
  DOI =          "https://doi.org/10.1080/00107514.2017.1312543",
  ISSN =         "0010-7514 (print), 1366-5812 (electronic)",
  ISSN-L =       "0010-7514",
  bibdate =      "Fri Aug 18 08:06:21 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/contempphys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Contemporary Physics",
  journal-URL =  "http://www.tandfonline.com/loi/tcph20",
  onlinedate =   "12 Apr 2017",
}

@Article{Leeman:2017:BRS,
  author =       "John R. Leeman",
  title =        "Book Review: {{\booktitle{A Student's Guide to Python
                 for Physical Modeling}}. Kinder, Jesse M., and Nelson,
                 Philip. 150 pp. Princeton U.P., Princeton, NJ, 2016.
                 Price: \$24.95 (paper). ISBN 978-0-691-17050-3}",
  journal =      j-AMER-J-PHYSICS,
  volume =       "85",
  number =       "5",
  pages =        "399--399",
  month =        may,
  year =         "2017",
  CODEN =        "AJPIAS",
  DOI =          "https://doi.org/10.1119/1.4973375",
  ISSN =         "0002-9505 (print), 1943-2909 (electronic)",
  bibdate =      "Fri Oct 20 14:51:28 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "American Journal of Physics",
  journal-URL =  "http://scitation.aip.org/content/aapt/journal/ajp",
}

@Article{Lervik:2017:SNU,
  author =       "Anders Lervik and Enrico Riccardi and Titus S. van
                 Erp",
  title =        "Software News and Updates: {PyRETIS}: a well-done,
                 medium-sized {Python} library for rare events",
  journal =      j-J-COMPUT-CHEM,
  volume =       "38",
  number =       "28",
  pages =        "2439--2451",
  day =          "30",
  month =        oct,
  year =         "2017",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.24900",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Sat Dec 30 08:26:11 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
}

@Article{Lyonnet:2017:PPT,
  author =       "F. Lyonnet and I. Schienbein",
  title =        "{PyR@TE 2}: a {Python} tool for computing {RGEs} at
                 two-loop",
  journal =      j-COMP-PHYS-COMM,
  volume =       "213",
  number =       "??",
  pages =        "181--196",
  month =        apr,
  year =         "2017",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Feb 4 08:00:23 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046551630368X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655/",
}

@Article{Mahar:2017:PHP,
  author =       "Sara Mahar and Matthew Bellis",
  title =        "\pkg{hmis}: a python tool to visualize and analyze
                 {HMIS} data",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "18",
  pages =        "384:1--384:2",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00384",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00384",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "08 October 2017",
  ORCID-numbers = "Sara Mahar / 0000-0003-0920-3042; Matthew Bellis /
                 0000-0002-6353-6043",
}

@Article{Makowski:2017:PNP,
  author =       "Dominique Makowski and L{\'e}o Dutriaux",
  title =        "\pkg{Neuropsydia.py}: a {Python} Module for Creating
                 Experiments, Tasks and Questionnaires",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "19",
  pages =        "259:1--259:2",
  month =        nov,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00259",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00259",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "27 November 2017",
  ORCID-numbers = "Dominique Makowski / 0000-0001-5375-9967; L{\'e}o
                 Dutriaux / 0000-0001-6304-8691",
}

@Article{Margolis:2017:PSP,
  author =       "Benjamin W. L. Margolis",
  title =        "\pkg{SimuPy}: a {Python} framework for modeling and
                 simulating dynamical systems",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "17",
  pages =        "396:1--396:1",
  month =        sep,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00396",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00396",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 September 2017",
  ORCID-numbers = "Benjamin W. L. Margolis / 0000-0001-5602-1888",
}

@Article{Mayer:2017:PNP,
  author =       "Andreas Mayer",
  title =        "\pkg{Noisyopt}: a {Python} library for optimizing
                 noisy functions",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "13",
  pages =        "258:1--258:1",
  month =        may,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00258",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00258",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "30 May 2017",
  ORCID-numbers = "Andreas Mayer / 0000-0002-6643-7622",
}

@Article{Meier:2017:PVM,
  author =       "Remigius Meier and Armin Rigo and Thomas R. Gross",
  title =        "Parallel virtual machines with {RPython}",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "2",
  pages =        "48--59",
  month =        feb,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093334.2989233",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:15 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "The RPython framework takes an interpreter for a
                 dynamic language as its input and produces a Virtual
                 Machine{\^A} (VM) for that language. RPython is being
                 used to develop PyPy, a high-performance Python
                 interpreter. However, the produced VM does not support
                 parallel execution since the framework relies on a
                 Global Interpreter Lock{\^A} (GIL): PyPy serialises the
                 execution of multi-threaded Python programs. We
                 describe the rationale and design of a new parallel
                 execution model for RPython that allows the generation
                 of parallel virtual machines while leaving the language
                 semantics unchanged. This model then allows different
                 implementations of concurrency control, and we discuss
                 an implementation based on a GIL and an implementation
                 based on Software Transactional Memory{\^A} (STM). To
                 evaluate the benefits of either choice, we adapt PyPy
                 to work with both implementations (GIL and STM). The
                 evaluation shows that PyPy with STM improves the
                 runtime of a set of multi-threaded Python programs over
                 PyPy with a GIL by factors in the range of 1.87 $
                 \times $ up to 5.96 $ \times $ when executing on a
                 processor with 8 cores.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '16 conference proceedings.",
}

@Article{Morgan:2017:PLP,
  author =       "Benjamin J. Morgan",
  title =        "\pkg{lattice\_mc}: a {Python} Lattice-Gas {Monte
                 Carlo} Module",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "13",
  pages =        "247:1--247:2",
  month =        may,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00247",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00247",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "26 May 2017",
  ORCID-numbers = "Benjamin J. Morgan / 0000-0002-3056-8233",
}

@Article{Naecker:2017:PPP,
  author =       "Benjamin Naecker and Niru Maheswaranathan and Surya
                 Ganguli and Stephen Baccus",
  title =        "\pkg{Pyret}: a {Python} package for analysis of
                 neurophysiology data",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "9",
  pages =        "137:1--137:1",
  month =        jan,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00137",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00137",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "06 January 2017",
  ORCID-numbers = "Benjamin Naecker / 0000-0002-7525-1635; Niru
                 Maheswaranathan / 0000-0002-3946-4705",
}

@Book{Nagar:2017:BJP,
  author =       "Sandeep Nagar",
  title =        "Beginning {Julia} Programming: For Engineers and
                 Scientists",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxi + 351 + 20 + 18",
  year =         "2017",
  DOI =          "https://doi.org/10.1007/978-1-4842-3171-5",
  ISBN =         "1-4842-3170-8, 1-4842-3171-6",
  ISBN-13 =      "978-1-4842-3170-8, 978-1-4842-3171-5",
  LCCN =         "QA76.7-76.73; QA76.76.C65",
  bibdate =      "Thu Apr 8 10:39:19 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.springerlink.com/content/978-1-4842-3171-5",
  abstract =     "Get started with Julia for engineering and numerical
                 computing, especially data science, machine learning,
                 and scientific computing applications. This book
                 explains how Julia provides the functionality,
                 ease-of-use and intuitive syntax of R, Python, MATLAB,
                 SAS, or Stata combined with the speed, capacity, and
                 performance of C, C++, or Java. You'll learn the OOP
                 principles required to get you started, then how to do
                 basic mathematics with Julia. Other core functionality
                 of Julia that you'll cover, includes working with
                 complex numbers, rational and irrational numbers,
                 rings, and fields. Beginning Julia Programming takes
                 you beyond these basics to harness Julia's powerful
                 features for mathematical functions in Julia, arrays
                 for matrix operations, plotting, and more. Along the
                 way, you also learn how to manage strings, write
                 functions, work with control flows, and carry out I/O
                 to implement and leverage the mathematics needed for
                 your data science and analysis projects. ``Julia walks
                 like Python and runs like C''. This phrase explains why
                 Julia is quickly growing as the most favored option for
                 data analytics and numerical computation. After reading
                 and using this book, you'll have the essential
                 knowledge and skills to build your first Julia-based
                 application. You will: Obtain core skills in Julia
                 Apply Julia in engineering and science applications
                 Work with mathematical functions in Julia Use arrays,
                 strings, functions, control flow, and I/O in Julia
                 Carry out plotting and display basic graphics .",
  acknowledgement = ack-nhfb,
  subject =      "Computer science; Computer programming; Programming
                 languages (Electronic computers); Mathematical logic;
                 Programming Languages, Compilers, Interpreters;
                 Mathematical Logic and Formal Languages; Big Data;
                 Programming Techniques; Inform{\'a}tica; Logic,
                 Symbolic and mathematical; Computer programming;
                 Computer science.; Logic, Symbolic and mathematical;
                 Programming languages (Electronic computers)",
  tableofcontents = "1. Introduction \\
                 2. Object Oriented Programming \\
                 3. Basic Mathematics with Julia \\
                 4. Complex Numbers \\
                 5. Rational and Irrational numbers \\
                 6. Mathematical Functions \\
                 7. Arrays \\
                 8. Arrays for Matrix Operations \\
                 9. Strings \\
                 10. Functions \\
                 11. Control Flow \\
                 12. Input Output \\
                 13. Plotting",
}

@Article{Niemeyer:2017:PAJ,
  author =       "Kyle E. Niemeyer and Nicholas J. Curtis and Chih-Jen
                 Sung",
  title =        "{pyJac}: Analytical {Jacobian} generator for chemical
                 kinetics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "215",
  number =       "??",
  pages =        "188--203",
  month =        jun,
  year =         "2017",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Mar 31 15:52:48 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465517300462",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Nordh:2017:PPF,
  author =       "Jerker Nordh",
  title =        "\pkg{pyParticleEst}: a {Python} Framework for
                 Particle-Based Estimation Methods",
  journal =      j-J-STAT-SOFT,
  volume =       "78",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "2017",
  CODEN =        "JSSOBK",
  DOI =          "https://doi.org/10.18637/jss.v78.i03",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Thu Jun 8 18:10:20 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.jstatsoft.org/index.php/jss/article/view/v078i03;
                 https://www.jstatsoft.org/index.php/jss/article/view/v078i03/v78i03.pdf",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
}

@Article{Omar:2017:PSF,
  author =       "Cyrus Omar and Jonathan Aldrich",
  title =        "Programmable semantic fragments: the design and
                 implementation of {\tt typy}",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "3",
  pages =        "81--92",
  month =        mar,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093335.2993245",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:15 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "This paper introduces typy, a statically typed
                 programming language embedded by reflection into
                 Python. typy features a fragmentary semantics, i.e. it
                 delegates semantic control over each term, drawn from
                 Python's fixed concrete and abstract syntax, to some
                 contextually relevant user-defined semantic fragment.
                 The delegated fragment programmatically (1) typechecks
                 the term (following a bidirectional protocol); and (2)
                 assigns dynamic meaning to the term by computing a
                 translation to Python. We argue that this design is
                 expressive with examples of fragments that express the
                 static and dynamic semantics of (1) functional records;
                 (2) labeled sums (with nested pattern matching a la
                 ML); (3) a variation on JavaScript's prototypal object
                 system; and (4) typed foreign interfaces to Python and
                 OpenCL. These semantic structures are, or would need to
                 be, defined primitively in conventionally structured
                 languages. We further argue that this design is
                 compositionally well-behaved. It avoids the expression
                 problem and the problems of grammar composition because
                 the syntax is fixed. Moreover, programs are
                 semantically stable under fragment composition (i.e.
                 defining a new fragment will not change the meaning of
                 existing program components.)",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "GPCE '16 conference proceedings.",
}

@Book{Osais:2017:CSF,
  author =       "Yahya E. Osais",
  title =        "Computer Simulation: a Foundational Approach Using
                 {Python}",
  volume =       "101",
  publisher =    pub-CHAPMAN-HALL-CRC,
  address =      pub-CHAPMAN-HALL-CRC:adr,
  year =         "2017",
  DOI =          "https://doi.org/10.1201/9781315120294",
  ISBN =         "1-315-12029-1 (e-book), 1-351-63708-8 (e-book: Mobi),
                 1-4987-2682-8 (hardcover), 1-4987-2683-6 (e-book PDF)",
  ISBN-13 =      "978-1-315-12029-4 (e-book), 978-1-351-63708-4 (e-book:
                 Mobi), 978-1-4987-2682-5 (hardcover), 978-1-4987-2683-2
                 (ebook PDF)",
  LCCN =         "QA76.9.C65 O83 2017",
  bibdate =      "Tue Nov 29 08:19:23 MST 2022",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/prng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Chapman and Hall/CRC computer and information science
                 series",
  acknowledgement = ack-nhfb,
  subject =      "Computer simulation; Python (Computer program
                 language); Digital computer simulation; Simulation par
                 ordinateur; Python (Langage de programmation);
                 simulation; Digital computer simulation; Computer
                 simulation; Python (Computer program language)",
  tableofcontents = "Part I: The Fundamentals \\
                 1: Introduction \\
                 2: Building Conceptual Models \\
                 3: Simulating Probabilities \\
                 4: Simulating Random Variables and Stochastic Processes
                 \\
                 5: Simulating the Single-Server Queueing System \\
                 6: Statistical Analysis of Simulated Data \\
                 Part II: Managing Complexity \\
                 7: Event Graphs \\
                 8: Building Simulation Programs \\
                 Part III: Problem-Solving \\
                 9: The Monte Carlo Method \\
                 Part IV: Sources of Randomness \\
                 10: Random Variate Generation \\
                 11: Random Number Generation \\
                 Part V: Case Studies \\
                 12: Case Studies",
}

@Article{Otis:2017:PPC,
  author =       "Richard Otis and Zi-Kui Liu",
  title =        "\pkg{pycalphad}: {CALPHAD}-based Computational
                 Thermodynamics in {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "5",
  number =       "1",
  pages =        "1--??",
  day =          "09",
  month =        jan,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.140",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.140/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Pimentel:2017:NTC,
  author =       "Jo{\~a}o Felipe Pimentel and Leonardo Murta and
                 Vanessa Braganholo and Juliana Freire",
  title =        "{noWorkflow}: a tool for collecting, analyzing, and
                 managing provenance from {Python} scripts",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "10",
  number =       "12",
  pages =        "1841--1844",
  month =        aug,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3137765.3137789",
  ISSN =         "2150-8097",
  bibdate =      "Tue Oct 10 17:16:19 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "We present noWorkflow, an open-source tool that
                 systematically and transparently collects provenance
                 from Python scripts, including data about the script
                 execution and how the script evolves over time. During
                 the demo, we will show how noWorkflow collects and
                 manages provenance, as well as how it supports the
                 analysis of computational experiments. We will also
                 encourage attendees to use noWorkflow for their own
                 scripts.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Polimis:2017:CIR,
  author =       "Kivan Polimis and Ariel Rokem and Bryna Hazelton",
  title =        "Confidence Intervals for Random Forests in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "19",
  pages =        "124:1--124:4",
  month =        nov,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00124",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00124",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "09 November 2017",
  ORCID-numbers = "Kivan Polimis / 0000-0002-3498-0479; Ariel Rokem /
                 0000-0003-0679-1985; Bryna Hazelton /
                 0000-0001-7532-645X",
}

@Article{Price-Whelan:2017:PGP,
  author =       "Adrian M. Price-Whelan",
  title =        "\pkg{Gala}: a {Python} package for galactic dynamics",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "18",
  pages =        "388:1--388:2",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00388",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00388",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "08 October 2017",
  ORCID-numbers = "Adrian M. Price-Whelan / 0000-0003-0872-7098",
}

@Article{Price-Whelan:2017:PSU,
  author =       "Adrian M. Price-Whelan and Daniel Foreman-Mackey",
  title =        "\pkg{schwimmbad}: a uniform interface to parallel
                 processing pools in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "17",
  pages =        "357:1--357:2",
  month =        sep,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00357",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00357",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "05 September 2017",
  ORCID-numbers = "Adrian M. Price-Whelan / 0000-0003-0872-7098; Daniel
                 Foreman-Mackey / 0000-0002-9328-5652",
}

@Article{Raamana:2017:PPC,
  author =       "Pradeep Reddy Raamana and Stephen C. Strother",
  title =        "\pkg{Python} class defining a machine learning dataset
                 ensuring key-based correspondence and maintaining
                 integrity",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "17",
  pages =        "382:1--382:1",
  month =        sep,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00382",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00382",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "11 September 2017",
  ORCID-numbers = "Pradeep Reddy Raamana / 0000-0003-4662-0558; Stephen
                 C. Strother / 0000-0002-3198-217X",
}

@Article{Ranathunga:2017:MPP,
  author =       "D. Ranathunga and H. Nguyen and M. Roughan",
  title =        "\pkg{MGtoolkit}: a {Python} package for implementing
                 metagraphs",
  journal =      j-SOFTWAREX,
  volume =       "6",
  number =       "??",
  pages =        "85--90",
  month =        "????",
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2017.04.001",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:33 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711017300080",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Rathgeber:2017:FAF,
  author =       "Florian Rathgeber and David A. Ham and Lawrence
                 Mitchell and Michael Lange and Fabio Luporini and
                 Andrew T. T. Mcrae and Gheorghe-Teodor Bercea and
                 Graham R. Markall and Paul H. J. Kelly",
  title =        "{Firedrake}: Automating the Finite Element Method by
                 Composing Abstractions",
  journal =      j-TOMS,
  volume =       "43",
  number =       "3",
  pages =        "24:1--24:??",
  month =        jan,
  year =         "2017",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/2998441",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Oct 4 10:55:07 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=2998441",
  abstract =     "Firedrake is a new tool for automating the numerical
                 solution of partial differential equations. Firedrake
                 adopts the domain-specific language for the finite
                 element method of the FEniCS project, but with a pure
                 Python runtime-only implementation centered on the
                 composition of several existing and new abstractions
                 for particular aspects of scientific computing. The
                 result is a more complete separation of concerns that
                 eases the incorporation of separate contributions from
                 computer scientists, numerical analysts, and
                 application specialists. These contributions may add
                 functionality or improve performance. Firedrake
                 benefits from automatically applying new optimizations.
                 This includes factorizing mixed function spaces,
                 transforming and vectorizing inner loops, and
                 intrinsically supporting block matrix operations.
                 Importantly, Firedrake presents a simple public API for
                 escaping the UFL abstraction. This allows users to
                 implement common operations that fall outside of pure
                 variational formulations, such as flux limiters.",
  acknowledgement = ack-nhfb,
  articleno =    "24",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Schillaci:2017:PP,
  author =       "Michael Jay Schillaci",
  title =        "Perfectly {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "19",
  number =       "6",
  pages =        "51--53",
  month =        nov # "\slash " # dec,
  year =         "2017",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Nov 30 06:28:15 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.computer.org/csdl/mags/cs/2017/06/mcs2017060051.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Scott:2017:PSI,
  author =       "Camille Scott",
  title =        "\pkg{shmlast}: an improved implementation of
                 Conditional Reciprocal Best Hits with {LAST} and
                 {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "9",
  pages =        "142:1--142:4",
  month =        jan,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00142",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00142",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "28 January 2017",
  ORCID-numbers = "Camille Scott / 0000-0001-8822-8779",
}

@InProceedings{Serrano:2017:MIP,
  author =       "E. Serrano and J. G. Blas and J. Carretero and M.
                 Abella and M. Desco",
  booktitle =    "{2017 17th IEEE/ACM International Symposium on
                 Cluster, Cloud and Grid Computing (CCGRID)}",
  title =        "Medical Imaging Processing on a Big Data Platform
                 Using {Python}: Experiences with Heterogeneous and
                 Homogeneous Architectures",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "830--837",
  year =         "2017",
  DOI =          "https://doi.org/10.1109/CCGRID.2017.56",
  bibdate =      "Thu Apr 8 07:17:08 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Julia programming language",
}

@Article{Shakir:2017:PGG,
  author =       "Dzhoshkun Ismail Shakir and Luis Carlos
                 Garc{\'\i}a-Peraza-Herrera and Pankaj Daga and Tom Doel
                 and Matthew J. Clarkson and S{\'e}bastien Ourselin and
                 Tom Vercauteren",
  title =        "\pkg{GIFT-Grab}: Real-time {C++} and {Python}
                 multi-channel video capture, processing and encoding
                 {API}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "5",
  number =       "1",
  pages =        "27--??",
  day =          "09",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.169",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.169/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Siek:2017:CPT,
  author =       "Jeremy Siek",
  title =        "Challenges and progress toward efficient gradual
                 typing (invited talk)",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "11",
  pages =        "2--2",
  month =        nov,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3170472.3148570",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Dec 1 18:56:13 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Mixing static and dynamic type checking in the same
                 language is catching on, with the TypeScript and Flow
                 variants of JavaScript, the MyPy and Reticulated
                 variants of Python, the Strongtalk and Gradualtalk
                 variants of Smalltalk, as well as Typed Racket, Typed
                 Clojure, and Perl 6. The gradual typing approach to
                 such mixing seeks to protect the statically typed code
                 from the dynamically typed code, allowing compilers to
                 leverage type information when optimizing the static
                 code. Unfortunately, ensuring soundness requires
                 runtime checking at the boundaries of typed and untyped
                 code, and the cost of this checking can drown out the
                 performance benefits of optimization. For example, in
                 Typed Racket, some partially typed programs are 1000X
                 slower than the untyped or fully typed version of the
                 same program. But all is not lost! In this talk I
                 present the results of ongoing research to tame the
                 runtime overheads of gradual typing in the context of a
                 prototype compiler, named Grift, that we are developing
                 at Indiana University.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '17 conference proceedings.",
}

@Article{Sinaie:2017:PMP,
  author =       "Sina Sinaie and Viet Ha Nguyen and Chi Thanh Nguyen
                 and St{\'e}phane Bordas",
  title =        "Programming the material point method in {Julia}",
  journal =      j-ADV-ENG-SOFTWARE,
  volume =       "105",
  number =       "??",
  pages =        "17--29",
  month =        mar,
  year =         "2017",
  CODEN =        "AESODT",
  DOI =          "https://doi.org/10.1016/j.advengsoft.2017.01.008",
  ISSN =         "0965-9978 (print), 0141-1195 (electronic)",
  ISSN-L =       "0965-9978",
  bibdate =      "Fri Apr 09 05:58:14 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S0965997816302769",
  abstract =     "This article presents the implementation of the
                 material point method (MPM) using Julia. Julia is an
                 open source, multi-platform, high-level,
                 high-performance dynamic programming language for
                 technical computing, with syntax that is familiar to
                 Matlab and Python programmers. MPM is a hybrid
                 particle-grid approach that combines the advantages of
                 Eulerian and Lagrangian methods and is suitable for
                 complex solid mechanics problems involving contact,
                 impact and large deformations. We will show that a
                 Julia based MPM code, which is short, compact and
                 readable and uses only Julia built in features,
                 performs much better (with speed up of up to 8) than a
                 similar Matlab based MPM code for large strain solid
                 mechanics simulations. We share our experiences of
                 implementing MPM in Julia and demonstrate that Julia is
                 a very interesting platform for rapid development in
                 the field of scientific computing.",
  acknowledgement = ack-nhfb,
  fjournal =     "Advances in Engineering Software",
  journal-URL =  "https://www.sciencedirect.com/journal/advances-in-engineering-software",
  keywords =     "Julia, Material point method (MPM), High-performance
                 dynamic programming language, Technical computing",
}

@Article{Smith:2017:PUP,
  author =       "Andrew P. Smith",
  title =        "\pkg{UKCensusAPI}: python and {R} interfaces to the
                 nomisweb {UK} census data {API}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "19",
  pages =        "408:1--408:1",
  month =        nov,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00408",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00408",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 November 2017",
  ORCID-numbers = "Andrew P. Smith / 0000-0002-9951-6642",
}

@Article{Stadler:2017:CCP,
  author =       "Konstantin Stadler",
  title =        "The country converter \pkg{coco} --- a {Python}
                 package for converting country names between different
                 classification schemes",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "16",
  pages =        "332:1--332:2",
  month =        aug,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00332",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00332",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "03 August 2017",
  ORCID-numbers = "Konstantin Stadler / 0000-0002-1548-201X",
}

@Article{Suess:2017:PMM,
  author =       "Daniel Suess and Milan Holz{\"a}pfel",
  title =        "\pkg{mpnum}: a matrix product representation library
                 for {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "20",
  pages =        "465:1--465:2",
  month =        dec,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00465",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00465",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "15 December 2017",
  ORCID-numbers = "Daniel Suess / 0000-0002-6354-457X; Milan
                 Holz{\"a}pfel / 0000-0002-4687-5027",
}

@Article{Tejedor:2017:PPC,
  author =       "Enric Tejedor and Yolanda Becerra and Guillem Alomar
                 and Anna Queralt and Rosa M. Badia and Jordi Torres and
                 Toni Cortes and Jes{\'u}s Labarta",
  title =        "{PyCOMPSs}: Parallel computational workflows in
                 {Python}",
  journal =      j-IJHPCA,
  volume =       "31",
  number =       "1",
  pages =        "66--82",
  month =        jan,
  year =         "2017",
  CODEN =        "IHPCFL",
  ISSN =         "1094-3420 (print), 1741-2846 (electronic)",
  ISSN-L =       "1094-3420",
  bibdate =      "Tue Apr 4 14:51:30 MDT 2017",
  bibsource =    "http://hpc.sagepub.com/;
                 https://www.math.utah.edu/pub/tex/bib/ijsa.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of High Performance Computing
                 Applications",
}

@Article{Vieira:2017:WCC,
  author =       "Camilo Vieira and Alejandra J. Magana and Michael L.
                 Falk and R. Edwin Garcia",
  title =        "Writing In-Code Comments to Self-Explain in
                 Computational Science and Engineering Education",
  journal =      j-TOCE,
  volume =       "17",
  number =       "4",
  pages =        "17:1--17:??",
  month =        sep,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3058751",
  ISSN =         "1946-6226",
  bibdate =      "Mon Jan 22 10:10:24 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toce.bib",
  abstract =     "This article presents two case studies aimed at
                 exploring the use of self-explanations in the context
                 of computational science and engineering (CSE)
                 education. The self-explanations were elicited as
                 students' in-code comments of a set of worked-examples,
                 and the cases involved two different approaches to CSE
                 education: glass box and black box. The glass-box
                 approach corresponds to a programming course for
                 materials science and engineering students that focuses
                 on introducing programming concepts while solving
                 disciplinary problems. The black-box approach involves
                 the introduction of Python-based computational tools
                 within a thermodynamics course to represent
                 disciplinary phenomena. Two semesters of data
                 collection for each case study allowed us to identify
                 the effect of using in-code comments as a
                 self-explanation strategy on students' engagement with
                 the worked-examples and students' perceptions of these
                 activities within each context. The results suggest
                 that the use of in-code comments as a self-explanation
                 strategy increased students' awareness of the
                 worked-examples while engaging with them. The students'
                 perceived uses of the in-code commenting activities
                 include: understanding the example, making a connection
                 between the programming code and the disciplinary
                 problem, and becoming familiar with the programming
                 language syntax, among others.",
  acknowledgement = ack-nhfb,
  articleno =    "17",
  fjournal =     "ACM Transactions on Computing Education",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1193",
}

@Article{Vitousek:2017:BTL,
  author =       "Michael M. Vitousek and Cameron Swords and Jeremy G.
                 Siek",
  title =        "Big types in little runtime: open-world soundness and
                 collaborative blame for gradual type systems",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "1",
  pages =        "762--774",
  month =        jan,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093333.3009849",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:14 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Gradual typing combines static and dynamic typing in
                 the same language, offering programmers the error
                 detection and strong guarantees of static types and the
                 rapid prototyping and flexible programming idioms of
                 dynamic types. Many gradually typed languages are
                 implemented by translation into an untyped target
                 language (e.g., Typed Clojure, TypeScript, Gradualtalk,
                 and Reticulated Python). For such languages, it is
                 desirable to support arbitrary interaction between
                 translated code and legacy code in the untyped language
                 while maintaining the type soundness of the translated
                 code. In this paper we formalize this goal in the form
                 of the open-world soundness criterion. We discuss why
                 it is challenging to achieve open-world soundness using
                 the traditional proxy-based approach for higher-order
                 casts. However, the transient design satisfies
                 open-world soundness. Indeed, we present a formal
                 semantics for the transient design and prove that our
                 semantics satisfies open-world soundness. In this paper
                 we also solve a challenging problem for the transient
                 design: how to provide blame tracking without proxies.
                 We define a semantics for blame and prove the Blame
                 Theorem. We also prove that the Gradual Guarantee holds
                 for this system, ensuring that programs can be evolved
                 freely between static and dynamic typing. Finally, we
                 demonstrate that the runtime overhead of the transient
                 approach is low in the context of Reticulated Python,
                 an implementation of gradual typing for Python.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '17 conference proceedings.",
}

@Book{Vivien:2017:GDP,
  author =       "Vladimir Vivien and Mario Contreras and Mat Ryer",
  title =        "{Go}: Design Patterns for Real-World Projects",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "1091",
  year =         "2017",
  ISBN =         "1-78839-055-5, 1-78839-287-6",
  ISBN-13 =      "978-1-78839-055-2, 978-1-78839-287-7",
  LCCN =         "????",
  bibdate =      "Thu Apr 22 10:14:18 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/go.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "An insightful guide to learning the Go programming
                 language About This Book Get insightful coverage of Go
                 programming syntax, constructs, and idioms to help you
                 understand Go code Get a full explanation of all the
                 known GoF design patterns in Go, including
                 comprehensive theory and examples Learn to apply the
                 nuances of the Go language, and get to know the open
                 source community that surrounds it to implement a wide
                 range of start-up quality projects Who This Book Is For
                 Beginners to Go who are comfortable in other OOP
                 languages like Java, C\#, or Python will find this
                 course interesting and beneficial. What You Will Learn
                 Install and configure the Go development environment to
                 quickly get started with your first program Use the
                 basic elements of the language including source code
                 structure, variables, constants, and control flow
                 primitives Get to know all the basic syntax and tools
                 you need to start coding in Go Create unique instances
                 that cannot be duplicated within a program Build quirky
                 and fun projects from scratch while exploring patterns,
                 practices, and techniques, as well as a range of
                 different technologies Create websites and data
                 services capable of massive scaling using Go's net/http
                 package, Explore RESTful patterns as well as
                 low-latency WebSocket APIs Interact with a variety of
                 remote web services to consume capabilities, ranging
                 from authentication and authorization to a fully
                 functioning thesaurus In Detail The Go programming
                 language has firmly established itself as a favorite
                 for building complex and scalable system applications.
                 Go offers a direct and practical approach to
                 programming that lets programmers write correct and
                 predictable code using concurrency idioms and a
                 full-featured standard library. This practical guide is
                 full of real-world examples to help you get started
                 with Go in no time at all. You'll start by
                 understanding the fundamentals of Go, then get a
                 detailed description of the Go data types, program
                 structures, and Maps. After that, you'll learn how to
                 use Go concurrency idioms to avoid pitfalls and create
                 programs that are exact in expected behavior. Next, you
                 will get familiar with the tools and libraries that are
                 available in Go to write and exercise tests,
                 benchmarking, and code coverage. After that, you will
                 be able to utilize some of the most important features
                 of GO such as Network Programming and OS integration to
                 build efficient applications.",
}

@Article{Willner:2017:PPP,
  author =       "Sven N. Willner and Corinne Hartin and Robert
                 Gieseke",
  title =        "\pkg{pyhector}: a {Python} interface for the simple
                 climate model {Hector}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "2",
  number =       "12",
  pages =        "248:1--248:2",
  month =        apr,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00248",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00248",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "28 April 2017",
  ORCID-numbers = "Sven N. Willner / 0000-0001-6798-6247; Corinne Hartin
                 / 0000-0003-1834-6539; Robert Gieseke /
                 0000-0002-1236-5109",
}

@Article{AlKadi:2018:GPC,
  author =       "Muhammed {Al Kadi} and Benedikt Janssen and Jones Yudi
                 and Michael Huebner",
  title =        "General-Purpose Computing with Soft {GPUs} on
                 {FPGAs}",
  journal =      j-TRETS,
  volume =       "11",
  number =       "1",
  pages =        "5:1--5:??",
  month =        mar,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3173548",
  ISSN =         "1936-7406 (print), 1936-7414 (electronic)",
  ISSN-L =       "1936-7406",
  bibdate =      "Sat Oct 19 17:42:59 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/trets.bib",
  abstract =     "Using field-programmable gate arrays (FPGAs) as a
                 substrate to deploy soft graphics processing units
                 (GPUs) would enable offering the FPGA compute power in
                 a very flexible GPU-like tool flow.
                 Application-specific adaptations like selective
                 hardening of floating-point operations and instruction
                 set subsetting would mitigate the high area and power
                 demands of soft GPUs. This work explores the
                 capabilities and limitations of soft General Purpose
                 Computing on GPUs (GPGPU) for both fixed- and floating
                 point arithmetic. For this purpose, we have developed
                 FGPU: a configurable, scalable, and portable GPU
                 architecture designed especially for FPGAs. FGPU is
                 open-source and implemented entirely in RTL. It can be
                 programmed in OpenCL and controlled through a Python
                 API. This article introduces its hardware architecture
                 as well as its tool flow. We evaluated the proposed
                 GPGPU approach against multiple other solutions. In
                 comparison to homogeneous Multi-Processor
                 System-On-Chips (MPSoCs), we found that using a soft
                 GPU is a Pareto-optimal solution regarding throughput
                 per area and energy consumption. On average, FGPU has a
                 2.9$ \times $ better compute density and 11.2$ \times $
                 less energy consumption than a single MicroBlaze
                 processor when computing in IEEE-754 floating-point
                 format. An average speedup of about 4$ \times $ over
                 the ARM Cortex-A9 supported with the NEON vector
                 co-processor has been measured for fixed- or
                 floating-point benchmarks. In addition, the biggest
                 FGPU cores we could implement on a Xilinx Zynq-7000
                 System-On-Chip (SoC) can deliver similar performance to
                 equivalent implementations with High-Level Synthesis
                 (HLS).",
  acknowledgement = ack-nhfb,
  articleno =    "5",
  fjournal =     "ACM Transactions on Reconfigurable Technology and
                 Systems (TRETS)",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J1151",
}

@Article{Alon:2018:GPB,
  author =       "Uri Alon and Meital Zilberstein and Omer Levy and Eran
                 Yahav",
  title =        "A general path-based representation for predicting
                 program properties",
  journal =      j-SIGPLAN,
  volume =       "53",
  number =       "4",
  pages =        "404--419",
  month =        apr,
  year =         "2018",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3296979.3192412",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 16 14:12:57 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Predicting program properties such as names or
                 expression types has a wide range of applications. It
                 can ease the task of programming, and increase
                 programmer productivity. A major challenge when
                 learning from programs is how to represent programs in
                 a way that facilitates effective learning. We present a
                 general path-based representation for learning from
                 programs. Our representation is purely syntactic and
                 extracted automatically. The main idea is to represent
                 a program using paths in its abstract syntax tree
                 (AST). This allows a learning model to leverage the
                 structured nature of code rather than treating it as a
                 flat sequence of tokens. We show that this
                 representation is general and can: (i) cover different
                 prediction tasks, (ii) drive different learning
                 algorithms (for both generative and discriminative
                 models), and (iii) work across different programming
                 languages. We evaluate our approach on the tasks of
                 predicting variable names, method names, and full
                 types. We use our representation to drive both
                 CRF-based and word2vec-based learning, for programs of
                 four languages: JavaScript, Java, Python and C\#. Our
                 evaluation shows that our approach obtains better
                 results than task-specific handcrafted representations
                 across different tasks and programming languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '18 proceedings.",
}

@Article{Anonymous:2018:PCC,
  author =       "Anonymous",
  title =        "\pkg{ChebTools}: {C++11} (and {Python}) tools for
                 working with {Chebyshev} expansions",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "22",
  pages =        "569:1--569:3",
  month =        feb,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1137/110838297",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00569",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "12 February 2018",
  remark =       "ERROR: The DOI in this entry resolves to a SIAM Review
                 article (v55 n2 pp375--396 January 2013).",
}

@Book{Balbaert:2018:JP,
  author =       "Ivo Balbaert",
  title =        "{Julia 1.0} Programming",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "iv + 184",
  year =         "2018",
  ISBN =         "1-78899-909-6",
  ISBN-13 =      "978-1-78899-909-0",
  LCCN =         "QA76.73.J85 2018",
  bibdate =      "Thu Apr 8 11:10:55 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://international.scholarvox.com/book/88863229",
  abstract =     "Enter the exciting world of Julia, a high-performance
                 language for technical computing Key Features Leverage
                 Julia's high speed and efficiency for your applications
                 Work with Julia in a multi-core, distributed, and
                 networked environment Apply Julia to tackle problems
                 concurrently and in a distributed environment Book
                 Description The release of Julia 1.0 is now ready to
                 change the technical world by combining the high
                 productivity and ease of use of Python and R with the
                 lightning-fast speed of C++. Julia 1.0 programming
                 gives you a head start in tackling your numerical and
                 data problems. You will begin by learning how to set up
                 a running Julia platform, before exploring its various
                 built-in types. With the help of practical examples,
                 this book walks you through two important collection
                 types: arrays and matrices. In addition to this, you
                 will be taken through how type conversions and
                 promotions work. In the course of the book, you will be
                 introduced to the homo-iconicity and metaprogramming
                 concepts in Julia. You will understand how Julia
                 provides different ways to interact with an operating
                 system, as well as other languages, and then you'll
                 discover what macros are. Once you have grasped the
                 basics, you'll study what makes Julia suitable for
                 numerical and scientific computing, and learn about the
                 features provided by Julia. By the end of this book,
                 you will also have learned how to run external
                 programs. This book covers all you need to know about
                 Julia in order to leverage its high speed and
                 efficiency for your applications. What you will learn
                 Set up your Julia environment to achieve high
                 productivity Create your own types to extend the
                 built-in type system Visualize your data in Julia with
                 plotting packages Explore the use of built-in macros
                 for testing and debugging, among other uses Apply Julia
                 to tackle problems concurrently Integrate Julia with
                 other languages such as C, Python, and MATLAB Who this
                 book is for Julia 1.0 Programming is for you if you are
                 a statistician or data scientist who wants a crash
                 course in the Julia programming language while building
                 big data applications. A basic knowledge of mathematics
                 is needed to understand the various methods that are
                 used or created during the course of the book to
                 exploit the capabilities that Julia is designed with.
                 Downloading the example code for this book You can
                 download the example code files for all Packt books you
                 have purchased from your account at
                 http://www.PacktPub.com.",
  acknowledgement = ack-nhfb,
}

@Article{Bezanson:2018:JDP,
  author =       "Jeff Bezanson and Jiahao Chen and Benjamin Chung and
                 Stefan Karpinski and Viral B. Shah and Jan Vitek and
                 Lionel Zoubritzky",
  title =        "{Julia}: dynamism and performance reconciled by
                 design",
  journal =      j-PACMPL,
  volume =       "2",
  number =       "OOPSLA",
  pages =        "120:1--120:23",
  month =        oct,
  year =         "2018",
  DOI =          "https://doi.org/10.1145/3276490",
  bibdate =      "Sat Aug 8 07:56:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3276490",
  abstract =     "Julia is a programming language for the scientific
                 community that combines features of productivity
                 languages, such as Python or MATLAB, with
                 characteristics of performance-oriented languages, such
                 as C++ or Fortran. Julia's productivity features
                 include: dynamic typing, automatic memory management,
                 rich type annotations, and multiple dispatch. At the
                 same time, Julia allows programmers to control memory
                 layout and leverages a specializing just-in-time
                 compiler to eliminate much of the overhead of those
                 features. This paper details the design choices made by
                 the creators of Julia and reflects on the implications
                 of those choices for performance and usability.",
  acknowledgement = ack-nhfb,
  articleno =    "120",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Borowka:2018:PTN,
  author =       "S. Borowka and G. Heinrich and S. Jahn and S. P. Jones
                 and M. Kerner and J. Schlenk and T. Zirke",
  title =        "{pySecDec}: a toolbox for the numerical evaluation of
                 multi-scale integrals",
  journal =      j-COMP-PHYS-COMM,
  volume =       "222",
  number =       "??",
  pages =        "313--326",
  month =        jan,
  year =         "2018",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Dec 2 17:13:54 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465517303028",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Bourbeau:2018:PPP,
  author =       "James Bourbeau and Zigfried Hampel-Arias",
  title =        "\pkg{PyUnfold}: a {Python} package for iterative
                 unfolding",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "741:1--741:3",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00741",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00741",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "04 June 2018",
  ORCID-numbers = "James Bourbeau / 0000-0003-2164-7789; Zigfried
                 Hampel-Arias / 0000-0003-0253-9117",
}

@Article{Brewer:2018:DDN,
  author =       "Brendon J. Brewer and Daniel Foreman-Mackey",
  title =        "\pkg{DNest4}: Diffusive Nested Sampling in {C++} and
                 {Python}",
  journal =      j-J-STAT-SOFT,
  volume =       "86",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "2018",
  CODEN =        "JSSOBK",
  DOI =          "https://doi.org/10.18637/jss.v86.i07",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Fri Mar 15 10:18:21 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.jstatsoft.org/index.php/jss/article/view/v086i07;
                 https://www.jstatsoft.org/index.php/jss/article/view/v086i07/v86i07.pdf",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
}

@Article{Broberg:2018:PPT,
  author =       "Danny Broberg and Bharat Medasani and Nils E. R.
                 Zimmermann and Guodong Yu and Andrew Canning and Maciej
                 Haranczyk and Mark Asta and Geoffroy Hautier",
  title =        "{PyCDT}: a {Python} toolkit for modeling point defects
                 in semiconductors and insulators",
  journal =      j-COMP-PHYS-COMM,
  volume =       "226",
  number =       "??",
  pages =        "165--179",
  month =        may,
  year =         "2018",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.01.004",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu May 31 14:32:17 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S0010465518300079",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Brown:2018:PHP,
  author =       "Ryan C. Brown and Joshua Moser",
  title =        "\pkg{HSImage}: a {Python} and {C++} library to allow
                 interaction with {ENVI-BIL} hyperspectral images",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "25",
  pages =        "630:1--630:2",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00630",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00630",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "21 May 2018",
  ORCID-numbers = "Ryan C. Brown / 0000-0002-3832-775X",
}

@Article{Brown:2018:PPP,
  author =       "Thomas Brown and Jonas H{\"o}rsch and David
                 Schlachtberger",
  title =        "\pkg{PyPSA}: {Python} for Power System Analysis",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "6",
  number =       "1",
  pages =        "4--??",
  day =          "16",
  month =        jan,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.188",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:51 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.188/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Criado:2018:MPL,
  author =       "Juan C. Criado",
  title =        "{MatchingTools}: a {Python} library for symbolic
                 effective field theory calculations",
  journal =      j-COMP-PHYS-COMM,
  volume =       "227",
  number =       "??",
  pages =        "42--50",
  month =        jun,
  year =         "2018",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.02.016",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Mar 16 13:51:08 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465518300456",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Dahlgren:2018:PCP,
  author =       "Bj{\"o}rn Dahlgren",
  title =        "\pkg{ChemPy}: a package useful for chemistry written
                 in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "24",
  pages =        "565:1--565:2",
  month =        apr,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00565",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00565",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "04 April 2018",
  ORCID-numbers = "Bj{\"o}rn Dahlgren / 0000-0003-0596-0222",
}

@Article{Dahlgren:2018:PPSa,
  author =       "Bj{\"o}rn Dahlgren",
  title =        "\pkg{pyodesys}: Straightforward numerical integration
                 of {ODE} systems from {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "21",
  pages =        "490:1--490:2",
  month =        jan,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00490",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00490",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "03 January 2018",
  ORCID-numbers = "Bj{\"o}rn Dahlgren / 0000-0003-0596-0222",
}

@Article{Dahlgren:2018:PPSb,
  author =       "Bj{\"o}rn Dahlgren",
  title =        "\pkg{pyneqsys}: Solve symbolically defined systems of
                 non-linear equations numerically",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "21",
  pages =        "531:1--531:2",
  month =        jan,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00531",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00531",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "22 January 2018",
  ORCID-numbers = "Bj{\"o}rn Dahlgren / 0000-0003-0596-0222",
}

@Article{Daloze:2018:PDL,
  author =       "Benoit Daloze and Arie Tal and Stefan Marr and
                 Hanspeter M{\"o}ssenb{\"o}ck and Erez Petrank",
  title =        "Parallelization of dynamic languages: synchronizing
                 built-in collections",
  journal =      j-PACMPL,
  volume =       "2",
  number =       "OOPSLA",
  pages =        "108:1--108:30",
  month =        oct,
  year =         "2018",
  DOI =          "https://doi.org/10.1145/3276478",
  bibdate =      "Sat Aug 8 07:56:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2010;
                 https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3276478",
  abstract =     "Dynamic programming languages such as Python and Ruby
                 are widely used, and much effort is spent on making
                 them efficient. One substantial research effort in this
                 direction is the enabling of parallel code execution.
                 While there has been significant progress, making
                 dynamic collections efficient, scalable, and
                 thread-safe is an open issue. Typical programs in
                 dynamic languages use few but versatile collection
                 types. Such collections are an important ingredient of
                 dynamic environments, but are difficult to make safe,
                 efficient, and scalable.\par

                 In this paper, we propose an approach for efficient and
                 concurrent collections by gradually increasing
                 synchronization levels according to the dynamic needs
                 of each collection instance. Collections reachable only
                 by a single thread have no synchronization, arrays
                 accessed in bounds have minimal synchronization, and
                 for the general case, we adopt the Layout Lock paradigm
                 and extend its design with a lightweight version that
                 fits the setting of dynamic languages. We apply our
                 approach to Ruby's Array and Hash collections. Our
                 experiments show that our approach has no overhead on
                 single-threaded benchmarks, scales linearly for Array
                 and Hash accesses, achieves the same scalability as
                 Fortran and Java for classic parallel algorithms, and
                 scales better than other Ruby implementations on Ruby
                 workloads",
  acknowledgement = ack-nhfb,
  articleno =    "108",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Book{Dan:2018:LJE,
  author =       "Toomey Dan",
  title =        "Learning {Jupyter 5}: explore interactive computing
                 using {Python}, {Java}, {JavaScript}, {R}, {Julia}, and
                 {JupyterLab}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "282",
  year =         "2018",
  ISBN =         "1-78913-740-3, 1-78913-744-6",
  ISBN-13 =      "978-1-78913-740-8, 978-1-78913-744-6",
  LCCN =         "Q183.9; QA76.9.I52 .T666 2018",
  bibdate =      "Fri Apr 9 05:38:17 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 1: Introduction to Jupyter \\
                 First look at Jupyter \\
                 Installing Jupyter \\
                 Notebook structure \\
                 Notebook workflow \\
                 Basic Notebook operations \\
                 File operations \\
                 Duplicate \\
                 Rename \\
                 Delete \\
                 Upload \\
                 New text file \\
                 New folder \\
                 New Python 3 \\
                 Security in Jupyter \\
                 Security digest \\
                 Trust options \\
                 Configuration options for Jupyter \\
                 Summary \\
                 2: Jupyter Python Scripting \\
                 Basic Python in Jupyter \\
                 Python data access in Jupyter \\
                 Python pandas in Jupyter \\
                 Python graphics in Jupyter \\
                 Python random numbers in Jupyter \\
                 Summary \\
                 3: Jupyter R Scripting \\
                 Adding R scripting to your installation \\
                 Adding R scripts to Jupyter on macOS \\
                 Adding R scripts to Jupyter on Windows \\
                 Adding R packages to Jupyter \\
                 R limitations in Jupyter \\
                 Basic R in Jupyter \\
                 R dataset access \\
                 R visualizations in Jupyter \\
                 R 3D graphics in Jupyter \\
                 R 3D scatterplot in Jupyter \\
                 R cluster analysis \\
                 R forecasting \\
                 R machine learning \\
                 Dataset \\
                 Summary \\
                 4: Jupyter Julia Scripting \\
                 Adding Julia scripting to your installation \\
                 Adding Julia scripts to Jupyter \\
                 Adding Julia packages to Jupyter \\
                 Basic Julia in Jupyter \\
                 Julia limitations in Jupyter \\
                 Standard Julia capabilities \\
                 Julia visualizations in Jupyter \\
                 Julia Gadfly scatterplot \\
                 Julia Gadfly histogram \\
                 Julia Winston plotting \\
                 Julia Vega plotting \\
                 Julia PyPlot plotting \\
                 Julia parallel processing \\
                 Julia control flow \\
                 Julia regular expressions \\
                 Julia unit testing \\
                 Summary \\
                 5: Jupyter Java Coding \\
                 Adding the Java kernel to your installation \\
                 Installing Java 9 or later \\
                 A Jupyter environment is required \\
                 Configuring IJava \\
                 Downloading the IJava project from GitHub \\
                 Building and installing the kernel \\
                 Available options \\
                 Jupyter Java console \\
                 Jupyter Java output \\
                 Java Optional \\
                 Java compiler errors \\
                 Java lambdas \\
                 Java Collections \\
                 Java streams \\
                 Java summary statistics \\
                 Summary \\
                 6: Jupyter JavaScript Coding \\
                 Adding JavaScript scripting to your installation \\
                 Adding JavaScript scripts to Jupyter on macOS or
                 Windows \\
                 JavaScript Hello World Jupyter Notebook \\
                 Adding JavaScript packages to Jupyter \\
                 Basic JavaScript in Jupyter \\
                 JavaScript limitations in Jupyter \\
                 Node.js d3 package \\
                 Node.js stats-analysis package \\
                 Node.js JSON handling \\
                 Node.js canvas package \\
                 Node.js plotly package \\
                 Node.js asynchronous threadsNode.js decision-tree
                 package \\
                 Summary \\
                 7: Jupyter Scala \\
                 Installing the Scala kernel \\
                 Scala data access in Jupyter \\
                 Scala array operations \\
                 Scala random numbers in Jupyter \\
                 Scala closures \\
                 Scala higher-order functions \\
                 Scala pattern matching \\
                 Scala case classes \\
                 Scala immutability \\
                 Scala collections \\
                 Named arguments \\
                 Scala traits \\
                 Summary \\
                 8: Jupyter and Big Data \\
                 Apache Spark \\
                 Installing Spark on macOS \\
                 Windows install \\
                 First Spark script \\
                 Spark word count \\
                 Sorted word count \\
                 Estimate pi \\
                 Log file examination \\
                 Spark primes \\
                 Spark text file analysis",
}

@Book{Daniel:2018:SG,
  author =       "John Leon Daniel",
  title =        "Security with {Go}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  year =         "2018",
  ISBN =         "1-78862-791-1",
  ISBN-13 =      "978-1-78862-791-7",
  LCCN =         "QA76.585 .L466 2018; QA76.59",
  bibdate =      "Thu Apr 22 10:33:25 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/go.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "The first stop for your security needs when using Go,
                 covering host, network, and cloud security for ethical
                 hackers and defense against intrusion About This Book
                 First introduction to Security with Golang Adopting a
                 Blue Team/Red Team approach Take advantage of speed and
                 inherent safety of Golang Works as an introduction to
                 security for Golang developers Works as a guide to
                 Golang security packages for recent Golang beginners
                 Who This Book Is For Security with Go is aimed at
                 developers with basics in Go to the level that they can
                 write their own scripts and small programs without
                 difficulty. Readers should be familiar with security
                 concepts, and familiarity with Python security
                 applications and libraries is an advantage, but not a
                 necessity. What You Will Learn Learn the basic concepts
                 and principles of secure programming Write secure
                 Golang programs and applications Understand classic
                 patterns of attack Write Golang scripts to defend
                 against network-level attacks Learn how to use Golang
                 security packages Apply and explore cryptographic
                 methods and packages Learn the art of defending against
                 brute force attacks Secure web and cloud applications
                 In Detail Go is becoming more and more popular as a
                 language for security experts. Its wide use in server
                 and cloud environments, its speed and ease of use, and
                 its evident capabilities for data analysis, have made
                 it a prime choice for developers who need to think
                 about security. Security with Go is the first Golang
                 security book, and it is useful for both blue team and
                 red team applications. With this book, you will learn
                 how to write secure software, monitor your systems,
                 secure your data, attack systems, and extract
                 information. Defensive topics include cryptography,
                 forensics, packet capturing, and building secure web
                 applications. Offensive topics include brute force,
                 port scanning, packet injection, web scraping, social
                 engineering, and post exploitation techniques. Style
                 and approach John Leon has divided the book into two
                 parts which present the team playing defense against
                 anyone breaking into servers and the team playing
                 (ethical!) offense to perform said attacks. All Go
                 scripts and programs are workable solutions that can be
                 easily understood and expanded upon by anyone with a
                 system administrator's level view of networking and
                 cloud-based systems. Golang developers will profit from
                 a swift and incisive approach to security. Downloading
                 the example code for this book You can download the ex
                 .",
  acknowledgement = ack-nhfb,
  remark =       "Title from content provider.",
  subject =      "Information technology; Security measures; Computer
                 security; Management; Computer networks; Data
                 protection; Security measures; Management; Data
                 protection.",
  tableofcontents = "Preface \\
                 1: Introduction to Security with Go \\
                 About Go \\
                 Go language design \\
                 The History of Go \\
                 Adoption and community \\
                 Common criticisms about Go \\
                 The Go toolchain \\
                 Go mascot \\
                 Learning Go \\
                 Why use Go? \\
                 Why use Go for security? \\
                 Why not use Python? \\
                 Why not use Java? \\
                 Why not use C++? \\
                 Development environment \\
                 Installing Go on other platforms \\
                 Other Linux distributions \\
                 Windows \\
                 Mac \\
                 Setting up Go \\
                 Creating your workspace \\
                 Setting up environment variables \\
                 Editors \\
                 Creating your first package \\
                 Writing your first program \\
                 Running the executable file \\
                 Building the executable file \\
                 Installing the executable file \\
                 Formatting with go fmt \\
                 Running Go examples \\
                 Building a single Go file \\
                 Running a single Go file \\
                 Building multiple Go files \\
                 Building a folder (package) \\
                 Installing a program for use \\
                 Summary \\
                 2: The Go Programming Language \\
                 Go language specification \\
                 The Go playground \\
                 A tour of Go \\
                 Keywords \\
                 Notes about source code \\
                 Comments \\
                 Types \\
                 Boolean \\
                 Numeric \\
                 Generic numbers \\
                 Specific numbers \\
                 Unsigned integers \\
                 Signed integers \\
                 Floating point numbers \\
                 Other numeric types \\
                 String \\
                 Array \\
                 Slice \\
                 Struct \\
                 Pointer \\
                 Function \\
                 Interface \\
                 Map \\
                 Channel \\
                 Control structures \\
                 if \\
                 for \\
                 range \\
                 switch, case, fallthrough, and default \\
                 goto \\
                 Defer \\
                 Packages \\
                 Classes \\
                 Inheritance \\
                 Polymorphism \\
                 Constructors \\
                 Methods \\
                 Operator overloading \\
                 Goroutines \\
                 Getting help and documentation \\
                 Online Go documentation \\
                 Offline Go documentation \\
                 Summary \\
                 3: Working with Files \\
                 File basics \\
                 Creating an empty file \\
                 Truncating a file \\
                 Getting the file info \\
                 Renaming a file \\
                 Deleting a file \\
                 Opening and closing files \\
                 Checking whether a file exists \\
                 Checking read and write permissions \\
                 Changing permissions, ownership, and timestamps \\
                 Hard links and symlinks \\
                 Reading and writing \\
                 Copying a file \\
                 Seeking positions in a file \\
                 Writing bytes to a file \\
                 Quickly writing to a file \\
                 Buffered writer \\
                 Reading up to n bytes from a file \\
                 Reading exactly n bytes \\
                 Reading at least n bytes \\
                 Reading all bytes of a file \\
                 Quickly reading whole files to memory \\
                 Buffered reader \\
                 Reading with a scanner \\
                 Archives \\
                 Archive (ZIP) files \\
                 Extracting (unzip) archived files \\
                 Compression \\
                 Compressing a file \\
                 Uncompressing a File \\
                 Creating temporary files and directories \\
                 Downloading a file over HTTP \\
                 Summary \\
                 4: Forensics \\
                 Files \\
                 Getting file information \\
                 Finding the largest files \\
                 Finding recently modified files \\
                 Reading the boot sector \\
                 Steganography \\
                 Generating an image with random noise \\
                 Creating a ZIP archive \\
                 Creating a steganographic image archive \\
                 Detecting a ZIP archive in a JPEG image \\
                 Network \\
                 Looking up a hostname from an IP address \\
                 Looking up IP addresses from a hostname \\
                 Looking up MX records \\
                 Looking up nameservers for a hostname \\
                 Summary \\
                 5: Packet Capturing and Injection \\
                 Prerequisites \\
                 Installing libpcap and Git \\
                 Installing libpcap on Ubuntu \\
                 Installing libpcap on Windows \\
                 Installing libpcap on macOS \\
                 Installing gopacket \\
                 Permission problems \\
                 Getting a list of network devices \\
                 Capturing packets \\
                 Capturing with filters \\
                 Saving to the pcap file \\
                 Reading from a pcap file \\
                 Decoding packet layers \\
                 Creating a custom layer \\
                 Converting bytes to and from packets \\
                 Creating and sending packets \\
                 Decoding packets faster \\
                 Summary \\
                 6: Cryptography \\
                 Hashing \\
                 Hashing small files \\
                 Hashing large files \\
                 Storing passwords securely \\
                 Encryption \\
                 Cryptographically secure pseudo-random number generator
                 (CSPRNG) \\
                 Symmetric encryption \\
                 AES \\
                 Asymmetric encryption \\
                 Generating a public and private key pair \\
                 Digitally signing a message \\
                 Verifying a signature \\
                 TLS \\
                 Generating a self-signed certificate \\
                 Creating a certificate signing request \\
                 Signing a certificate request \\
                 TLS server \\
                 TLS client \\
                 Other encryption packages \\
                 OpenPGP \\
                 Off The Record (OTR) messaging \\
                 Summary \\
                 7: Secure Shell (SSH) \\
                 Using the Go SSH client \\
                 Authentication methods \\
                 Authenticating with a password \\
                 Authenticating with private key \\
                 Verifying remote host \\
                 Executing a command over SSH \\
                 Starting an interactive shell \\
                 Summary \\
                 8: Brute Force \\
                 Brute forcing HTTP basic authentication \\
                 Brute forcing the HTML login form \\
                 Brute forcing SSH \\
                 Brute forcing database login \\
                 Summary \\
                 9: Web Applications \\
                 HTTP server \\
                 Simple HTTP servers \\
                 HTTP basic auth \\
                 Using HTTPS \\
                 Creating secure cookies \\
                 HTML escaping output \\
                 Middleware with Negroni \\
                 Logging requests \\
                 Adding secure HTTP headers \\
                 Serving static files \\
                 Other best practices \\
                 CSRF tokens \\
                 Preventing user enumeration and abuse \\
                 Registration \\
                 Login \\
                 Resetting the password \\
                 User profiles \\
                 Preventing LFI and RFI abuse \\
                 Contaminated files \\
                 HTTP client \\
                 The basic HTTP request \\
                 Using the client SSL certificate \\
                 Using a proxy \\
                 Using system proxy \\
                 Using a specific HTTP proxy \\
                 Using a SOCKS5 proxy (Tor) \\
                 Summary \\
                 10: Web Scraping \\
                 Web scraping fundamentals \\
                 Finding strings in HTTP responses with the strings
                 package \\
                 Using regular expressions to find email addresses in a
                 page \\
                 Extracting HTTP headers from an HTTP response \\
                 Setting cookies with an HTTP client \\
                 Finding HTML comments in a web page \\
                 Finding unlisted files on a web server \\
                 Changing the user agent of a request \\
                 Fingerprinting web application technology stacks \\
                 Fingerprinting based on HTTP response headers \\
                 Fingerprinting web applications \\
                 How to prevent fingerprinting of your applications \\
                 Using the goquery package for web scraping \\
                 Listing all hyperlinks in a page \\
                 Finding documents in a web page \\
                 Listing page title and headings \\
                 Crawling pages on the site that store the most common
                 words \\
                 Printing a list of external JavaScript files in a page
                 \\
                 Depth-first crawling \\
                 Breadth-first crawling \\
                 How to protect against web scraping \\
                 Summary \\
                 11: Host Discovery and Enumeration \\
                 TCP and UDP sockets \\
                 Creating a server \\
                 Creating a client \\
                 Port scanning \\
                 Grabbing a banner from a service \\
                 Creating a TCP proxy \\
                 Finding named hosts on a network \\
                 Fuzzing a network service \\
                 Summary \\
                 12: Social Engineering \\
                 Gathering intel via JSON REST API \\
                 Sending phishing emails with SMTP \\
                 Generating QR codes \\
                 Base64 encoding data \\
                 Honeypots \\
                 TCP honeypot \\
                 The TCP testing tool \\
                 HTTP POST form login honeypot \\
                 HTTP form field honeypots \\
                 Sandboxing \\
                 Summary \\
                 13: Post Exploitation \\
                 Cross compiling \\
                 Creating bind shells \\
                 Creating reverse bind shells \\
                 Creating web shells \\
                 Finding writable files \\
                 Changing file timestamp \\
                 Changing file permissions \\
                 Changing file ownership \\
                 Summary \\
                 14: Conclusions \\
                 Recapping the topics you have learned \\
                 More thoughts on the usage of Go \\
                 What I hope you take away from the book \\
                 Be aware of legal, ethical, and technical boundaries
                 \\
                 Where to go from here \\
                 Getting help and learning more \\
                 Another Book You May Enjoy \\
                 Leave a review \\
                 let other readers know what you think \\
                 Index",
}

@Article{Demidov:2018:UPP,
  author =       "Alexander G. Demidov and Michael E. Fortunato and
                 Coray M. Colina",
  title =        "Update 0.2 to {``\pkg{pysimm}: a Python package for
                 simulation of molecular systems''}",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "63--69",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.02.006",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  note =         "See \cite{Fortunato:2017:PPP}.",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018300141",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Demo:2018:PPP,
  author =       "Nicola Demo and Marco Tezzele and Gianluigi Rozza",
  title =        "\pkg{PyDMD}: {Python Dynamic Mode Decomposition}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "22",
  pages =        "530:1--530:3",
  month =        feb,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00530",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00530",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "12 February 2018",
  ORCID-numbers = "Nicola Demo / 0000-0003-3107-9738; Marco Tezzele /
                 0000-0001-9747-6328; Gianluigi Rozza /
                 0000-0002-0810-8812",
}

@Article{Fasnacht:2018:PMP,
  author =       "Laurent Fasnacht",
  title =        "\pkg{mmappickle}: {Python 3} module to store
                 memory-mapped \pkg{numpy} array in \pkg{pickle}
                 format",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "651:1--651:2",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00651",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00651",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "18 June 2018",
  ORCID-numbers = "Laurent Fasnacht / 0000-0002-9853-8209",
}

@Article{Fleming:2018:PAA,
  author =       "David P. Fleming and Jake VanderPlas",
  title =        "\pkg{approxposterior}: Approximate Posterior
                 Distributions in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "29",
  pages =        "781:1--781:2",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00781",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00781",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "04 September 2018",
  ORCID-numbers = "David P. Fleming / 0000-0001-9293-4043; Jake
                 VanderPlas / 0000-0002-9623-3401",
}

@Article{Gagunashvili:2018:CCG,
  author =       "Nikolay D. Gagunashvili and Helgi Halldorsson",
  title =        "{CHIWEI}: a code of goodness of fit tests for weighted
                 and unweighted histograms in {Fortran-77}, {C++}, {R}
                 and {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "231",
  number =       "??",
  pages =        "245--245",
  month =        oct,
  year =         "2018",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.04.028",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Jun 14 14:22:45 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465518301449",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Gieseke:2018:PPP,
  author =       "Robert Gieseke and Sven N. Willner and Matthias
                 Mengel",
  title =        "\pkg{Pymagicc}: a {Python} wrapper for the simple
                 climate model {MAGICC}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "22",
  pages =        "516:1--516:3",
  month =        feb,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00516",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00516",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "04 February 2018",
  ORCID-numbers = "Robert Gieseke / 0000-0002-1236-5109; Sven N. Willner
                 / 0000-0001-6798-6247; Matthias Mengel /
                 0000-0001-6724-9685",
}

@Article{Gins:2018:ACD,
  author =       "W. Gins and R. P. de Groote and M. L. Bissell and C.
                 Granados Buitrago and R. Ferrer and K. M. Lynch and G.
                 Neyens and S. Sels",
  title =        "Analysis of counting data: Development of the {SATLAS}
                 {Python} package",
  journal =      j-COMP-PHYS-COMM,
  volume =       "222",
  number =       "??",
  pages =        "286--294",
  month =        jan,
  year =         "2018",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Dec 2 17:13:54 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465517302990",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Gladstein:2018:SPF,
  author =       "Ariella L. Gladstein and Consuelo D. Quinto-Cort{\'e}s
                 and Julian L. Pistorius and David Christy and Logan
                 Gantner and Blake L. Joyce",
  title =        "{SimPrily}: a {Python} framework to simplify
                 high-throughput genomic simulations",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "335--340",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.09.003",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:41 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301213",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Goldbaum:2018:PUH,
  author =       "Nathan J. Goldbaum and John A. ZuHone and Matthew J.
                 Turk and Kacper Kowalik and Anna L. Rosen",
  title =        "\pkg{unyt}: Handle, manipulate, and convert data with
                 units in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "809:1--809:11",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00809",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00809",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "14 August 2018",
  ORCID-numbers = "Nathan J. Goldbaum / 0000-0001-5557-267X; John A.
                 ZuHone / 0000-0003-3175-2347; Matthew J. Turk /
                 0000-0002-5294-0198; Kacper Kowalik /
                 0000-0003-1709-3744; Anna L. Rosen /
                 0000-0003-4423-0660",
}

@Article{Goyal:2018:PGP,
  author =       "Palash Goyal and Emilio Ferrara",
  title =        "\pkg{GEM}: a {Python} package for graph embedding
                 methods",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "29",
  pages =        "876:1--876:2",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00876",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00876",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "01 September 2018",
  ORCID-numbers = "Palash Goyal / 0000-0003-2455-2160; Emilio Ferrara /
                 0000-0002-1942-2831",
}

@Article{Grady:2018:PPP,
  author =       "Maxwell Grady and Zhongwei Dai and Karsten Pohl",
  title =        "\pkg{PLEASE}: The {Python Low-energy Electron Analysis
                 SuitE} --- Enabling Rapid Analysis of {LEEM} and {LEED}
                 Data",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "6",
  number =       "1",
  pages =        "7--??",
  day =          "05",
  month =        feb,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.191",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:51 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.191/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Gray:2018:PQP,
  author =       "Johnnie Gray",
  title =        "\pkg{quimb}: a python package for quantum information
                 and many-body calculations",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "29",
  pages =        "819:1--819:3",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00819",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00819",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "04 September 2018",
  ORCID-numbers = "Johnnie Gray / 0000-0001-9461-3024",
}

@Article{Green:2018:PDP,
  author =       "Gregory M. Green",
  title =        "\pkg{dustmaps}: a {Python} interface for maps of
                 interstellar dust",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "695:1--695:2",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00695",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00695",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "27 June 2018",
  ORCID-numbers = "Gregory M. Green / 0000-0001-5417-2260",
}

@Article{Guelton:2018:PCP,
  author =       "Serge Guelton",
  title =        "{Pythran}: Crossing the {Python} Frontier",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "20",
  number =       "2",
  pages =        "83--89",
  month =        "????",
  year =         "2018",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2018.021651342",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Sep 6 07:03:30 MDT 2018",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2018/02/c2toc.htm;
                 https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://ieeexplore.ieee.org/document/8317992/",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Haghighi:2018:PPM,
  author =       "Sepand Haghighi and Masoomeh Jasemi and Shaahin
                 Hessabi and Alireza Zolanvari",
  title =        "\pkg{PyCM}: Multiclass confusion matrix library in
                 {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "25",
  pages =        "729:1--729:2",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00729",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00729",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "28 May 2018",
  ORCID-numbers = "Sepand Haghighi / 0000-0001-9450-2375; Masoomeh
                 Jasemi / 0000-0002-4831-1698; Shaahin Hessabi /
                 0000-0003-3193-2567; Alireza Zolanvari /
                 0000-0003-2367-8343",
}

@Article{Handley:2018:PFP,
  author =       "Will Handley",
  title =        "\pkg{fgivenx}: a {Python} package for functional
                 posterior plotting",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "849:1--849:4",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00849",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00849",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "28 August 2018",
  ORCID-numbers = "Will Handley / 0000-0002-5866-0445",
}

@Article{Holmgren:2018:PPP,
  author =       "William F. Holmgren and Clifford W. Hansen and Mark A.
                 Mikofski",
  title =        "\pkg{pvlib python}: a python package for modeling
                 solar energy systems",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "29",
  pages =        "884:1--884:3",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00884",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00884",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "07 September 2018",
  ORCID-numbers = "William F. Holmgren / 0000-0001-6218-9767; Clifford
                 W. Hansen / 0000-0002-8620-5378; Mark A. Mikofski /
                 0000-0001-8001-8582",
}

@Article{Huang:2018:ROO,
  author =       "Wen Huang and P.-A. Absil and Kyle A. Gallivan and
                 Paul Hand",
  title =        "{ROPTLIB}: an Object-Oriented {C++} Library for
                 Optimization on {Riemannian} Manifolds",
  journal =      j-TOMS,
  volume =       "44",
  number =       "4",
  pages =        "43:1--43:21",
  month =        aug,
  year =         "2018",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3218822",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Fri Oct 5 11:23:13 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=3218822",
  abstract =     "Riemannian optimization is the task of finding an
                 optimum of a real-valued function defined on a
                 Riemannian manifold. Riemannian optimization has been a
                 topic of much interest over the past few years due to
                 many applications including computer vision, signal
                 processing, and numerical linear algebra. The
                 substantial background required to successfully design
                 and apply Riemannian optimization algorithms is a
                 significant impediment for many potential users.
                 Therefore, multiple packages, such as Manopt (in
                 Matlab) and Pymanopt (in Python), have been developed.
                 This article describes ROPTLIB, a C++ library for
                 Riemannian optimization. Unlike prior packages, ROPTLIB
                 simultaneously achieves the following goals: (i) it has
                 user-friendly interfaces in Matlab, Julia, and C++;
                 (ii) users do not need to implement manifold- and
                 algorithm-related objects; (iii) it provides efficient
                 computational time due to its C++ core; (iv) it
                 implements state-of-the-art generic Riemannian
                 optimization algorithms, including quasi-Newton
                 algorithms; and (v) it is based on object-oriented
                 programming, allowing users to rapidly add new
                 algorithms and manifolds.",
  acknowledgement = ack-nhfb,
  articleno =    "43",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Hucka:2018:PNN,
  author =       "Michael Hucka",
  title =        "\pkg{Nostril}: a nonsense string evaluator written in
                 {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "25",
  pages =        "596:1--596:2",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00596",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00596",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "11 May 2018",
  ORCID-numbers = "Michael Hucka / 0000-0001-9105-5960",
}

@Article{Hughes:2018:PMP,
  author =       "Momar G-O Hughes",
  title =        "\pkg{MCycle}: a {Python} package for {$1$D} sizing and
                 analysis of thermodynamic power cycles",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "710:1--710:2",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00710",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00710",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "02 August 2018",
  ORCID-numbers = "Momar G-O Hughes / 0000-0002-6928-2187",
}

@Article{Hwang:2018:CAC,
  author =       "John T. Hwang and Joaquim R. R. A. Martins",
  title =        "A Computational Architecture for Coupling
                 Heterogeneous Numerical Models and Computing Coupled
                 Derivatives",
  journal =      j-TOMS,
  volume =       "44",
  number =       "4",
  pages =        "37:1--37:39",
  month =        aug,
  year =         "2018",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3182393",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Fri Oct 5 11:23:13 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=3182393",
  abstract =     "One of the challenges in computational modeling is
                 coupling models to solve multidisciplinary problems.
                 Flow-based computational frameworks alleviate part of
                 the challenge through a modular approach, where data
                 flows from component to component. However, existing
                 flow-based frameworks are inefficient when coupled
                 derivatives are needed for optimization. To address
                 this, we develop the modular analysis and unified
                 derivatives (MAUD) architecture. MAUD formulates the
                 multidisciplinary model as a nonlinear system of
                 equations, which leads to a linear equation that
                 unifies all methods for computing derivatives. This
                 enables flow-based frameworks that use the MAUD
                 architecture to provide a common interface for the
                 chain rule, adjoint method, coupled adjoint method, and
                 hybrid methods; MAUD automatically uses the appropriate
                 method for the problem. A hierarchical, matrix-free
                 approach enables modern solution techniques such as
                 Newton--Krylov solvers to be used within this
                 monolithic formulation without computational overhead.
                 Two demonstration problems are solved using a Python
                 implementation of MAUD: a nanosatellite optimization
                 with more than 2 million unknowns and 25,000 design
                 variables, and an aircraft optimization involving over
                 6,000 design variables and 23,000 constraints. MAUD is
                 now implemented in the open source framework OpenMDAO,
                 which has been used to solve aircraft, satellite, wind
                 turbine, and turbofan engine design problems.",
  acknowledgement = ack-nhfb,
  articleno =    "37",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Izzo:2018:VMT,
  author =       "Richard Izzo and David Steinman and Simone Manini and
                 Luca Antiga",
  title =        "The Vascular Modeling Toolkit: a {Python} Library for
                 the Analysis of Tubular Structures in Medical Images",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "25",
  pages =        "745:1--745:5",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00745",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00745",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "26 May 2018",
  ORCID-numbers = "Richard Izzo / 0000-0002-0811-6513; David Steinman /
                 0000-0002-7963-1168; Simone Manini /
                 0000-0003-4350-659X; Luca Antiga /
                 0000-0002-8367-227X",
}

@Article{James:2018:PDP,
  author =       "Ryan G. James and Christopher J. Ellison and James P.
                 Crutchfield",
  title =        "\pkg{dit}: a {Python} package for discrete information
                 theory",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "25",
  pages =        "738:1--738:3",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00738",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00738",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "31 May 2018",
  ORCID-numbers = "Ryan G. James / 0000-0003-2149-9085",
}

@Article{Kemmer:2018:NJE,
  author =       "Thomas Kemmer and Sergej Rjasanow and Andreas
                 Hildebrandt",
  title =        "\pkg{NESSie.jl} --- Efficient and intuitive finite
                 element and boundary element methods for nonlocal
                 protein electrostatics in the {Julia} language",
  journal =      j-J-COMPUT-SCI,
  volume =       "28",
  pages =        "193--203",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2018.08.008",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Fri Apr 9 15:22:25 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S187775031730738X",
  abstract =     "The development of scientific software can be
                 generally characterized by an initial phase of rapid
                 prototyping and the subsequent transition to
                 computationally efficient production code.
                 Unfortunately, most programming languages are not
                 well-suited for both tasks at the same time, commonly
                 resulting in a considerable extension of the
                 development time. The cross-platform and open-source
                 Julia language aims at closing the gap between
                 prototype and production code by providing a usability
                 comparable to Python or MATLAB alongside
                 high-performance capabilities known from C and C++ in a
                 single programming language. In this paper, we present
                 efficient protein electrostatics computations as a
                 showcase example for Julia. More specifically, we
                 present both finite element and boundary element
                 solvers for computing electrostatic potentials of
                 proteins in structured solvents. By modeling the latter
                 in an implicit but nonlocal fashion, we account for
                 correlation of molecular polarization due to the
                 solvent structure around the solute and sustain
                 accuracy without suffering from infeasible runtimes as
                 compared to the explicit case. In this context, we show
                 that our implementation is on par with optimized C code
                 and highlight the components of the implementation that
                 can be transferred to more general tasks.",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
  keywords =     "Protein electrostatics, Finite element method,
                 Boundary element method, Julia language",
}

@Article{Kemmer:2018:PNJ,
  author =       "Thomas Kemmer and Sergej Rjasanow and Andreas
                 Hildebrandt",
  title =        "\pkg{NESSie.jl}: Efficient and intuitive finite
                 element and boundary element methods for nonlocal
                 protein electrostatics in the {Julia} language",
  journal =      "Journal of Computational Science",
  volume =       "28",
  pages =        "193--203",
  year =         "2018",
  DOI =          "https://doi.org/10.1016/j.jocs.2018.08.008",
  ISSN =         "1877-7503",
  bibdate =      "Fri Apr 9 15:22:25 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S187775031730738X",
  abstract =     "The development of scientific software can be
                 generally characterized by an initial phase of rapid
                 prototyping and the subsequent transition to
                 computationally efficient production code.
                 Unfortunately, most programming languages are not
                 well-suited for both tasks at the same time, commonly
                 resulting in a considerable extension of the
                 development time. The cross-platform and open-source
                 Julia language aims at closing the gap between
                 prototype and production code by providing a usability
                 comparable to Python or MATLAB alongside
                 high-performance capabilities known from C and C++ in a
                 single programming language. In this paper, we present
                 efficient protein electrostatics computations as a
                 showcase example for Julia. More specifically, we
                 present both finite element and boundary element
                 solvers for computing electrostatic potentials of
                 proteins in structured solvents. By modeling the latter
                 in an implicit but nonlocal fashion, we account for
                 correlation of molecular polarization due to the
                 solvent structure around the solute and sustain
                 accuracy without suffering from infeasible runtimes as
                 compared to the explicit case. In this context, we show
                 that our implementation is on par with optimized C code
                 and highlight the components of the implementation that
                 can be transferred to more general tasks.",
  acknowledgement = ack-nhfb,
  keywords =     "Protein electrostatics, Finite element method,
                 Boundary element method, Julia language",
}

@Article{Konda:2018:TPT,
  author =       "Pradap Konda and Sanjib Das and Paul Suganthan G. C.
                 and Philip Martinkus and Adel Ardalan and Jeffrey R.
                 Ballard and Yash Govind and Han Li and Fatemah Panahi
                 and Haojun Zhang and Jeff Naughton and Shishir Prasad
                 and Ganesh Krishnan and Rohit Deep and Vijay
                 Raghavendra",
  title =        "Technical Perspective: Toward Building Entity Matching
                 Management Systems",
  journal =      j-SIGMOD,
  volume =       "47",
  number =       "1",
  pages =        "33--40",
  month =        mar,
  year =         "2018",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/3277006.3277015",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Sep 10 17:03:25 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib",
  abstract =     "Entity matching (EM) has been a long-standing
                 challenge in data management. Most current EM works
                 focus only on developing matching algorithms. We argue
                 that far more efforts should be devoted to building EM
                 systems. We discuss the limitations of current EM
                 systems, then describe Magellan, a new kind of EM
                 system. Magellan is novel in four important aspects.
                 (1) It provides how-to guides that tell users what to
                 do in each EM scenario, step by step. (2) It provides
                 tools to help users execute these steps; the tools seek
                 to cover the entire EM pipeline, not just blocking and
                 matching as current EM systems do. (3) Tools are built
                 into the Python open-source data science ecosystem,
                 allowing Magellan to borrow a rich set of capabilities
                 in data cleaning, IE, visualization, learning, etc. (4)
                 Magellan provides a powerful scripting environment to
                 facilitate interactive experimentation and quick
                 ``patching'' of the system. We describe research
                 challenges and present extensive experiments that show
                 the promise of the Magellan approach.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Krebber:2018:PMP,
  author =       "Manuel Krebber and Henrik Barthels",
  title =        "\pkg{MatchPy}: Pattern Matching in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "670:1--670:2",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00670",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00670",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "21 June 2018",
  ORCID-numbers = "Manuel Krebber / 0000-0001-5038-1102; Henrik Barthels
                 / 0000-0001-6744-3605",
}

@Article{Kundu:2018:PPA,
  author =       "Sudipta Kundu and Satadeep Bhattacharjee and
                 Seung-Cheol Lee and Manish Jain",
  title =        "{PASTA}: {Python Algorithms for Searching Transition
                 stAtes}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "233",
  number =       "??",
  pages =        "261--268",
  month =        dec,
  year =         "2018",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.06.026",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Sep 26 14:45:20 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465518302583",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Laura:2018:APL,
  author =       "Jason Laura and Kelvin Rodriguez and Adam C. Paquette
                 and Evin Dunn",
  title =        "\pkg{AutoCNet}: a {Python} library for sparse
                 multi-image correspondence identification for planetary
                 data",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "34--36",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.02.001",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271101830013X",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Li:2018:PTP,
  author =       "Xinya Li and Chris R. Vernon and Mohamad I. Hejazi and
                 Robert P. Link and Zhongwei Huang and Lu Liu and Leyang
                 Feng",
  title =        "\pkg{Tethys} --- A {Python} Package for Spatial and
                 Temporal Downscaling of Global Water Withdrawals",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "6",
  number =       "1",
  pages =        "9--??",
  day =          "09",
  month =        feb,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.197",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Sat Sep 8 10:03:51 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.197/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Liu:2018:PPB,
  author =       "Benyuan Liu and Bin Yang and Canhua Xu and Junying Xia
                 and Meng Dai and Zhenyu Ji and Fusheng You and Xiuzhen
                 Dong and Xuetao Shi and Feng Fu",
  title =        "\pkg{pyEIT}: a python based framework for {Electrical
                 Impedance Tomography}",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "304--308",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.09.005",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:41 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301407",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@InProceedings{Malakhov:2018:CMT,
  author =       "Anton Malakhov and David Liu and Anton Gorshkov and
                 Terry Wilmarth",
  editor =       "Fatih Akici and David Lippa and Dillon Niederhut and M
                 Pacer",
  booktitle =    "Proceedings of the {17th Python in Science Conference,
                 Austin, TX, 9--15 July 2018}",
  title =        "Composable Multi-Threading and Multi-Processing for
                 Numeric Libraries",
  publisher =    "????",
  address =      "????",
  pages =        "15--21",
  year =         "2018",
  bibdate =      "Wed Aug 1 09:03:36 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://conference.scipy.org/proceedings/scipy2018/anton_malakhov.html",
  abstract =     "Python is popular among scientific communities that
                 value its simplicity and power, especially as it comes
                 along with numeric libraries such as NumPy, SciPy,
                 Dask, and Numba. As CPU core counts keep increasing,
                 these modules can make use of many cores via
                 multi-threading for efficient multi-core parallelism.
                 However, threads can interfere with each other leading
                 to overhead and inefficiency if used together in a
                 single application on machines with a large number of
                 cores. This performance loss can be prevented if all
                 multi-threaded modules are coordinated. This paper
                 continues the work started in AMala16 by introducing
                 more approaches to coordination for both
                 multi-threading and multi-processing cases. In
                 particular, we investigate the use of static settings,
                 limiting the number of simultaneously active OpenMP
                 parallel regions, and optional parallelism with Intel
                 Threading Building Blocks (Intel TBB). We will show how
                 these approaches help to unlock additional performance
                 for numeric applications on multi-core systems.",
  acknowledgement = ack-nhfb,
  keywords =     "Dask; GIL; Joblib; Multi-core; Multi-processing;
                 Multi-threading; Nested Parallelism; NumPy; OpenMP;
                 Oversubscription; Parallel Computations; Python; SciPy;
                 TBB",
}

@Article{Marowka:2018:PAH,
  author =       "Ami Marowka",
  title =        "{Python} accelerators for high-performance computing",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "74",
  number =       "4",
  pages =        "1449--1460",
  month =        apr,
  year =         "2018",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-017-2213-5",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Thu Oct 10 15:31:11 MDT 2019",
  bibsource =    "http://link.springer.com/journal/11227/74/4;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{McCubbine:2018:GPC,
  author =       "Jack McCubbine and Fabio Caratori Tontini and Vaughan
                 Stagpoole and Euan Smith and Grant O'Brien",
  title =        "\pkg{Gsolve}, a {Python} computer program with a
                 graphical user interface to transform relative gravity
                 survey measurements to absolute gravity values and
                 gravity anomalies",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "122--128",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.04.003",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018300566",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Book{McNicholas:2018:DSJ,
  author =       "Paul D. McNicholas and Peter A. Tait",
  title =        "Data Science with {Julia}",
  publisher =    "Taylor and Francis, CRC Press",
  address =      "Boca Raton, FL, USA",
  pages =        "241",
  year =         "2018",
  DOI =          "https://doi.org/10.1201/9781351013673",
  ISBN =         "1-138-49998-6 (paperback), 1-351-01364-5 (e-book:
                 Mobipocket), 1-351-01365-3 (e-book), 1-351-01366-1
                 (e-book: PDF), 1-351-01367-X (e-book)",
  ISBN-13 =      "978-1-138-49998-0 (paperback), 978-1-351-01364-2
                 (e-book: Mobipocket), 978-1-351-01365-9 (e-book),
                 978-1-351-01366-6 (e-book: PDF), 978-1-351-01367-3
                 (e-book)",
  LCCN =         "QA76.73.J85 M37 2018",
  bibdate =      "Sat Sep 7 07:35:13 MDT 2019",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "``This book is a great way to both start learning data
                 science through the promising Julia language and to
                 become an efficient data scientist.''- Professor
                 Charles Bouveyron, INRIA Chair in Data Science,
                 Universitae Caote d'Azur, Nice, France. Julia, an
                 open-source programming language, was created to be as
                 easy to use as languages such as R and Python while
                 also as fast as C and Fortran. An accessible,
                 intuitive, and highly efficient base language with
                 speed that exceeds R and Python, makes Julia a
                 formidable language for data science. Using well known
                 data science methods that will motivate the reader,
                 Data Science with Julia will get readers up to speed on
                 key features of the Julia language and illustrate its
                 facilities for data science and machine learning work.
                 Features: Covers the core components of Julia as well
                 as packages relevant to the input, manipulation and
                 representation of data. Discusses several important
                 topics in data science including supervised and
                 unsupervised learning. Reviews data visualization using
                 the Gadfly package, which was designed to emulate the
                 very popular ggplot2 package in R. Readers will learn
                 how to make many common plots and how to visualize
                 model results. Presents how to optimize Julia code for
                 performance. Will be an ideal source for people who
                 already know R and want to learn how to use Julia
                 (though no previous knowledge of R or any other
                 programming language is required). The advantages of
                 Julia for data science cannot be understated. Besides
                 speed and ease of use, there are already over 1,900
                 packages available and Julia can interface (either
                 directly or through packages) with libraries written in
                 R, Python, Matlab, C, C++ or Fortran. The book is for
                 senior undergraduates, beginning graduate students, or
                 practicing data scientists who want to learn how to use
                 Julia for data science.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Data structures
                 (Computer science); COMPUTERS / Data Modeling and
                 Design.; BUSINESS and ECONOMICS / Statistics;
                 MATHEMATICS / Probability and Statistics / General;
                 Data structures (Computer science); Julia (Computer
                 program language)",
  tableofcontents = "Cover \\
                 Half Title \\
                 Title Page \\
                 Copyright Page \\
                 Dedication \\
                 Table of Contents \\
                 Foreword \\
                 Preface \\
                 About the Authors \\
                 1: Introduction \\
                 1.1 DATA SCIENCE \\
                 1.2 BIG DATA \\
                 1.3 JULIA \\
                 1.4 JULIA AND R PACKAGES \\
                 1.5 DATASETS \\
                 1.5.1 Overview \\
                 1.5.2 Beer Data \\
                 1.5.3 Coffee Data \\
                 1.5.4 Leptograpsus Crabs Data \\
                 1.5.5 Food Preferences Data \\
                 1.5.6 x2 Data \\
                 1.5.7 Iris Data \\
                 1.6 OUTLINE OF THE CONTENTS OF THIS MONOGRAPH \\
                 2: Core Julia \\
                 2.1 VARIABLE NAMES \\
                 2.2 OPERATORS \\
                 2.3 TYPES \\
                 2.3.1 Numeric \\
                 2.3.2 Floats \\
                 2.3.3 Strings \\
                 2.3.4 Tuples \\
                 2.4 DATA STRUCTURES \\
                 2.4.1 Arrays \\
                 2.4.2 Dictionaries \\
                 2.5 CONTROL FLOW \\
                 2.5.1 Compound Expressions \\
                 2.5.2 Conditional Evaluation \\
                 2.5.3 Loops \\
                 2.5.3.1 Basics \\
                 2.5.3.2 Loop termination \\
                 2.5.3.3 Exception handling \\
                 2.6 FUNCTIONS \\
                 3: Working with Data \\
                 3.1 DATAFRAMES \\
                 3.2 CATEGORICAL DATA \\
                 3.3 INPUT/OUTPUT \\
                 3.4 USEFUL DATAFRAME FUNCTIONS \\
                 3.5 SPLIT-APPLY-COMBINE STRATEGY \\
                 3.6 QUERY. JL \\
                 4: Visualizing Data \\
                 4.1 GADFLY. JL \\
                 4.2 VISUALIZING UNIVARIATE DATA \\
                 4.3 DISTRIBUTIONS \\
                 4.4 VISUALIZING BIVARIATE DATA \\
                 4.5 ERROR BARS \\
                 4.6 FACETS \\
                 4.7 SAVING PLOTS \\
                 5: Supervised Learning \\
                 5.1 INTRODUCTION \\
                 5.2 CROSS-VALIDATION \\
                 5.2.1 Overview \\
                 5.2.2 K-Fold Cross-Validation \\
                 5.3 K-NEAREST NEIGHBOURS CLASSIFICATION \\
                 5.4 CLASSIFICATION AND REGRESSION TREES \\
                 5.4.1 Overview \\
                 5.4.2 Classification Trees \\
                 5.4.3 Regression Trees \\
                 5.4.4 Comments \\
                 5.5 BOOTSTRAP \\
                 5.6 RANDOM FORESTS \\
                 5.7 GRADIENT BOOSTING \\
                 5.7.1 Overview \\
                 5.7.2 Beer Data \\
                 5.7.3 Food Data \\
                 5.8 COMMENTS \\
                 6: Unsupervised Learning \\
                 6.1 INTRODUCTION \\
                 6.2 PRINCIPAL COMPONENTS ANALYSIS \\
                 6.3 PROBABILISTIC PRINCIPAL COMPONENTS ANALYSIS \\
                 6.4 EM ALGORITHM FOR PPCA \\
                 6.4.1 Background: EM Algorithm \\
                 6.4.2 E-step \\
                 6.4.3 M-step \\
                 6.4.4 Woodbury Identity \\
                 6.4.5 Initialization \\
                 6.4.6 Stopping Rule \\
                 6.4.7 Implementing the EM Algorithm for PPCA \\
                 6.4.8 Comments \\
                 6.5 K-MEANS CLUSTERING \\
                 6.6 MIXTURE OF PROBABILISTIC PRINCIPAL COMPONENTS
                 ANALYZERS \\
                 6.6.1 Model \\
                 6.6.2 Parameter Estimation \\
                 6.6.3 Illustrative Example: Coffee Data \\
                 6.7 COMMENTS \\
                 7: R Interoperability \\
                 7.1 ACCESSING R DATASETS \\
                 7.2 INTERACTING WITH R \\
                 7.3 EXAMPLE: CLUSTERING AND DATA REDUCTION FOR THE
                 COFFEE DATA \\
                 7.3.1 Coffee Data \\
                 7.3.2 PGMM Analysis \\
                 7.3.3 VSCC Analysis \\
                 7.4 EXAMPLE: FOOD DATA \\
                 7.4.1 Overview \\
                 7.4.2 Random Forests \\
                 APPENDIX A: Julia and R Packages Used Herein \\
                 APPENDIX B: Variables for Food Data \\
                 APPENDIX C: Useful Mathematical Results \\
                 C.1 BRIEF OVERVIEW OF EIGENVALUES \\
                 C.2 SELECTED LINEAR ALGEBRA RESULTS \\
                 C.3 MATRIX CALCULUS RESULTS \\
                 APPENDIX D: Performance Tips \\
                 D.1 FLOATING POINT NUMBERS \\
                 D.1.1 Do Not Test for Equality \\
                 D.1.2 Use Logarithms for Division \\
                 D.1.3 Subtracting Two Nearly Equal Numbers \\
                 D.2 JULIA PERFORMANCE \\
                 D.2.1 General Tips \\
                 D.2.2 Array Processing \\
                 D.2.3 Separate Core Computations \\
                 APPENDIX E: Linear Algebra Functions \\
                 E.1 VECTOR OPERATIONS \\
                 E.2 MATRIX OPERATIONS \\
                 E.3 MATRIX DECOMPOSITIONS \\
                 References \\
                 Index",
}

@Article{Mehrotra:2018:OSR,
  author =       "Pavan Mehrotra and Sabar Dasgupta and Samantha
                 Robertson and Paul Nuyujukian",
  title =        "An open-source realtime computational platform (short
                 {WIP} paper)",
  journal =      j-SIGPLAN,
  volume =       "53",
  number =       "6",
  pages =        "109--112",
  month =        jun,
  year =         "2018",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3299710.3211344",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 16 14:12:58 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Systems neuroscience studies involving in-vivo models
                 often require realtime data processing. In these
                 studies, many events must be monitored and processed
                 quickly, including behavior of the subject (e.g.,
                 movement of a limb) or features of neural data (e.g., a
                 neuron transmitting an action potential).
                 Unfortunately, most realtime platforms are proprietary,
                 require specific architectures, or are limited to
                 low-level programming languages. Here we present a
                 hardware-independent, open-source realtime computation
                 platform that supports high-level programming. The
                 resulting platform, LiCoRICE, can process on order
                 10e10 bits/sec of network data at 1 ms ticks with 18.2
                 \micro s jitter. It connects to various inputs and
                 outputs (e.g., DIO, Ethernet, database logging, and
                 analog line in/out) and minimizes reliance on custom
                 device drivers by leveraging peripheral support via the
                 Linux kernel. Its modular architecture supports
                 model-based design for rapid prototyping with C and
                 Python/Cython and can perform numerical operations via
                 BLAS/LAPACK-optimized NumPy that is statically compiled
                 via Numba's pycc. LiCoRICE is not only suitable for
                 systems neuroscience research, but also for
                 applications requiring closed-loop realtime data
                 processing from robotics and control systems to
                 interactive applications and quantitative financial
                 trading.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "LCTES '18 proceedings.",
}

@Article{Meier:2018:VMD,
  author =       "Remigius Meier and Armin Rigo and Thomas R. Gross",
  title =        "Virtual machine design for parallel dynamic
                 programming languages",
  journal =      j-PACMPL,
  volume =       "2",
  number =       "OOPSLA",
  pages =        "109:1--109:25",
  month =        oct,
  year =         "2018",
  DOI =          "https://doi.org/10.1145/3276479",
  bibdate =      "Sat Aug 8 07:56:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3276479",
  abstract =     "To leverage the benefits of modern hardware, dynamic
                 languages must support parallelism, and parallelism
                 requires a virtual machine (VM) capable of parallel
                 execution --- a parallel VM. However, unrestricted
                 concurrency and the dynamism of dynamic languages pose
                 great challenges to the implementation of parallel VMs.
                 In a dynamic language, a program changing itself is
                 part of the language model. To help the VM, languages
                 often choose memory models (MM) that weaken consistency
                 guarantees. With lesser guarantees, local program state
                 cannot be affected by every concurrent state change.
                 And less interference allows a VM to make local
                 assumptions about the program state which are not
                 immediately violated. These local assumptions are
                 essential for a VM's just-in-time compiler for
                 delivering state-of-the-art VM
                 performance.\par

                 Unfortunately, some dynamic languages employ MMs that
                 give exceedingly strong consistency guarantees and
                 thereby hinder the development of parallel VMs. Such is
                 the case in particular for languages that depend on a
                 global interpreter lock, which mandates a MM with
                 sequential consistency and instruction
                 atomicity.\par

                 In this paper, we reflect on a first implementation of
                 the Parallel RPython execution model, which facilitates
                 the development of parallel VMs by decoupling language
                 semantics from the synchronization mechanism used
                 within the VM. The implementation addresses the
                 challenges imposed by strong MMs through strict
                 isolation of concurrent computations. This isolation
                 builds on transactional parallel worlds, which are
                 implemented with a novel combination of software
                 techniques and the capabilities of modern
                 hardware.\par

                 We evaluate a set of parallel Python programs on a
                 parallel VM that relies on Parallel RPython's
                 implementation. Compared with a serial baseline VM that
                 relies on a global interpreter lock, the parallel VM
                 achieves speedups of up to $ 7.5 \times $ on 8 CPU
                 cores. The evaluation shows that our realization of
                 Parallel RPython meets the challenges of dynamic
                 languages, and that it can serve as a solid foundation
                 for the construction of parallel dynamic language
                 VMs.",
  acknowledgement = ack-nhfb,
  articleno =    "109",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Meng:2018:MPP,
  author =       "Siqin Meng and Rasmus Toft-Petersen and Lijie Hao and
                 Klaus Habicht",
  title =        "\pkg{multiflexxlib}: a {Python} package for data
                 reduction and visualization for the cold-neutron multi
                 energy wide angle analyzer {MultiFLEXX}",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "309--312",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:41 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301055",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Book{Miller:2018:HDA,
  author =       "Curtis Miller",
  title =        "Hands-On Data Analysis with {NumPy} and {Pandas}:
                 Implement Python Packages from Data Manipulation to
                 Processing",
  publisher =    "Packt Publishing Ltd",
  address =      "Birmingham",
  pages =        "166",
  year =         "2018",
  ISBN =         "1-78953-424-0, 1-78953-079-2",
  ISBN-13 =      "978-1-78953-424-5, 978-1-78953-079-7",
  LCCN =         "????",
  bibdate =      "Wed Sep 19 15:47:15 MDT 2018",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://public.eblib.com/choice/PublicFullRecord.aspx?p=5446042",
  acknowledgement = ack-nhfb,
  remark =       "Description based upon print version of record.",
  subject =      "Computers; Data Modeling and Design; Data Processing;
                 Data capture and analysis; Database design and theory;
                 Information architecture; Information visualization",
  tableofcontents = "Preface \\
                 Chapter 1: Setting Up a Python Data Analysis
                 Environment \\
                 What is Anaconda? \\
                 Installing Anaconda \\
                 Exploring Jupyter Notebooks \\
                 Exploring alternatives to Jupyter \\
                 Spyder \\
                 Rodeo \\
                 ptpython \\
                 Package management with Conda \\
                 What is Conda? \\
                 Conda environment management \\
                 Managing Python \\
                 Package management \\
                 Setting up a database \\
                 Installing MySQL \\
                 MySQL connectors \\
                 Creating a database \\
                 Summary \\
                 Chapter 2: Diving into NumPY \\
                 NumPy arrays \\
                 Special numeric values \\
                 Creating NumPy arrays \\
                 Creating ndarraySlicing a DataFrameSummary \\
                 Chapter 5: Arithmetic, Function Application, and
                 Mapping with pandas \\
                 Arithmetic \\
                 Arithmetic with DataFrames \\
                 Vectorization with DataFrames \\
                 DataFrame function application \\
                 Handling missing data in a pandas DataFrame \\
                 Deleting missing information \\
                 Filling missing information \\
                 Summary \\
                 Chapter 6: Managing, Indexing, and Plotting \\
                 Index sorting \\
                 Sorting by values \\
                 Hierarchical indexing \\
                 Slicing a series with a hierarchical index \\
                 Plotting with pandas \\
                 Plotting methods \\
                 Summary \\
                 Other Books You May Enjoy \\
                 Index",
}

@Article{Miranda:2018:PPR,
  author =       "Lester James V. Miranda",
  title =        "\pkg{PySwarms}: a research toolkit for Particle Swarm
                 Optimization in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "21",
  pages =        "433:1--433:2",
  month =        jan,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00433",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00433",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "10 January 2018",
  ORCID-numbers = "Lester James V. Miranda / 0000-0002-7872-6464",
}

@Article{Mirzaev:2018:PEP,
  author =       "Inom Mirzaev and Drew F. K. Williamson and Jacob G.
                 Scott",
  title =        "\pkg{egtplot}: a {Python} Package for Three-Strategy
                 Evolutionary Games",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "735:1--735:4",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00735",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00735",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "17 June 2018",
  ORCID-numbers = "Inom Mirzaev / 0000-0003-1493-1802; Drew F. K.
                 Williamson / 0000-0003-1745-8846; Jacob G. Scott /
                 0000-0003-2971-7673",
}

@Article{Moore:2018:PSS,
  author =       "Jason K. Moore and Mont Hubbard",
  title =        "\pkg{skijumpdesign}: A Ski Jump Design Tool for
                 Specified Equivalent Fall Height",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "818:1--818:3",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00818",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00818",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 August 2018",
  ORCID-numbers = "Jason K. Moore / 0000-0002-8698-6143; Mont Hubbard /
                 0000-0001-8321-6576",
}

@Article{Mukha:2018:EPP,
  author =       "Timofey Mukha and Mattias Liefvendahl",
  title =        "\pkg{Eddylicious}: a {Python} package for turbulent
                 inflow generation",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "107--111",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.04.001",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018300487",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Mulryne:2018:PPP,
  author =       "David J. Mulryne and John W. Ronayne",
  title =        "\pkg{PyTransport}: a {Python} package for the
                 calculation of inflationary correlation functions",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "23",
  pages =        "494:1--494:2",
  month =        mar,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00494",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00494",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "28 March 2018",
  ORCID-numbers = "John W. Ronayne / 0000-0001-6464-6466",
}

@Article{Murray:2018:PPP,
  author =       "Steven G. Murray",
  title =        "\pkg{powerbox}: a {Python} package for creating
                 structured fields with isotropic power spectra",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "850:1--850:2",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00850",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00850",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 August 2018",
  ORCID-numbers = "Steven G. Murray / 0000-0003-3059-3823",
}

@Article{Nunez-Elizalde:2018:PCS,
  author =       "Anwar O. Nunez-Elizalde and James S. Gao and Tianjiao
                 Zhang and Jack L. Gallant",
  title =        "\pkg{cottoncandy}: scientific python package for easy
                 cloud storage",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "890:1--890:2",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00890",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00890",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "24 August 2018",
  ORCID-numbers = "Anwar O. Nunez-Elizalde / 0000-0003-1346-670X",
}

@Article{Orban:2018:BRI,
  author =       "Dominique Orban",
  title =        "Book Review: {{\booktitle{Introduction to Computation
                 and Programming Using Python. Second Edition, with
                 Application to Understanding Data}}, by John V.
                 Guttag}",
  journal =      j-SIAM-REVIEW,
  volume =       "60",
  number =       "2",
  pages =        "483--485",
  month =        "????",
  year =         "2018",
  CODEN =        "SIREAD",
  DOI =          "https://doi.org/10.1137/18N97456X",
  ISSN =         "0036-1445 (print), 1095-7200 (electronic)",
  ISSN-L =       "0036-1445",
  bibdate =      "Mon Jun 4 09:14:47 MDT 2018",
  bibsource =    "http://epubs.siam.org/toc/siread/60/2;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/siamreview.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Review",
  journal-URL =  "http://epubs.siam.org/sirev",
  onlinedate =   "January 2018",
}

@Article{Ostrouchov:2018:PPA,
  author =       "Christopher Ostrouchov and Yanwen Zhang and William J.
                 Weber",
  title =        "\pkg{pysrim}: Automation, Analysis, and Plotting of
                 {SRIM} Calculations",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "829:1--829:3",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00829",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00829",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "02 August 2018",
  ORCID-numbers = "Christopher Ostrouchov / 0000-0002-8734-4564; Yanwen
                 Zhang / 0000-0003-1833-3885; William J. Weber /
                 0000-0002-9017-7365",
}

@Article{Ottoni:2018:HJP,
  author =       "Guilherme Ottoni",
  title =        "{HHVM JIT}: a profile-guided, region-based compiler
                 for {PHP} and Hack",
  journal =      j-SIGPLAN,
  volume =       "53",
  number =       "4",
  pages =        "151--165",
  month =        apr,
  year =         "2018",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3296979.3192374",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Oct 16 14:12:57 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
  abstract =     "Dynamic languages such as PHP, JavaScript, Python, and
                 Ruby have been gaining popularity over the last two
                 decades. A very popular domain for these languages is
                 web development, including server-side development of
                 large-scale websites. As a result, improving the
                 performance of these languages has become more
                 important. Efficiently compiling programs in these
                 languages is challenging, and many popular dynamic
                 languages still lack efficient production-quality
                 implementations. This paper describes the design of the
                 second generation of the HHVM JIT and how it addresses
                 the challenges to efficiently execute PHP and Hack
                 programs. This new design uses profiling to build an
                 aggressive region-based JIT compiler. We discuss the
                 benefits of this approach compared to the more popular
                 method-based and trace-based approaches to compile
                 dynamic languages. Our evaluation running a very large
                 PHP-based code base, the Facebook website, demonstrates
                 the effectiveness of the new JIT design.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '18 proceedings.",
}

@Article{Pitkin:2018:PPP,
  author =       "Matthew Pitkin",
  title =        "\pkg{psrqpy}: a python interface for querying the
                 {ATNF} pulsar catalogue",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "22",
  pages =        "538:1--538:2",
  month =        feb,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00538",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00538",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "19 February 2018",
  ORCID-numbers = "Matthew Pitkin / 0000-0003-4548-526X",
}

@Article{Ramachandran:2018:APB,
  author =       "Prabhu Ramachandran",
  title =        "{\tt automan}: a {Python}-Based Automation Framework
                 for Numerical Computing",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "20",
  number =       "5",
  pages =        "81--97",
  month =        sep # "\slash " # oct,
  year =         "2018",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2018.05329818",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Sep 6 07:08:26 MDT 2018",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2018/05/c5toc.htm;
                 https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.computer.org/csdl/mags/cs/2018/05/mcs2018050081-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Book{Ramalho:2018:PVG,
  author =       "Luciano Ramalho",
  title =        "Python vs. Go",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "????",
  year =         "2018",
  ISBN =         "1-4920-3317-0, 1-4920-3318-9",
  ISBN-13 =      "978-1-4920-3317-2, 978-1-4920-3318-9",
  LCCN =         "QA76.73.P98",
  bibdate =      "Thu Apr 22 10:36:31 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/go.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bi;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Comparing Python with Go is a bit like comparing an
                 SUV with a sports car: they were created to serve
                 different needs. Thanks to their simple syntax and
                 careful design, you will probably find Python and Go
                 easier to learn and use than other mainstream languages
                 that you might have already studied. Given their gentle
                 learning curve and phenomenal growth in several fields,
                 getting to know them is a sound investment now.",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Go (Computer
                 program language); Go (Computer program language);
                 Python (Computer program language)",
}

@Article{Ramasubramani:2018:PRP,
  author =       "Vyas Ramasubramani and Sharon C. Glotzer",
  title =        "\pkg{rowan}: a {Python} package for working with
                 quaternions",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "27",
  pages =        "787:1--787:3",
  month =        jul,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00787",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00787",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "30 July 2018",
  ORCID-numbers = "Vyas Ramasubramani / 0000-0001-5181-9532; Sharon C.
                 Glotzer / 0000-0002-7197-0085",
}

@Article{Raschka:2018:PMP,
  author =       "Sebastian Raschka",
  title =        "\pkg{MLxtend}: Providing machine learning and data
                 science utilities and extensions to {Python}'s
                 scientific computing stack",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "24",
  pages =        "638:1--638:2",
  month =        apr,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00638",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00638",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "22 April 2018",
  ORCID-numbers = "Sebastian Raschka / 0000-0001-6989-4493",
}

@Article{Rose:2018:PCP,
  author =       "Brian E. J. Rose",
  title =        "\pkg{CLIMLAB}: a {Python} toolkit for interactive,
                 process-oriented climate modeling",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "24",
  pages =        "659:1--659:2",
  month =        apr,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00659",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00659",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "20 April 2018",
  ORCID-numbers = "Brian E. J. Rose / 0000-0002-9961-3821",
}

@Article{Roubeyrie:2018:PWP,
  author =       "Lionel Roubeyrie and S{\'e}bastien Celles",
  title =        "\pkg{Windrose}: a {Python} \pkg{Matplotlib},
                 \pkg{Numpy} library to manage wind and pollution data,
                 draw windrose",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "29",
  pages =        "268:1--268:5",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1002/asl.680",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00268",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "04 September 2018",
  ORCID-numbers = "Lionel Roubeyrie / 0000-0001-6017-4385; S{\'e}bastien
                 Celles / 0000-0001-9987-4338",
}

@Book{Salceanu:2018:JPP,
  author =       "Adrian Salceanu",
  title =        "{Julia} programming projects: learn {Julia 1.x} by
                 building apps for data analysis, visualization, machine
                 learning, and the {Web}",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "ix + 482",
  year =         "2018",
  ISBN =         "1-78829-725-3",
  ISBN-13 =      "978-1-78829-274-0, 978-1-78829-725-7 (e-book)",
  LCCN =         "QA76.73.J85",
  bibdate =      "Thu Apr 8 10:45:11 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781788292740",
  abstract =     "A step-by-step guide that demonstrates how to build
                 simple-to-advanced applications through examples in
                 Julia Lang 1.x using modern tools Key Features Work
                 with powerful open-source libraries for data wrangling,
                 analysis, and visualization Develop full-featured,
                 full-stack web applications Learn to perform supervised
                 and unsupervised machine learning and time series
                 analysis with Julia Book Description Julia is a new
                 programming language that offers a unique combination
                 of performance and productivity. Its powerful features,
                 friendly syntax, and speed are attracting a growing
                 number of adopters from Python, R, and Matlab,
                 effectively raising the bar for modern general and
                 scientific computing. After six years in the making,
                 Julia has reached version 1.0. Now is the perfect time
                 to learn it, due to its large-scale adoption across a
                 wide range of domains, including fintech, biotech,
                 education, and AI. Beginning with an introduction to
                 the language, Julia Programming Projects goes on to
                 illustrate how to analyze the Iris dataset using
                 DataFrames. You will explore functions and the type
                 system, methods, and multiple dispatch while building a
                 web scraper and a web app. Next, you'll delve into
                 machine learning, where you'll build a books
                 recommender system. You will also see how to apply
                 unsupervised machine learning to perform clustering on
                 the San Francisco business database. After
                 metaprogramming, the final chapters will discuss dates
                 and time, time series analysis, visualization, and
                 forecasting. We'll close with package development,
                 documenting, testing and benchmarking. By the end of
                 the book, you will have gained the practical knowledge
                 to build real-world applications in Julia. What you
                 will learn Leverage Julia's strengths, its top
                 packages, and main IDE options Analyze and manipulate
                 datasets using Julia and DataFrames Write complex code
                 while building real-life Julia applications Develop and
                 run a web app using Julia and the HTTP package Build a
                 recommender system using supervised machine learning
                 Perform exploratory data analysis Apply unsupervised
                 machine learning algorithms Perform time series data
                 analysis, visualization, and forecasting Who this book
                 is for Data scientists, statisticians, business
                 analysts, and developers who are interested in learning
                 how to use Julia to crunch numbers, analyze data and
                 build apps will find this book useful. A basic
                 knowledge of programming is assumed.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Application
                 software; Development; Computer programs; COMPUTERS /
                 Programming Languages / General; Computer programs;
                 Julia (Computer program language)",
  tableofcontents = "Cover \\
                 Title Page \\
                 Copyright and Credits \\
                 Dedication \\
                 About Packt \\
                 Contributors \\
                 Table of Contents \\
                 Preface \\
                 1: Getting Started with Julia Programming \\
                 Technical requirements \\
                 Why Julia? \\
                 Good performance \\
                 Concise, readable, and intuitive syntax \\
                 Powerful and productive dynamic type system \\
                 Designed for parallelism and distributed computation
                 \\
                 Efficient intercommunication with other languages \\
                 Powerful REPL and shell-like capabilities \\
                 And more \ldots{} \\
                 Installing Julia \\
                 Windows \\
                 Official Windows installer \\
                 Using Chocolatey \\
                 Windows Subsystem for Linux \\
                 macOS \\
                 Official image \\
                 HomebrewLinux and FreeBSDDocker \\
                 JuliaPro \\
                 JuliaBox \\
                 Choosing an IDE \\
                 Juno (Atom) \\
                 Visual Studio Code \\
                 IJulia (JuliaBox) \\
                 Other options \\
                 Getting started with Julia \\
                 The Julia REPL \\
                 Interacting with the REPL \\
                 The ans variable \\
                 Prompt pasting \\
                 Tab completion \\
                 Cleaning the REPL scope \\
                 Additional REPL modes \\
                 Accessing the documentation with the help mode \\
                 Shell mode \\
                 Search modes \\
                 The startup.jl file \\
                 REPL hooks \\
                 Exiting the REPL \\
                 The package system \\
                 Adding a package \\
                 OhMyREPL \\
                 Custom package installation \\
                 Revise \\
                 Checking the package status \\
                 Using packages \\
                 One more step \\
                 Updating packages \\
                 Pinning packages \\
                 Removing packages \\
                 Discovering packages \\
                 Registered versus unregistered \\
                 Summary \\
                 2: Creating Our First Julia App \\
                 Technical requirements \\
                 Defining variables \\
                 Constants \\
                 Why are constants important? \\
                 Comments \\
                 Strings \\
                 Triple-quoted strings \\
                 Concatenating strings \\
                 Interpolating strings \\
                 Manipulating strings \\
                 Unicode and UTF-8 \\
                 Regular expressions \\
                 Raw string literals \\
                 Numbers \\
                 Integers \\
                 Overflow behavior \\
                 Floating-point numbers \\
                 Rational numbers \\
                 Numerical operators \\
                 Vectorized dot operators \\
                 There's more to it \\
                 Tuples \\
                 Named tuples \\
                 Ranges \\
                 Arrays \\
                 Iteration \\
                 Mutating arrays \\
                 Comprehensions \\
                 Generators \\
                 Exploratory data analysis with Julia \\
                 The Iris flower dataset \\
                 Using the RDatasets package \\
                 Using simple statistics to better understand our data
                 \\
                 Visualizing the Iris flowers data \\
                 Loading and saving our data \\
                 Saving and loading using tabular file formats \\
                 Working with Feather files \\
                 Saving and loading with MongoDB \\
                 Summary \\
                 3: Setting Up the Wiki Game \\
                 Technical requirements \\
                 Data harvesting through web scraping \\
                 How the web works \\
                 a crash course \\
                 Making HTTP requests \\
                 Learning about HTTP methods \\
                 Understanding HTTPS \\
                 Understanding HTML documents \\
                 HTML selectors \\
                 Learning about the HTML attributes \\
                 Learning about CSS and JavaScript selectors \\
                 Understanding the structure of a link \\
                 Accessing the internet from Julia \\
                 Making requests with the HTTP package \\
                 Handling HTTP responses \\
                 HTTP status codes \\
                 Learning about HTTP headers \\
                 The HTTP message body \\
                 Understanding HTTP responses \\
                 The status code \\
                 The headers \\
                 The message body \\
                 Learning about pairs \\
                 Dictionaries \\
                 Constructing dictionaries \\
                 Ordered dictionaries \\
                 Working with dictionaries \\
                 Using the HTTP response \\
                 Manipulating the response body",
}

@Article{Sega:2018:PPP,
  author =       "Marcello Sega and Gy{\"o}rgy Hantal and Bal{\'a}zs
                 F{\'a}bi{\'a}n and P{\'a}l Jedlovszky",
  title =        "{Pytim}: a {Python} package for the interfacial
                 analysis of molecular simulations",
  journal =      j-J-COMPUT-CHEM,
  volume =       "39",
  number =       "25",
  pages =        "2118--2125",
  day =          "30",
  month =        sep,
  year =         "2018",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.25384",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Mon Mar 25 09:39:45 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "10 October 2018",
}

@Article{Sharma:2018:RWF,
  author =       "Abhishek Sharma and Yuan Tian and Agus Sulistya and
                 Dinusha Wijedasa and David Lo",
  title =        "Recommending Who to Follow in the Software Engineering
                 {Twitter} Space",
  journal =      j-TOSEM,
  volume =       "27",
  number =       "4",
  pages =        "16:1--16:??",
  month =        nov,
  year =         "2018",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/3266426",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Tue Oct 22 07:57:08 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  abstract =     "With the advent of social media, developers are
                 increasingly using it in their software development
                 activities. Twitter is one of the popular social
                 mediums used by developers. A recent study by Singer et
                 al. found that software developers use Twitter to
                 ``keep up with the fast-paced development landscape.''
                 Unfortunately, due to the general-purpose nature of
                 Twitter, it's challenging for developers to use Twitter
                 for their development activities. Our survey with 36
                 developers who use Twitter in their development
                 activities highlights that developers are interested in
                 following specialized software gurus who share relevant
                 technical tweets. To help developers perform this task,
                 in this work we propose a recommendation system to
                 identify specialized software gurus. Our approach first
                 extracts different kinds of features that characterize
                 a Twitter user and then employs a two-stage
                 classification approach to generate a discriminative
                 model, which can differentiate specialized software
                 gurus in a particular domain from other Twitter users
                 that generate domain-related tweets (aka domain-related
                 Twitter users). We have investigated the effectiveness
                 of our approach in finding specialized software gurus
                 for four different domains (JavaScript, Android,
                 Python, and Linux) on a dataset of 86,824 Twitter users
                 who generate 5,517,878 tweets over 1 month. Our
                 approach can differentiate specialized software experts
                 from other domain-related Twitter users with an
                 F-Measure of up to 0.820. Compared with existing
                 Twitter domain expert recommendation approaches, our
                 proposed approach can outperform their F-Measure by at
                 least 7.63\%.",
  acknowledgement = ack-nhfb,
  articleno =    "16",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
}

@Article{Silva:2018:HFP,
  author =       "D. J. Silva and J. S. Amaral and V. S. Amaral",
  title =        "\pkg{Heatrapy}: a flexible {Python} framework for
                 computing dynamic heat transfer processes involving
                 caloric effects in {$ 1.5 $D} systems",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "373--382",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:41 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301298",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Smith:2018:PHC,
  author =       "Andrew P. Smith",
  title =        "\pkg{humanleague}: a {C++} microsynthesis package with
                 {R} and python interfaces",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "25",
  pages =        "629:1--629:1",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00629",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00629",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "03 May 2018",
  ORCID-numbers = "Andrew P. Smith / 0000-0002-9951-6642",
}

@Article{Smith:2018:POP,
  author =       "Daniel G. A. Smith and Johnnie Gray",
  title =        "\pkg{opt\_einsum} --- A {Python} package for
                 optimizing contraction order for einsum-like
                 expressions",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "753:1--753:3",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00753",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00753",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "29 June 2018",
  ORCID-numbers = "Daniel G. A. Smith / 0000-0001-8626-0900; Johnnie
                 Gray / 0000-0001-9461-3024",
}

@Article{Spielman:2018:PPP,
  author =       "Stephanie J. Spielman",
  title =        "\pkg{phyphy}: {Python} package for facilitating the
                 execution and parsing of {HyPhy} standard analyses",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "21",
  pages =        "514:1--514:1",
  month =        jan,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00514",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00514",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "17 January 2018",
  ORCID-numbers = "Stephanie J. Spielman / 0000-0002-9090-4788",
}

@Article{Stoliaroff:2018:PEU,
  author =       "Adrien Stoliaroff and St{\'e}phane Jobic and Camille
                 Latouche",
  title =        "{PyDEF 2.0}: an Easy to Use Post-treatment Software
                 for Publishable Charts Featuring a Graphical User
                 Interface",
  journal =      j-J-COMPUT-CHEM,
  volume =       "39",
  number =       "26",
  pages =        "2251--2261",
  day =          "5",
  month =        oct,
  year =         "2018",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.25543",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Mon Mar 25 09:39:45 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "03 October 2018",
}

@Article{Tan:2018:EPB,
  author =       "Jianchao Tan and Jose Echevarria and Yotam Gingold",
  title =        "Efficient palette-based decomposition and recoloring
                 of images via {RGBXY}-space geometry",
  journal =      j-TOG,
  volume =       "37",
  number =       "6",
  pages =        "262:1--262:??",
  month =        nov,
  year =         "2018",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/3272127.3275054",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Tue Oct 22 12:28:14 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "We introduce an extremely scalable and efficient yet
                 simple palette-based image decomposition algorithm.
                 Given an RGB image and set of palette colors, our
                 algorithm decomposes the image into a set of additive
                 mixing layers, each of which corresponds to a palette
                 color applied with varying weight. Our approach is
                 based on the geometry of images in RGBXY-space. This
                 new geometric approach is orders of magnitude more
                 efficient than previous work and requires no numerical
                 optimization. We provide an implementation of the
                 algorithm in 48 lines of Python code. We demonstrate a
                 real-time layer decomposition tool in which users can
                 interactively edit the palette to adjust the layers.
                 After preprocessing, our algorithm can decompose 6 MP
                 images into layers in 20 milliseconds.",
  acknowledgement = ack-nhfb,
  articleno =    "262",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
}

@Article{Taylor:2018:PPP,
  author =       "Shawn David Taylor",
  title =        "\pkg{pyPhenology}: a python framework for plant
                 phenology modelling",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "827:1--827:2",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00827",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00827",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "15 August 2018",
  ORCID-numbers = "Shawn David Taylor / 0000-0002-6178-6903",
}

@Article{Turcani:2018:SPT,
  author =       "Lukas Turcani and Enrico Berardo and Kim E. Jelfs",
  title =        "{\tt stk}: a {Python} toolkit for supramolecular
                 assembly",
  journal =      j-J-COMPUT-CHEM,
  volume =       "39",
  number =       "23",
  pages =        "1931--1942",
  day =          "5",
  month =        sep,
  year =         "2018",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.25377",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Mon Mar 25 09:39:44 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "24 September 2018",
}

@Article{vanderHam:2018:PSD,
  author =       "Ruud van der Ham",
  title =        "\pkg{salabim}: discrete event simulation and animation
                 in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "27",
  pages =        "767:1--767:2",
  month =        jul,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00767",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00767",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "09 July 2018",
  ORCID-numbers = "Ruud van der Ham / 0000-0001-7696-8059",
}

@Article{Vidmar:2018:QPP,
  author =       "R. Vidmar and N. Creati",
  title =        "\pkg{QCOBJ}: a {Python} package to handle
                 quantity-aware configuration files",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "347--351",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:41 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018302383",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Villaverde:2018:PTI,
  author =       "Alejandro F. Villaverde and Kolja Becker and Julio R.
                 Banga",
  title =        "{PREMER}: a Tool to Infer Biological Networks",
  journal =      j-TCBB,
  volume =       "15",
  number =       "4",
  pages =        "1193--1202",
  month =        jul,
  year =         "2018",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2017.2758786",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Nov 8 06:18:45 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Inferring the structure of unknown cellular networks
                 is a main challenge in computational biology.
                 Data-driven approaches based on information theory can
                 determine the existence of interactions among network
                 nodes automatically. However, the elucidation of
                 certain features-such as distinguishing between direct
                 and indirect interactions or determining the direction
                 of a causal link-requires estimating
                 information-theoretic quantities in a multidimensional
                 space. This can be a computationally demanding task,
                 which acts as a bottleneck for the application of
                 elaborate algorithms to large-scale network inference
                 problems. The computational cost of such calculations
                 can be alleviated by the use of compiled programs and
                 parallelization. To this end, we have developed PREMER
                 Parallel Reverse Engineering with Mutual information \&
                 Entropy Reduction, a software toolbox that can run in
                 parallel and sequential environments. It uses
                 information theoretic criteria to recover network
                 topology and determine the strength and causality of
                 interactions, and allows incorporating prior knowledge,
                 imputing missing data, and correcting outliers. PREMER
                 is a free, open source software tool that does not
                 require any commercial software. Its core algorithms
                 are programmed in FORTRAN 90 and implement OpenMP
                 directives. It has user interfaces in Python and
                 MATLAB/Octave, and runs on Windows, Linux, and OSX
                 https://sites.google.com/site/premertoolbox/.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Vrbancic:2018:PNP,
  author =       "Grega Vrban{\v{c}}i{\v{c}} and Lucija Brezo{\v{c}}nik
                 and Uro{\v{s}} Mlakar and Du{\v{s}}an Fister and Iztok
                 {Fister, Jr.}",
  title =        "\pkg{NiaPy}: {Python} microframework for building
                 nature-inspired algorithms",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "23",
  pages =        "613:1--613:3",
  month =        mar,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00613",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00613",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "22 March 2018",
  ORCID-numbers = "Grega Vrban{\v{c}}i{\v{c}} / 0000-0003-0723-3889;
                 Lucija Brezo{\v{c}}nik / 0000-0002-3622-428X;
                 Uro{\v{s}} Mlakar / 0000-0002-4278-6078; Du{\v{s}}an
                 Fister / 0000-0002-9604-0554; Iztok Fister, Jr. /
                 0000-0002-6418-1272",
}

@Article{Wainer:2018:CEP,
  author =       "Jacques Wainer and Eduardo C. Xavier",
  title =        "A Controlled Experiment on {Python} vs {C} for an
                 Introductory Programming Course: Students' Outcomes",
  journal =      j-TOCE,
  volume =       "18",
  number =       "3",
  pages =        "12:1--12:??",
  month =        sep,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3152894",
  ISSN =         "1946-6226",
  bibdate =      "Wed Oct 2 09:58:50 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toce.bib",
  abstract =     "We performed a controlled experiment comparing a C and
                 a Python Introductory Programming course. Three faculty
                 members at University of Campinas, Brazil, taught the
                 same CS1 course for the same majors in two different
                 semesters, one version in Python and one in C, with a
                 total of 391 students involved in the experiment. We
                 measured the dropout rate, the failure rate, the grades
                 on the two exams, the proportion of completed lab
                 assignments, and the number of submissions per
                 completed assignment. There was no difference in the
                 dropout rate. The failure rate for Python was 16.9\%
                 against 23.1\% for C. The effect size (Cohen's D) on
                 the comparison of Python against C on the midterm exam
                 was 0.27, and 0.38 for the final exam. The effect size
                 for the proportion of completed assignments was 0.39
                 and the effect size for the number of submissions per
                 assignment was -0.61 (Python had less submissions per
                 completed assignments). Thus, for all measures, with
                 the exception of dropout rate, the version of the
                 course in Python yielded better student outcomes than
                 the version in C and all differences are significant
                 (with 95\% confidence) with the exception of the
                 failure rate (p-value = 0.12).",
  acknowledgement = ack-nhfb,
  articleno =    "12",
  fjournal =     "ACM Transactions on Computing Education",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1193",
}

@Article{Warner:2018:IPP,
  author =       "Mellissa S. C. Warner",
  title =        "Introduction to {PySPLIT}: a {Python} Toolkit for
                 {NOAA} {ARL's} {HYSPLIT} Model",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "20",
  number =       "5",
  pages =        "47--62",
  month =        sep # "\slash " # oct,
  year =         "2018",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2017.3301549",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Sep 6 07:08:26 MDT 2018",
  bibsource =    "http://csdl.computer.org/comp/mags/cs/2018/05/c5toc.htm;
                 https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.computer.org/csdl/mags/cs/2018/05/mcs2018050047-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Article{Whalley:2018:PEE,
  author =       "Lucy D. Whalley",
  title =        "\pkg{effmass}: An effective mass package",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "28",
  pages =        "797:1--797:2",
  month =        aug,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00797",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00797",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "07 August 2018",
  ORCID-numbers = "Lucy D. Whalley / 0000-0002-2992-9871",
}

@Article{Wiecha:2018:PPP,
  author =       "Peter R. Wiecha",
  title =        "\pkg{pyGDM} --- A python toolkit for full-field
                 electro-dynamical simulations and evolutionary
                 optimization of nanostructures",
  journal =      j-COMP-PHYS-COMM,
  volume =       "233",
  number =       "??",
  pages =        "167--192",
  month =        dec,
  year =         "2018",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.06.017",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Sep 26 14:45:20 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046551830225X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Wilkinson:2018:RPC,
  author =       "Collin J. Wilkinson and Yihong Z. Mauro and John C.
                 Mauro",
  title =        "\pkg{RelaxPy}: {Python} code for modeling of glass
                 relaxation behavior",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "245--254",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2018.07.008",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301146",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Willcox:2018:PPI,
  author =       "Donald E. Willcox and Michael Zingale",
  title =        "\pkg{pynucastro}: an interface to nuclear reaction
                 rates and code generator for reaction network
                 equations",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "23",
  pages =        "588:1--588:3",
  month =        mar,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00588",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00588",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "18 March 2018",
  ORCID-numbers = "Donald E. Willcox / 0000-0003-2300-5165; Michael
                 Zingale / 0000-0001-8401-030X",
}

@Article{Xu:2018:PPP,
  author =       "Yang Xu and Xiao-Chun Luo",
  title =        "{PyPathway}: {Python} Package for Biological Network
                 Analysis and Visualization",
  journal =      j-J-COMPUT-BIOL,
  volume =       "25",
  number =       "5",
  pages =        "499--504",
  month =        may,
  year =         "2018",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.2017.0199",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Sat Jun 1 09:53:21 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.2017.0199;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.2017.0199",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "11 April 2018",
}

@Article{Zhu:2018:OPL,
  author =       "Minjie Zhu and Frank McKenna and Michael H. Scott",
  title =        "\pkg{OpenSeesPy}: {Python} library for the
                 \pkg{OpenSees} finite element framework",
  journal =      j-SOFTWAREX,
  volume =       "7",
  number =       "??",
  pages =        "1--5",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2017.10.009",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Sep 8 11:45:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711017300584",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Abi-Mansour:2019:POO,
  author =       "Andrew Abi-Mansour",
  title =        "{PyGran}: an object-oriented library for {DEM}
                 simulation and analysis",
  journal =      j-SOFTWAREX,
  volume =       "9",
  number =       "??",
  pages =        "168--174",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:43 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301080",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Anonymous:2019:PSS,
  author =       "Anonymous",
  title =        "Profile: {Scott Shawcroft}: This developer is
                 squeezing {Python} into microcontrollers",
  journal =      j-IEEE-SPECTRUM,
  volume =       "56",
  number =       "4",
  pages =        "16--16",
  month =        apr,
  year =         "2019",
  CODEN =        "IEESAM",
  DOI =          "https://doi.org/10.1109/MSPEC.2019.8678507",
  ISSN =         "0018-9235 (print), 1939-9340 (electronic)",
  ISSN-L =       "0018-9235",
  bibdate =      "Sat Jan 18 07:02:09 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeespectrum2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Spectrum",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
}

@Article{Augier:2019:FPO,
  author =       "Pierre Augier and Ashwin Vishnu Mohanan and Cyrille
                 Bonamy",
  title =        "\pkg{FluidDyn}: a {Python} Open-Source Framework for
                 Research and Teaching in Fluid Dynamics by Simulations,
                 Experiments and Data Processing",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "9--??",
  day =          "01",
  month =        apr,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.237",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.237/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Book{Balbaert:2019:JPC,
  author =       "Ivo Balbaert and Adrian Salceanu",
  title =        "{Julia 1.0} programming complete reference guide:
                 discover {Julia}, a high-performance language for
                 technical computing",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "viii + 451",
  year =         "2019",
  ISBN =         "1-83882-467-7",
  ISBN-13 =      "978-1-83882-224-8, 978-1-83882-467-9",
  LCCN =         "QA76.73.J84",
  bibdate =      "Thu Apr 8 11:03:56 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Learning path",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781838822248",
  abstract =     "Learn dynamic programming with Julia to build apps for
                 data analysis, visualization, machine learning, and the
                 web Key Features Leverage Julia's high speed and
                 efficiency to build fast, efficient applications
                 Perform supervised and unsupervised machine learning
                 and time series analysis Tackle problems concurrently
                 and in a distributed environment Book Description Julia
                 offers the high productivity and ease of use of Python
                 and R with the lightning-fast speed of C++. There's
                 never been a better time to learn this language, thanks
                 to its large-scale adoption across a wide range of
                 domains, including fintech, biotech and artificial
                 intelligence (AI). You will begin by learning how to
                 set up a running Julia platform, before exploring its
                 various built-in types. This Learning Path walks you
                 through two important collection types: arrays and
                 matrices. You'll be taken through how type conversions
                 and promotions work, and in further chapters you'll
                 study how Julia interacts with operating systems and
                 other languages. You'll also learn about the use of
                 macros, what makes Julia suitable for numerical and
                 scientific computing, and how to run external programs.
                 Once you have grasped the basics, this Learning Path
                 goes on to how to analyze the Iris dataset using
                 DataFrames. While building a web scraper and a web app,
                 you'll explore the use of functions, methods, and
                 multiple dispatches. In the final chapters, you'll
                 delve into machine learning, where you'll build a book
                 recommender system. By the end of this Learning Path,
                 you'll be well versed with Julia and have the skills
                 you need to leverage its high speed and efficiency for
                 your applications. This Learning Path includes content
                 from the following Packt products: Julia 1.0
                 Programming - Second Edition by Ivo Balbaert Julia
                 Programming Projects by Adrian Salceanu What you will
                 learn Create your own types to extend the built-in type
                 system Visualize your data in Julia with plotting
                 packages Explore the use of built-in macros for testing
                 and debugging Integrate Julia with other languages such
                 as C, Python, and MATLAB Analyze and manipulate
                 datasets using Julia and DataFrames Develop and run a
                 web app using Julia and the HTTP package Build a
                 recommendation system using supervised machine learning
                 Who this book is for If you are a statistician or data
                 scientist who wants a quick course in the Julia
                 programming language while building big data
                 applications, this Learning Path is for you.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Application
                 software; Development; Development; Julia (Computer
                 program language)",
}

@Article{Bingol:2019:NPO,
  author =       "Onur Rauf Bingol and Adarsh Krishnamurthy",
  title =        "{NURBS}-Python: an open-source object-oriented {NURBS}
                 modeling framework in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "9",
  number =       "??",
  pages =        "85--94",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:43 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301778",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Cartis:2019:IFR,
  author =       "Coralia Cartis and Jan Fiala and Benjamin Marteau and
                 Lindon Roberts",
  title =        "Improving the Flexibility and Robustness of
                 Model-based Derivative-free Optimization Solvers",
  journal =      j-TOMS,
  volume =       "45",
  number =       "3",
  pages =        "32:1--32:41",
  month =        aug,
  year =         "2019",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3338517",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Sep 3 17:49:22 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=3338517",
  abstract =     "We present two software packages for derivative-free
                 optimization (DFO): DFO-LS for nonlinear least-squares
                 problems and Py-BOBYQA for general objectives, both
                 with optional bound constraints. Inspired by the
                 Gauss--Newton method, DFO-LS constructs simplified
                 linear regression models for the residuals and allows
                 flexible initialization for expensive problems, whereby
                 it can begin making progress after as few as two
                 objective evaluations. Numerical results show DFO-LS
                 can gain reasonable progress on some medium-scale
                 problems with fewer objective evaluations than is
                 needed for one gradient evaluation. DFO-LS has improved
                 robustness to noise, allowing sample averaging,
                 regression-based model construction, and multiple
                 restart strategies with an auto-detection mechanism.
                 Our extensive numerical experimentation shows that
                 restarting the solver when stagnation is detected is a
                 cheap and effective mechanism for achieving robustness,
                 with superior performance over sampling and regression
                 techniques. The package Py-BOBYQA is a Python
                 implementation of BOBYQA (Powell 2009), with novel
                 features such as the implementation of robustness to
                 noise strategies. Our numerical experiments show that
                 Py-BOBYQA is comparable to or better than existing
                 general DFO solvers for noisy problems. In our
                 comparisons, we introduce an adaptive accuracy measure
                 for data profiles of noisy functions, striking a
                 balance between measuring the true and the noisy
                 objective improvement.",
  acknowledgement = ack-nhfb,
  articleno =    "32",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Caudai:2019:LSC,
  author =       "Claudia Caudai and Emanuele Salerno and Monica
                 Zopp{\`e} and Ivan Merelli and Anna Tonazzini",
  title =        "{ChromStruct 4}: a {Python} Code to Estimate the
                 Chromatin Structure from {Hi-C} Data",
  journal =      j-TCBB,
  volume =       "16",
  number =       "6",
  pages =        "1867--1878",
  month =        nov,
  year =         "2019",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2018.2838669",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Jun 10 07:29:47 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1109/TCBB.2018.2838669",
  abstract =     "A method and a stand-alone Python code to estimate the
                 3D chromatin structure from chromosome conformation
                 capture data are presented. The method is based on a
                 multiresolution, modified-bead-chain chromatin model,
                 evolved through quaternion operators in a \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "https://dl.acm.org/loi/tcbb",
}

@Article{Chen:2019:PPL,
  author =       "Zhangqi Chen and Qiaofu Zhang and Ji-Cheng Zhao",
  title =        "\pkg{pydiffusion}: a {Python} Library for Diffusion
                 Simulation and Data Analysis",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "13--??",
  day =          "23",
  month =        apr,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.255",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.255/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{DePalma:2019:PPI,
  author =       "Barbara {De Palma} and Marco Erba and Luca Mantovani
                 and Nicola Mosco",
  title =        "A {Python} program for the implementation of the {$
                 \Gamma $}-method for {Monte Carlo} simulations",
  journal =      j-COMP-PHYS-COMM,
  volume =       "234",
  number =       "??",
  pages =        "294--301",
  month =        jan,
  year =         "2019",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.07.004",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Oct 16 18:11:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465518302534",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Doulis:2019:CMP,
  author =       "Georgios Doulis and J{\"o}rg Frauendiener and Chris
                 Stevens and Ben Whale",
  title =        "{COFFEE} --- an {MPI}-parallelized {Python} package
                 for the numerical evolution of differential equations",
  journal =      j-SOFTWAREX,
  volume =       "10",
  number =       "??",
  pages =        "Article 100283",
  month =        jul # "\slash " # dec,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100283",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:36 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019300950",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Dsilva:2019:MRD,
  author =       "Joseph Vinish D'silva and Florestan {De Moor} and
                 Bettina Kemme",
  title =        "Making an {RDBMS} data scientist friendly: advanced
                 in-database interactive analytics with visualization
                 support",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "12",
  number =       "12",
  pages =        "1930--1933",
  month =        aug,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3352063.3352102",
  ISSN =         "2150-8097",
  bibdate =      "Wed Oct 2 06:49:02 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "We are currently witnessing the rapid evolution and
                 adoption of various data science frameworks that
                 function external to the database. Any support from
                 conventional RDBMS implementations for data science
                 applications has been limited to procedural paradigms
                 such as user-defined functions (UDFs) that lack
                 exploratory programming support. Therefore, the current
                 status quo is that during the exploratory phase, data
                 scientists usually use the database system as the
                 ``data storage'' layer of the data science framework,
                 whereby the majority of computation and analysis is
                 performed outside the database, e.g., at the client
                 node. We demonstrate AIDA, an in-database framework for
                 data scientists. AIDA allows users to write interactive
                 Python code using a development environment such as a
                 Jupyter notebook. The actual execution itself takes
                 place inside the database (near-data), where a server
                 component of AIDA, that resides inside the embedded
                 Python interpreter of the RDBMS, manages the data sets
                 and computations. The demonstration will also show the
                 visualization capabilities of AIDA where the progress
                 of computation can be observed through live updates.
                 Our evaluations show that AIDA performs several times
                 faster compared to contemporary external data science
                 frameworks, but is much easier to use for exploratory
                 development compared to database UDFs.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Dzib:2019:EPC,
  author =       "Eugenia Dzib and Jos{\'e} Luis Cabellos and Filiberto
                 Ort{\'\i}z-Chi and Sudip Pan and Annia Galano and
                 Gabriel Merino",
  title =        "{Eyringpy}: a program for computing rate constants in
                 the gas phase and in solution",
  journal =      j-IJQC,
  volume =       "119",
  number =       "2",
  pages =        "e25686:1--e25686:??",
  day =          "15",
  month =        jan,
  year =         "2019",
  CODEN =        "IJQCB2",
  DOI =          "https://doi.org/10.1002/qua.25686",
  ISSN =         "0020-7608 (print), 1097-461X (electronic)",
  ISSN-L =       "0020-7608",
  bibdate =      "Mon Mar 25 11:03:11 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijqc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Quantum Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0020-7608/",
  onlinedate =   "30 August 2018",
}

@Article{Gagunashvili:2019:CCC,
  author =       "Nikolay D. Gagunashvili and Helgi Halldorsson and
                 Helmut Neukirchen",
  title =        "{CHICOM}: Code for comparing weighted or unweighted
                 histograms in {Fortran-77}, {C++}, {R} and {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "245",
  number =       "??",
  pages =        "Article 106872",
  month =        dec,
  year =         "2019",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Oct 29 11:44:58 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465519302590",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Gerum:2019:CPP,
  author =       "Richard C. Gerum and Sebastian Richter and Alexander
                 Winterl and Christoph Mark and Ben Fabry and C{\'e}line
                 {Le Bohec} and Daniel P. Zitterbart",
  title =        "\pkg{CameraTransform}: a {Python} package for
                 perspective corrections and image mapping",
  journal =      j-SOFTWAREX,
  volume =       "10",
  number =       "??",
  pages =        "Article 100333",
  month =        jul # "\slash " # dec,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100333",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:36 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019302018",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Graichen:2019:SPT,
  author =       "Uwe Graichen and Roland Eichardt and Jens Haueisen",
  title =        "\pkg{SpharaPy}: a {Python} toolbox for spatial
                 harmonic analysis of non-uniformly sampled data",
  journal =      j-SOFTWAREX,
  volume =       "10",
  number =       "??",
  pages =        "Article 100289",
  month =        jul # "\slash " # dec,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100289",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:36 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019301670",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Gregor:2019:PGP,
  author =       "Luke Gregor and Thomas J. Ryan-Keogh and Sarah-Anne
                 Nicholson and Marcel du Plessis and Isabelle Giddy and
                 Sebastiaan Swart",
  title =        "\pkg{GliderTools}: a {Python} Toolbox for Processing
                 Underwater Glider Data",
  journal =      j-FRONTIERS-MAR-SCI,
  volume =       "6",
  month =        dec,
  year =         "2019",
  DOI =          "https://doi.org/10.3389/fmars.2019.00738",
  ISSN =         "2296-7745",
  ISSN-L =       "2296-7745",
  bibdate =      "Wed Dec 22 06:45:41 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/frontmarsci2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Front. Mar. Sci.",
  fjournal =     "Frontiers in Marine Science",
  journal-URL =  "https://www.frontiersin.org/journals/655",
  rawdoi =       "10.3389/fmars.2019.00738",
}

@Article{Harvey:2019:TPS,
  author =       "Christine Harvey and R. S. Weigel",
  title =        "\pkg{Transplant2Mongo}: {Python} Scripts that Insert
                 Organ Procurement and Transplantation Network {(OPTN)}
                 Data in {MongoDB}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "5--??",
  day =          "14",
  month =        mar,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.229",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.229/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Isaacs:2019:PCL,
  author =       "K. E. Isaacs and T. Gamblin",
  title =        "Preserving Command Line Workflow for a Package
                 Management System Using {ASCII DAG} Visualization",
  journal =      j-IEEE-TRANS-VIS-COMPUT-GRAPH,
  volume =       "25",
  number =       "9",
  pages =        "2804--2820",
  month =        sep,
  year =         "2019",
  CODEN =        "ITVGEA",
  DOI =          "https://doi.org/10.1109/TVCG.2018.2859974",
  ISSN =         "1077-2626",
  ISSN-L =       "1077-2626",
  bibdate =      "Thu Aug 1 06:57:34 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransviscomputgraph.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Visualization and Computer
                 Graphics",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2945",
  keywords =     "command line interface; Data visualization;
                 information visualization; Layout; Python; Software
                 visualization; Task analysis; Tools; Visualization",
}

@Article{Ishak:2019:BRS,
  author =       "B. Ishak",
  title =        "Book Review: {{\booktitle{A student's guide to Python
                 for physical modeling}}}",
  journal =      j-CONTEMP-PHYS,
  volume =       "60",
  number =       "1",
  pages =        "88--89",
  year =         "2019",
  CODEN =        "CTPHAF",
  DOI =          "https://doi.org/10.1080/00107514.2019.1606036",
  ISSN =         "0010-7514 (print), 1366-5812 (electronic)",
  ISSN-L =       "0010-7514",
  bibdate =      "Tue Jul 23 12:15:39 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/contempphys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Contemporary Physics",
  journal-URL =  "http://www.tandfonline.com/loi/tcph20",
  onlinedate =   "29 Apr 2019",
}

@Article{Jeong:2019:SSG,
  author =       "Eunji Jeong and Sungwoo Cho and Gyeong-In Yu and Joo
                 Seong Jeong and Dong-Jin Shin and Taebum Kim and
                 Byung-Gon Chun",
  title =        "Speculative Symbolic Graph Execution of Imperative
                 Deep Learning Programs",
  journal =      j-OPER-SYS-REV,
  volume =       "53",
  number =       "1",
  pages =        "26--33",
  month =        jul,
  year =         "2019",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/3352020.3352025",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Wed Oct 16 11:56:03 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "The rapid evolution of deep neural networks is
                 demanding deep learning (DL) frameworks not only to
                 satisfy the requirement of quickly executing large
                 computations, but also to support straightforward
                 programming models for quickly implementing and
                 experimenting with complex network structures. However,
                 existing frameworks fail to excel in both departments
                 simultaneously, leading to diverged efforts for
                 optimizing performance and improving usability. This
                 paper presents JANUS, a system that combines the
                 advantages from both sides by transparently converting
                 an imperative DL program written in Python, a de-facto
                 scripting language for DL, into an efficiently
                 executable symbolic dataflow graph. JANUS can convert
                 various dynamic features of Python, including dynamic
                 control flow, dynamic types, and impure functions, into
                 elements of a symbolic dataflow graph. Our experiments
                 show that JANUS can achieve fast DL training by
                 exploiting the techniques imposed by symbolic
                 graph-based DL frameworks, while maintaining the simple
                 and flexible programmability of imperative DL
                 frameworks at the same time.",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
}

@Article{Kuhring:2019:CBO,
  author =       "Lucas Kuhring and Zsolt Istv{\'a}n",
  title =        "{I} can't believe it's not (only) software!: bionic
                 distributed storage for {Parquet} files",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "12",
  number =       "12",
  pages =        "1838--1841",
  month =        aug,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3352063.3352079",
  ISSN =         "2150-8097",
  bibdate =      "Wed Oct 2 06:49:02 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "There is a steady increase in the size of data stored
                 and processed as part of data science applications,
                 leading to bottlenecks and inefficiencies at various
                 layers of the stack. One way of reducing such
                 bottlenecks and increasing energy efficiency is by
                 tailoring the underlying distributed storage solution
                 to the application domain, using resources more
                 efficiently. We explore this idea in the context of a
                 popular column-oriented storage format used in big data
                 workloads, namely Apache Parquet. Our prototype uses an
                 FPGA-based storage node that offers high bandwidth data
                 deduplication and a companion software library that
                 exposes an API for Parquet file access. This way the
                 storage node remains general purpose and could be
                 shared by applications from different domains, while,
                 at the same time, benefiting from deduplication well
                 suited to Apache Parquet files and from selective reads
                 of columns in the file. In this demonstration we show,
                 on the one hand, that by relying on the FPGA's dataflow
                 processing model, it is possible to implement in-line
                 deduplication without increasing latencies
                 significantly or reducing throughput. On the other
                 hand, we highlight the benefits of implementing the
                 application-specific aspects in a software library
                 instead of FPGA circuits and how this enables, for
                 instance, regular data science frameworks running in
                 Python to access the data on the storage node and to
                 offload filtering operations.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Lal:2019:CGA,
  author =       "Ratan Lal and Pavithra Prabhakar",
  title =        "Counterexample Guided Abstraction Refinement for
                 Polyhedral Probabilistic Hybrid Systems",
  journal =      j-TECS,
  volume =       "18",
  number =       "5s",
  pages =        "98:1--98:??",
  month =        oct,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3358217",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Thu Oct 17 18:16:44 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3358217",
  abstract =     "We consider the problem of safety analysis of
                 probabilistic hybrid systems, which capture discrete,
                 continuous and probabilistic behaviors. We present a
                 novel counterexample guided abstraction refinement
                 (CEGAR) algorithm for a subclass of probabilistic
                 hybrid systems, called polyhedral probabilistic hybrid
                 systems (PHS), where the continuous dynamics is
                 specified using a polyhedral set within which the
                 derivatives of the continuous executions lie.
                 Developing a CEGAR algorithm for PHS is complex owing
                 to the branching behavior due to the probabilistic
                 transitions, and the infinite state space due to the
                 real-valued variables. We present a practical algorithm
                 by choosing a succinct representation for
                 counterexamples, an efficient validation algorithm and
                 a constructive method for refinement that ensures
                 progress towards the elimination of a spurious abstract
                 counterexample. The technical details for refinement
                 are non-trivial since there are no clear disjoint sets
                 for separation. We have implemented our algorithm in a
                 Python toolbox called Procegar; our experimental
                 analysis demonstrates the benefits of our method in
                 terms of successful verification results, as well as
                 bug finding.",
  acknowledgement = ack-nhfb,
  articleno =    "98",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J840",
}

@Article{Lee:2019:CII,
  author =       "Edward D. Lee and Bryan C. Daniels",
  title =        "{Convenient Interface to Inverse Ising (ConIII)}: a
                 {Python 3} Package for Solving {Ising}-Type Maximum
                 Entropy Models",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "3--??",
  day =          "04",
  month =        mar,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.217",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.217/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Li:2019:AOP,
  author =       "Yangguang Li and Zhen Ming (Jack) Jiang",
  title =        "Assessing and optimizing the performance impact of the
                 just-in-time configuration parameters --- a case study
                 on {PyPy}",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "24",
  number =       "4",
  pages =        "2323--2363",
  month =        aug,
  year =         "2019",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-019-09691-z",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Fri Oct 11 07:46:32 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/article/10.1007/s10664-019-09691-z",
  acknowledgement = ack-nhfb,
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Book{Lobianco:2019:JQS,
  author =       "Antonello Lobianco",
  title =        "{Julia} quick syntax reference: a pocket guide for
                 data science programming",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xvii + 216 + 66",
  year =         "2019",
  DOI =          "https://doi.org/10.1007/978-1-4842-5190-4",
  ISBN =         "1-4842-5189-X, 1-4842-5190-3 (e-book)",
  ISBN-13 =      "978-1-4842-5189-8, 978-1-4842-5190-4 (e-book)",
  LCCN =         "QA76.73.J85",
  bibdate =      "Thu Apr 8 11:08:50 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/book/10.1007/978-1-4842-5190-4",
  abstract =     "This quick Julia programming language guide is a
                 condensed code and syntax reference to the Julia 1.x
                 programming language, updated with the latest features
                 of the Julia APIs, libraries, and packages. It presents
                 the essential Julia syntax in a well-organized format
                 that can be used as a handy reference. This book
                 provides an introduction that reveals basic Julia
                 structures and syntax; discusses data types, control
                 flow, functions, input/output, exceptions,
                 metaprogramming, performance, and more. Additionally,
                 you'll learn to interface Julia with other programming
                 languages such as R for statistics or Python. You will
                 learn how to use Julia packages for data analysis,
                 numerical optimization and symbolic computation, and
                 how to disseminate your results in dynamic documents or
                 interactive web pages. In this book, the focus is on
                 providing important information as quickly as possible.
                 It is packed with useful information and is a must-have
                 for any Julia programmer. What You Will Learn Set up
                 the software needed to run Julia and your first Hello
                 World example Work with types and the different
                 containers that Julia makes available for rapid
                 application development Use vectorized, classical
                 loop-based code, logical operators, and blocks Explore
                 Julia functions by looking at arguments, return values,
                 polymorphism, parameters, anonymous functions, and
                 broadcasts Build custom structures in Julia Interface
                 Julia with other languages such as C/C++, Python, and R
                 Program a richer API, modifying the code before it is
                 executed using expressions, symbols, macros, quote
                 blocks, and more Maximize your code's performance Who
                 This Book Is For Experienced programmers new to Julia,
                 as well as existing Julia coders new to the now stable
                 Julia version 1.0 release.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Computer
                 programming; Handbooks, manuals, etc; Computer
                 programming; Julia (Computer program language)",
  tableofcontents = "Part 1. Language Core \\
                 1. Getting Started \\
                 2. Data Types and Structures \\
                 3. Control Flow and Functions \\
                 4. Custom Types \\
                 5. Input? Output \\
                 6. Metaprogramming and Macros \\
                 7. Interfacing Julia with Other Languages \\
                 8. Efficiently Write Efficient Code \\
                 Part 2. Packages Ecosystem \\
                 9. Working with Data \\
                 10. Mathematical Libraries \\
                 11. Utilities",
}

@Article{Malloy:2019:EAT,
  author =       "Brian A. Malloy and James F. Power",
  title =        "An empirical analysis of the transition from {Python
                 2} to {Python 3}",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "24",
  number =       "2",
  pages =        "751--778",
  month =        apr,
  year =         "2019",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-018-9637-2",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Fri Oct 11 07:46:31 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/article/10.1007/s10664-018-9637-2",
  acknowledgement = ack-nhfb,
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Malloy:2019:GEM,
  author =       "Brian A. Malloy and James F. Power",
  title =        "Grammar engineering for multiple front-ends for
                 {Python}",
  journal =      j-SPE,
  volume =       "49",
  number =       "3",
  pages =        "380--400",
  month =        mar,
  year =         "2019",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2665",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Mon Mar 25 14:15:53 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "04 December 2018",
}

@Article{Martin:2019:QPM,
  author =       "R. D. Martin and Q. Cai and T. Garrow and C. Kapahi",
  title =        "\pkg{QExpy}: a {Python-3} module to support
                 undergraduate physics laboratories",
  journal =      j-SOFTWAREX,
  volume =       "10",
  number =       "??",
  pages =        "Article 100273",
  month =        jul # "\slash " # dec,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100273",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:36 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271101930144X",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Book{McNicholas:2019:DSJ,
  author =       "Paul D. McNicholas and Peter A. Tait",
  title =        "Data science with {Julia}",
  publisher =    "Chapman and Hall\slash CRC",
  address =      "Boca Raton, FL, USA",
  pages =        "xix + 220",
  year =         "2019",
  DOI =          "https://doi.org/10.1201/9781351013673",
  ISBN =         "1-138-49999-4, 1-351-01364-5, 1-351-01365-3,
                 1-351-01366-1, 1-351-01367-X",
  ISBN-13 =      "978-1-138-49998-0 (paperback), 978-1-138-49999-7,
                 978-1-351-01364-2, 978-1-351-01365-9,
                 978-1-351-01366-6, 978-1-351-01367-3",
  LCCN =         "QA76.73.J85 M37 2019eb",
  bibdate =      "Fri May 21 17:39:58 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Julia, an open-source programming language, was
                 created to be as easy to use as languages such as R and
                 Python while also as fast as C and Fortran. An
                 accessible, intuitive, and highly efficient base
                 language with speed that exceeds R and Python, makes
                 Julia a formidable language for data science. Using
                 well known data science methods that will motivate the
                 reader, Data Science with Julia will get readers up to
                 speed on key features of the Julia language and
                 illustrate its facilities for data science and machine
                 learning work.",
  acknowledgement = ack-nhfb,
  subject =      "Julia (Computer program language); Data structures
                 (Computer science); Data structures (Computer science);
                 Julia (Computer program language)",
  tableofcontents = "Cover \\
                 Half Title \\
                 Title Page \\
                 Copyright Page \\
                 Dedication \\
                 Table Of Contents \\
                 Foreword \\
                 Preface \\
                 About The Authors \\
                 1: Introduction \\
                 1.1 Data Science \\
                 1.2 Big Data \\
                 1.3 Julia \\
                 1.4 Julia And R Packages \\
                 1.5 Datasets \\
                 1.5.1 Overview \\
                 1.5.2 Beer Data \\
                 1.5.3 Coffee Data \\
                 1.5.4 Leptograpsus Crabs Data \\
                 1.5.5 Food Preferences Data \\
                 1.5.6 X2 Data \\
                 1.5.7 Iris Data \\
                 1.6 Outline Of The Contents Of This Monograph \\
                 2: Core Julia \\
                 2.1 Variable Names \\
                 2.2 Operators \\
                 2.3 Types \\
                 2.3.1 Numeric \\
                 2.3.2 Floats \\
                 2.3.3 Strings \\
                 2.3.4 Tuples \\
                 2.4 Data Structures \\
                 2.4.1 Arrays \\
                 2.4.2 Dictionaries \\
                 2.5 Control Flow \\
                 2.5.1 Compound Expressions \\
                 2.5.2 Conditional Evaluation \\
                 2.5.3 Loops \\
                 2.5.3.1 Basics \\
                 2.5.3.2 Loop Termination \\
                 2.5.3.3 Exception Handling \\
                 2.6 Functions \\
                 3: Working With Data \\
                 3.1 Dataframes \\
                 3.2 Categorical Data \\
                 3.3 Input/Output \\
                 3.4 Useful Dataframe Functions \\
                 3.5 Split-Apply-Combine Strategy \\
                 3.6 Query. Jl \\
                 4: Visualizing Data \\
                 4.1 Gadfly. Jl \\
                 4.2 Visualizing Univariate Data \\
                 4.3 Distributions \\
                 4.4 Visualizing Bivariate Data \\
                 4.5 Error Bars \\
                 4.6 Facets \\
                 4.7 Saving Plots \\
                 5: Supervised Learning \\
                 5.1 Introduction \\
                 5.2 Cross-Validation \\
                 5.2.1 Overview \\
                 5.2.2 K-Fold Cross-Validation \\
                 5.3 $K$-Nearest Neighbours Classification \\
                 5.4 Classification And Regression Trees \\
                 5.4.1 Overview \\
                 5.4.2 Classification Trees \\
                 5.4.3 Regression Trees \\
                 5.4.4 Comments \\
                 5.5 Bootstrap \\
                 5.6 Random Forests \\
                 5.7 Gradient Boosting \\
                 5.7.1 Overview \\
                 5.7.2 Beer Data \\
                 5.7.3 Food Data \\
                 5.8 Comments \\
                 6: Unsupervised Learning \\
                 6.1 Introduction \\
                 6.2 Principal Components Analysis \\
                 6.3 Probabilistic Principal Components Analysis \\
                 6.4 Em Algorithm for Ppca \\
                 6.4.1 Background: EM Algorithm \\
                 6.4.2 E-step \\
                 6.4.3 M-step \\
                 6.4.4 Woodbury Identity \\
                 6.4.5 Initialization \\
                 6.4.6 Stopping Rule \\
                 6.4.7 Implementing the EM Algorithm for PPCA \\
                 6.4.8 Comments \\
                 6.5 $K$-Means Clustering \\
                 6.6 Mixture Of Probabilistic Principal Components
                 Analyzers \\
                 6.6.1 Model \\
                 6.6.2 Parameter Estimation \\
                 6.6.3 Illustrative Example: Coffee Data \\
                 6.7 Comments \\
                 7: R Interoperability \\
                 7.1 Accessing R Datasets \\
                 7.2 Interacting With R \\
                 7.3 Example: Clustering And Data Reduction For The
                 Coffee Data \\
                 7.3.1 Coffee Data \\
                 7.3.2 PGMM Analysis \\
                 7.3.3 VSCC Analysis \\
                 7.4 Example: Food Data \\
                 7.4.1 Overview \\
                 7.4.2 Random Forests \\
                 Appendix A: Julia and R Packages Used Herein \\
                 Appendix B: Variables for Food Data \\
                 Appendix C: Useful Mathematical Results \\
                 C.1 Brief Overview of Eigenvalues \\
                 C.2 Selected Linear Algebra Results \\
                 C.3 Matrix Calculus Results \\
                 Appendix D: Performance Tips \\
                 D.1 Floating Point Numbers \\
                 D.1.1 Do Not Test for Equality \\
                 D.1.2 Use Logarithms for Division \\
                 D.1.3 Subtracting Two Nearly Equal Numbers \\
                 D.2 Julia Performance \\
                 D.2.1 General Tips \\
                 D.2.2 Array Processing \\
                 D.2.3 Separate Core Computations \\
                 Appendix E: Linear Algebra Functions \\
                 E.1 Vector Operations \\
                 E.2 Matrix Operations \\
                 E.3 Matrix Decompositions \\
                 References \\
                 Index",
}

@Article{Micieli:2019:NTP,
  author =       "Davide Micieli and Triestino Minniti and Giuseppe
                 Gorini",
  title =        "\pkg{NeuTomPy} toolbox, a {Python} package for
                 tomographic data processing and reconstruction",
  journal =      j-SOFTWAREX,
  volume =       "9",
  number =       "??",
  pages =        "260--264",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:43 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018302103",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Book{Mishra:2019:PRP,
  author =       "Pradeepta Mishra",
  title =        "{PyTorch} Recipes: a Problem--solution Approach",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  year =         "2019",
  DOI =          "https://doi.org/10.1007/978-1-4842-4258-2",
  ISBN =         "1-4842-4257-2, 1-4842-4258-0 (e-book), 1-4842-4259-9",
  ISBN-13 =      "978-1-4842-4257-5, 978-1-4842-4258-2 (e-book),
                 978-1-4842-4259-9 (print)",
  LCCN =         "QA76.87",
  bibdate =      "Tue Nov 19 11:04:20 MST 2019",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.vlebooks.com/vleweb/product/openreader?id=none\%26isbn=9781484242582",
  abstract =     "Get up to speed with the deep learning concepts of
                 Pytorch using a problem-solution approach. Starting
                 with an introduction to PyTorch, you'll get
                 familiarized with tensors, a type of data structure
                 used to calculate arithmetic operations and also learn
                 how they operate. You will then take a look at
                 probability distributions using PyTorch and get
                 acquainted with its concepts. Further you will dive
                 into transformations and graph computations with
                 PyTorch. Along the way you will take a look at common
                 issues faced with neural network implementation and
                 tensor differentiation, and get the best solutions for
                 them. Moving on to algorithms; you will learn how
                 PyTorch works with supervised and unsupervised
                 algorithms. You will see how convolutional neural
                 networks, deep neural networks, and recurrent neural
                 networks work using PyTorch. In conclusion you will get
                 acquainted with natural language processing and text
                 processing using PyTorch. You will: Master tensor
                 operations for dynamic graph-based calculations using
                 PyTorch Create PyTorch transformations and graph
                 computations for neural networks Carry out supervised
                 and unsupervised learning using PyTorch Work with deep
                 learning algorithms such as CNN and RNN Build LSTM
                 models in PyTorch Use PyTorch for text processing.",
  acknowledgement = ack-nhfb,
  subject =      "Neural networks (Computer science); Machine learning;
                 Python (Computer program language); COMPUTERS;
                 General.; Machine learning.; Neural networks (Computer
                 science); Python (Computer program language)",
  tableofcontents = "Introduction to PyTorch, Tensors, and Tensor
                 operations \\
                 Probability distributions using PyTorch \\
                 CNN and RNN using PyTorch \\
                 Introduction to neural networks using PyTorch \\
                 Supervised learning using PyTorch \\
                 Fine-tuning deep learning models using PyTorch \\
                 Natural language processing using PyTorch",
}

@Article{Mohanan:2019:FCA,
  author =       "Ashwin Vishnu Mohanan and Cyrille Bonamy and Pierre
                 Augier",
  title =        "\pkg{FluidFFT}: Common {API} ({C++} and {Python}) for
                 {Fast Fourier Transform} {HPC} Libraries",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "10--??",
  day =          "01",
  month =        apr,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.238",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.238/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Mohanan:2019:FMO,
  author =       "Ashwin Vishnu Mohanan and Cyrille Bonamy and Miguel
                 Calpe Linares and Pierre Augier",
  title =        "\pkg{FluidSim}: Modular, Object-Oriented {Python}
                 Package for High-Performance {CFD} Simulations",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "14--??",
  day =          "26",
  month =        apr,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.239",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.239/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@InProceedings{Moura:2019:UJP,
  author =       "R. A. R. Moura and M. A. O. Schroeder and S. J. S.
                 Silva and E. G. Nepomuceno and P. H. N. Vieira and A.
                 C. S. Lima",
  booktitle =    "{2019 International Symposium on Lightning Protection
                 (XV SIPDA)}",
  title =        "The Usage of {Julia} Programming in Grounding Grids
                 Simulations : An alternative to {MATLAB} and {Python}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "1--4",
  year =         "2019",
  DOI =          "https://doi.org/10.1109/SIPDA47030.2019.8951702",
  bibdate =      "Thu Apr 8 07:17:08 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Julia programming language",
}

@Article{Puzyrev:2019:PCF,
  author =       "Vladimir Puzyrev and Mehdi Ghommem and Shiv Meka",
  title =        "\pkg{pyROM}: a computational framework for reduced
                 order modeling",
  journal =      j-J-COMPUT-SCI,
  volume =       "30",
  pages =        "157--173",
  month =        jan,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2018.12.004",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  MRclass =      "65L99",
  MRnumber =     "3894336",
  bibdate =      "Tue Sep 19 13:55:07 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750318307518",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Article{Qin:2019:QPP,
  author =       "Tian Qin and Qi Zhang and Renata M. Wentzcovitch and
                 Koichiro Umemoto",
  title =        "{\tt qha}: a {Python} package for quasiharmonic free
                 energy calculation for multi-configuration systems",
  journal =      j-COMP-PHYS-COMM,
  volume =       "237",
  number =       "??",
  pages =        "199--207",
  month =        apr,
  year =         "2019",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2018.11.003",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Feb 6 15:16:58 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465518303953",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Book{Rao:2019:NLP,
  author =       "Delip Rao and Brian McMahan",
  title =        "Natural Language Processing with {PyTorch}: Build
                 Intelligent Language Applications Using Deep Learning",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xiii + 238",
  year =         "2019",
  ISBN =         "1-4919-7818-X, 1-4919-7820-1 (e-book), 1-4919-7822-8,
                 1-4919-7823-6 (paperback)",
  ISBN-13 =      "978-1-4919-7818-4, 978-1-4919-7820-7 (e-book),
                 978-1-4919-7822-1, 978-1-4919-7823-8 (paperback)",
  LCCN =         "QA76.9.N38 R36 2019",
  bibdate =      "Tue Nov 19 11:01:40 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Natural Language Processing (NLP) offers unbounded
                 opportunities for solving interesting problems in
                 artificial intelligence, making it the latest frontier
                 for developing intelligent, deep learning-based
                 applications. If you're a developer or researcher ready
                 to dive deeper into this rapidly growing area of
                 artificial intelligence, this practical book shows you
                 how to use the PyTorch deep learning framework to
                 implement recently discovered NLP techniques. To get
                 started, all you need is a machine learning background
                 and experience programming with Python. Authors Delip
                 Rao and Goku Mohandas provide you with a solid
                 grounding in PyTorch, and deep learning algorithms, for
                 building applications involving semantic representation
                 of text. Each chapter includes several code examples
                 and illustrations. Get extensive introductions to NLP,
                 deep learning, and PyTorch. Understand traditional NLP
                 methods, including NLTK, SpaCy, and gensim. Explore
                 embeddings: high quality representations for words in a
                 language. Learn representations from a language
                 sequence, using the Recurrent Neural Network (RNN).
                 Improve on RNN results with complex neural
                 architectures, such as Long Short Term Memories (LSTM)
                 and Gated Recurrent Units. Explore sequence-to-sequence
                 models (used in translation) that read one sequence and
                 produce another.",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "Introduction \\
                 A quick tour of traditional NLP \\
                 Foundational components of neural networks \\
                 Feed-forward networks for natural language processing
                 \\
                 Embedding words and types \\
                 Sequence modeling for natural language processing \\
                 Intermediate sequence modeling for natural language
                 processing \\
                 Advanced sequence modeling for natural language
                 processing \\
                 Classics, frontiers, and next steps",
  subject =      "Natural language processing (Computer science);
                 Computer programs; Python (Computer program language);
                 Machine learning",
  tableofcontents = "Preface \\
                 Conventions Used in This Book \\
                 Using Code Examples \\
                 O'Reilly Safari \\
                 How to Contact Us \\
                 Acknowledments \\
                 1. Introduction \\
                 The Supervised Learning Paradigm \\
                 Observation and Target Encoding \\
                 One-Hot Representation \\
                 TF Representation \\
                 TF-IDF Representation \\
                 Target Encoding \\
                 Computational Graphs \\
                 PyTorch Basics \\
                 Installing PyTorch \\
                 Creating Tensors \\
                 Tensor Types and Size \\
                 Tensor Operations \\
                 Indexing, Slicing, and Joining \\
                 Tensors and Computational Graphs \\
                 CUDA Tensors \\
                 Exercises \\
                 Solutions \\
                 Summary \\
                 References \\
                 2. A Quick Tour of Traditional NLPCorpora, Tokens, and
                 Types \\
                 Unigrams, Bigrams, Trigrams \ldots{}, $N$-grams \\
                 Lemmas and Stems \\
                 Categorizing Sentences and Documents \\
                 Categorizing Words: POS Tagging \\
                 Categorizing Spans: Chunking and Named Entity
                 Recognition \\
                 Structure of Sentences \\
                 Word Senses and Semantics \\
                 Summary \\
                 References \\
                 3. Foundational Components of Neural Networks \\
                 The Perceptron: The Simplest Neural Network \\
                 Activation Functions \\
                 Sigmoid \\
                 Tanh \\
                 ReLU \\
                 Softmax \\
                 Loss Functions \\
                 Mean Squared Error Loss \\
                 Categorical Cross-Entropy Loss \\
                 Binary Cross-Entropy Loss \\
                 Diving Deep into Supervised Training \\
                 Constructing Toy Data \\
                 Putting It Together: Gradient-Based Supervised Learning
                 \\
                 Auxiliary Training Concepts \\
                 Correctly Measuring Model Performance: Evaluation
                 Metrics \\
                 Correctly Measuring Model Performance: Splitting the
                 Dataset \\
                 Knowing When to Stop Training \\
                 Finding the Right Hyperparameters \\
                 Regularization \\
                 Example: Classifying Sentiment of Restaurant Reviews
                 \\
                 The Yelp Review Dataset \\
                 Understanding PyTorch's Dataset Representation \\
                 The Vocabulary, the Vectorizer, and the DataLoader \\
                 A Perceptron Classifier \\
                 The Training Routine \\
                 Evaluation, Inference, and Inspection \\
                 Summary \\
                 References \\
                 4. Feed-Forward Networks for Natural Language
                 Processing \\
                 The Multilayer Perceptron \\
                 A Simple Example: XOR \\
                 Implementing MLPs in PyTorch \\
                 Example: Surname Classification with an MLP \\
                 The Surnames Dataset \\
                 Vocabulary, Vectorizer, and DataLoader \\
                 The SurnameClassifier Model \\
                 The Training Routine \\
                 Model Evaluation and Prediction \\
                 Regularizing MLPs: Weight Regularization and Structural
                 Regularization (or Dropout) \\
                 Convolutional Neural Networks \\
                 CNN Hyperparameters \\
                 Implementing CNNs in PyTorchExample: Classifying
                 Surnames by Using a CNN \\
                 The SurnameDataset Class \\
                 Vocabulary, Vectorizer, and DataLoader \\
                 Reimplementing the SurnameClassifier with Convolutional
                 Networks \\
                 The Training Routine \\
                 Model Evaluation and Prediction \\
                 Miscellaneous Topics in CNNs \\
                 Pooling \\
                 Batch Normalization (BatchNorm) \\
                 Network-in-Network Connections (1x1 Convolutions) \\
                 Residual Connections/Residual Block \\
                 Summary \\
                 References \\
                 5. Embedding Words and Types \\
                 Why Learn Embeddings? \\
                 Efficiency of Embeddings \\
                 Approaches to Learning Word Embeddings \\
                 The Practical Use of Pretrained Word Embeddings",
}

@Article{Rogers:2019:SLB,
  author =       "Samuel Rogers and Joshua Slycord and Ronak Raheja and
                 Hamed Tabkhi",
  title =        "Scalable {LLVM}-Based Accelerator Modeling in gem5",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "18",
  number =       "1",
  pages =        "18--21",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1109/LCA.2019.2893932",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Thu Jun 20 17:18:18 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeecomputarchitlett.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "This article proposes a scalable integrated system
                 architecture modeling for hardware accelerator based in
                 gem5 simulation framework. The core of proposed
                 modeling is a LLVM-based simulation engine for modeling
                 any customized data-path with respect to inherent
                 data/instruction-level parallelism (derived by
                 algorithms) and available compute units (defined by the
                 user). The simulation framework also offers a
                 general-purpose communication interface that allows a
                 scalable and flexible connection into the gem5
                 ecosystem. Python API of gem5, enabling modifications
                 to the system hierarchy without the need to rebuild the
                 underlying simulator. Our simulation framework
                 currently supports full-system simulation (both
                 bare-metal and a full Linux kernel) for ARM-based
                 systems, with future plans to add support for RISC-V.
                 The LLVM-based modeling and modular integration to gem5
                 allow long-term simulation expansion and sustainable
                 design modeling for emerging applications with demands
                 for acceleration.",
  acknowledgement = ack-nhfb,
  affiliation =  "Rogers, S (Reprint Author), Univ Noth Carolina, Dept
                 Elect \& Comp Engn, Charlotte, NC 28223 USA. Rogers,
                 Samuel; Slycord, Joshua; Raheja, Ronak; Tabkhi, Hamed,
                 Univ Noth Carolina, Dept Elect \& Comp Engn, Charlotte,
                 NC 28223 USA.",
  author-email = "sroger48@uncc.edu jslycord@uncc.edu rraheja@uncc.edu
                 htabkhiv@uncc.edu",
  da =           "2019-06-20",
  doc-delivery-number = "HL5MF",
  eissn =        "1556-6064",
  fjournal =     "IEEE Computer Architecture Letters",
  journal-iso =  "IEEE Comput. Archit. Lett.",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
  keywords =     "application program interfaces; ARM-based systems;
                 Computational modeling; Computer architecture
                 simulation; customized data-path; Engines; field
                 programmable gate arrays; flexible connection;
                 full-system simulation; gem5 ecosystem; gem5 simulation
                 framework; general-purpose communication interface;
                 Hardware; hardware accelerator; hardware accelerators;
                 heterogeneous systems; inherent data; instruction-level
                 parallelism; Linux; LLVM-based modeling; LLVM-based
                 simulation engine; logic design; long-term simulation
                 expansion; microprocessor chips; multiprocessing
                 systems; parallel architectures; parallel programming;
                 program compilers; reduced instruction set computing;
                 Registers; RISC-V; Runtime; scalable connection;
                 scalable integrated system architecture modeling;
                 scalable LLVM-based accelerator modeling; Space
                 exploration; sustainable design modeling;
                 Synchronization; system hierarchy",
  number-of-cited-references = "11",
  ORCID-numbers = "Slycord, Joshua/0000-0002-0569-4094 Rogers,
                 Samuel/0000-0002-9697-2933",
  research-areas = "Computer Science",
  times-cited =  "0",
  unique-id =    "Rogers:2019:SLB",
  web-of-science-categories = "Computer Science, Hardware \&
                 Architecture",
}

@Article{Rose:2019:PSB,
  author =       "Michael E. Rose and John R. Kitchin",
  title =        "\pkg{pybliometrics}: Scriptable bibliometrics using a
                 {Python} interface to {Scopus}",
  journal =      j-SOFTWAREX,
  volume =       "10",
  number =       "??",
  pages =        "Article 100263",
  month =        jul # "\slash " # dec,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100263",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:36 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019300573",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ruiz-Rosero:2019:SSS,
  author =       "Juan Ruiz-Rosero and Gustavo Ramirez-Gonzalez and
                 Jesus Viveros-Delgado",
  title =        "Software survey: {ScientoPy}, a scientometric tool for
                 topics trend analysis in scientific publications",
  journal =      j-SCIENTOMETRICS,
  volume =       "121",
  number =       "2",
  pages =        "1165--1188",
  month =        nov,
  year =         "2019",
  CODEN =        "SCNTDX",
  DOI =          "https://doi.org/10.1007/s11192-019-03213-w",
  ISSN =         "0138-9130 (print), 1588-2861 (electronic)",
  ISSN-L =       "0138-9130",
  bibdate =      "Tue Oct 22 04:51:32 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scientometrics2010.bib",
  URL =          "http://link.springer.com/article/10.1007/s11192-019-03213-w",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientometrics",
  journal-URL =  "http://link.springer.com/journal/11192",
}

@Article{Saad:2019:PPS,
  author =       "Tony Saad and Giovanna Ruai",
  title =        "\pkg{PyMaxEnt}: a {Python} software for maximum
                 entropy moment reconstruction",
  journal =      j-SOFTWAREX,
  volume =       "10",
  number =       "??",
  pages =        "Article 100353",
  month =        jul # "\slash " # dec,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100353",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:36 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019302456",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Sandha:2019:DDM,
  author =       "Sandeep Singh Sandha and Wellington Cabrera and
                 Mohammed Al-Kateb and Sanjay Nair and Mani Srivastava",
  title =        "In-database distributed machine learning:
                 demonstration using {Teradata SQL} engine",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "12",
  number =       "12",
  pages =        "1854--1857",
  month =        aug,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3352063.3352083",
  ISSN =         "2150-8097",
  bibdate =      "Wed Oct 2 06:49:02 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Machine learning has enabled many interesting
                 applications and is extensively being used in big data
                 systems. The popular approach --- training machine
                 learning models in frameworks like Tensorflow, Pytorch
                 and Keras --- requires movement of data from database
                 engines to analytical engines, which adds an excessive
                 overhead on data scientists and becomes a performance
                 bottleneck for model training. In this demonstration,
                 we give a practical exhibition of a solution for the
                 enablement of distributed machine learning natively
                 inside database engines. During the demo, the audience
                 will interactively use Python APIs in Jupyter Notebooks
                 to train multiple linear regression models on synthetic
                 regression datasets and neural network models on vision
                 and sensory datasets directly inside Teradata SQL
                 Engine.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Shajii:2019:SHP,
  author =       "Ariya Shajii and Ibrahim Numanagi{\'c} and Riyadh
                 Baghdadi and Bonnie Berger and Saman Amarasinghe",
  title =        "{Seq}: a high-performance language for
                 bioinformatics",
  journal =      j-PACMPL,
  volume =       "3",
  number =       "OOPSLA",
  pages =        "125:1--125:29",
  month =        oct,
  year =         "2019",
  DOI =          "https://doi.org/10.1145/3360551",
  bibdate =      "Fri Aug 7 19:22:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3360551",
  abstract =     "The scope and scale of biological data are increasing
                 at an exponential rate, as technologies like
                 next-generation sequencing are becoming radically
                 cheaper and more prevalent. Over the last two decades,
                 the cost of sequencing a genome has dropped from \$100
                 million to nearly \$100 --- a factor of over $ 10^6 $
                 --- and the amount of data to be analyzed has increased
                 proportionally. Yet, as Moore's Law continues to slow,
                 computational biologists can no longer rely on
                 computing hardware to compensate for the
                 ever-increasing size of biological datasets. In a field
                 where many researchers are primarily focused on
                 biological analysis over computational optimization,
                 the unfortunate solution to this problem is often to
                 simply buy larger and faster machines.\par

                 Here, we introduce Seq, the first language tailored
                 specifically to bioinformatics, which marries the ease
                 and productivity of Python with C-like performance. Seq
                 starts with a subset of Python --- and is in many cases
                 a drop-in replacement --- yet also incorporates novel
                 bioinformatics- and computational genomics-oriented
                 data types, language constructs and optimizations. Seq
                 enables users to write high-level, Pythonic code
                 without having to worry about low-level or
                 domain-specific optimizations, and allows for the
                 seamless expression of the algorithms, idioms and
                 patterns found in many genomics or bioinformatics
                 applications. We evaluated Seq on several standard
                 computational genomics tasks like reverse
                 complementation, k-mer manipulation, sequence pattern
                 matching and large genomic index queries. On equivalent
                 CPython code, Seq attains a performance improvement of
                 up to two orders of magnitude, and a $ 160 \times $
                 improvement once domain-specific language features and
                 optimizations are used. With parallelism, we
                 demonstrate up to a $ 650 \times $ improvement.
                 Compared to optimized C++ code, which is already
                 difficult for most biologists to produce, Seq
                 frequently attains up to a $ 2 \times $ improvement,
                 and with shorter, cleaner code. Thus, Seq opens the
                 door to an age of democratization of highly-optimized
                 bioinformatics software.",
  acknowledgement = ack-nhfb,
  articleno =    "125",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Speck:2019:APP,
  author =       "Robert Speck",
  title =        "{Algorithm 997}: {pySDC}-Prototyping Spectral Deferred
                 Corrections",
  journal =      j-TOMS,
  volume =       "45",
  number =       "3",
  pages =        "35:1--35:23",
  month =        aug,
  year =         "2019",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3310410",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Sep 3 17:49:22 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=3310410",
  abstract =     "In this article, we present the Python framework pySDC
                 for solving collocation problems with spectral deferred
                 correction (SDC) methods and their time-parallel
                 variant PFASST, the parallel full approximation scheme
                 in space and time. pySDC features many implementations
                 of SDC and PFASST, from simple implicit timestepping to
                 high-order implicit-explicit or multi-implicit
                 splitting and multilevel SDCs. The software package
                 comes with many different, preimplemented examples and
                 has seven tutorials to help new users with their first
                 steps. Time parallelism is implemented either in an
                 emulated way for debugging and prototyping or using MPI
                 for benchmarking. The code is fully documented and
                 tested using continuous integration, including most
                 results of previous publications. Here, we describe the
                 structure of the code by taking two different
                 perspectives: those of the user and those of the
                 developer. The first sheds light on the front-end, the
                 examples, and the tutorials, and the second is used to
                 describe the underlying implementation and the data
                 structures. We show three different examples to
                 highlight various aspects of the implementation, the
                 capabilities, and the usage of pySDC. In addition,
                 couplings to the FEniCS framework and PETSc, the latter
                 including spatial parallelism with MPI, are
                 described.",
  acknowledgement = ack-nhfb,
  articleno =    "35",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Spiegelberg:2019:TRE,
  author =       "Leonhard F. Spiegelberg and Tim Kraska",
  title =        "{Tuplex}: robust, efficient analytics when {Python}
                 rules",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "12",
  number =       "12",
  pages =        "1958--1961",
  month =        aug,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3352063.3352109",
  ISSN =         "2150-8097",
  bibdate =      "Wed Oct 2 06:49:02 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Spark became the defacto industry standard as an
                 execution engine for data preparation, cleaning,
                 distributed machine learning, streaming and,
                 warehousing over raw data. However, with the success of
                 Python the landscape is shifting again; there is a
                 strong demand for tools which better integrate with the
                 Python landscape and do not have the impedance mismatch
                 like Spark. In this paper, we demonstrate Tuplex (short
                 for tuples and exceptions ), a Python-native data
                 preparation framework that allows users to develop and
                 deploy pipelines faster and more robustly while
                 providing bare-metal execution times through code
                 compilation whenever possible.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Staub:2019:XHA,
  author =       "Florian Staub",
  title =        "{xSLHA}: an {Les Houches Accord} reader for {Python}
                 and {Mathematica}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "241",
  number =       "??",
  pages =        "132--138",
  month =        aug,
  year =         "2019",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2019.03.013",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue May 14 10:01:33 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465519300918",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Steppa:2019:HPH,
  author =       "Constantin Steppa and Tim L. Holch",
  title =        "{HexagDLy} --- Processing hexagonally sampled data
                 with {CNNs} in {PyTorch}",
  journal =      j-SOFTWAREX,
  volume =       "9",
  number =       "??",
  pages =        "193--198",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:43 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018302723",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Svatunek:2019:APT,
  author =       "Dennis Svatunek and Kendall N. Houk",
  title =        "{autoDIAS}: a python tool for an automated
                 distortion\slash interaction activation strain
                 analysis",
  journal =      j-J-COMPUT-CHEM,
  volume =       "40",
  number =       "28",
  pages =        "2509--2515",
  day =          "30",
  month =        oct,
  year =         "2019",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26023",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Wed Oct 9 06:45:53 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "07 July 2019",
}

@Article{Varner:2019:WPP,
  author =       "James F. Varner and Noor Eldabagh and Derek Volta and
                 Reem Eldabagh and Jonathan J. Foley IV",
  title =        "\pkg{WPTherml}: a {Python} Package for the Design of
                 Materials for Harnessing Heat",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "7",
  number =       "1",
  pages =        "28--??",
  day =          "19",
  month =        aug,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.271",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.271/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Verma:2019:CAH,
  author =       "Pradeepika Verma and Sukomal Pal and Hari Om",
  title =        "A Comparative Analysis on {Hindi} and {English}
                 Extractive Text Summarization",
  journal =      j-TALLIP,
  volume =       "18",
  number =       "3",
  pages =        "30:1--30:??",
  month =        jul,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3308754",
  ISSN =         "2375-4699 (print), 2375-4702 (electronic)",
  ISSN-L =       "2375-4699",
  bibdate =      "Wed Oct 2 10:34:32 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tallip.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3308754",
  abstract =     "Text summarization is the process of transfiguring a
                 large documental information into a clear and concise
                 form. In this article, we present a detailed
                 comparative study of various extractive methods for
                 automatic text summarization on Hindi and English text
                 datasets of news articles. We consider 13 different
                 summarization techniques, namely, TextRank, LexRank,
                 Luhn, LSA, Edmundson, ChunkRank, TGraph, UniRank,
                 NN-ED, NN-SE, FE-SE, SummaRuNNer, and MMR-SE, and we
                 evaluate their performance using various performance
                 metrics, such as precision, recall, $ F_1 $, cohesion,
                 non-redundancy, readability, and significance. A
                 thorough analysis is done in eight different parts that
                 exhibits the strengths and limitations of these
                 methods, effect of performance over the summary length,
                 impact of language of a document, and other factors as
                 well. A standard summary evaluation tool (ROUGE) and
                 extensive programmatic evaluation using Python 3.5 in
                 Anaconda environment are used to evaluate their
                 outcome.",
  acknowledgement = ack-nhfb,
  articleno =    "30",
  fjournal =     "ACM Transactions on Asian and Low-Resource Language
                 Information Processing (TALLIP)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1521",
}

@Article{Yadav:2019:PPB,
  author =       "Vinay Yadav and Subhankar Karmakar and Pradip P.
                 Kalbar and A. K. Dikshit",
  title =        "{PyTOPS}: a {Python} based tool for {TOPSIS}",
  journal =      j-SOFTWAREX,
  volume =       "9",
  number =       "??",
  pages =        "217--222",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:43 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018302279",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Zhang:2019:SSE,
  author =       "Zhiping Zhang and Jeffrey D. Varner",
  title =        "{SEML}: a Simplified {English} Modeling Language for
                 Constructing Biological Models in {Julia}",
  journal =      "IFAC-PapersOnLine",
  volume =       "52",
  number =       "26",
  pages =        "121--128",
  year =         "2019",
  DOI =          "https://doi.org/10.1016/j.ifacol.2019.12.246",
  ISSN =         "2405-8963",
  bibdate =      "Fri Apr 9 15:22:25 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "8th Conference on Foundations of Systems Biology in
                 Engineering FOSBE 2019",
  URL =          "https://www.sciencedirect.com/science/article/pii/S2405896319321299",
  abstract =     "Many markup languages can be used to encode biological
                 networks, each with strengths and weaknesses. Model
                 specifications written in these languages can then
                 used, in conjunction with proprietary software packages
                 e.g., MATLAB, or open community alternatives, to
                 simulate the behavior of biological systems. In this
                 study, we present the Simplified English Modeling
                 Language (SEML) and associated compiler, as an
                 alternative to existing approaches. SEML supports the
                 specification of biological reaction systems in a
                 simple natural language like syntax. Models encoded in
                 SEML are transformed into executable code using a
                 compiler written in the open-source Julia programming
                 language. The compiler performs a sequence of
                 operations, including tokenization, syntactic and
                 semantic error checking, to convert SEML into an
                 intermediate representation (IR). From the intermediate
                 representation, the compiler then generates executable
                 code in one of three programming languages: Julia,
                 Python or MATLAB. Currently, SEML supports both kinetic
                 and constraint based model generation for signal
                 transduction and metabolic modeling. In this study, we
                 demonstrate SEML by modeling two proof-of-concept
                 prototypical networks: a constraint-based model solved
                 using flux balance analysis (FBA) and a kinetic model
                 encoded as Ordinary Differential Equations (ODEs). SEML
                 is a promising tool for encoding and sharing
                 human-readable biological models, however it is still
                 in its infancy. With further development, SEML has the
                 potential to handle more unstructured natural language
                 inputs, generate more complex models types and convert
                 its natural language markup to currently used model
                 interchange formats such systems biology markup
                 language.",
  acknowledgement = ack-nhfb,
  keywords =     "simplified English modeling language, markup language,
                 biological modeling, compiler, Julia",
}

@Article{Ziegenhagen:2019:CLP,
  author =       "Uwe Ziegenhagen",
  title =        "Combining {\LaTeX} with {Python}",
  journal =      j-TUGboat,
  volume =       "40",
  number =       "2",
  pages =        "126--128",
  month =        "????",
  year =         "2019",
  CODEN =        "????",
  ISSN =         "0896-3207",
  ISSN-L =       "0896-3207",
  bibdate =      "Tue Oct 15 11:27:32 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  URL =          "https://tug.org/TUGboat/tb40-2/tb125ziegenhagen-python.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "TUGboat",
  issue =        "125",
  journal-URL =  "https://tug.org/TUGboat/",
  remark =       "Intermediate Plus{\Dash}both writing (La)TeX from
                 Python and running Python from LaTeX.",
}

@Article{Zienert:2019:CTP,
  author =       "Tilo Zienert",
  title =        "\pkg{cp-tools}: a {Python} library for predicting heat
                 capacity of crystalline substances",
  journal =      j-SOFTWAREX,
  volume =       "9",
  number =       "??",
  pages =        "244--247",
  month =        jan # "\slash " # jun,
  year =         "2019",
  CODEN =        "????",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Oct 14 09:45:43 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711018301791",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Aguirre-Mesa:2020:MLC,
  author =       "Andres M. Aguirre-Mesa and Manuel J. Garcia and Harry
                 Millwater",
  title =        "{MultiZ}: a Library for Computation of High-order
                 Derivatives Using Multicomplex or Multidual Numbers",
  journal =      j-TOMS,
  volume =       "46",
  number =       "3",
  pages =        "23:1--23:30",
  month =        sep,
  year =         "2020",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3378538",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Sat Sep 26 07:28:19 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3378538",
  abstract =     "Multicomplex and multidual numbers are two
                 generalizations of complex numbers with multiple
                 imaginary axes, useful for numerical computation of
                 derivatives with machine precision. The similarities
                 between multicomplex and multidual algebras allowed us
                 to create a unified library to use either one for
                 sensitivity analysis. This library can be used to
                 compute arbitrary order derivates of functions of a
                 single variable or multiple variables. The storage of
                 matrix representations of multicomplex and multidual
                 numbers is avoided using a combination of
                 one-dimensional resizable arrays and an indexation
                 method based on binary bitwise operations. To provide
                 high computational efficiency and low memory usage, the
                 multiplication of hypercomplex numbers up to sixth
                 order is carried out using a hard-coded algorithm. For
                 higher hypercomplex orders, the library uses by default
                 a multiplication method based on binary bitwise
                 operations. The computation of algebraic and
                 transcendental functions is achieved using a Taylor
                 series approximation. Fortran and Python versions were
                 developed, and extensions to other languages are
                 self-evident.",
  acknowledgement = ack-nhfb,
  articleno =    "23",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Ahmadzadeh:2020:MDT,
  author =       "Azim Ahmadzadeh and Kankana Sinha and Berkay Aydin and
                 Rafal A. Angryk",
  title =        "\pkg{MVTS-Data Toolkit}: a {Python} package for
                 preprocessing multivariate time series data",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100518",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100518",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020300157",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ahsen:2020:RPS,
  author =       "Mehmet Eren Ahsen and Robert Vogel and Gustavo A.
                 Stolovitzky",
  title =        "\pkg{R/PY-SUMMA}: an {R/Python} Package for
                 Unsupervised Ensemble Learning for Binary
                 Classification Problems in Bioinformatics",
  journal =      j-J-COMPUT-BIOL,
  volume =       "27",
  number =       "9",
  pages =        "1337--1340",
  month =        sep,
  year =         "2020",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.2019.0348",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Wed Mar 31 17:23:54 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.2019.0348;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.2019.0348",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "3 January 2020",
}

@Article{AlAtoum:2020:ETG,
  author =       "B. {Al Atoum} and S. F. Biagi and D.
                 Gonz{\'a}lez-D{\'\i}az and B. J. P. Jones and A. D.
                 McDonald",
  title =        "Electron transport in gaseous detectors with a
                 {Python}-based {Monte Carlo} simulation code",
  journal =      j-COMP-PHYS-COMM,
  volume =       "254",
  number =       "??",
  pages =        "Article 107357",
  month =        sep,
  year =         "2020",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107357",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 19 07:19:49 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520301533",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Alenaizan:2020:PIR,
  author =       "Asem Alenaizan and Lori A. Burns and C. David
                 Sherrill",
  title =        "{Python} implementation of the restrained
                 electrostatic potential charge model",
  journal =      j-IJQC,
  volume =       "120",
  number =       "2",
  pages =        "e26035:1--e26035:??",
  day =          "15",
  month =        jan,
  year =         "2020",
  CODEN =        "IJQCB2",
  DOI =          "https://doi.org/10.1002/qua.26035",
  ISSN =         "0020-7608 (print), 1097-461X (electronic)",
  ISSN-L =       "0020-7608",
  bibdate =      "Tue Feb 11 10:36:01 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijqc2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Quantum Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0020-7608/",
  onlinedate =   "22 August 2019",
}

@Article{Anonymous:2020:SWS,
  author =       "Anonymous",
  title =        "Skills wanted: {Sql}, {Java}, {Python}, and {AWS} top
                 employers' wish lists --- [Careers]",
  journal =      j-IEEE-SPECTRUM,
  volume =       "57",
  number =       "1",
  pages =        "59--59",
  month =        jan,
  year =         "2020",
  CODEN =        "IEESAM",
  DOI =          "https://doi.org/10.1109/MSPEC.2020.8946316",
  ISSN =         "0018-9235 (print), 1939-9340 (electronic)",
  ISSN-L =       "0018-9235",
  bibdate =      "Fri Jan 17 09:23:28 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeespectrum2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Spectrum",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
}

@Book{Badia:2020:SDS,
  author =       "Antonio Badia",
  title =        "{SQL} for Data Science",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xi + 285 + 16",
  year =         "2020",
  DOI =          "https://doi.org/10.1007/978-3-030-57592-2",
  ISBN =         "3-030-57591-8, 3-030-57592-6 (e-book), 3-030-57593-4",
  ISBN-13 =      "978-3-030-57591-5, 978-3-030-57592-2 (e-book),
                 978-3-030-57593-9",
  ISSN =         "2197-9723 (print), 2197-974X (electronic)",
  ISSN-L =       "2197-9723",
  bibdate =      "Fri Aug 27 09:07:11 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sqlbooks.bib",
  series =       "Data-Centric Systems and Applications",
  URL =          "http://www.springerlink.com/content/978-3-030-57592-2",
  abstract =     "This textbook explains SQL within the context of data
                 science and introduces the different parts of SQL as
                 they are needed for the tasks usually carried out
                 during data analysis. Using the framework of the data
                 life cycle, it focuses on the steps that are very often
                 given the short shift in traditional textbooks, like
                 data loading, cleaning and pre-processing. The book is
                 organized as follows. Chapter 1 describes the data life
                 cycle, i.e. the sequence of stages from data
                 acquisition to archiving, that data goes through as it
                 is prepared and then actually analyzed, together with
                 the different activities that take place at each stage.
                 Chapter 2 gets into databases proper, explaining how
                 relational databases organize data. Non-traditional
                 data, like XML and text, are also covered. Chapter 3
                 introduces SQL queries, but unlike traditional
                 textbooks, queries and their parts are described around
                 typical data analysis tasks like data exploration,
                 cleaning and transformation. Chapter 4 introduces some
                 basic techniques for data analysis and shows how SQL
                 can be used for some simple analyses without too much
                 complication. Chapter 5 introduces additional SQL
                 constructs that are important in a variety of
                 situations and thus completes the coverage of SQL
                 queries. Lastly, chapter 6 briefly explains how to use
                 SQL from within R and from within Python programs. It
                 focuses on how these languages can interact with a
                 database, and how what has been learned about SQL can
                 be leveraged to make life easier when using R or
                 Python. All chapters contain a lot of examples and
                 exercises on the way, and readers are encouraged to
                 install the two open-source database systems (MySQL and
                 Postgres) that are used throughout the book in order to
                 practice and work on the exercises, because simply
                 reading the book is much less useful than actually
                 using it. This book is for anyone interested in data
                 science and/or databases. It just demands a bit of
                 computer fluency, but no specific background on
                 databases or data analysis. All concepts are introduced
                 intuitively and with a minimum of specialized jargon.
                 After going through this book, readers should be able
                 to profitably learn more about data mining, machine
                 learning, and database management from more advanced
                 textbooks and courses.",
  acknowledgement = ack-nhfb,
  subject =      "Database management; Big data; SQL (Computer program
                 language); SQL (Computer program language); Big data.;
                 Database management.",
  tableofcontents = "1. The Data Life Cycle \\
                 2. Relational Data \\
                 3. Data Cleaning and Pre-processing \\
                 4. Introduction to Data Analysis \\
                 5. More SQL \\
                 6. Databases and Other Tools",
}

@Article{Barkley:2020:HMP,
  author =       "S. Barkley and T. G. Dimiduk and J. Fung and D. M. Kaz
                 and V. N. Manoharan and R. McGorty and R. W. Perry and
                 A. Wang",
  title =        "Holographic Microscopy With {Python} and {HoloPy}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "22",
  number =       "5",
  pages =        "72--82",
  year =         "2020",
  CODEN =        "CSENFA",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Aug 15 15:14:54 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Bentine:2020:PLP,
  author =       "E. Bentine and C. J. Foot and D. Trypogeorgos",
  title =        "{(py)LIon}: a package for simulating trapped ion
                 trajectories",
  journal =      j-COMP-PHYS-COMM,
  volume =       "253",
  number =       "??",
  pages =        "Article 107187",
  month =        aug,
  year =         "2020",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107187",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 19 07:19:48 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520300369",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Bleyer:2020:AFR,
  author =       "Jeremy Bleyer",
  title =        "Automating the Formulation and Resolution of Convex
                 Variational Problems: Applications from Image
                 Processing to Computational Mechanics",
  journal =      j-TOMS,
  volume =       "46",
  number =       "3",
  pages =        "27:1--27:33",
  month =        sep,
  year =         "2020",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3393881",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Sat Sep 26 07:28:19 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3393881",
  abstract =     "Convex variational problems arise in many fields
                 ranging from image processing to fluid and solid
                 mechanics communities. Interesting applications usually
                 involve non-smooth terms, which require well-designed
                 optimization algorithms for their resolution. The
                 present manuscript presents the Python package called
                 fenics_optim built on top of the FEniCS finite element
                 software, which enables one to automate the formulation
                 and resolution of various convex variational problems.
                 Formulating such a problem relies on FEniCS
                 domain-specific language and the representation of
                 convex functions, in particular, non-smooth ones, in
                 the conic programming framework. The discrete
                 formulation of the corresponding optimization problems
                 hinges on the finite element discretization
                 capabilities offered by FEniCS, while their numerical
                 resolution is carried out by the interior-point solver
                 Mosek. Through various illustrative examples, we show
                 that convex optimization problems can be formulated
                 using only a few lines of code, discretized in a very
                 simple manner, and solved extremely efficiently.",
  acknowledgement = ack-nhfb,
  articleno =    "27",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Boeira:2020:PPP,
  author =       "Emerson Boeira and Diego Eckhard",
  title =        "\pkg{pyvrft}: a {Python} package for the {Virtual
                 Reference Feedback Tuning}, a direct data-driven
                 control method",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100383",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100383",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019302894",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Boroojeny:2020:PPA,
  author =       "Ali Ebrahimpour Boroojeny and Akash Shrestha and Ali
                 Sharifi-zarchi and Suzanne Renick Gallagher and
                 S{\"u}leyman Cenk Sahinalp and Hamidreza Chitsaz",
  title =        "{PyGTED}: {Python} Application for Computing Graph
                 Traversal Edit Distance",
  journal =      j-J-COMPUT-BIOL,
  volume =       "27",
  number =       "3",
  pages =        "436--439",
  month =        mar,
  year =         "2020",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.2019.0510",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Tue Jun 2 19:30:01 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.2019.0510;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.2019.0510",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "11 March 2020",
}

@Article{Brown:2020:PPP,
  author =       "Daniel D. Brown and Philip Jones and Samuel Rowlinson
                 and Sean Leavey and Anna C. Green and Daniel
                 T{\"o}yr{\"a} and Andreas Freise",
  title =        "\pkg{Pykat}: {Python} package for modelling precision
                 optical interferometers",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100613",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100613",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303265",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@InProceedings{Brunie:2020:TFP,
  author =       "Hugo Brunie and Costin Iancu and Khaled Z. Ibrahim and
                 Philip Brisk and Brandon Cook",
  title =        "Tuning floating-point precision using dynamic program
                 information and temporal locality",
  crossref =     "IEEE:2020:SPI",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "1--14",
  year =         "2020",
  bibdate =      "Mon Sep 11 08:19:28 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "We present a methodology for precision tuning of full
                 applications. These techniques must select a search
                 space composed of either variables or instructions and
                 provide a scalable search strategy. In full application
                 settings one cannot assume compiler support for
                 practical reasons. Thus, an additional important
                 challenge is enabling code refactoring. We argue for an
                 instruction-based search space and we show: (1) how to
                 exploit dynamic program information based on call
                 stacks; and (2) how to exploit the iterative nature of
                 scientific codes, combined with temporal locality. We
                 applied the methodology to tune the implementation of
                 scientific codes written in a combination of Python,
                 CUDA, C++ and Fortran, tuning calls to math exp library
                 functions. The iterative search refinement always
                 reduces the search complexity and the number of steps
                 to solution. Dynamic program information increases
                 search efficacy. Using this approach, we obtain
                 application runtime performance improvements up to
                 27\%.",
  acknowledgement = ack-nhfb,
  articleno =    "50",
}

@Article{Cass:2020:TPL,
  author =       "S. Cass",
  title =        "The top programming languages: Our latest rankings put
                 {Python} on top-again --- [Careers]",
  journal =      j-IEEE-SPECTRUM,
  volume =       "57",
  number =       "8",
  pages =        "22--22",
  month =        aug,
  year =         "2020",
  CODEN =        "IEESAM",
  ISSN =         "0018-9235 (print), 1939-9340 (electronic)",
  ISSN-L =       "0018-9235",
  bibdate =      "Wed Jul 29 07:44:21 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeespectrum2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Spectrum",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
}

@Article{Chaparro:2020:PPB,
  author =       "Gustavo Chaparro and Andr{\'e}s Mej{\'\i}a",
  title =        "{Phasepy}: a {Python} based framework for fluid phase
                 equilibria and interfacial properties computation",
  journal =      j-J-COMPUT-CHEM,
  volume =       "41",
  number =       "29",
  pages =        "2504--2526",
  month =        nov,
  year =         "2020",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26405",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Fri Mar 12 17:24:05 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "01 September 2020",
}

@Article{Cid-Fuentes:2020:EDH,
  author =       "Javier {\'A}lvarez Cid-Fuentes and Pol {\'A}lvarez and
                 Ramon Amela and Kuninori Ishii and Rafael K. Morizawa
                 and Rosa M. Badia",
  title =        "Efficient development of high performance data
                 analytics in {Python}",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "111",
  number =       "??",
  pages =        "570--581",
  month =        oct,
  year =         "2020",
  CODEN =        "FGSEVI",
  DOI =          "https://doi.org/10.1016/j.future.2019.09.051",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Fri Jun 19 07:44:21 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/futgencompsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167739X18321393",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@Article{Coleman:2020:MPJ,
  author =       "Chase Coleman and Spencer Lyon and Lilia Maliar and
                 Serguei Maliar",
  title =        "{Matlab}, {Python}, {Julia}: What to Choose in
                 Economics?",
  journal =      j-COMP-ECONOMICS,
  volume =       "",
  number =       "",
  pages =        "??--??",
  month =        "",
  year =         "2020",
  CODEN =        "CNOMEL",
  DOI =          "https://doi.org/10.1007/s10614-020-09983-3",
  ISSN =         "",
  ISSN-L =       "0927-7099",
  bibdate =      "Fri Apr 9 07:54:52 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/article/10.1007/s10614-020-09983-3",
  acknowledgement = ack-nhfb,
  fjournal =     "Computational Economics",
}

@Article{Cooper:2020:SDS,
  author =       "Crispin H. V. Cooper and Alain J. F. Chiaradia",
  title =        "\pkg{sDNA}: $3$-d spatial network analysis for {GIS},
                 {CAD}, Command Line and {Python}",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100525",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100525",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019303401",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Decan:2020:SPL,
  author =       "Alexandre Decan and Tom Mens",
  title =        "\pkg{Sismic} --- a {Python} library for statechart
                 execution and testing",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100590",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100590",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303034",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Eschle:2020:ZSP,
  author =       "Jonas Eschle and Albert Puig Navarro and Rafael Silva
                 Coutinho and Nicola Serra",
  title =        "\pkg{zfit}: Scalable pythonic fitting",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100508",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100508",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019303851",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{FiguerasiVentura:2020:PRT,
  author =       "Jordi {Figueras i Ventura} and Martin Lainer and Zaira
                 Schauwecker and Jacopo Grazioli and Urs Germann",
  title =        "\pkg{Pyrad}: a Real-Time Weather Radar Data Processing
                 Framework Based on {Py-ART}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "28--??",
  day =          "08",
  month =        oct,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.330",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.330/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Frison:2020:BAB,
  author =       "Gianluca Frison and Tommaso Sartor and Andrea Zanelli
                 and Moritz Diehl",
  title =        "The {BLAS API} of {BLASFEO}: Optimizing Performance
                 for Small Matrices",
  journal =      j-TOMS,
  volume =       "46",
  number =       "2",
  pages =        "15:1--15:36",
  month =        jun,
  year =         "2020",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3378671",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Fri Jun 12 07:37:53 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3378671",
  abstract =     "Basic Linear Algebra Subroutines For Embedded
                 Optimization (BLASFEO) is a dense linear algebra
                 library providing high-performance implementations of
                 BLAS- and LAPACK-like routines for use in embedded
                 optimization and other applications targeting
                 relatively small matrices. BLASFEO defines an
                 application programming interface (API) which uses a
                 packed matrix format as its native format. This format
                 is analogous to the internal memory buffers of
                 optimized BLAS, but it is exposed to the user and it
                 removes the packing cost from the routine call. For
                 matrices fitting in cache, BLASFEO outperforms
                 optimized BLAS implementations, both open source and
                 proprietary. This article investigates the addition of
                 a standard BLAS API to the BLASFEO framework, and
                 proposes an implementation switching between two or
                 more algorithms optimized for different matrix sizes.
                 Thanks to the modular assembly framework in BLASFEO,
                 tailored linear algebra kernels with mixed column- and
                 panel-major arguments are easily developed. This BLAS
                 API has lower performance than the BLASFEO API, but it
                 nonetheless outperforms optimized BLAS and especially
                 LAPACK libraries for matrices fitting in cache.
                 Therefore, it can boost a wide range of applications,
                 where standard BLAS and LAPACK libraries are employed
                 and the matrix size is moderate. In particular, this
                 article investigates the benefits in scientific
                 programming languages such as Octave, SciPy, and
                 Julia.",
  acknowledgement = ack-nhfb,
  articleno =    "15",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Gao:2020:JLM,
  author =       "Kaifeng Gao and Gang Mei and Francesco Piccialli and
                 Salvatore Cuomo and Jingzhi Tu and Zenan Huo",
  title =        "{Julia} language in machine learning: Algorithms,
                 applications, and open issues",
  journal =      j-COMP-SCI-REV,
  volume =       "37",
  pages =        "100254",
  month =        aug,
  year =         "2020",
  DOI =          "https://doi.org/10.1016/j.cosrev.2020.100254",
  ISSN =         "1574-0137 (print), 1876-7745 (electronic)",
  bibdate =      "Thu Apr 8 08:02:29 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S157401372030071X",
  abstract =     "Machine learning is driving development across many
                 fields in science and engineering. A simple and
                 efficient programming language could accelerate
                 applications of machine learning in various fields.
                 Currently, the programming languages most commonly used
                 to develop machine learning algorithms include Python,
                 MATLAB, and C/C ++. However, none of these languages
                 well balance both efficiency and simplicity. The Julia
                 language is a fast, easy-to-use, and open-source
                 programming language that was originally designed for
                 high-performance computing, which can well balance the
                 efficiency and simplicity. This paper summarizes the
                 related research work and developments in the
                 applications of the Julia language in machine learning.
                 It first surveys the popular machine learning
                 algorithms that are developed in the Julia language.
                 Then, it investigates applications of the machine
                 learning algorithms implemented with the Julia
                 language. Finally, it discusses the open issues and the
                 potential future directions that arise in the use of
                 the Julia language in machine learning.",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Science Review",
  journal-URL =  "http://www.sciencedirect.com/science/journal/15740137",
  keywords =     "Artificial neural networks; Deep learning; Julia
                 programming language; Machine learning; Supervised
                 learning; Unsupervised learning",
}

@Book{Gezerlis:2020:NMPb,
  author =       "Alex Gezerlis",
  title =        "Numerical Methods in Physics with {Python}",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "????",
  year =         "2020",
  ISBN =         "1-108-48884-6 (hardcover), 1-108-73893-1 (paperback),
                 1-108-77231-5 (e-pub)",
  ISBN-13 =      "978-1-108-48884-6 (hardcover), 978-1-108-73893-4
                 (paperback), 978-1-108-77231-0 (e-pub)",
  LCCN =         "QC20.7.N86 G49 2020",
  bibdate =      "Sat Sep 5 17:36:50 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/numana2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  subject =      "Mathematical physics; Data processing; Numerical
                 analysis; Python (Computer program language); Data
                 processing.; Python (Computer program language)",
  tableofcontents = "Idiomatic Python \\
                 Numbers \\
                 Derivatives \\
                 Matrices \\
                 Roots \\
                 Approximation \\
                 Integrals \\
                 Differential Equations",
}

@Article{Gonzalez-Perez:2020:PPP,
  author =       "V. Gonzalez-Perez and P. Keil and Y. Li and A.
                 Z{\"u}lke and R. Burrel and D. Csala and H. Hoster",
  title =        "A {Python} Package to Preprocess the Data Produced by
                 Novonix High-Precision Battery-Testers",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "3--??",
  day =          "04",
  month =        mar,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.281",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.281/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Groce:2020:Pc,
  author =       "Alex Groce",
  title =        "Passages",
  journal =      j-SIGSOFT,
  volume =       "45",
  number =       "3",
  pages =        "4--5",
  month =        jul,
  year =         "2020",
  DOI =          "https://doi.org/10.1145/3402127.3402129",
  bibdate =      "Wed Mar 24 14:24:58 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsoft2020.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3402127.3402129",
  abstract =     "Federico Biancuzzi and Shane Warden's Masterminds of
                 Programming: Conversations with the Creators of Major
                 Programming Languages is a treasure. The book consists
                 of interviews with the creators of, in order, C++,
                 Python, APL, Forth, BASIC, AWK, Lua, \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/loi/sigsoft",
}

@Article{Hadjidoukas:2020:TST,
  author =       "P. E. Hadjidoukas and A. Bartezzaghi and F.
                 Scheidegger and R. Istrate and C. Bekas and A. C. I.
                 Malossi",
  title =        "\pkg{torcpy}: Supporting task parallelism in
                 {Python}",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100517",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100517",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020300091",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Hadjimichael:2020:RPL,
  author =       "Antonia Hadjimichael and David Gold and David Hadka
                 and Patrick Reed",
  title =        "\pkg{Rhodium}: {Python} Library for Many-Objective
                 Robust Decision Making and Exploratory Modeling",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "12--??",
  day =          "09",
  month =        jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.293",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.293/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Hart:2020:MSM,
  author =       "Kenneth A. Hart and Julian J. Rimoli",
  title =        "\pkg{{MicroStructPy}}: a statistical microstructure
                 mesh generator in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100595",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100595",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303083",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Herath:2020:PPL,
  author =       "Uthpala Herath and Pedram Tavadze and Xu He and Eric
                 Bousquet and Sobhit Singh and Francisco Mu{\~n}oz and
                 Aldo H. Romero",
  title =        "{PyProcar}: a {Python} library for electronic
                 structure pre/post-processing",
  journal =      j-COMP-PHYS-COMM,
  volume =       "251",
  number =       "??",
  pages =        "Article 107080",
  month =        jun,
  year =         "2020",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2019.107080",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri May 29 07:03:02 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465519303935",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Herring:2020:BPL,
  author =       "Patrick Herring and Chirranjeevi {Balaji Gopal} and
                 Muratahan Aykol and Joseph H. Montoya and Abraham
                 Anapolsky and Peter M. Attia and William Gent and Jens
                 S. Hummelsh{\o}j and Linda Hung and Ha-Kyung Kwon and
                 Patrick Moore and Daniel Schweigert and Kristen A.
                 Severson and Santosh Suram and Zi Yang and Richard D.
                 Braatz and Brian D. Storey",
  title =        "\pkg{BEEP}: a {Python} library for Battery Evaluation
                 and Early Prediction",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100506",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100506",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020300492",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Herrmann:2020:HRF,
  author =       "Julien Herrmann and Guillaume Pallez (Aupy)",
  title =        "{H-Revolve}: a Framework for Adjoint Computation on
                 Synchronous Hierarchical Platforms",
  journal =      j-TOMS,
  volume =       "46",
  number =       "2",
  pages =        "12:1--12:25",
  month =        jun,
  year =         "2020",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3378672",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Fri Jun 12 07:37:53 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3378672",
  abstract =     "We study the problem of checkpointing strategies for
                 adjoint computation on synchronous hierarchical
                 platforms, specifically computational platforms with
                 several levels of storage with different writing and
                 reading costs. When reversing a large adjoint chain,
                 choosing which data to checkpoint and where is a
                 critical decision for the overall performance of the
                 computation. We introduce H-Revolve, an optimal
                 algorithm for this problem. We make it available in a
                 public Python library along with the implementation of
                 several state-of-the-art algorithms for the variant of
                 the problem with two levels of storage. We provide a
                 detailed description of how one can use this library in
                 an adjoint computation software in the field of
                 automatic differentiation or backpropagation. Finally,
                 we evaluate the performance of H-Revolve and other
                 checkpointing heuristics though an extensive campaign
                 of simulation.",
  acknowledgement = ack-nhfb,
  articleno =    "12",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Book{Hill:2020:LSPe,
  author =       "Christian Hill",
  title =        "Learning scientific programming with Python",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  edition =      "Second",
  pages =        "xi + 557",
  year =         "2020",
  DOI =          "https://doi.org/10.1017/9781108778039",
  ISBN =         "1-108-74591-1",
  ISBN-13 =      "978-1-108-74591-8 (paperback)",
  LCCN =         "Q183.9 .H58 2020",
  bibdate =      "Thu Jan 14 09:04:38 MST 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Learn to master basic programming tasks from scratch
                 with real-life, scientifically relevant examples and
                 solutions drawn from both science and engineering.
                 Students and researchers at all levels are increasingly
                 turning to the powerful Python programming language as
                 an alternative to commercial packages and this
                 fast-paced introduction moves from the basics to
                 advanced concepts in one complete volume, enabling
                 readers to gain proficiency quickly. Beginning with
                 general programming concepts such as loops and
                 functions within the core Python 3 language, and moving
                 on to the NumPy, SciPy and Matplotlib libraries for
                 numerical programming and data visualization, this
                 textbook also discusses the use of Jupyter Notebooks to
                 build rich-media, shareable documents for scientific
                 analysis. The second edition features a new chapter on
                 data analysis with the pandas library and comprehensive
                 updates, and new exercises and examples. A final
                 chapter introduces more advanced topics such as
                 floating-point precision and algorithm stability, and
                 extensive online resources support further study. This
                 textbook represents a targeted package for students
                 requiring a solid foundation in Python programming.",
  acknowledgement = ack-nhfb,
  author-dates = "1974--",
  subject =      "Science; Data processing; Python (Computer program
                 language); Mathematics",
  tableofcontents = "Frontmatter / i--iv \\
                 Contents / v--vii \\
                 Acknowledgements / viii--viii \\
                 Code Listings / ix--xii \\
                 1: Introduction / 1--7 \\
                 2: The Core Python Language I / 8--85 \\
                 3: Interlude: Simple Plots and Charts / 86--104 \\
                 4: The Core Python Language II / 105--171 \\
                 5: IPython and Jupyter Notebook / 172--195 \\
                 6: NumPy / 196--293 \\
                 7: Matplotlib / 294--357 \\
                 8: SciPy / 358--437 \\
                 9: Data Analysis with pandas / 438--489 \\
                 10: General Scientific Programming / 490--513 \\
                 Appendix A: Solutions / 514--535 \\
                 Appendix B: Differences Between Python Versions 2 and 3
                 / 536--539 \\
                 Appendix C: SciPy s odeint Ordinary Differential
                 Equation Solver / 540--542 \\
                 Glossary / 543--548 \\
                 Index / 549--558",
}

@Article{Hollmer:2020:JVP,
  author =       "Philipp H{\"o}llmer and Liang Qin and Michael F.
                 Faulkner and A. C. Maggs and Werner Krauth",
  title =        "{JeLLyFysh} --- Version 1.0 --- a {Python} application
                 for all-atom event-chain {Monte Carlo}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "253",
  number =       "??",
  pages =        "Article 107168",
  month =        aug,
  year =         "2020",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107168",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 19 07:19:48 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520300254",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Holmes:2020:URL,
  author =       "Josie Holmes and Iftekhar Ahmed and Caius Brindescu
                 and Rahul Gopinath and He Zhang and Alex Groce",
  title =        "Using Relative Lines of Code to Guide Automated Test
                 Generation for {Python}",
  journal =      j-TOSEM,
  volume =       "29",
  number =       "4",
  pages =        "28:1--28:38",
  month =        oct,
  year =         "2020",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/3408896",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Thu Oct 8 07:18:41 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3408896",
  abstract =     "Raw lines of code (LOC) is a metric that does not, at
                 first glance, seem extremely useful for automated test
                 generation. It is both highly language-dependent and
                 not extremely meaningful, semantically, within a
                 language: one coder can produce the same effect with
                 many fewer lines than another. However, relative LOC,
                 between components of the same project, turns out to be
                 a highly useful metric for automated testing. In this
                 article, we make use of a heuristic based on LOC counts
                 for tested functions to dramatically improve the
                 effectiveness of automated test generation. This
                 approach is particularly valuable in languages where
                 collecting code coverage data to guide testing has a
                 very high overhead. We apply the heuristic to
                 property-based Python testing using the TSTL (Template
                 Scripting Testing Language) tool. In our experiments,
                 the simple LOC heuristic can improve branch and
                 statement coverage by large margins (often more than
                 20\%, up to 40\% or more) and improve fault detection
                 by an even larger margin (usually more than 75\% and up
                 to 400\% or more). The LOC heuristic is also easy to
                 combine with other approaches and is comparable to, and
                 possibly more effective than, two well-established
                 approaches for guiding random testing.",
  acknowledgement = ack-nhfb,
  articleno =    "28",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "https://dl.acm.org/loi/tosem",
}

@Article{Jackson:2020:PPD,
  author =       "Robert Jackson and Scott Collis and Timothy Lang and
                 Corey Potvin and Todd Munson",
  title =        "\pkg{PyDDA}: a {Pythonic} Direct Data Assimilation
                 Framework for Wind Retrievals",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "20--??",
  day =          "07",
  month =        oct,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.264",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.264/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Jiang:2020:PPF,
  author =       "S. Jiang and P. Pan and Y. Ou and C. Batten",
  title =        "{PyMTL3}: a {Python} Framework for Open-Source
                 Hardware Modeling, Generation, Simulation, and
                 Verification",
  journal =      j-IEEE-MICRO,
  volume =       "40",
  number =       "4",
  pages =        "58--66",
  month =        jul # "\slash " # aug,
  year =         "2020",
  CODEN =        "IEMIDZ",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Wed Jul 29 07:59:51 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Micro",
  journal-URL =  "http://www.computer.org/csdl/mags/mi/index.html",
}

@Article{Joksas:2020:BPT,
  author =       "Dovydas Joksas and Adnan Mehonic",
  title =        "\pkg{badcrossbar}: a {Python} tool for computing and
                 plotting currents and voltages in passive crossbar
                 arrays",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100617",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100617",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303307",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Kaiser:2020:JPP,
  author =       "K. E. Kaiser and A. N. Flores and C. R. Vernon",
  title =        "\pkg{Janus}: a {Python} Package for Agent-Based
                 Modeling of Land Use and Land Cover Change",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "15--??",
  day =          "25",
  month =        jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.306",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.306/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Karam:2020:PPS,
  author =       "Mokbel Karam and James C. Sutherland and Tony Saad",
  title =        "\pkg{PyModPDE}: a {Python} software for modified
                 equation analysis",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100541",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100541",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020300224",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Kortbeek:2020:BEB,
  author =       "Vito Kortbeek and Abu Bakar and Stefany Cruz and Kasim
                 Sinan Yildirim and Przemys{\l}aw Pawe{\l}czak and
                 Josiah Hester",
  title =        "{BFree}: Enabling Battery-free Sensor Prototyping with
                 {Python}",
  journal =      j-IMWUT,
  volume =       "4",
  number =       "4",
  pages =        "135:1--135:39",
  month =        dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3432191",
  ISSN =         "2474-9567 (electronic)",
  ISSN-L =       "2474-9567",
  bibdate =      "Tue Mar 30 18:21:01 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/imwut.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3432191",
  abstract =     "Building and programming tiny battery-free energy
                 harvesting embedded computer systems is hard for the
                 average maker because of the lack of tools, hard to
                 comprehend programming models, and frequent power
                 failures. With the high ecologic cost of \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "135",
  fjournal =     "Proceedings of the ACM on Interactive, Mobile,
                 Wearable and Ubiquitous Technologies (IMWUT)",
  journal-URL =  "https://dl.acm.org/loi/imwut",
}

@InProceedings{Lauter:2020:FSA,
  author =       "Christoph Lauter and Anastasia Volkova",
  title =        "A Framework for Semi-Automatic Precision and Accuracy
                 Analysis for Fast and Rigorous Deep Learning",
  crossref =     "Cornea:2020:ISC",
  pages =        "103--110",
  month =        jun,
  year =         "2020",
  DOI =          "https://doi.org/10.1109/ARITH48897.2020.00023",
  ISSN =         "2576-2265",
  bibdate =      "Wed Jul 7 06:24:52 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Deep Neural Networks (DNN) represent a
                 performance-hungry application. Floating-Point (FP) and
                 custom floating-point-like arithmetic satisfies this
                 hunger. While there is need for speed, inference in
                 DNNs does not seem to have any need for precision. Many
                 papers experimentally observe that DNNs can
                 successfully run at almost ridiculously low precision.
                 The aim of this paper is two-fold: first, to shed some
                 theoretical light upon why a DNN's FP accuracy stays
                 high for low FP precision. We observe that the loss of
                 relative accuracy in the convolutional steps is
                 recovered by the activation layers, which are extremely
                 well-conditioned. We give an interpretation for the
                 link between precision and accuracy in DNNs. Second,
                 the paper presents a software framework for
                 semi-automatic FP error analysis for the inference
                 phase of deep-learning. Compatible with common
                 Tensorflow/Keras models, it leverages the frugally-deep
                 Python/C++ library to transform a neural network into
                 C++ code in order to analyze the network's need for
                 precision. This rigorous analysis is based an Interval
                 and Affine arithmetics to compute absolute and relative
                 error bounds for a DNN. We demonstrate our tool with
                 several examples.",
  acknowledgement = ack-nhfb,
  keywords =     "affine arithmetic; Analytical models; Biological
                 neural networks; Computational modeling; deep learning;
                 Digital arithmetic; error analysis; floating-point
                 arithmetic; interval arithmetic; Machine learning;
                 Neurons; Tools",
}

@Article{Loraamm:2020:PTV,
  author =       "Rebecca Loraamm and Joni Downs and James Anderson and
                 David S. Lamb",
  title =        "{PySTPrism}: {Tools} for voxel-based space-time
                 prisms",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100499",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100499",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019303309",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@InProceedings{Lunnikivi:2020:TPR,
  author =       "Henri Lunnikivi and Kai Jylkk{\"a}Timo
                 H{\"a}m{\"a}l{\"a}inen",
  booktitle =    "{Embedded Computer Systems: Architectures, Modeling,
                 and Simulation: 20th International Conference, SAMOS
                 2020, Samos, Greece, July 5--9, 2020, Proceedings}",
  title =        "Transpiling {Python} to {Rust} for Optimized
                 Performance",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "127--138",
  year =         "2020",
  DOI =          "https://doi.org/10.1007/978-3-030-60939-9_9",
  bibdate =      "Fri Apr 9 11:06:38 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/rust.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-030-60939-9_9",
  acknowledgement = ack-nhfb,
  keywords =     "Rust programming language",
}

@Article{Luporini:2020:APD,
  author =       "Fabio Luporini and Mathias Louboutin and Michael Lange
                 and Navjot Kukreja and Philipp Witte and Jan
                 H{\"u}ckelheim and Charles Yount and Paul H. J. Kelly
                 and Felix J. Herrmann and Gerard J. Gorman",
  title =        "Architecture and Performance of {Devito}, a System for
                 Automated Stencil Computation",
  journal =      j-TOMS,
  volume =       "46",
  number =       "1",
  pages =        "6:1--6:28",
  month =        apr,
  year =         "2020",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3374916",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Apr 29 08:09:49 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3374916",
  abstract =     "Stencil computations are a key part of many
                 high-performance computing applications, such as image
                 processing, convolutional neural networks, and
                 finite-difference solvers for partial differential
                 equations. Devito is a framework capable of generating
                 highly optimized code given symbolic equations
                 expressed in Python, specialized in, but not limited
                 to, affine (stencil) codes. The lowering process ---
                 from mathematical equations down to C++ code --- is
                 performed by the Devito compiler through a series of
                 intermediate representations. Several performance
                 optimizations are introduced, including advanced common
                 sub-expressions elimination, tiling, and
                 parallelization. Some of these are obtained through
                 well-established stencil optimizers, integrated in the
                 backend of the Devito compiler. The architecture of the
                 Devito compiler, as well as the performance
                 optimizations that are applied when generating code,
                 are presented. The effectiveness of such performance
                 optimizations is demonstrated using operators drawn
                 from seismic imaging applications.",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Lym:2020:PMT,
  author =       "Jonathan Lym and Gerhard R. Wittreich and Dionisios G.
                 Vlachos",
  title =        "A {Python Multiscale Thermochemistry Toolbox (pMuTT)}
                 for thermochemical and kinetic parameter estimation",
  journal =      j-COMP-PHYS-COMM,
  volume =       "247",
  number =       "??",
  pages =        "Article 106864",
  month =        feb,
  year =         "2020",
  CODEN =        "CPHCBZ",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Mar 2 13:57:35 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465519302516",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Ma:2020:PPP,
  author =       "He Ma and Wennie Wang and Siyoung Kim and Man-Hin
                 Cheng and Marco Govoni and Giulia Galli",
  title =        "{PyCDFT}: a {Python} package for constrained density
                 functional theory",
  journal =      j-J-COMPUT-CHEM,
  volume =       "41",
  number =       "20",
  pages =        "1859--1867",
  day =          "30",
  month =        jul,
  year =         "2020",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26354",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Fri Mar 12 17:24:02 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "04 June 2020",
}

@Article{Mauro:2020:KTC,
  author =       "Yihong Z. Mauro and Collin J. Wilkinson and John C.
                 Mauro",
  title =        "\pkg{KineticPy}: a tool to calculate long-time
                 kinetics in energy landscapes with broken ergodicity",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100393",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100393",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019303516",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Moshiri:2020:TMS,
  author =       "N. Moshiri",
  title =        "\pkg{TreeSwift}: a massively scalable {Python} tree
                 package",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100436",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100436",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019300767",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Mosteo:2020:RBA,
  author =       "Alejandro R. Mosteo",
  title =        "{RCLAda}, or Bringing {Ada} to the {Robot Operating
                 System}",
  journal =      j-SIGADA-LETTERS,
  volume =       "39",
  number =       "2",
  pages =        "35--40",
  month =        apr,
  year =         "2020",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/3394514.3394518",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "0736-721X",
  bibdate =      "Thu Mar 11 06:32:11 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigada.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3394514.3394518",
  abstract =     "The Robot Operating System (ROS) is a commonly used
                 framework in many fields of robotics research, with
                 increasing presence in the industry. The next iteration
                 of this framework, ROS2, aims to improve observed
                 shortcomings of its predecessor like deterministic
                 memory allocation and real-time characteristics. The
                 officially supported languages in ROS2 are C++ and
                 Python, although several other contributed APIs for
                 other languages exist. RCLAda is an API and
                 accompanying tools for the ROS2 framework that enable
                 the programming of ROS2 nodes in pure Ada with seamless
                 integration into the ROS2 workflow.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J32",
}

@Article{Olivier:2020:PUG,
  author =       "Audrey Olivier and Dimitris G. Giovanis and B. S.
                 Aakash and Mohit Chauhan and Lohit Vandanapu and
                 Michael D. Shields",
  title =        "\pkg{UQpy}: a general purpose {Python} package and
                 development environment for uncertainty
                 quantification",
  journal =      j-J-COMPUT-SCI,
  volume =       "47",
  pages =        "??--??",
  month =        nov,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2020.101204",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:55:40 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750320305056",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  articleno =    "101204",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Article{Olivier:2020:UGP,
  author =       "Audrey Olivier and Dimitrios Giovanis and B. S. Aakash
                 and Mohit Chauhan and Lohit Vandanapu and Michael D.
                 Shields",
  title =        "{UQpy}: a general purpose {Python} package and
                 development environment for uncertainty
                 quantification",
  journal =      j-J-COMPUT-SCI,
  volume =       "47",
  year =         "2020",
  DOI =          "https://doi.org/10.1016/j.jocs.2020.101204",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  MRclass =      "65C20 (62-04 65Y15)",
  MRnumber =     "4152776",
  MRreviewer =   "S\'{e}bastien\ J.\ Boyaval",
  bibdate =      "Wed Sep 20 15:13:57 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  articleno =    "101204",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
  pagecount =    "30",
}

@Article{Ortner:2020:MFP,
  author =       "Michael Ortner and Lucas Gabriel {Coliado Bandeira}",
  title =        "\pkg{Magpylib}: a free {Python} package for magnetic
                 field computation",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100466",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100466",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020300170",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Palma:2020:APL,
  author =       "Stefano {Dalla Palma} and Dario {Di Nucci} and Damian
                 A. Tamburri",
  title =        "\pkg{{AnsibleMetrics}}: a {Python} library for
                 measuring {Infrastructure-as-Code} blueprints in
                 {Ansible}",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100633",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100633",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303460",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Pluta:2020:EOP,
  author =       "Adam Pluta and Ontje L{\"u}nsdorf",
  title =        "\pkg{esy-osmfilter} --- a {Python} Library to
                 Efficiently Extract {OpenStreetMap} Data",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "19--??",
  day =          "01",
  month =        sep,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.317",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.317/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Ramon-Cortes:2020:AAP,
  author =       "Cristian Ramon-Cortes and Ramon Amela and Jorge
                 Ejarque and Philippe Clauss and Rosa M. Badia",
  title =        "\pkg{AutoParallel}: Automatic parallelisation and
                 distributed execution of affine loop nests in
                 {Python}",
  journal =      j-IJHPCA,
  volume =       "34",
  number =       "6",
  pages =        "659--675",
  day =          "1",
  month =        nov,
  year =         "2020",
  CODEN =        "IHPCFL",
  DOI =          "https://doi.org/10.1177/1094342020937050",
  ISSN =         "1094-3420 (print), 1741-2846 (electronic)",
  ISSN-L =       "1094-3420",
  bibdate =      "Tue May 18 15:46:08 MDT 2021",
  bibsource =    "http://hpc.sagepub.com/;
                 https://www.math.utah.edu/pub/tex/bib/ijsa.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://journals.sagepub.com/doi/full/10.1177/1094342020937050",
  acknowledgement = ack-nhfb,
  ajournal =     "Int. J. High Perform. Comput. Appl.",
  fjournal =     "International Journal of High Performance Computing
                 Applications",
  journal-URL =  "https://journals.sagepub.com/home/hpc",
}

@Article{Rasmussen:2020:PLR,
  author =       "Leandro Lima Rasmussen",
  title =        "{$ {UnBlocks^{gen}} $}: a {Python} library for {$3$D}
                 rock mass generation and analysis",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100577",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100577",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020302909",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ravasi:2020:PLO,
  author =       "Matteo Ravasi and Ivan Vasconcelos",
  title =        "{PyLops} --- a linear-operator {Python} library for
                 scalable algebra and optimization",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100361",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2019.100361",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019301086",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Reizenstein:2020:AIL,
  author =       "Jeremy F. Reizenstein and Benjamin Graham",
  title =        "{Algorithm 1004}: The {Iisignature} Library: Efficient
                 Calculation of Iterated-Integral Signatures and Log
                 Signatures",
  journal =      j-TOMS,
  volume =       "46",
  number =       "1",
  pages =        "8:1--8:21",
  month =        mar,
  year =         "2020",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3371237",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Apr 7 10:39:23 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3371237",
  abstract =     "Iterated-integral signatures and log signatures are
                 sequences calculated from a path that characterizes its
                 shape. They originate from the work of K. T. Chen and
                 have become important through Terry Lyons's theory of
                 differential equations driven by rough paths, which is
                 an important developing area of stochastic analysis.
                 They have applications in statistics and machine
                 learning, where there can be a need to calculate finite
                 parts of them quickly for many paths. We introduce the
                 signature and the most basic information (displacement
                 and signed areas) that it contains. We present
                 algorithms for efficiently calculating these
                 signatures. For log signatures this requires
                 consideration of the structure of free Lie algebras. We
                 benchmark the performance of the algorithms. The
                 methods are implemented in C++ and released as a Python
                 extension package, which also supports differentiation.
                 In combination with a machine learning library
                 (Tensorflow, PyTorch, or Theano), this allows
                 end-to-end learning of neural networks involving
                 signatures.",
  acknowledgement = ack-nhfb,
  articleno =    "8",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Salkovic:2020:POB,
  author =       "Edin Salkovic and Mostafa M. Abbas and Samir Brahim
                 Belhaouari and Khaoula Errafii and Halima Bensmail",
  title =        "\pkg{OutPyR}: {Bayesian} inference for {RNA-Seq}
                 outlier detection",
  journal =      j-J-COMPUT-SCI,
  volume =       "47",
  pages =        "??--??",
  month =        nov,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2020.101245",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:55:40 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750320305433",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  articleno =    "101245",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Article{Semper:2020:ERF,
  author =       "S. Semper and M. D{\"o}bereiner and S. Pawar and M.
                 Landmann and G. {Del Galdo}",
  title =        "\pkg{eadf}: Representation of far-field antenna
                 responses in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100583",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100583",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102030296X",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Sleem:2020:PPB,
  author =       "Ahmed Sleem and Mohamed Abdel-Baset and Ibrahim
                 El-henawy",
  title =        "\pkg{PyIVNS}: a {Python} based tool for
                 interval-valued neutrosophic operations and
                 normalization",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100632",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100632",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303459",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Stansbury:2020:PAF,
  author =       "Conrad Stansbury and Alessandra Lanzara",
  title =        "\pkg{PyARPES}: an analysis framework for multimodal
                 angle-resolved photoemission spectroscopies",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100472",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100472",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019301633",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Tartarini:2020:PPP,
  author =       "Federico Tartarini and Stefano Schiavon",
  title =        "\pkg{pythermalcomfort}: a {Python} package for thermal
                 comfort research",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100578",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100578",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020302910",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{vandenOord:2020:PID,
  author =       "Gijs van den Oord and Fredrik Jansson and Inti
                 Pelupessy and Maria Chertova and Johanna H.
                 Gr{\"o}nqvist and Pier Siebesma and Daan Crommelin",
  title =        "A {Python} interface to the {Dutch Atmospheric
                 Large-Eddy Simulation}",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100608",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100608",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303216",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Weise:2020:PSU,
  author =       "Konstantin Weise and Lucas Po{\ss}ner and Erik
                 M{\"u}ller and Richard Gast and Thomas R. Kn{\"o}sche",
  title =        "\pkg{Pygpc}: a sensitivity and uncertainty analysis
                 toolbox for {Python}",
  journal =      j-SOFTWAREX,
  volume =       "11",
  number =       "??",
  pages =        "Article 100450",
  month =        jan # "\slash " # jun,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100450",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:39 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020300078",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Wette:2020:SPO,
  author =       "Karl Wette",
  title =        "{SWIGLAL}: {Python} and {Octave} interfaces to the
                 {LALSuite} gravitational-wave data analysis libraries",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100634",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100634",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303472",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Williams:2020:PSP,
  author =       "Brendan Williams and Michael Lindner",
  title =        "\pkg{pyfMRIqc}: a Software Package for Raw {fMRI} Data
                 Quality Assurance",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "8",
  number =       "1",
  pages =        "23--??",
  day =          "07",
  month =        oct,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.280",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.280/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Zdybal:2020:PPS,
  author =       "Kamila Zdyba{\l} and Elizabeth Armstrong and
                 Alessandro Parente and James C. Sutherland",
  title =        "{PCAfold}: {Python} software to generate, analyze and
                 improve {PCA-derived} low-dimensional manifolds",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100630",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100630",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303435",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Zhang:2020:GPP,
  author =       "Yifei Zhang and Jia Cao",
  title =        "\pkg{GSimPy}: a {Python} package for measuring group
                 similarity",
  journal =      j-SOFTWAREX,
  volume =       "12",
  number =       "??",
  pages =        "Article 100526",
  month =        jul # "\slash " # dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100526",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 9 16:04:40 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711019303590",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Zhao:2020:ITC,
  author =       "Yafei Zhao and Paolo Vincenzo Genovese and Zhixing
                 Li",
  title =        "Intelligent Thermal Comfort Controlling System for
                 Buildings Based on {IoT} and {AI}",
  journal =      j-FUTURE-INTERNET,
  volume =       "12",
  number =       "2",
  pages =        "30",
  day =          "10",
  month =        feb,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi12020030",
  ISSN =         "1999-5903",
  bibdate =      "Mon Mar 2 12:22:42 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/12/2/30",
  abstract =     "With the improvement of technologies, people's demand
                 for intelligent devices of indoor and outdoor living
                 environments keeps increasing. However, the traditional
                 control system only adjusts living parameters
                 mechanically, which cannot better meet the requirements
                 of human comfort intelligently. This article proposes a
                 building intelligent thermal comfort control system
                 based on the Internet of Things and intelligent
                 artificial intelligence. Through the literature review,
                 various algorithms and prediction methods are analyzed
                 and compared. The system can automatically complete a
                 series of operations through IoT hardware devices which
                 are located at multiple locations in the building with
                 key modules. The code is developed and debugged by
                 Python to establish a model for energy consumption
                 prediction with environmental factors such as
                 temperature, humidity, radiant temperature, and air
                 velocity on thermal comfort indicators. By using the
                 simulation experiments, 1700 data sets are used for
                 training. Then, the output PMV predicted values are
                 compared with the real figure. The results show that
                 the performance of this system is superior to
                 traditional control on energy-saving and comfort.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
  remark =       "Special Issue Internet of Things and Ambient
                 Intelligence.",
}

@Article{Zia:2020:PPH,
  author =       "Haseeb Zia and Brice Lecampion",
  title =        "{PyFrac}: a planar {$3$D} hydraulic fracture
                 simulator",
  journal =      j-COMP-PHYS-COMM,
  volume =       "255",
  number =       "??",
  pages =        "Article 107368",
  month =        oct,
  year =         "2020",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107368",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 19 07:19:50 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520301582",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Aksman:2021:PPI,
  author =       "Leon M. Aksman and Peter A. Wijeratne and Neil P.
                 Oxtoby and Arman Eshaghi and Cameron Shand and Andre
                 Altmann and Daniel C. Alexander and Alexandra L.
                 Young",
  title =        "\pkg{pySuStaIn}: a {Python} implementation of the
                 {Subtype and Stage Inference} algorithm",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100811",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001096",
  acknowledgement = ack-nhfb,
  articleno =    "100811",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Andreadi:2021:PSS,
  author =       "Nikolai Andreadi and Artem Mitrofanov and Artem
                 Eliseev and Petr Matveev and Stepan Kalmykov and
                 Vladimir Petrov",
  title =        "\pkg{PyRad}: A software shell for simulating
                 radiolysis with \pkg{Qball} package",
  journal =      j-J-COMPUT-CHEM,
  volume =       "42",
  number =       "13",
  pages =        "944--950",
  day =          "15",
  month =        may,
  year =         "2021",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26509",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Mon May 17 16:26:13 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "04 March 2021",
}

@Article{Anonymous:2021:RCR,
  author =       "Anonymous",
  title =        "Replication of Computational Results Report for
                 {``Doping Tests for Cyber-Physical Systems''}",
  journal =      j-TOMACS,
  volume =       "31",
  number =       "3",
  pages =        "17:1--17:2",
  month =        jul,
  year =         "2021",
  CODEN =        "ATMCEZ",
  DOI =          "https://doi.org/10.1145/3459667",
  ISSN =         "1049-3301 (print), 1558-1195 (electronic)",
  ISSN-L =       "1049-3301",
  bibdate =      "Thu Aug 19 08:48:16 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tomacs.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3459667",
  abstract =     "The article Doping Tests for Cyber-Physical Systems is
                 accompanied by a prototype implementation in Python
                 2.7. The artifact (i.e., code and observational data)
                 is hosted on a publicly available repository. The
                 article contains comprehensive \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "17",
  fjournal =     "ACM Transactions on Modeling and Computer Simulation",
  journal-URL =  "https://dl.acm.org/loi/tomacs",
}

@Article{Aranega:2021:RGT,
  author =       "Vincent Aranega and Julien Delplanque and Guillermo
                 Polito",
  title =        "Rotten green tests in {Java}, {Pharo} and {Python}",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "26",
  number =       "6",
  pages =        "??--??",
  month =        nov,
  year =         "2021",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-021-10016-2",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Fri Feb 25 18:03:07 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-021-10016-2",
  acknowledgement = ack-nhfb,
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Ardito:2021:ERC,
  author =       "Luca Ardito and Luca Barbato and Riccardo Coppola and
                 Michele Valsesia",
  title =        "Evaluation of {Rust} code verbosity, understandability
                 and complexity",
  journal =      "{PeerJ} Computer Science",
  volume =       "7",
  pages =        "e406:1--e406:33",
  month =        feb,
  year =         "2021",
  DOI =          "https://doi.org/10.7717/peerj-cs.406",
  ISSN =         "2167-8359",
  ISSN-L =       "2167-8359",
  bibdate =      "Tue Jun 15 14:19:54 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/rust.bib",
  abstract =     "Rust is an innovative programming language initially
                 implemented by Mozilla, developed to ensure high
                 performance, reliability, and productivity. The final
                 purpose of this study consists of applying a set of
                 common static software metrics to programs written in
                 Rust to assess the verbosity, understandability,
                 organization, complexity, and maintainability of the
                 language. To that extent, nine different
                 implementations of algorithms available in different
                 languages were selected. We computed a set of metrics
                 for Rust, comparing them with the ones obtained from C
                 and a set of object-oriented languages: C++, Python,
                 JavaScript, TypeScript. To parse the software artifacts
                 and compute the metrics, it was leveraged a tool called
                 rust-code-analysis that was extended with a software
                 module, written in Python, with the aim of uniforming
                 and comparing the results. The Rust code had an average
                 verbosity in terms of the raw size of the code. It
                 exposed the most structured source organization in
                 terms of the number of methods. Rust code had a better
                 Cyclomatic Complexity, Halstead Metrics, and
                 Maintainability Indexes than C and C++ but performed
                 worse than the other considered object-oriented
                 languages. Lastly, the Rust code exhibited the lowest
                 COGNITIVE complexity of all languages. The collected
                 measures prove that the Rust language has average
                 complexity and maintainability compared to a set of
                 popular languages. It is more easily maintainable and
                 less complex than the C and C++ languages, which can be
                 considered syntactically similar. These results, paired
                 with the memory safety and safe concurrency
                 characteristics of the language, can encourage wider
                 adoption of the language of Rust in substitution of the
                 C language in both the open-source and industrial
                 environments.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://peerj.com/cs/",
}

@Article{Arrigoni:2021:SPP,
  author =       "Marco Arrigoni and Georg K. H. Madsen",
  title =        "\pkg{Spinney}: Post-processing of first-principles
                 calculations of point defects in semiconductors with
                 {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "264",
  number =       "??",
  pages =        "Article 107946",
  month =        jul,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.107946",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Jun 9 09:57:27 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521000709",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Barba:2021:PJE,
  author =       "Lorena A. Barba",
  title =        "The {Python\slash Jupyter} Ecosystem: Today's
                 Problem-Solving Environment for Computational Science",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "3",
  pages =        "5--9",
  month =        may # "\slash " # jun,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3074693",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 29 07:00:57 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Barba:2021:SCP,
  author =       "Lorena A. Barba and Andreas Kl{\"o}ckner and Prabhu
                 Ramachandran and Rollin Thomas",
  title =        "Scientific Computing With {Python} on High-Performance
                 Heterogeneous Systems",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "4",
  pages =        "5--7",
  month =        jul # "\slash " # aug,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3088549",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 29 07:00:57 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Barrachina:2021:PUF,
  author =       "Sergio Barrachina and Adri{\'a}n Castell{\'o} and Jose
                 I. Mestre",
  title =        "{PyDTNN}: A user-friendly and extensible framework for
                 distributed deep learning",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "77",
  number =       "9",
  pages =        "9971--9987",
  month =        sep,
  year =         "2021",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-021-03673-z",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Mon Feb 28 16:44:33 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s11227-021-03673-z",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Supercomputing",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Bartlett:2021:HPP,
  author =       "John Bartlett and Chris Uchytil and Duane Storti",
  title =        "High-Productivity Parallelism With {Python} Plus
                 Packages (But Without a Cluster)",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "4",
  pages =        "38--46",
  month =        jul # "\slash " # aug,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3082864",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 29 07:00:57 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Bauer:2021:SPL,
  author =       "Michael Bauer and Wonchan Lee and Manolis Papadakis
                 and Marcin Zalewski and Michael Garland",
  title =        "Supercomputing in {Python} With {Legate}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "4",
  pages =        "73--79",
  month =        jul # "\slash " # aug,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3088239",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 29 07:00:57 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Bernardi:2021:CPM,
  author =       "Austen Bernardi and Jessica M. J. Swanson",
  title =        "{CycFlowDec}: a {Python} module for decomposing flow
                 networks using simple cycles",
  journal =      j-SOFTWAREX,
  volume =       "14",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100676",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000212",
  acknowledgement = ack-nhfb,
  articleno =    "100676",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Biekotter:2021:MPP,
  author =       "Thomas Biek{\"o}tter",
  title =        "\pkg{munuSSM}: a {Python} package for the $ \mu
                 $-from-$ \nu $ {Supersymmetric Standard Model}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "264",
  number =       "??",
  pages =        "Article 107935",
  month =        jul,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.107935",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Jun 9 09:57:27 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521000655",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Bizzego:2021:MLP,
  author =       "Andrea Bizzego and Mengyu Lim and Gianluca Esposito",
  title =        "\pkg{mics-library}: a {Python} package for
                 reproducible studies on the {Multiple Indicator Cluster
                 Survey}",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100828",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001187",
  acknowledgement = ack-nhfb,
  articleno =    "100828",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Boelens:2021:QMF,
  author =       "Arnout M. P. Boelens and Hamdi A. Tchelepi",
  title =        "\pkg{QuantImPy}: {Minkowski} functionals and functions
                 with {Python}",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100823",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001151",
  acknowledgement = ack-nhfb,
  articleno =    "100823",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Boguslawski:2021:PBB,
  author =       "Katharina Boguslawski and Aleksandra Leszczyk and
                 Artur Nowak and Filip Brz{\k{e}}k and Piotr Szymon
                 {\.Z}uchowski and Dariusz K{\k{e}}dziera and Pawe{\l}
                 Tecmer",
  title =        "{Pythonic} Black-box Electronic Structure Tool
                 {(PyBEST)}. {An} open-source {Python} platform for
                 electronic structure calculations at the interface
                 between chemistry and physics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "264",
  number =       "??",
  pages =        "Article 107933",
  month =        jul,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.107933",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Jun 9 09:57:27 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521000643",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Brandstetter:2021:KPP,
  author =       "Dominik Brandstetter and Xiaosheng Yang and Daniel
                 L{\"u}ftner and F. Stefan Tautz and Peter Puschnig",
  title =        "\pkg{kMap.py}: a {Python} program for simulation and
                 data analysis in photoemission tomography",
  journal =      j-COMP-PHYS-COMM,
  volume =       "263",
  number =       "??",
  pages =        "Article 107905",
  month =        jun,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.107905",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Jun 9 09:57:27 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521000461",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Cabanero-Gomez:2021:EPM,
  author =       "Luis Caba{\~n}ero-Gomez and Ramon Hervas and Ivan
                 Gonzalez and Luis Rodriguez-Benitez",
  title =        "\pkg{eeglib}: a {Python} module for {EEG} feature
                 extraction",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100745",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000753",
  acknowledgement = ack-nhfb,
  articleno =    "100745",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Capocchi:2021:WBS,
  author =       "Laurent Capocchi and Jean-Francois Santucci",
  title =        "A web-based simulation of discrete-event system of
                 system with the mobile application {DEVSimPy-mob}",
  journal =      j-SOFTWAREX,
  volume =       "13",
  number =       "??",
  pages =        "Article 100625",
  month =        jan,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100625",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 30 07:51:12 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303381",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Champseix:2021:PPH,
  author =       "Robin Champseix and Laurent Ribiere and Cl{\'e}ment
                 {Le Couedic}",
  title =        "A {Python} Package for Heart Rate Variability Analysis
                 and Signal Preprocessing",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "28--??",
  day =          "06",
  month =        oct,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.305",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.305/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Chard:2021:EAP,
  author =       "Kyle Chard and Yadu Babuji and Anna Woodard and Ben
                 Clifford and Zhuozhao Li and Mihael Hategan and Ian
                 Foster and Mike Wilde and Daniel S. Katz",
  title =        "Extended Abstract: Productive Parallel Programming
                 with {Parsl}",
  journal =      j-SIGADA-LETTERS,
  volume =       "40",
  number =       "2",
  pages =        "73--75",
  month =        apr,
  year =         "2021",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/3463478.3463486",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "0736-721X",
  bibdate =      "Mon Jun 28 15:50:16 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigada.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3463478.3463486",
  abstract =     "Parsl is a parallel programming library for Python
                 that aims to make it easy to specify parallelism in
                 programs and to realize that parallelism on arbitrary
                 parallel and distributed computing systems. Parsl
                 relies on developers annotating Python
                 functions-wrapping either Python or external
                 applications-to indicate that these functions may be
                 executed concurrently. Developers can then link
                 together functions via the exchange of data. Parsl
                 establishes a dynamic dependency graph and sends tasks
                 for execution on connected resources when dependencies
                 are resolved. Parsl's runtime system enables different
                 compute resources to be used, from laptops to
                 supercomputers, without modification to the Parsl
                 program.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J32",
}

@Article{Couty:2021:CCR,
  author =       "Victor Couty and Jean-Fran{\c{c}}ois Witz and Corentin
                 Martel and Fran{\c{c}}ois Bari and Antoine Weisrock",
  title =        "\pkg{CRAPPY}: {Command and Real-Time Acquisition in
                 Parallelized Python}, a {Python} module for
                 experimental setups",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100848",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001278",
  acknowledgement = ack-nhfb,
  articleno =    "100848",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Couty:2021:GGA,
  author =       "Victor Couty and Jean-Fran{\c{c}}ois Witz and Pauline
                 Lecomte-Grosbras and Julien Berthe and Eric Deletombe
                 and Mathias Brieu",
  title =        "\pkg{GPUCorrel}: a {GPU} accelerated {Digital Image
                 Correlation} software written in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100815",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001102",
  acknowledgement = ack-nhfb,
  articleno =    "100815",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Dalcin:2021:MSU,
  author =       "Lisandro Dalcin and Yao-Lung L. Fang",
  title =        "{mpi4py}: Status Update After 12 Years of
                 Development",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "4",
  pages =        "47--54",
  month =        jul # "\slash " # aug,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3083216",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 29 07:00:57 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://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{Davies:2021:SPB,
  author =       "Claire L. Davies",
  title =        "\pkg{SEDBYS}: a {Python}-based {SED Builder for Young
                 Stars}",
  journal =      j-SOFTWAREX,
  volume =       "14",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100687",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000327",
  acknowledgement = ack-nhfb,
  articleno =    "100687",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{DeChavez:2021:OPM,
  author =       "Danjo {De Chavez} and Jun-ya Hasegawa",
  title =        "\pkg{OpenMechanochem}: a {Python} module for
                 mechanochemical simulations",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100879",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001436",
  acknowledgement = ack-nhfb,
  articleno =    "100879",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{DeFever:2021:MCC,
  author =       "Ryan S. DeFever and Ray A. Matsumoto and Alexander W.
                 Dowling and Peter T. Cummings and Edward J. Maginn",
  title =        "{MoSDeF} {Cassandra}: a complete {Python} interface
                 for the {Cassandra} {Monte Carlo} software",
  journal =      j-J-COMPUT-CHEM,
  volume =       "42",
  number =       "18",
  pages =        "1321--1331",
  day =          "5",
  month =        jul,
  year =         "2021",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26544",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Thu Feb 24 07:02:47 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "30 April 2021",
}

@Article{Demidov:2021:UPP,
  author =       "Alexander G. Demidov and B. Lakshitha A. Perera and
                 Michael E. Fortunato and Sibo Lin and Coray M. Colina",
  title =        "Update 1.1 to {``\pkg{pysimm}: a Python package for
                 simulation of molecular systems'', (PII:
                 S2352711016300395)}",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100749",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  note =         "See \cite{Fortunato:2017:PPP}.",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000777",
  acknowledgement = ack-nhfb,
  articleno =    "100749",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Dunbar:2021:BPP,
  author =       "M. Bekker-Nielsen Dunbar and Thomas J. R. Finnie",
  title =        "\pkg{bayesint}: a {Python} Package for Calculating
                 {Bayesian} Credible Intervals of Ratios of Beta
                 Distributions",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "35--??",
  day =          "21",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.283",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.283/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Book{Durr:2021:CPP,
  author =       "Christoph D{\"u}rr and Jill-J{\^e}nn Vie",
  title =        "Competitive programming in {Python}: 128 algorithms to
                 develop your coding skills",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  year =         "2021",
  DOI =          "https://doi.org/10.1017/9781108591928",
  ISBN =         "1-108-71682-2 (paperback), 1-108-59192-2 (e-pub)",
  ISBN-13 =      "978-1-108-71682-6 (paperback), 978-1-108-59192-8
                 (e-pub)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Wed Jan 6 12:05:07 MST 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Translation to English from the French original by
                 Greg Gibbons and Dani{\`e}le Gibbons.",
  URL =          "https://assets.cambridge.org/97811087/16826/toc/9781108716826_toc.pdf",
  abstract =     "Want to kill it at your job interview in the tech
                 industry? Want to win that coding competition? Learn
                 all the algorithmic techniques and programming skills
                 you need from two experienced coaches, problem setters,
                 and jurors for coding competitions. The authors
                 highlight the versatility of each algorithm by
                 considering a variety of problems and show how to
                 implement algorithms in simple and efficient code. What
                 to expect: * Master 128 algorithms in Python. *
                 Discover the right way to tackle a problem and quickly
                 implement a solution of low complexity. * Classic
                 problems like Dijkstra's shortest path algorithm and
                 Knuth-Morris-Pratt's string matching algorithm, plus
                 lesser known data structures like Fenwick trees and
                 Knuth's dancing links. * A framework to tackle
                 algorithmic problem solving, including: Definition,
                 Complexity, Applications, Algorithm, Key Information,
                 Implementation, Variants, In Practice, and Problems. *
                 Python code in the book and on the companion website",
  acknowledgement = ack-nhfb,
  author-dates = "1969--",
  subject =      "Python (Computer program language); Algorithms;
                 Algorithms; Python (Computer program language)",
  tableofcontents = "1. Introduction \\
                 2. Character strings \\
                 3. Sequences \\
                 4. Arrays \\
                 5. Intervals \\
                 6. Graphs \\
                 7. Cycles in graphs \\
                 8. Shortest paths \\
                 9. Matching and flows \\
                 10. Trees \\
                 11. Sets \\
                 12. Points and polygons \\
                 13. Rectangles \\
                 14. Numbers and matrices \\
                 15. Exhaustive search \\
                 16. Conclusion",
}

@Article{Dutra:2021:PEP,
  author =       "Jos{\'e} Diogo L. Dutra and Thiago D. Bispo and
                 Sabrina M. de Freitas and Marcos V. dos S. Rezende",
  title =        "\pkg{ParamGULP}: an efficient {Python} code for
                 obtaining interatomic potential parameters for {General
                 Utility Lattice Program}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "265",
  number =       "??",
  pages =        "Article 107996",
  month =        aug,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.107996",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Jun 9 09:57:28 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521001089",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Edhlund:2021:POO,
  author =       "Ian Edhlund and Matthew Macauley and Cindy Lee",
  title =        "\pkg{PBTK} Optimizer: an Open Source Application for
                 {PBTK} Model Parameter Optimization in {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "4--??",
  day =          "14",
  month =        apr,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.285",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.285/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Fiorio:2021:IPP,
  author =       "Luan Vin{\'\i}cius Fiorio and Chrystian Lenon Remes
                 and Yales R{\^o}mulo de Novaes",
  title =        "\pkg{impulseest}: a {Python} package for
                 non-parametric impulse response estimation with
                 input--output data",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100761",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000832",
  acknowledgement = ack-nhfb,
  articleno =    "100761",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Fredericks:2021:PPL,
  author =       "Scott Fredericks and Kevin Parrish and Dean Sayre and
                 Qiang Zhu",
  title =        "{PyXtal}: a {Python} library for crystal structure
                 generation and symmetry analysis",
  journal =      j-COMP-PHYS-COMM,
  volume =       "261",
  number =       "??",
  pages =        "Article 107810",
  month =        apr,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107810",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Mar 13 08:21:42 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520304057",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Gaete-Morales:2021:DPF,
  author =       "Carlos Gaete-Morales and Martin Kittel and Alexander
                 Roth and Wolf-Peter Schill",
  title =        "\pkg{DIETERpy}: a {Python} framework for the {Dispatch
                 and Investment Evaluation Tool with Endogenous
                 Renewables}",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100784",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000947",
  acknowledgement = ack-nhfb,
  articleno =    "100784",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Garcia:2021:IHG,
  author =       "Andr{\'e}s Amaya Garc{\'\i}a and David May and Ed
                 Nutting",
  title =        "Integrated Hardware Garbage Collection",
  journal =      j-TECS,
  volume =       "20",
  number =       "5",
  pages =        "40:1--40:25",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3450147",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Tue Aug 10 13:35:00 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3450147",
  abstract =     "Garbage collected programming languages, such as
                 Python and C\#, have accelerated software development.
                 These modern languages increase productivity and
                 software reliability as they provide high-level data
                 representation and control structures. Modern languages
                 are widely used in software development for mobile,
                 desktop, and server devices, but their adoption is
                 limited in real-time embedded systems.\par

                 There is clear interest in supporting modern languages
                 in embedded devices as emerging markets, like the
                 Internet of Things, demand ever smarter and more
                 reliable products. Multiple commercial and open-source
                 projects, such as Zerynth and MicroPython, are
                 attempting to provide support. But these projects rely
                 on software garbage collectors that impose high
                 overheads and introduce unpredictable pauses,
                 preventing their use in many embedded applications.
                 These limitations arise from the unsuitability of
                 conventional processors for performing efficient,
                 predictable garbage collection.\par

                 We propose the Integrated Hardware Garbage Collector
                 (IHGC); a garbage collector tightly coupled with the
                 processor that runs continuously in the background.
                 Further, we introduce a static analysis technique to
                 guarantee that real-time programs are never paused by
                 the collector. Our design allocates a memory cycle to
                 the collector when the processor is not using the
                 memory. The IHGC achieves this by careful division of
                 collection work into single-memory-access steps that
                 are interleaved with the processor's memory accesses.
                 As a result, our collector eliminates run-time
                 overheads and enables real-time program
                 analysis.\par

                 The principles behind the IHGC can be used in
                 conjunction with existing architectures. For example,
                 we simulated the IHGC alongside the ARMv6-M
                 architecture. Compared to a conventional processor, our
                 experiments indicate that the IHGC offers 1.5--7 times
                 better performance for programs that rely on garbage
                 collection. The IHGC delivers the benefits of
                 garbage-collected languages with real-time performance
                 but without the complexity and overheads inherent in
                 software collectors.",
  acknowledgement = ack-nhfb,
  articleno =    "40",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "https://dl.acm.org/loi/tecs",
}

@Article{Giroux:2021:TPP,
  author =       "Bernard Giroux",
  title =        "\pkg{ttcrpy}: a {Python} package for traveltime
                 computation and raytracing",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100834",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001217",
  acknowledgement = ack-nhfb,
  articleno =    "100834",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Gotze:2021:UFP,
  author =       "Jan P. G{\"o}tze and Yuan-Wei Pi and Simon Petry and
                 Fabian Langkabel and Jan Felix Witte and Oliver Lemke",
  title =        "A user-friendly, {Python}-based quantum
                 {mechanics\slash Gromacs} interface: {gmx2qmmm}",
  journal =      j-IJQC,
  volume =       "121",
  number =       "3",
  pages =        "e26486:1--e26486:??",
  day =          "5",
  month =        feb,
  year =         "2021",
  CODEN =        "IJQCB2",
  DOI =          "https://doi.org/10.1002/qua.26486",
  ISSN =         "0020-7608 (print), 1097-461X (electronic)",
  ISSN-L =       "0020-7608",
  bibdate =      "Wed Mar 24 15:46:59 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijqc2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Int. J. Quant. Chem.",
  fjournal =     "International Journal of Quantum Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0020-7608/",
  onlinedate =   "09 October 2020",
}

@Article{Grilli:2021:NPS,
  author =       "Nicol{\`o} Grilli and Edmund Tarleton and Alan C. F.
                 Cocks",
  title =        "\pkg{Neper2CAE} and \pkg{PyCiGen}: Scripts to generate
                 polycrystals and interface elements in {Abaqus}",
  journal =      j-SOFTWAREX,
  volume =       "13",
  number =       "??",
  pages =        "Article 100651",
  month =        jan,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100651",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 30 07:51:12 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303642",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Gronchi:2021:NTS,
  author =       "Giorgio Gronchi and Marco Raglianti and Fabio
                 Giovannelli",
  title =        "Network Theory and Switching Behaviors: a User Guide
                 for Analyzing Electronic Records Databases",
  journal =      j-FUTURE-INTERNET,
  volume =       "13",
  number =       "9",
  pages =        "228",
  day =          "31",
  month =        aug,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi13090228",
  ISSN =         "1999-5903",
  bibdate =      "Tue Sep 28 10:43:54 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/13/9/228",
  abstract =     "As part of studies that employ health electronic
                 records databases, this paper advocates the employment
                 of graph theory for investigating drug-switching
                 behaviors. Unlike the shared approach in this field
                 (comparing groups that have switched with control
                 groups), network theory can provide information about
                 actual switching behavior patterns. After a brief and
                 simple introduction to fundamental concepts of network
                 theory, here we present (i) a Python script to obtain
                 an adjacency matrix from a records database and (ii) an
                 illustrative example of the application of network
                 theory basic concepts to investigate drug-switching
                 behaviors. Further potentialities of network theory
                 (weighted matrices and the use of clustering
                 algorithms), along with the generalization of these
                 methods to other kinds of switching behaviors beyond
                 drug switching, are discussed.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Gunaratne:2021:NAB,
  author =       "Chathika Gunaratne and Ivan Garibay",
  title =        "\pkg{NL4Py}: {Agent}-based modeling in {Python} with
                 parallelizable {NetLogo} workspaces",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100801",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001035",
  acknowledgement = ack-nhfb,
  articleno =    "100801",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Hahne:2021:APP,
  author =       "Jens Hahne and Stephanie Friedhoff and Matthias
                 Bolten",
  title =        "{Algorithm 1016}: {PyMGRIT}: a {Python} Package for
                 the Parallel-in-time Method {MGRIT}",
  journal =      j-TOMS,
  volume =       "47",
  number =       "2",
  pages =        "19:1--19:22",
  month =        apr,
  year =         "2021",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3446979",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Apr 27 08:23:28 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3446979",
  abstract =     "In this article, we introduce the Python framework
                 PyMGRIT, which implements the
                 multigrid-reduction-in-time (MGRIT) algorithm for
                 solving (non-)linear systems arising from the
                 discretization of time-dependent problems. The MGRIT
                 algorithm is a reduction-based iterative method that
                 allows parallel-in-time simulations, i.e., calculating
                 multiple time steps simultaneously in a simulation,
                 using a time-grid hierarchy. The PyMGRIT framework
                 includes many different variants of the MGRIT
                 algorithm, ranging from different multigrid cycle types
                 and relaxation schemes, various coarsening strategies,
                 including time-only and space-time coarsening, and the
                 ability to utilize different time integrators on
                 different levels in the multigrid hierarchy. The
                 comprehensive documentation with tutorials and many
                 examples and the fully documented code allow an easy
                 start into the work with the package. The functionality
                 of the code is ensured by automated serial and parallel
                 tests using continuous integration. PyMGRIT supports
                 serial runs suitable for prototyping and testing of new
                 approaches, as well as parallel runs using the Message
                 Passing Interface (MPI). In this manuscript, we
                 describe the implementation of the MGRIT algorithm in
                 PyMGRIT and present the usage from both a user and a
                 developer point of view. Three examples illustrate
                 different aspects of the package itself, especially
                 running tests with pure time parallelism, as well as
                 space-time parallelism through the coupling of PyMGRIT
                 with PETSc or Firedrake.",
  acknowledgement = ack-nhfb,
  articleno =    "19",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{He:2021:TPP,
  author =       "Xu He and Nicole Helbig and Matthieu J. Verstraete and
                 Eric Bousquet",
  title =        "\pkg{TB2J}: a {Python} package for computing magnetic
                 interaction parameters",
  journal =      j-COMP-PHYS-COMM,
  volume =       "264",
  number =       "??",
  pages =        "Article 107938",
  month =        jul,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.107938",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Jun 9 09:57:27 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521000679",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Ho:2021:DSS,
  author =       "Anson T. Y. Ho and Kim P. Huynh and David T.
                 Jacho-Ch{\'a}vez and Diego Rojas-Baez",
  title =        "Data Science in {Stata 16}: Frames, Lasso, and
                 {Python} Integration",
  journal =      j-J-STAT-SOFT,
  volume =       "98",
  number =       "??",
  pages =        "??--??",
  month =        "????",
  year =         "2021",
  CODEN =        "JSSOBK",
  ISSN =         "1548-7660",
  ISSN-L =       "1548-7660",
  bibdate =      "Fri Jul 23 08:12:54 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jstatsoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.jstatsoft.org/index.php/jss/article/view/v098s01;
                 https://www.jstatsoft.org/index.php/jss/article/view/v098s01/v98s01.pdf",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.jstatsoft.org/",
}

@Article{Hoffmann:2021:PPC,
  author =       "Christoph G. Hoffmann and George N. Kiladis and Maria
                 Gehne and Christian von Savigny",
  title =        "A {Python} Package to Calculate the {OLR}-Based Index
                 of the {Madden--Julian-Oscillation (OMI)} in Climate
                 Science and Weather Forecasting",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "9--??",
  day =          "14",
  month =        may,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.331",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.331/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Huang:2021:PAC,
  author =       "Sitao Huang and Kun Wu and Hyunmin Jeong and Chengyue
                 Wang and Deming Chen and Wen-Mei Hwu",
  title =        "{PyLog}: An Algorithm-Centric {Python}-Based {FPGA}
                 Programming and Synthesis Flow",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "70",
  number =       "12",
  pages =        "2015--2028",
  month =        dec,
  year =         "2021",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2021.3123465",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Thu Nov 11 08:55:47 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Karam:2021:BPS,
  author =       "Mokbel Karam and Tony Saad",
  title =        "\pkg{BuckinghamPy}: a {Python} software for
                 dimensional analysis",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100851",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001291",
  acknowledgement = ack-nhfb,
  articleno =    "100851",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Klymenko:2021:NEP,
  author =       "M. V. Klymenko and J. A. Vaitkus and J. S. Smith and
                 J. H. Cole",
  title =        "{NanoNET}: an extendable {Python} framework for
                 semi-empirical tight-binding models",
  journal =      j-COMP-PHYS-COMM,
  volume =       "259",
  number =       "??",
  pages =        "Article 107676",
  month =        feb,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107676",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Mar 13 08:21:41 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520303283",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Krishnamoorthy:2021:EPL,
  author =       "Aravind Krishnamoorthy and Ankit Mishra and Deepak
                 Kamal and Sungwook Hong and Ken-ichi Nomura and Subodh
                 Tiwari and Aiichiro Nakano and Rajiv Kalia and Rampi
                 Ramprasad and Priya Vashishta",
  title =        "\pkg{EZFF}: {Python} library for multi-objective
                 parameterization and uncertainty quantification of
                 interatomic forcefields for molecular dynamics",
  journal =      j-SOFTWAREX,
  volume =       "13",
  number =       "??",
  pages =        "Article 100663",
  month =        jan,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100663",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 30 07:51:12 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102100008X",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Lee:2021:PPB,
  author =       "In Seong Lee and Jong-Kwon Ha and Daeho Han and Tae In
                 Kim and Sung Wook Moon and Seung Kyu Min",
  title =        "{PyUNIxMD}: a {Python}-based excited state molecular
                 dynamics package",
  journal =      j-J-COMPUT-CHEM,
  volume =       "42",
  number =       "24",
  pages =        "1755--1766",
  day =          "15",
  month =        sep,
  year =         "2021",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26711",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Thu Feb 24 07:02:50 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "01 July 2021",
}

@Article{Li:2021:ICM,
  author =       "Yong Li and Shoaib Kamil and Alec Jacobson and Yotam
                 Cingold",
  title =        "{I[HEART]LA}: compilable markdown for linear algebra",
  journal =      j-TOG,
  volume =       "40",
  number =       "6",
  pages =        "264:1--264:14",
  month =        dec,
  year =         "2021",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/3478513.3480506",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Sat Dec 11 06:35:39 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3478513.3480506",
  abstract =     "Communicating linear algebra in written form is
                 challenging: mathematicians must choose between writing
                 in languages that produce well-formatted but
                 semantically-underdefined representations such as
                 LaTeX; or languages with well-defined semantics but
                 notation unlike conventional math, such as C++/Eigen.
                 In both cases, the underlying linear algebra is
                 obfuscated by the requirements of esoteric language
                 syntax (as in LaTeX) or awkward APIs due to language
                 semantics (as in C++). The gap between representations
                 results in communication challenges, including
                 underspecified and irreproducible research results,
                 difficulty teaching math concepts underlying complex
                 numerical code, as well as repeated, redundant, and
                 error-prone translations from communicated linear
                 algebra to executable code. We introduce I[HEART]LA, a
                 language with syntax designed to closely mimic
                 conventionally-written linear algebra, while still
                 ensuring an unambiguous, compilable interpretation.
                 Inspired by Markdown, a language for writing
                 naturally-structured plain text files that translate
                 into valid HTML, I[HEART]LA allows users to write
                 linear algebra in text form and compile the same source
                 into LaTeX, C++/Eigen, Python/NumPy/SciPy, and MATLAB,
                 with easy extension to further math programming
                 environments. We outline the principles of our language
                 design and highlight design decisions that balance
                 between readability and precise semantics, and
                 demonstrate through case studies the ability for
                 I[HEART]LA to bridge the semantic gap between
                 conventionally-written linear algebra and unambiguous
                 interpretation in math programming environments.",
  acknowledgement = ack-nhfb,
  articleno =    "264",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "https://dl.acm.org/loi/tog",
}

@Article{Lipovetsky:2021:BRLb,
  author =       "Stan Lipovetsky",
  title =        "Book Review: {{\booktitle{Linear Models with Python}},
                 Faraway Julian J.. Boca Raton, FL, Chapman and
                 Hall\slash CRC, Taylor \& Francis Group, 2021, 308 pp.,
                 85 b/w illustrations, \$99.95 (Hardback), ISBN:
                 978-1-138-48395-8}",
  journal =      j-TECHNOMETRICS,
  volume =       "63",
  number =       "3",
  pages =        "426--427",
  year =         "2021",
  CODEN =        "TCMTA2",
  DOI =          "https://doi.org/10.1080/00401706.2021.1945323",
  ISSN =         "0040-1706 (print), 1537-2723 (electronic)",
  ISSN-L =       "0040-1706",
  bibdate =      "Tue Feb 8 08:14:09 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/technometrics2020.bib;
                 http://www.tandf.co.uk/journals/titles/00401706.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Technometrics",
  journal-URL =  "http://www.tandfonline.com/loi/utch20",
  onlinedate =   "04 Aug 2021",
}

@Article{Luo:2021:CPC,
  author =       "Chenxing Luo and Xin Deng and Wenzhong Wang and Gaurav
                 Shukla and Zhongqing Wu and Renata M. Wentzcovitch",
  title =        "\pkg{cij}: a {Python} code for quasiharmonic
                 thermoelasticity",
  journal =      j-COMP-PHYS-COMM,
  volume =       "267",
  number =       "??",
  pages =        "Article 108067",
  month =        oct,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108067",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Sep 4 09:26:37 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046552100179X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Lyden:2021:PPM,
  author =       "Andrew Lyden and Graeme Flett and Paul G. Tuohy",
  title =        "\pkg{PyLESA}: a {Python} modelling tool for
                 planning-level {Local, integrated, and smart Energy
                 Systems Analysis}",
  journal =      j-SOFTWAREX,
  volume =       "14",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100699",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000443",
  acknowledgement = ack-nhfb,
  articleno =    "100699",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Macleod:2021:GPP,
  author =       "Duncan M. Macleod and Joseph S. Areeda and Scott B.
                 Coughlin and Thomas J. Massinger and Alexander L.
                 Urban",
  title =        "\pkg{GWpy}: a {Python} package for gravitational-wave
                 astrophysics",
  journal =      j-SOFTWAREX,
  volume =       "13",
  number =       "??",
  pages =        "Article 100657",
  month =        jan,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100657",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 30 07:51:12 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000029",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Mandanici:2021:SPG,
  author =       "A. Mandanici and S. {Alessandro Sar{\`a}} and G.
                 Fiumara and G. Mandaglio",
  title =        "Studying Physics, Getting to Know {Python}: {RC}
                 Circuit, Simple Experiments, Coding, and Data Analysis
                 With {Raspberry Pi}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "1",
  pages =        "93--96",
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2020.3037002",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Mar 4 08:48:28 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Martignano:2021:SAA,
  author =       "Maurizio Martignano",
  title =        "Static Analysis for {Ada}, {C\slash C++} and {Python}:
                 Different Languages, Different Needs",
  journal =      j-SIGADA-LETTERS,
  volume =       "41",
  number =       "2",
  pages =        "77--80",
  month =        dec,
  year =         "2021",
  DOI =          "https://doi.org/10.1145/3530801.3530807",
  bibdate =      "Wed Apr 13 16:09:11 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigada.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3530801.3530807",
  abstract =     "Spazio IT has been working on the Independent Software
                 Verification and Validation of several codebases, some
                 written in Ada, others in C/C++ and more recently also
                 in Python; in all cases Spazio IT has used static
                 analysis techniques and tools \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J32",
}

@Article{Mattson:2021:PPM,
  author =       "Timothy G. Mattson and Todd A. Anderson and Giorgis
                 Georgakoudis",
  title =        "\pkg{PyOMP}: Multithreaded Parallel Programming in
                 {Python}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "6",
  pages =        "77--80",
  month =        nov # "\slash " # dec,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3128806",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Mon Jan 31 16:30:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{May:2021:MLG,
  author =       "Simon May",
  title =        "minimal-lagrangians: Generating and studying dark
                 matter model {Lagrangians} with just the particle
                 content",
  journal =      j-COMP-PHYS-COMM,
  volume =       "261",
  number =       "??",
  pages =        "Article 107773",
  month =        apr,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107773",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Mar 13 08:21:42 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520303878",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
  keywords =     "Python",
}

@Article{Melchert:2021:PPT,
  author =       "Oliver Melchert and Ayhan Demircan",
  title =        "\pkg{pyGLLE}: a {Python} toolkit for solving the
                 generalized {Lugiato--Lefever} equation",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100741",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102100073X",
  acknowledgement = ack-nhfb,
  articleno =    "100741",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Melchor-Placencia:2021:OPC,
  author =       "Carlos Melchor-Placencia and Christian
                 M{\'a}laga-Chuquitaype",
  title =        "\pkg{OpenMoist}: a {Python} code for transient
                 moisture transfer analysis",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100712",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000571",
  acknowledgement = ack-nhfb,
  articleno =    "100712",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Meng:2021:MPP,
  author =       "Siqin Meng and Zhendong Fu and Jianfei Qin and Xiaobai
                 Ma and Yuqing Li and Lijie Hao and Yuntao Liu and Kai
                 Sun and Dongfeng Chen",
  title =        "\pkg{magcoilcalc}: a {Python} package for modeling and
                 optimization of axisymmetric magnet coils generating
                 uniform magnetic field for noble gas spin-polarizers",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100805",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001060",
  acknowledgement = ack-nhfb,
  articleno =    "100805",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Molina:2021:HOS,
  author =       "Tulio Molina and Juan Ortega and Juan Mu{\~n}oz",
  title =        "\pkg{HELMpy}, Open Source Package of Power Flow
                 Solvers, Including the Holomorphic Embedding Load Flow
                 Method {(HELM)}, Developed on {Python 3}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "23--??",
  day =          "18",
  month =        aug,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.310",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.310/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Mooers:2021:PSL,
  author =       "B. H. M. Mooers",
  title =        "A {PyMOL} Snippet Library for {Jupyter} to Boost
                 Researcher Productivity",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "2",
  pages =        "47--53",
  month =        mar # "\slash " # apr,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3059536",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Apr 1 10:10:56 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Orella:2021:HTA,
  author =       "Michael Julian Orella and McLain Evan Leonard and
                 Yuriy Rom{\'a}n-Leshkov and Fikile Richard Brushett",
  title =        "High-throughput analysis of contact angle goniometry
                 data using \pkg{DropPy}",
  journal =      j-SOFTWAREX,
  volume =       "14",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100665",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000108",
  acknowledgement = ack-nhfb,
  articleno =    "100665",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ortin:2021:CPA,
  author =       "Francisco Ortin and Javier Escalada",
  title =        "\pkg{Cnerator}: a {Python} application for the
                 controlled stochastic generation of standard {C} source
                 code",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100711",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102100056X",
  acknowledgement = ack-nhfb,
  articleno =    "100711",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Piasini:2021:EPP,
  author =       "Eugenio Piasini and Alexandre L. S. Filipowicz and
                 Jonathan Levine and Joshua I. Gold",
  title =        "\pkg{Embo}: a {Python} package for empirical data
                 analysis using the Information Bottleneck",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "10--??",
  day =          "31",
  month =        may,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.322",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.322/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Prasanna:2021:DOS,
  author =       "Krishnamohan G. Prasanna and Rahul Sunil and Kapil
                 Gupta and Seung-Cheol Lee",
  title =        "{DJMol}: an open-source modeling platform for
                 computational chemistry and materials science with a
                 {Python} interpreter",
  journal =      j-J-COMPUT-CHEM,
  volume =       "42",
  number =       "29",
  pages =        "2116--2129",
  day =          "5",
  month =        nov,
  year =         "2021",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26740",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Thu Feb 24 07:02:52 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "18 August 2021",
}

@Article{Ramachandran:2021:PPB,
  author =       "Prabhu Ramachandran and Aditya Bhosale and Kunal Puri
                 and Pawan Negi and Abhinav Muta and A. Dinesh and
                 Dileep Menon and Rahul Govind and Suraj Sanka and Amal
                 S. Sebastian and Ananyo Sen and Rohan Kaushik and
                 Anshuman Kumar and Vikas Kurapati and Mrinalgouda Patil
                 and Deep Tavker and Pankaj Pandey and Chandrashekhar
                 Kaushik and Arkopal Dutt and Arpit Agarwal",
  title =        "{PySPH}: a {Python}-based Framework for Smoothed
                 Particle Hydrodynamics",
  journal =      j-TOMS,
  volume =       "47",
  number =       "4",
  pages =        "34:1--34:38",
  month =        dec,
  year =         "2021",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3460773",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Sep 29 06:58:41 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3460773",
  abstract =     "PySPH is an open-source, Python-based, framework for
                 particle methods in general and Smoothed Particle
                 Hydrodynamics (SPH) in particular. PySPH allows a user
                 to define a complete SPH simulation using pure Python.
                 High-performance code is generated from this high-level
                 Python code and executed on either multiple cores, or
                 on GPUs, seamlessly. It also supports distributed
                 execution using MPI. PySPH supports a wide variety of
                 SPH schemes and formulations. These include,
                 incompressible and compressible fluid flow, elastic
                 dynamics, rigid body dynamics, shallow water equations,
                 and other problems. PySPH supports a variety of
                 boundary conditions including mirror, periodic, solid
                 wall, and inlet/outlet boundary conditions. The package
                 is written to facilitate reuse and reproducibility.
                 This article discusses the overall design of PySPH and
                 demonstrates many of its features. Several example
                 results are shown to demonstrate the range of features
                 that PySPH provides.",
  acknowledgement = ack-nhfb,
  articleno =    "34",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Ravasio:2021:OOO,
  author =       "Claudio S. Ravasio and Lyndon {Da Cruz} and Christos
                 Bergeles",
  title =        "\pkg{oflibnumpy} and \pkg{oflibpytorch}: Optical Flow
                 Handling and Manipulation in {Python}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "31--??",
  day =          "26",
  month =        nov,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.380",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.380/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Richardson:2021:TLP,
  author =       "A. S. Richardson and D. F. Gordon and S. B. Swanekamp
                 and I. M. Rittersdorf and P. E. Adamson and O. S.
                 Grannis and G. T. Morgan and A. Ostenfeld and K. L.
                 Phlips and C. G. Sun and G. Tang and D. J. Watkins",
  title =        "{TurboPy}: a lightweight {Python} framework for
                 computational physics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "258",
  number =       "??",
  pages =        "Article 107607",
  month =        jan,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107607",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Mar 13 08:21:40 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520302897",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Robertson:2021:AEP,
  author =       "E. J. Robertson and N. Sibali{\'c} and R. M. Potvliege
                 and M. P. A. Jones",
  title =        "{ARC 3.0}: an expanded {Python} toolbox for atomic
                 physics calculations",
  journal =      j-COMP-PHYS-COMM,
  volume =       "261",
  number =       "??",
  pages =        "Article 107814",
  month =        apr,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107814",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Mar 13 08:21:42 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520304136",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Ryan-Keogh:2021:PPU,
  author =       "Thomas J. Ryan-Keogh and Charlotte M. Robinson",
  title =        "Phytoplankton Photophysiology Utilities: a {Python}
                 Toolbox for the Standardization of Processing Active
                 Chlorophyll-a Fluorescence Data",
  journal =      j-FRONTIERS-MAR-SCI,
  volume =       "8",
  month =        jul,
  year =         "2021",
  DOI =          "https://doi.org/10.3389/fmars.2021.525414",
  ISSN =         "2296-7745",
  ISSN-L =       "2296-7745",
  bibdate =      "Wed Dec 22 06:45:41 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/frontmarsci2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Front. Mar. Sci.",
  fjournal =     "Frontiers in Marine Science",
  journal-URL =  "https://www.frontiersin.org/journals/655",
  rawdoi =       "10.3389/fmars.2021.525414",
}

@Article{Sartore:2021:P,
  author =       "Lohan Sartore and Ingo Schienbein",
  title =        "{PyR@TE 3}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "261",
  number =       "??",
  pages =        "Article 107819",
  month =        apr,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2020.107819",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Mar 13 08:21:42 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465520304124",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
  keywords =     "Python",
}

@Article{Schick:2021:UPT,
  author =       "Daniel Schick",
  title =        "\pkg{udkm1Dsim} --- a {Python} toolbox for simulating
                 {$1$D} ultrafast dynamics in condensed matter",
  journal =      j-COMP-PHYS-COMM,
  volume =       "266",
  number =       "??",
  pages =        "Article 108031",
  month =        sep,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108031",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Sep 4 09:26:37 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521001430",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Schwarz:2021:ICC,
  author =       "Diana Est{\'e}vez Schwarz and Ren{\'e} Lamour",
  title =        "{InitDAE}: Computation of consistent values, index
                 determination and diagnosis of singularities of {DAEs}
                 using automatic differentiation in {Python}",
  journal =      j-J-COMPUT-APPL-MATH,
  volume =       "387",
  number =       "??",
  pages =        "Article 112486",
  month =        "????",
  year =         "2021",
  CODEN =        "JCAMDI",
  DOI =          "https://doi.org/10.1016/j.cam.2019.112486",
  ISSN =         "0377-0427 (print), 1879-1778 (electronic)",
  ISSN-L =       "0377-0427",
  bibdate =      "Sat Mar 27 09:45:47 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputapplmath2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0377042719304893",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational and Applied Mathematics",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03770427",
}

@Article{Schwarz:2021:PPF,
  author =       "Sebastian Schwarz and Sebastian Alexander Uerlich and
                 Antonello Monti",
  title =        "\pkg{pycity\_scheduling} --- a {Python} framework for
                 the development and assessment of optimisation-based
                 power scheduling algorithms for multi-energy systems in
                 city districts",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100839",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001230",
  acknowledgement = ack-nhfb,
  articleno =    "100839",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Sharma:2021:DDS,
  author =       "Moolchand Sharma and Bhanu Jain and Chetan Kargeti and
                 Vinayak Gupta and Deepak Gupta",
  title =        "Detection and Diagnosis of Skin Diseases Using
                 Residual Neural Networks {(RESNET)}",
  journal =      j-INT-J-IMAGE-GRAPHICS,
  volume =       "21",
  number =       "05",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  DOI =          "https://doi.org/10.1142/S0219467821400027",
  ISSN =         "0219-4678",
  ISSN-L =       "0219-4678",
  bibdate =      "Mon Dec 27 07:10:56 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijig.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0219467821400027",
  abstract =     "Skin diseases have become prevalent in the present
                 times. It has been observed in a study that every year
                 the percentage of global population suffering from skin
                 diseases is 1.79\%. These diseases have a potential to
                 become extremely dangerous if they are not treated in
                 the nascent stages. It is extremely important that skin
                 diseases are detected and diagnosed at the starting
                 stages so that serious risks to life are avoided.
                 Often, exhaustive tests are required so as to arrive on
                 a conclusion regarding skin condition, the patient may
                 be affected with. Thus, an expert system is required
                 that has the ability to identify diseases and propose
                 the required diagnosis. Presently, only a few solutions
                 are available for diagnosis of skin diseases using
                 computerized system but this is an era which is under
                 extensive research and can be developed further. As the
                 existing system has certain loopholes, this system
                 attempts to override the present problems by applying a
                 different approach. As a result of comparison of
                 results from numerous research papers, an expert system
                 has been developed by choosing residual neural networks
                 (ResNet) and this system can be used to aid skin
                 specialists in identifying and diagnosing various major
                 diseases of skin like (Eczema, Psoriasis & Lichen
                 Planus, Benign Tumors, Fungal Infections and Viral
                 Infections) in more effective and efficient manner. The
                 causes for identified skin disease can be outlined
                 through this system and treatment can be provided. We
                 have used Python language for implementing the proposed
                 expert system that uses a 50-layer ResNets for training
                 a dataset that has been taken from DERMNET. We achieved
                 an accuracy of 95\% using ResNet for training of the
                 model and prediction of results at an epoch value of
                 10.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Image and Graphics (IJIG)",
  journal-URL =  "http://www.worldscientific.com/worldscinet/ijig",
  remark =       "Special Issue on Deep Neural Networks for Medical
                 Image Detection, Segmentation, and Localization",
}

@Article{Shi:2021:CMS,
  author =       "Yanjun Shi and Hao Yu and Yijia Guo and Zhiheng Yuan",
  title =        "A Collaborative Merging Strategy with Lane Changing in
                 Multilane Freeway On-Ramp Area with {V2X} Network",
  journal =      j-FUTURE-INTERNET,
  volume =       "13",
  number =       "5",
  pages =        "123",
  day =          "10",
  month =        may,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi13050123",
  ISSN =         "1999-5903",
  bibdate =      "Fri May 28 20:44:52 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/13/5/123",
  abstract =     "The merging area of the freeway is an area with a high
                 incidence of traffic accidents. With the development of
                 connected and automated vehicles (CAVs) and V2X
                 technology, the traffic efficiency of freeway ramp
                 areas has been significantly improved. However, current
                 research mostly focuses on merging a single mainline
                 lane and ramp, and there are few cases of multiple
                 lanes. In this paper, we present a collaborative
                 merging model with a rule-based lane-changing strategy
                 in a V2X environment. First, the vehicle selects the
                 appropriate gap to change lanes safely without
                 affecting other vehicles. Meanwhile, we established a
                 linear time discrete model to optimize the trajectory
                 of vehicles in real-time. Finally, the proposed model
                 and strategy were implemented in SUMO and Python. The
                 simulation results showed that the merging model we
                 proposed based on the lane-changing strategy had good
                 performance in terms of the number of stops, average
                 delay, and average speed.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Singh:2021:MPL,
  author =       "Sobhit Singh and Logan Lang and Viviana Dovale-Farelo
                 and Uthpala Herath and Pedram Tavadze and
                 Fran{\c{c}}ois-Xavier Coudert and Aldo H. Romero",
  title =        "\pkg{MechElastic}: a {Python} library for analysis of
                 mechanical and elastic properties of bulk and {$2$D}
                 materials",
  journal =      j-COMP-PHYS-COMM,
  volume =       "267",
  number =       "??",
  pages =        "Article 108068",
  month =        oct,
  year =         "2021",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108068",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Sep 4 09:26:37 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521001806",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Stadler:2021:PPB,
  author =       "Konstantin Stadler",
  title =        "\pkg{Pymrio} --- a {Python} Based Multi-Regional
                 Input-Output Analysis Toolbox",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "8--??",
  day =          "11",
  month =        may,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.251",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.251/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Sulzer:2021:PBM,
  author =       "Valentin Sulzer and Scott G. Marquis and Robert Timms
                 and Martin Robinson and S. Jon Chapman",
  title =        "\pkg{Python} Battery Mathematical Modelling
                 {(PyBaMM)}",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "14--??",
  day =          "08",
  month =        jun,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.309",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.309/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Tan:2021:ETD,
  author =       "Jie Tan and Daniel Feitosa and Paris Avgeriou and
                 Mircea Lungu",
  title =        "Evolution of technical debt remediation in {Python}: a
                 case study on the {Apache Software Ecosystem}",
  journal =      j-J-SOFTW-EVOL-PROC,
  volume =       "33",
  number =       "4",
  pages =        "e2319:1--e2319:??",
  month =        apr,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1002/smr.2319",
  ISSN =         "2047-7473 (print), 2047-7481 (electronic)",
  ISSN-L =       "2047-7473",
  bibdate =      "Mon May 17 08:20:33 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwevolproc.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Software: Evolution and Process",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
  onlinedate =   "18 November 2020",
}

@Article{Terven:2021:KAK,
  author =       "Juan R. Terven and Diana M. C{\'o}rdova-Esparza",
  title =        "{KinZ}: an {Azure Kinect} toolkit for {Python} and
                 {Matlab}",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "211",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        nov,
  year =         "2021",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2021.102702",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Tue Jan 25 06:43:23 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642321000952",
  acknowledgement = ack-nhfb,
  articleno =    "102702",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Theisen:2021:FTM,
  author =       "Lambert Theisen and Manuel Torrilhon",
  title =        "{fenicsR13}: a Tensorial Mixed Finite Element Solver
                 for the Linear {R13} Equations Using the {FEniCS}
                 Computing Platform",
  journal =      j-TOMS,
  volume =       "47",
  number =       "2",
  pages =        "17:1--17:29",
  month =        apr,
  year =         "2021",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3442378",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Tue Apr 27 08:23:28 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3442378",
  abstract =     "We present a mixed finite element solver for the
                 linearized regularized 13-moment equations of
                 non-equilibrium gas dynamics. The Python implementation
                 builds upon the software tools provided by the FEniCS
                 computing platform. We describe a new tensorial
                 approach utilizing the extension capabilities of
                 FEniCS' Unified Form Language to define required
                 differential operators for tensors above second degree.
                 The presented solver serves as an example for
                 implementing tensorial variational formulations in
                 FEniCS, for which the documentation and literature seem
                 to be very sparse. Using the software abstraction
                 levels provided by the Unified Form Language allows an
                 almost one-to-one correspondence between the underlying
                 mathematics and the resulting source code. Test cases
                 support the correctness of the proposed method using
                 validation with exact solutions. To justify the usage
                 of extended gas flow models, we discuss typical
                 application cases involving rarefaction effects. We
                 provide the documented and validated solver publicly.",
  acknowledgement = ack-nhfb,
  articleno =    "17",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Turner:2021:OLE,
  author =       "Ross J. Turner and Rebecca B. Latto and Anya M.
                 Reading",
  title =        "An {ObsPy} Library for Event Detection and Seismic
                 Attribute Calculation: Preparing Waveforms for
                 Automated Analysis",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "9",
  number =       "1",
  pages =        "29--??",
  day =          "19",
  month =        oct,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.365",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Fri Dec 2 07:12:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.365/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
}

@Article{Verstraelen:2021:IPL,
  author =       "Toon Verstraelen and William Adams and Leila Pujal and
                 Alireza Tehrani and Braden D. Kelly and Luis Macaya and
                 Fanwang Meng and Michael Richer and Raymundo
                 Hern{\'a}ndez-Esparza and Xiaotian Derrick Yang and
                 Matthew Chan and Taewon David Kim and Maarten
                 Cools-Ceuppens and Valerii Chuiko and Esteban
                 V{\"o}hringer-Martinez and Paul W. Ayers and Farnaz
                 Heidar-Zadeh",
  title =        "{IOData}: a {Python} library for reading, writing, and
                 converting computational chemistry file formats and
                 generating input files",
  journal =      j-J-COMPUT-CHEM,
  volume =       "42",
  number =       "6",
  pages =        "458--464",
  day =          "5",
  month =        mar,
  year =         "2021",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26468",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Fri Mar 12 17:24:08 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "27 December 2020",
}

@Article{Vishart:2021:PPB,
  author =       "Jonas Lynge Vishart and Jaime Castillo-Le{\'o}n and
                 Winnie E. Svendsen",
  title =        "\pkg{pyEIA}: a {Python}-based framework for data
                 analysis of electrochemical methods for immunoassays",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100720",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000637",
  acknowledgement = ack-nhfb,
  articleno =    "100720",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Wacha:2021:PPE,
  author =       "Andr{\'a}s Wacha and Tam{\'a}s Beke-Somfai",
  title =        "\pkg{PmlBeta}: a {PyMOL} extension for building $
                 \beta $-amino acid insertions and $ \beta $-peptide
                 sequences",
  journal =      j-SOFTWAREX,
  volume =       "13",
  number =       "??",
  pages =        "Article 100654",
  month =        jan,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2020.100654",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Apr 30 07:51:12 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711020303678",
  acknowledgement = ack-nhfb,
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Wai:2021:XA,
  author =       "Richard Wai",
  title =        "{XERIS\slash APEX}",
  journal =      j-SIGADA-LETTERS,
  volume =       "40",
  number =       "2",
  pages =        "65--69",
  month =        apr,
  year =         "2021",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/3463478.3463484",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "0736-721X",
  bibdate =      "Mon Jun 28 15:50:16 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigada.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3463478.3463484",
  abstract =     "Modern day cloud native applications have become
                 broadly representative of distributed systems in the
                 wild. However, unlike traditional distributed system
                 models with conceptually static designs, cloud-native
                 systems emphasize dynamic scaling and on-line iteration
                 (CI/CD). Cloud-native systems tend to be architected
                 around a networked collection of distinct programs
                 (``microservices'') that can be added, removed, and
                 updated in real-time.\par

                 Typically, distinct containerized programs constitute
                 individual microservices that then communicate among
                 the larger distributed application through heavy-weight
                 protocols. Common communication stacks exchange JSON or
                 XML objects over HTTP, via TCP/TLS, and incur
                 significant overhead, particularly when using small
                 size message sizes. Additionally, interpreted\slash
                 JIT\slash VM-based languages such as Javascript
                 (NodeJS\slash Deno), Java, and Python are dominant in
                 modern microservice programs. These language
                 technologies, along with the high-overhead messaging,
                 can impose superlinear cost increases (hardware
                 demands) on scale-out, particularly towards hyperscale
                 and\slash or with latency-sensitive workloads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J32",
}

@Article{Walter:2021:MML,
  author =       "Vivien Walter and C{\'e}line Ruscher and Olivier
                 Benzerara and Fabrice Thalmann",
  title =        "\pkg{MLLPA}: a machine learning-assisted {Python}
                 module to study phase-specific events in lipid
                 membranes",
  journal =      j-J-COMPUT-CHEM,
  volume =       "42",
  number =       "13",
  pages =        "930--943",
  day =          "15",
  month =        may,
  year =         "2021",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.26508",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Mon May 17 16:26:13 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "06 March 2021",
}

@Article{Wilkinson:2021:EPM,
  author =       "Collin J. Wilkinson and John C. Mauro",
  title =        "\pkg{Explorer.py}: {Mapping} the energy landscapes of
                 complex materials",
  journal =      j-SOFTWAREX,
  volume =       "14",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100683",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000285",
  acknowledgement = ack-nhfb,
  articleno =    "100683",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Witherden:2021:PPP,
  author =       "Freddie D. Witherden",
  title =        "{Python} at Petascale With {PyFR} or: How {I} Learned
                 to Stop Worrying and Love the Snake",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "23",
  number =       "4",
  pages =        "29--37",
  month =        jul # "\slash " # aug,
  year =         "2021",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2021.3080126",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu Jul 29 07:00:57 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Xie:2021:RMC,
  author =       "Yihui Xie and Christophe Dervieux and Emily Riederer",
  title =        "{R} Markdown Cookbook",
  publisher =    pub-CHAPMAN-HALL-CRC,
  address =      pub-CHAPMAN-HALL-CRC:adr,
  pages =        "xxix + 329",
  year =         "2021",
  DOI =          "https://doi.org/10.1201/9781003097471",
  ISBN =         "0-367-56382-7 (hardcover), 0-367-56383-5 (paperback),
                 1-00-029080-8 (e-book), 1-00-029084-0 (Mobipocket
                 e-book), 1-00-029088-3 (e-book), 1-00-309747-2
                 (e-book)",
  ISBN-13 =      "978-1-00-029088-2",
  LCCN =         "QA276.45.R3 X54 2021",
  bibdate =      "Mon Jan 24 16:22:12 MST 2022",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  series =       "The R series",
  abstract =     "This new book written by the developers of R Markdown
                 is an essential reference that will help users learn
                 and make full use of the software. Those new to R
                 Markdown will appreciate the short, practical examples
                 that address the most common issues users encounter.
                 Frequent users will also benefit from the wide ranging
                 tips and tricks that expose hidden' features, support
                 customization and demonstrate the many new and varied
                 applications of the software. After reading this book
                 users will learn how to: Enhance your R Markdown
                 content with diagrams, citations, and dynamically
                 generated text Streamline your workflow with child
                 documents, code chunk references, and caching Control
                 the formatting and layout with Pandoc markdown syntax
                 or by writing custom HTML and LaTeX templates Utilize
                 chunk options and hooks to fine-tune how your code is
                 processed Switch between different language engineers
                 to seamlessly incorporate python, D3, and more into
                 your analysis.",
  acknowledgement = ack-nhfb,
  subject =      "Markdown (Document markup language); R (Computer
                 program language); Markdown (Document markup language);
                 R (Computer program language); MATHEMATICS /
                 Probability and Statistics / General",
  tableofcontents = "1: Installation / 5 pages \\
                 2: Conceptual Overview / 11 pages \\
                 3: Basics / 8 pages \\
                 4: Document Elements / 32 pages \\
                 5: Formatting / 18 pages \\
                 6: LaTeX Output / 19 pages \\
                 7: HTML Output / 27 pages \\
                 8: Word / 8 pages \\
                 9: Multiple Output Formats / 16 pages \\
                 10: Tables / 25 pages \\
                 11: Chunk Options / 29 pages \\
                 12: Output Hooks (*) / 16 pages \\
                 13: Chunk Hooks (*) / 11 pages \\
                 14: Miscellaneous knitr Tricks / 19 pages \\
                 15: Other Languages / 18 pages \\
                 16: Managing Projects / 19 pages \\
                 17: Workflow / 11 pages",
}

@Article{Yuan:2021:PPP,
  author =       "Zhenfei Yuan and Taizhong Hu",
  title =        "\pkg{pyvine}: The {Python} Package for Regular Vine
                 Copula Modeling, Sampling and Testing",
  journal =      j-COMMUN-MATH-STAT,
  volume =       "9",
  number =       "1",
  pages =        "53--86",
  month =        mar,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s40304-019-00195-2",
  ISSN =         "2194-6701 (print), 2194-671X (electronic)",
  ISSN-L =       "2194-6701",
  bibdate =      "Wed Mar 31 15:34:20 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/communmathstat.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://link.springer.com/article/10.1007/s40304-019-00195-2",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications in Mathematics and Statistics",
  journal-URL =  "http://link.springer.com/journal/40304",
}

@Article{Zampieri:2021:ARA,
  author =       "Matteo Zampieri and Andrea Toreti and Andrej Ceglar
                 and Pierluca {De Palma} and Thomas Chatzopoulos and
                 Melania Michetti",
  title =        "Analysing the resilience of agricultural production
                 systems with \pkg{ResiPy}, the {Python} production
                 resilience estimation package",
  journal =      j-SOFTWAREX,
  volume =       "15",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100738",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021000716",
  acknowledgement = ack-nhfb,
  articleno =    "100738",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Zerouali:2021:UJP,
  author =       "Ahmed Zerouali and Tom Mens and Coen {De Roover}",
  title =        "On the usage of {\em {JavaScript}}, {{\em Python}} and
                 {{\em Ruby}} packages in {Docker Hub} images",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "207",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        jul,
  year =         "2021",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2021.102653",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Wed May 26 13:33:26 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642321000460",
  acknowledgement = ack-nhfb,
  articleno =    "102653",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Zolotov:2021:PFO,
  author =       "Oleg Zolotov and Yulia Romanovskaya and Maria
                 Knyazeva",
  title =        "\pkg{pyFIRI} --- a free and open source {Python}
                 software package of the non-auroral {Earth}'s lower
                 ionosphere",
  journal =      j-SOFTWAREX,
  volume =       "16",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100885",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Feb 10 10:19:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001461",
  acknowledgement = ack-nhfb,
  articleno =    "100885",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Agostini:2022:BPS,
  author =       "Nicolas Bohm Agostini and Serena Curzel and Jeff Jun
                 Zhang and Ankur Limaye and Cheng Tan and Vinay Amatya
                 and Marco Minutoli and Vito Giovanni Castellana and
                 Joseph Manzano and David Brooks and Gu-Yeon Wei and
                 Antonino Tumeo",
  title =        "Bridging {Python} to Silicon: The {SODA} Toolchain",
  journal =      j-IEEE-MICRO,
  volume =       "42",
  number =       "5",
  pages =        "78--88",
  month =        sep # "\slash " # oct,
  year =         "2022",
  CODEN =        "IEMIDZ",
  DOI =          "https://doi.org/10.1109/MM.2022.3178580",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Thu Nov 03 05:37:10 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Micro",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=40",
}

@Article{Ahrari:2022:PPF,
  author =       "Ali Ahrari and Saber Elsayed and Ruhul Sarker and
                 Daryl Essam and Carlos A. Coello Coello",
  title =        "\pkg{PyDDRBG}: a {Python} framework for benchmarking
                 and evaluating static and dynamic multimodal
                 optimization methods",
  journal =      j-SOFTWAREX,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100961",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Feb 28 10:41:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001850",
  acknowledgement = ack-nhfb,
  articleno =    "100961",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Akhilesh:2022:APT,
  author =       "Rohit Akhilesh and Oliver Bills and Naveen Chilamkurti
                 and Mohammad Jabed Morshed Chowdhury",
  title =        "Automated Penetration Testing Framework for
                 Smart-Home-Based {IoT} Devices",
  journal =      j-FUTURE-INTERNET,
  volume =       "14",
  number =       "10",
  pages =        "276",
  day =          "27",
  month =        sep,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi14100276",
  ISSN =         "1999-5903",
  bibdate =      "Wed Oct 26 11:06:06 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/14/10/276",
  abstract =     "Security testing is fundamental to identifying
                 security vulnerabilities on smart home-based IoT
                 devices. For this, penetration testing is the most
                 prominent and effective solution. However, testing the
                 IoT manually is cumbersome and time-consuming. In
                 addition, penetration testing requires a deep knowledge
                 of the possible attacks and the available hacking
                 tools. Therefore, this study emphasises building an
                 automated penetration testing framework to discover the
                 most common vulnerabilities in smart home-based IoT
                 devices. This research involves exploring (studying)
                 different IoT devices to select five devices for
                 testing. Then, the common vulnerabilities for the five
                 selected smart home-based IoT devices are examined, and
                 the corresponding penetration testing tools required
                 for the detection of these vulnerabilities are
                 identified. The top five vulnerabilities are identified
                 from the most common vulnerabilities, and accordingly,
                 the corresponding tools for these vulnerabilities are
                 discovered. These tools are combined using a script
                 which is then implemented into a framework written in
                 Python 3.6. The selected IoT devices are tested
                 individually for known vulnerabilities using the
                 proposed framework. For each vulnerability discovered
                 in the device, the Common Vulnerability Scoring System
                 (CVSS) Base score is calculated and the summation of
                 these scores is taken to calculate the total score (for
                 each device). In our experiment, we found that the
                 Tp-Link Smart Bulb and the Tp-Link Smart Camera had the
                 highest score and were the most vulnerable and the
                 Google Home Mini had the least score and was the most
                 secure device of all the devices. Finally, we conclude
                 that our framework does not require technical expertise
                 and thus can be used by common people. This will help
                 improve the field of IoT security and ensure the
                 security of smart homes to build a safe and secure
                 future.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Baczkiewicz:2022:CPL,
  author =       "Aleksandra Baczkiewicz and Jaros{\l}aw Watr{\'o}bski",
  title =        "\pkg{Crispyn} --- a {Python} library for determining
                 criteria significance with objective weighting
                 methods",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101166",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001029",
  acknowledgement = ack-nhfb,
  articleno =    "101166",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Badalyan:2022:AEC,
  author =       "David Badalyan and Oleg Borisenko",
  title =        "\pkg{Ansible} execution control in {Python} and
                 {Golang} for cloud orchestration",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101126",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/go.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000826",
  acknowledgement = ack-nhfb,
  articleno =    "101126",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Badia:2022:PIT,
  author =       "Rosa M. Badia and Javier Conejero and Jorge Ejarque
                 and Daniele Lezzi and Francesc Lordan",
  title =        "{PyCOMPSs} as an Instrument for Translational Computer
                 Science",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "24",
  number =       "2",
  pages =        "79--84",
  month =        mar # "\slash " # apr,
  year =         "2022",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2022.3152945",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Jun 11 10:46:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Bartos:2022:NMI,
  author =       "Erik Bartos",
  title =        "Numerical multidimensional integration with
                 {PyMikor}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "270",
  number =       "??",
  pages =        "Article 108149",
  month =        jan,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108149",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Dec 20 16:41:52 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521002617",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Bay:2022:PSV,
  author =       "M{\'e}lanie M. Bay and Silvia Vignolini and Kevin
                 Vynck",
  title =        "{PyLlama}: a stable and versatile {Python} toolkit for
                 the electromagnetic modelling of multilayered
                 anisotropic media",
  journal =      j-COMP-PHYS-COMM,
  volume =       "273",
  number =       "??",
  pages =        "Article 108256",
  month =        apr,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108256",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Jan 25 06:27:42 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003684",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Bendarag:2022:PPB,
  author =       "Abdesadik Bendarag and Jamal Bakkas and Mohamed Hanine
                 and Omar Boutkhoum",
  title =        "\pkg{PyOPAsolver}: a {Python} based tool for ordinal
                 priority approach operations and normalization",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101226",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001443",
  acknowledgement = ack-nhfb,
  articleno =    "101226",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Bezzam:2022:PPL,
  author =       "Eric Bezzam and Sepand Kashani and Paul Hurley and
                 Martin Vetterli and Matthieu Simeoni",
  title =        "{pyFFS}: a {Python} Library for Fast {Fourier} Series
                 Computation and Interpolation with {GPU} Acceleration",
  journal =      j-SIAM-J-SCI-COMP,
  volume =       "44",
  number =       "4",
  pages =        "??--??",
  month =        "????",
  year =         "2022",
  CODEN =        "SJOCE3",
  DOI =          "https://doi.org/10.1137/21M1448641",
  ISSN =         "1064-8275 (print), 1095-7197 (electronic)",
  ISSN-L =       "1064-8275",
  bibdate =      "Thu Mar 23 07:38:25 MDT 2023",
  bibsource =    "http://epubs.siam.org/toc/sjoce3/44/4;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/siamjscicomput.bib",
  URL =          "https://epubs.siam.org/doi//doi/10.1137/21M1448641",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Scientific Computing",
  journal-URL =  "http://epubs.siam.org/sisc",
}

@Article{Bodker:2022:SPB,
  author =       "Mikkel S. B{\o}dker and Collin J. Wilkinson and John
                 C. Mauro and Morten M. Smedskjaer",
  title =        "{StatMechGlass}: {Python} based software for
                 composition-structure prediction in oxide glasses using
                 statistical mechanics",
  journal =      j-SOFTWAREX,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100913",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Feb 28 10:41:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001606",
  acknowledgement = ack-nhfb,
  articleno =    "100913",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Bragagnolo:2022:SPL,
  author =       "Andrea Bragagnolo and Carlo Alberto Barbano",
  title =        "\pkg{Simplify}: a {Python} library for optimizing
                 pruned neural networks",
  journal =      j-SOFTWAREX,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100907",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Feb 28 10:41:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001576",
  acknowledgement = ack-nhfb,
  articleno =    "100907",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Brimicombe:2022:TPT,
  author =       "Chloe Brimicombe and Claudia {Di Napoli} and Tiago
                 Quintino and Florian Pappenberger and Rosalind
                 Cornforth and Hannah L. Cloke",
  title =        "\pkg{Thermofeel}: a {Python} thermal comfort indices
                 library",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101005",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000176",
  acknowledgement = ack-nhfb,
  articleno =    "101005",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Caprile:2022:PPP,
  author =       "Fernando Caprile and Luciano A. Masullo and Fernando
                 D. Stefani",
  title =        "\pkg{PyFocus} --- a {Python} package for vectorial
                 calculations of focused optical fields under realistic
                 conditions. {Application} to toroidal foci",
  journal =      j-COMP-PHYS-COMM,
  volume =       "275",
  number =       "??",
  pages =        "Article 108315",
  month =        jun,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108315",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Mar 23 14:12:02 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000339",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Carini:2022:CPO,
  author =       "Matheus Roman Carini and Marcelo Maia Rocha",
  title =        "\pkg{CESSIPy}: a {Python} open-source module for
                 stochastic system identification in civil engineering",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101091",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000632",
  acknowledgement = ack-nhfb,
  articleno =    "101091",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Cejnek:2022:PPO,
  author =       "Matous Cejnek and Jan Vrba",
  title =        "\pkg{Padasip}: an open-source {Python} toolbox for
                 adaptive filtering",
  journal =      j-J-COMPUT-SCI,
  volume =       "65",
  pages =        "??--??",
  month =        nov,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2022.101887",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:56:31 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750322002460",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  articleno =    "101887",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Article{Chen:2022:HHI,
  author =       "Qiao Chen and Xiangmin Jiao",
  title =        "{HIFIR}: Hybrid Incomplete Factorization with
                 Iterative Refinement for Preconditioning
                 Ill-Conditioned and Singular Systems",
  journal =      j-TOMS,
  volume =       "48",
  number =       "3",
  pages =        "32:1--32:??",
  month =        sep,
  year =         "2022",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3536165",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Sat Oct 29 08:26:38 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3536165",
  abstract =     "We introduce a software package called Hybrid
                 Incomplete Factorization with Iterative Refinement
                 (HIFIR) for preconditioning sparse, unsymmetric,
                 ill-conditioned, and potentially singular systems.
                 HIFIR computes a hybrid incomplete factorization (HIF),
                 which combines multilevel incomplete LU factorization
                 with a truncated, rank-revealing QR (RRQR)
                 factorization on the final Schur complement. This novel
                 hybridization is based on the new theory of $ \epsilon
                 $-accurate approximate generalized inverse (AGI). It
                 enables near-optimal preconditioners for consistent
                 systems and enables flexible GMRES to solve
                 inconsistent systems when coupled with iterative
                 refinement. In this article, we focus on some practical
                 algorithmic and software issues of HIFIR. In
                 particular, we introduce a new inverse-based rook
                 pivoting (IBRP) into ILU, which improves the robustness
                 and the overall efficiency for some ill-conditioned
                 systems by significantly reducing the size of the final
                 Schur complement for some systems. We also describe the
                 software design of HIFIR in terms of its efficient data
                 structures for supporting rook pivoting in a multilevel
                 setting, its template-based generic programming
                 interfaces for mixed-precision real and complex values
                 in C++, and its user-friendly high-level interfaces in
                 MATLAB and Python. We demonstrate the effectiveness of
                 HIFIR for ill-conditioned or singular systems arising
                 from several applications, including the Helmholtz
                 equation, linear elasticity, stationary incompressible
                 Navier--Stokes (INS) equations, and time-dependent
                 advection-diffusion equation.",
  acknowledgement = ack-nhfb,
  articleno =    "32",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Chen:2022:THP,
  author =       "Zhiwen Chen and Baorong Zhong",
  title =        "\pkg{TFInterpy}: a high-performance spatial
                 interpolation {Python} package",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101229",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001479",
  acknowledgement = ack-nhfb,
  articleno =    "101229",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ching:2022:QLO,
  author =       "Eric J. Ching and Brett Bornhoft and Ali Lasemi and
                 Matthias Ihme",
  title =        "\pkg{Quail}: a lightweight open-source discontinuous
                 {Galerkin} code in {Python} for teaching and
                 prototyping",
  journal =      j-SOFTWAREX,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.100982",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Feb 28 10:41:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200005X",
  acknowledgement = ack-nhfb,
  articleno =    "100982",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Chowdhury:2022:UTP,
  author =       "Md Atique Reza Chowdhury and Rabe Abdalkareem and Emad
                 Shihab and Bram Adams",
  title =        "On the Untriviality of Trivial Packages: an Empirical
                 Study of npm {JavaScript} Packages",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "48",
  number =       "8",
  pages =        "2695--2708",
  month =        aug,
  year =         "2022",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/TSE.2021.3068901",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Sep 22 07:51:46 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
  keywords =     "Node Package Manager (npm); Python Package Index
                 (PyPI)",
}

@Article{deDeusFilho:2022:PII,
  author =       "Jo{\~a}o Carlos Andrade {de Deus Filho} and Luiz
                 Carlos da Silva Nunes and Jos{\'e} Manuel Cardoso
                 Xavier",
  title =        "\pkg{iCorrVision-2D}: an integrated python-based
                 open-source {Digital Image Correlation} software for
                 in-plane measurements ({Part 1})",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101131",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000851",
  acknowledgement = ack-nhfb,
  articleno =    "101131",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Dejanovic:2022:PLG,
  author =       "Igor Dejanovi{\'c}",
  title =        "\pkg{Parglare}: a {LR\slash GLR} parser for {Python}",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "214",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        feb,
  year =         "2022",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2021.102734",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Tue Jan 25 06:43:24 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642321001271",
  acknowledgement = ack-nhfb,
  articleno =    "102734",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Dirmeier:2022:SHM,
  author =       "Simon Dirmeier and Niko Beerenwinkel",
  title =        "Structured hierarchical models for probabilistic
                 inference from perturbation screening data",
  journal =      j-ANN-APPL-STAT,
  volume =       "16",
  number =       "3",
  pages =        "2010--2029",
  month =        sep,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1214/21-AOAS1580",
  ISSN =         "1932-6157 (print), 1941-7330 (electronic)",
  ISSN-L =       "1932-6157",
  bibdate =      "Wed Mar 22 10:32:41 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/annapplstat.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://projecteuclid.org/journals/annals-of-applied-statistics/volume-16/issue-3/Structured-hierarchical-models-for-probabilistic-inference-from-perturbation-screening-data/10.1214/21-AOAS1580.full",
  acknowledgement = ack-nhfb,
  ajournal =     "Ann. Appl. Stat.",
  fjournal =     "Annals of Applied Statistics",
  journal-URL =  "http://projecteuclid.org/all/euclid.aoas/;
                 http://www.jstor.org/journals/19326157.html",
  keywords =     "biological network; genetic perturbation screen;
                 hierarchical models; interventional data; Markov random
                 fields; probabilistic models; PyMC3; Python",
}

@Article{Eckel:2022:PPP,
  author =       "Stephen Eckel and Daniel S. Barker and Eric B.
                 Norrgard and Julia Scherschligt",
  title =        "\pkg{PyLCP}: a {Python} package for computing laser
                 cooling physics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "270",
  number =       "??",
  pages =        "Article 108166",
  month =        jan,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108166",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Dec 20 16:41:52 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521002782",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Filho:2022:IIPa,
  author =       "Jo{\~a}o Filho and Luiz Nunes and Jos{\'e} Xavier",
  title =        "\pkg{iCorrVision-3D}: an integrated {Python}-based
                 open-source {Digital Image Correlation Software} for
                 in-plane and out-of-plane measurements ({Part 2})",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101132",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200084X",
  acknowledgement = ack-nhfb,
  articleno =    "101132",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Filipovich:2022:POS,
  author =       "Matthew J. Filipovich and Stephen Hughes",
  title =        "\pkg{PyCharge}: an open-source {Python} package for
                 self-consistent electrodynamics simulations of
                 {Lorentz} oscillators and moving point charges",
  journal =      j-COMP-PHYS-COMM,
  volume =       "274",
  number =       "??",
  pages =        "Article 108291",
  month =        may,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108291",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Feb 25 08:42:12 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000091",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Forouli:2022:APP,
  author =       "Aikaterini Forouli and Anastasios Pagonis and
                 Alexandros Nikas and Konstantinos Koasidis and Georgios
                 Xexakis and Themistoklis Koutsellis and Christos
                 Petkidis and Haris Doukas",
  title =        "\pkg{AUGMECON-Py}: a {Python} framework for
                 multi-objective linear optimisation under uncertainty",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101220",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001388",
  acknowledgement = ack-nhfb,
  articleno =    "101220",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Fraccaroli:2022:SDT,
  author =       "Michele Fraccaroli and Evelina Lamma and Fabrizio
                 Riguzzi",
  title =        "Symbolic {DNN-Tuner}: a {Python} and {ProbLog-based}
                 system for optimizing {Deep Neural Networks}
                 hyperparameters",
  journal =      j-SOFTWAREX,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100957",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Feb 28 10:41:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001825",
  acknowledgement = ack-nhfb,
  articleno =    "100957",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Galassi:2022:PPP,
  author =       "Riccardo Malpica Galassi",
  title =        "{PyCSP}: a {Python} package for the analysis and
                 simplification of chemically reacting systems based on
                 {Computational Singular Perturbation}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "276",
  number =       "??",
  pages =        "Article 108364",
  month =        jul,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108364",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed May 4 06:12:54 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000832",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Giuffre:2022:NIP,
  author =       "Andrea Giuffre' and Matteo Pini",
  title =        "\pkg{NiceProp}: an interactive {Python}-based
                 educational tool for non-ideal compressible fluid
                 dynamics",
  journal =      j-SOFTWAREX,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2021.100897",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Mon Feb 28 10:41:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711021001527",
  acknowledgement = ack-nhfb,
  articleno =    "100897",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Gorjao:2022:MEM,
  author =       "Leonardo Rydin Gorj{\~a}o and Galib Hassan and
                 J{\"u}rgen Kurths and Dirk Witthaut",
  title =        "{MFDFA}: Efficient multifractal detrended fluctuation
                 analysis in {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "273",
  number =       "??",
  pages =        "Article 108254",
  month =        apr,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108254",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Jan 25 06:27:42 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003660",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Hagh:2022:RRA,
  author =       "Varda F. Hagh and Mahdi Sadjadi",
  title =        "{rigidPy}: Rigidity analysis in {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "275",
  number =       "??",
  pages =        "Article 108306",
  month =        jun,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108306",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed Mar 23 14:12:02 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000248",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Haidri:2022:PPP,
  author =       "Salman Haidri and Yaksh J. Haranwala and Vania Bogorny
                 and Chiara Renso and Vinicius Prado da Fonseca and
                 Amilcar Soares",
  title =        "\pkg{PTRAIL} --- a {Python} package for parallel
                 trajectory data preprocessing",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101176",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001066",
  acknowledgement = ack-nhfb,
  articleno =    "101176",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Hebert:2022:NPP,
  author =       "Rapha{\"e}l Hebert and Emese Megl{\'e}cz",
  title =        "\pkg{NSDPY}: a {Python} package to download {DNA}
                 sequences from {NCBI}",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101038",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200036X",
  acknowledgement = ack-nhfb,
  articleno =    "101038",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Heinrich:2022:ERP,
  author =       "G. Heinrich and S. Jahn and S. P. Jones and M. Kerner
                 and F. Langer and V. Magerya and A. P{\~o}ldaru and J.
                 Schlenk and E. Villa",
  title =        "Expansion by regions with \pkg{pySecDec}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "273",
  number =       "??",
  pages =        "Article 108267",
  month =        apr,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108267",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Jan 25 06:27:42 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003799",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Heldens:2022:LPP,
  author =       "Stijn Heldens and Alessio Sclocco and Henk Dreuning
                 and Ben van Werkhoven and Pieter Hijma and Jason
                 Maassen and Rob V. van Nieuwpoort",
  title =        "\pkg{litstudy}: a {Python} package for literature
                 reviews",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101207",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200125X",
  acknowledgement = ack-nhfb,
  articleno =    "101207",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Higgott:2022:PPP,
  author =       "Oscar Higgott",
  title =        "{PyMatching}: a {Python} Package for Decoding Quantum
                 Codes with Minimum-Weight Perfect Matching",
  journal =      j-TQC,
  volume =       "3",
  number =       "3",
  pages =        "16:1--16:16",
  month =        sep,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3505637",
  ISSN =         "2643-6809 (print), 2643-6817 (electronic)",
  ISSN-L =       "2643-6809",
  bibdate =      "Tue Sep 20 09:37:25 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tqc.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3505637",
  abstract =     "This article introduces PyMatching, a fast open-source
                 Python package for decoding quantum error-correcting
                 codes with the minimum-weight perfect matching (MWPM)
                 algorithm. PyMatching includes the standard MWPM
                 decoder as well as a variant, which we call \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "16",
  fjournal =     "ACM Transactions on Quantum Computing (TQC)",
  journal-URL =  "https://dl.acm.org/loi/tqc",
}

@Article{Horton:2022:BRF,
  author =       "Nicholas J. Horton",
  title =        "Book Review: {{\booktitle{Foundations of Statistics
                 for Data Scientists: With R and Python}} Alan Agresti,
                 and Maria Kateri, Boca Raton. FL: CRC Press, 2022, 446
                 pp., \$99.95 (textbook), ISBN 978-0-367-74845-6}",
  journal =      j-J-AM-STAT-ASSOC,
  volume =       "117",
  number =       "539",
  pages =        "1603--1604",
  year =         "2022",
  CODEN =        "JSTNAL",
  DOI =          "https://doi.org/10.1080/01621459.2022.2104726",
  ISSN =         "0162-1459 (print), 1537-274X (electronic)",
  ISSN-L =       "0162-1459",
  bibdate =      "Wed Mar 22 07:55:39 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jamstatassoc2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 http://www.tandfonline.com/toc/uasa20/117/539",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the American Statistical Association",
  journal-URL =  "http://www.tandfonline.com/loi/uasa20",
  onlinedate =   "29 Jul 2022",
}

@Article{Jeong:2022:WOO,
  author =       "Injun Jeong and Sunghyun Kang and Stefano Scopel and
                 Gaurav Tomar",
  title =        "{WimPyDD}: an object-oriented {Python} code for the
                 calculation of {WIMP} direct detection signals",
  journal =      j-COMP-PHYS-COMM,
  volume =       "276",
  number =       "??",
  pages =        "Article 108342",
  month =        jul,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108342",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed May 4 06:12:54 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000601",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Kailasa:2022:PED,
  author =       "Srinath Kailasa and Tingyu Wang and Lorena A. Barba
                 and Timo Betcke",
  title =        "{PyExaFMM}: an Exercise in Designing High-Performance
                 Software With {Python} and {Numba}",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "24",
  number =       "5",
  pages =        "77--84",
  month =        sep # "\slash " # oct,
  year =         "2022",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2023.3258288",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Thu May 18 07:47:33 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://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{Khan:2022:EST,
  author =       "Faizan Khan and Boqi Chen and Daniel Varro and Shane
                 McIntosh",
  title =        "An Empirical Study of Type-Related Defects in {Python}
                 Projects",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "48",
  number =       "8",
  pages =        "3145--3158",
  month =        aug,
  year =         "2022",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/TSE.2021.3082068",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Sep 22 07:51:46 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Krasanakis:2022:PPP,
  author =       "Emmanouil Krasanakis and Symeon Papadopoulos and
                 Ioannis Kompatsiaris and Andreas L. Symeonidis",
  title =        "\pkg{pygrank}: a {Python} package for graph node
                 ranking",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101227",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001455",
  acknowledgement = ack-nhfb,
  articleno =    "101227",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Kratzke:2022:CNO,
  author =       "Nane Kratzke",
  title =        "Cloud-Native Observability: The Many-Faceted Benefits
                 of Structured and Unified Logging---a Multi-Case
                 Study",
  journal =      j-FUTURE-INTERNET,
  volume =       "14",
  number =       "10",
  pages =        "274",
  day =          "26",
  month =        sep,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi14100274",
  ISSN =         "1999-5903",
  bibdate =      "Wed Oct 26 11:06:06 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/14/10/274",
  abstract =     "Background: Cloud-native software systems often have a
                 much more decentralized structure and many
                 independently deployable and (horizontally) scalable
                 components, making it more complicated to create a
                 shared and consolidated picture of the overall
                 decentralized system state. Today, observability is
                 often understood as a triad of collecting and
                 processing metrics, distributed tracing data, and
                 logging. The result is often a complex observability
                 system composed of three stovepipes whose data are
                 difficult to correlate. Objective: This study analyzes
                 whether these three historically emerged observability
                 stovepipes of logs, metrics and distributed traces
                 could be handled in a more integrated way and with a
                 more straightforward instrumentation approach. Method:
                 This study applied an action research methodology used
                 mainly in industry--academia collaboration and common
                 in software engineering. The research design utilized
                 iterative action research cycles, including one
                 long-term use case. Results: This study presents a
                 unified logging library for Python and a unified
                 logging architecture that uses the structured logging
                 approach. The evaluation shows that several thousand
                 events per minute are easily processable. Conclusions:
                 The results indicate that a unification of the current
                 observability triad is possible without the necessity
                 to develop utterly new toolchains.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Lekinwala:2022:PPL,
  author =       "Nirav L. Lekinwala and Mani Bhushan",
  title =        "\pkg{pyGNMF}: a {Python} library for implementation of
                 generalised non-negative matrix factorisation method",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101257",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001753",
  acknowledgement = ack-nhfb,
  articleno =    "101257",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Lipovetsky:2022:BRH,
  author =       "Stan Lipovetsky",
  title =        "Book Review: {{\booktitle{Handbook of Regression
                 Modeling in People Analytics: With Examples in R and
                 Python}}, by Keith McNulty. CRC Press, Taylor \&
                 Francis Group, Boca Raton, FL, 2021, ISBN
                 978-1-032-04174-2, xvi + 255 pp., 48 color
                 illustrations, \$63.96 (hbk).}",
  journal =      j-TECHNOMETRICS,
  volume =       "64",
  number =       "1",
  pages =        "143--145",
  year =         "2022",
  CODEN =        "TCMTA2",
  DOI =          "https://doi.org/10.1080/00401706.2021.2021005",
  ISSN =         "0040-1706 (print), 1537-2723 (electronic)",
  ISSN-L =       "0040-1706",
  bibdate =      "Tue Feb 8 08:14:10 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 https://www.math.utah.edu/pub/tex/bib/technometrics2020.bib;
                 http://www.tandf.co.uk/journals/titles/00401706.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Technometrics",
  journal-URL =  "http://www.tandfonline.com/loi/utch20",
  onlinedate =   "31 Jan 2022",
}

@Article{Liu:2022:BRD,
  author =       "Shuangzhe Liu",
  title =        "Book Review: {{\booktitle{Data Visualization for
                 Social and Policy Research: a Step-by-Step Approach
                 Using R and Python}}. Jose Manuel Magallanes Reyes.
                 Cambridge University Press, 2022, 292 pages, \$105,
                 hardback. ISBN: 978-1-108-49433-5}",
  journal =      j-INT-STAT-REV,
  volume =       "90",
  number =       "3",
  pages =        "626--627",
  month =        dec,
  year =         "2022",
  CODEN =        "ISTRDP",
  DOI =          "https://doi.org/10.1111/insr.12531",
  ISSN =         "0306-7734 (print), 1751-5823 (electronic)",
  ISSN-L =       "0306-7734",
  bibdate =      "Wed Mar 22 06:05:47 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/intstatrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Int. Stat. Rev.",
  fjournal =     "International Statistical Review",
  journal-URL =  "http://www.jstor.org/journals/03067734.html;
                 https://onlinelibrary.wiley.com/loi/17515823",
  onlinedate =   "19 October 2022",
}

@Article{Liu:2022:EUF,
  author =       "Shun Liu and Junjie Yang and Xianxian Zeng and Haiying
                 Song and Jian Cen and Weichao Xu",
  title =        "An efficient and user-friendly software tool for
                 ordered multi-class receiver operating characteristic
                 analysis based on {Python}",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101175",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001078",
  acknowledgement = ack-nhfb,
  articleno =    "101175",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Magalhaes:2022:PPI,
  author =       "Tiago E. C. Magalh{\~a}es and Jos{\'e} M.
                 Rebord{\~a}o",
  title =        "\pkg{PyWolf}: a {PyOpenCL} implementation for
                 simulating the propagation of partially coherent
                 light",
  journal =      j-COMP-PHYS-COMM,
  volume =       "276",
  number =       "??",
  pages =        "Article 108336",
  month =        jul,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108336",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed May 4 06:12:54 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000546",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Malard:2022:EDP,
  author =       "Florian Malard and Laura Danner and Emilie Rouzies and
                 Jesse G. Meyer and Ewen Lescop and St{\'e}phanie
                 Olivier-Van Stichelen",
  title =        "\pkg{EpyNN}: {Educational python for Neural
                 Networks}",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101140",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000905",
  acknowledgement = ack-nhfb,
  articleno =    "101140",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Mandanici:2022:SPP,
  author =       "Andrea Mandanici and Giuseppe Mandaglio and Giovanni
                 Pirrotta and Valeria Conti Nibali and Giacomo Fiumara",
  title =        "Simple Physics With {Python}: a Workbook on
                 Introductory Physics With Open-Source Software",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "24",
  number =       "2",
  pages =        "74--78",
  month =        mar # "\slash " # apr,
  year =         "2022",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2022.3160011",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Sat Jun 11 10:46:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://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{Marcolini:2022:HPL,
  author =       "Alessia Marcolini and Nicole Bussola and Ernesto
                 Arbitrio and Mohamed Amgad and Giuseppe Jurman and
                 Cesare Furlanello",
  title =        "\pkg{histolab}: a {Python} library for reproducible
                 {Digital Pathology} preprocessing with automated
                 testing",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101237",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001558",
  acknowledgement = ack-nhfb,
  articleno =    "101237",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Mariano:2022:ATI,
  author =       "Benjamin Mariano and Yanju Chen and Yu Feng and Greg
                 Durrett and Isil Dillig",
  title =        "Automated transpilation of imperative to functional
                 code using neural-guided program synthesis",
  journal =      j-PACMPL,
  volume =       "6",
  number =       "OOPSLA1",
  pages =        "71:1--71:27",
  month =        apr,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3527315",
  ISSN =         "2475-1421 (electronic)",
  ISSN-L =       "2475-1421",
  bibdate =      "Thu May 26 06:32:46 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3527315",
  abstract =     "While many mainstream languages such as Java, Python,
                 and C\# increasingly incorporate functional APIs to
                 simplify programming and improve
                 parallelization/performance, there are no effective
                 techniques that can be used to automatically translate
                 existing \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "71",
  fjournal =     "Proceedings of the ACM on Programming Languages
                 (PACMPL)",
  journal-URL =  "https://dl.acm.org/loi/pacmpl",
}

@Article{Marques:2022:ISF,
  author =       "Henrique Marques and Nuno Laranjeiro and Jorge
                 Bernardino",
  title =        "Injecting software faults in {Python} applications",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "27",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-021-10047-9",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Fri Feb 25 18:03:07 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-021-10047-9",
  acknowledgement = ack-nhfb,
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Maulik:2022:PSD,
  author =       "Romit Maulik and Dimitrios K. Fytanidis and Bethany
                 Lusch and Venkatram Vishwanath and Saumil Patel",
  title =        "{PythonFOAM}: In-situ data analyses with {OpenFOAM}
                 and {Python}",
  journal =      j-J-COMPUT-SCI,
  volume =       "62",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2022.101750",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:56:13 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750322001387",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  articleno =    "101750",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Article{McCann:2022:COS,
  author =       "Maile P. McCann and Dylan L. Anderson and Christopher
                 R. Sherwood and Brittany Bruder and A. Spicer Bak and
                 Katherine L. Brodie",
  title =        "\pkg{CoastalImageLib}: an open-source {Python} package
                 for creating common coastal image products",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101215",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001339",
  acknowledgement = ack-nhfb,
  articleno =    "101215",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Melchert:2022:GPG,
  author =       "Oliver Melchert and Ayhan Demircan",
  title =        "\pkg{GNLStools.py}: a generalized nonlinear
                 {Schr{\"o}dinger} {Python} module implementing
                 different models of input pulse quantum noise",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101232",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001509",
  acknowledgement = ack-nhfb,
  articleno =    "101232",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Melchert:2022:PFP,
  author =       "O. Melchert and A. Demircan",
  title =        "\pkg{py-fmas}: a {Python} package for ultrashort
                 optical pulse propagation in terms of forward models
                 for the analytic signal",
  journal =      j-COMP-PHYS-COMM,
  volume =       "273",
  number =       "??",
  pages =        "Article 108257",
  month =        apr,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108257",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Jan 25 06:27:42 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003696",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Meng:2022:PPL,
  author =       "Fanwang Meng and Michael Richer and Alireza Tehrani
                 and Jonathan La and Taewon David Kim and Paul W. Ayers
                 and Farnaz Heidar-Zadeh",
  title =        "\pkg{Procrustes}: a {Python} library to find
                 transformations that maximize the similarity between
                 matrices",
  journal =      j-COMP-PHYS-COMM,
  volume =       "276",
  number =       "??",
  pages =        "Article 108334",
  month =        jul,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108334",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed May 4 06:12:54 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522000522",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Nabhani:2022:TOO,
  author =       "Abbas Nabhani and Hanne K. Sj{\o}lie",
  title =        "\pkg{TreeSim}: an object-oriented individual tree
                 simulator and {$3$D} visualization tool in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101221",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200139X",
  acknowledgement = ack-nhfb,
  articleno =    "101221",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Nguyen:2022:EPQ,
  author =       "Thien Nguyen and Alexander J. McCaskey",
  title =        "Extending {Python} for Quantum-classical Computing via
                 Quantum Just-in-time Compilation",
  journal =      j-TQC,
  volume =       "3",
  number =       "4",
  pages =        "24:1--24:25",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3544496",
  ISSN =         "2643-6809 (print), 2643-6817 (electronic)",
  ISSN-L =       "2643-6809",
  bibdate =      "Tue Sep 20 09:37:26 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tqc.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3544496",
  abstract =     "Python is a popular programming language known for its
                 flexibility, usability, readability, and focus on
                 developer productivity. The quantum software community
                 has adopted Python on a number of large-scale efforts
                 due to these characteristics, as well as \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "24",
  fjournal =     "ACM Transactions on Quantum Computing (TQC)",
  journal-URL =  "https://dl.acm.org/loi/tqc",
}

@Article{Nourisa:2022:COS,
  author =       "Jalil Nourisa and Berit Zeller-Plumhoff and Regine
                 Willumeit-R{\"o}mer",
  title =        "\pkg{CppyABM}: an open-source agent-based modeling
                 library to integrate {C++} and {Python}",
  journal =      j-SPE,
  volume =       "52",
  number =       "6",
  pages =        "1337--1351",
  month =        jun,
  year =         "2022",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.3067",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Feb 28 12:16:31 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "05 January 2022",
}

@Article{Park:2022:PPC,
  author =       "Jin Seok Park",
  title =        "\pkg{pyBaram}: {Parallel} compressible flow solver in
                 high-performance {Python} for teaching and research",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101272",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200190X",
  acknowledgement = ack-nhfb,
  articleno =    "101272",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Pasca:2022:PPP,
  author =       "Dag Pasquale Pasca and Angelo Aloisio and Marco
                 Martino Rosso and Stefanos Sotiropoulos",
  title =        "\pkg{PyOMA} and \pkg{PyOMA\_GUI}: a {Python} module
                 and software for {Operational Modal Analysis}",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101216",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001340",
  acknowledgement = ack-nhfb,
  articleno =    "101216",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Petukhova:2022:TPP,
  author =       "Alina Petukhova and Nuno Fachada",
  title =        "\pkg{TextCL}: a {Python} package for {NLP}
                 preprocessing tasks",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101122",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000802",
  acknowledgement = ack-nhfb,
  articleno =    "101122",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Pflanzner:2022:LAB,
  author =       "Tamas Pflanzner and Hamza Baniata and Attila Kertesz",
  title =        "Latency Analysis of Blockchain-Based {SSI}
                 Applications",
  journal =      j-FUTURE-INTERNET,
  volume =       "14",
  number =       "10",
  pages =        "282",
  day =          "29",
  month =        sep,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi14100282",
  ISSN =         "1999-5903",
  bibdate =      "Wed Oct 26 11:06:06 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
                 https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/14/10/282",
  abstract =     "Several revolutionary applications have been built on
                 the distributed ledgers of blockchain (BC) technology.
                 Besides cryptocurrencies, many other application fields
                 can be found in smart systems exploiting smart
                 contracts and Self Sovereign Identity (SSI) management.
                 The Hyperledger Indy platform is a suitable open-source
                 solution for realizing permissioned BC systems for SSI
                 projects. SSI applications usually require short
                 response times from the underlying BC network, which
                 may vary highly depending on the application type, the
                 used BC software, and the actual BC deployment
                 parameters. To support the developers and users of SSI
                 applications, we present a detailed latency analysis of
                 a permissioned BC system built with Indy and Aries. To
                 streamline our experiments, we developed a Python
                 application using containerized Indy and Aries
                 components from official Hyperledger repositories. We
                 deployed our experimental application on multiple
                 virtual machines in the public Google Cloud Platform
                 and on our local, private cloud using a Docker platform
                 with Kubernetes. We evaluated and compared their
                 performance benchmarked by Read and Write latencies. We
                 found that the local Indy ledger reads and writes
                 30--50\%, and 65--85\% faster than the Indy ledger
                 running on the Google Cloud Platform, respectively.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Pintor:2022:SSE,
  author =       "Maura Pintor and Luca Demetrio and Angelo Sotgiu and
                 Marco Melis and Ambra Demontis and Battista Biggio",
  title =        "\pkg{secml}: Secure and explainable machine learning
                 in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101095",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000656",
  acknowledgement = ack-nhfb,
  articleno =    "101095",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Pokuri:2022:APS,
  author =       "Balaji Sesha Sarath Pokuri and Alec Lofquist and Chad
                 Risko and Baskar Ganapathysubramanian",
  title =        "{Algorithm 1025}: {PARyOpt}: a Software for Parallel
                 Asynchronous Remote {Bayesian} Optimization",
  journal =      j-TOMS,
  volume =       "48",
  number =       "2",
  pages =        "24:1--24:15",
  month =        jun,
  year =         "2022",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3529517",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Wed Jul 20 07:04:17 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3529517",
  abstract =     "PARyOpt $^1$ is a Python based implementation of the
                 Bayesian optimization routine designed for remote and
                 asynchronous function evaluations. Bayesian
                 optimization is especially attractive for computational
                 optimization due to its low cost function footprint as
                 well as the ability to account for uncertainties in
                 data. A key challenge to efficiently deploy any
                 optimization strategy on distributed computing systems
                 is the synchronization step, where data from multiple
                 function calls is assimilated to identify the next
                 campaign of function calls. Bayesian optimization
                 provides an elegant approach to overcome this issue via
                 asynchronous updates. We formulate, develop and
                 implement a parallel, asynchronous variant of Bayesian
                 optimization. The framework is robust and resilient to
                 external failures. We show how such asynchronous
                 evaluations help reduce the total optimization wall
                 clock time for a suite of test problems. Additionally,
                 we show how the software design of the framework allows
                 easy extension to response surface reconstruction
                 (Kriging), providing a high performance software for
                 autonomous exploration. The software is available on
                 PyPI, with examples and documentation.",
  acknowledgement = ack-nhfb,
  articleno =    "24",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Psarras:2022:LAM,
  author =       "Christos Psarras and Henrik Barthels and Paolo
                 Bientinesi",
  title =        "The Linear Algebra Mapping Problem. {Current} State of
                 Linear Algebra Languages and Libraries",
  journal =      j-TOMS,
  volume =       "48",
  number =       "3",
  pages =        "26:1--26:??",
  month =        sep,
  year =         "2022",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/3549935",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  bibdate =      "Sat Oct 29 08:26:38 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3549935",
  abstract =     "We observe a disconnect between developers and
                 end-users of linear algebra libraries. On the one hand,
                 developers invest significant effort in creating
                 sophisticated numerical kernels. On the other hand,
                 end-users are progressively less likely to go through
                 the time consuming process of directly using said
                 kernels; instead, languages and libraries, which offer
                 a higher level of abstraction, are becoming
                 increasingly popular. These languages offer mechanisms
                 that internally map the input program to lower level
                 kernels. Unfortunately, our experience suggests that,
                 in terms of performance, this translation is typically
                 suboptimal.\par

                 In this paper, we define the problem of mapping a
                 linear algebra expression to a set of available
                 building blocks as the ``Linear Algebra Mapping
                 Problem'' (LAMP); we discuss its NP-complete nature,
                 and investigate how effectively a benchmark of test
                 problems is solved by popular high-level programming
                 languages and libraries. Specifically, we consider
                 Matlab, Octave, Julia, R, Armadillo (C++), Eigen (C++),
                 and NumPy (Python); the benchmark is meant to test both
                 compiler optimizations, as well as linear algebra
                 specific optimizations, such as the optimal
                 parenthesization of matrix products. The aim of this
                 study is to facilitate the development of languages and
                 libraries that support linear algebra computations.",
  acknowledgement = ack-nhfb,
  articleno =    "26",
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "https://dl.acm.org/loi/toms",
}

@Article{Ramirez:2022:PPP,
  author =       "Erick Ram{\'\i}rez and Sergio Hern{\'a}ndez-L{\'o}pez
                 and Enelio Torres-Garcia and Karla Reyes-Morales and
                 Jorge Balmaseda",
  title =        "\pkg{pICNIK}: a {Python} package with isoconversional
                 computations for non-isothermal kinetics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "278",
  number =       "??",
  pages =        "Article 108416",
  month =        sep,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108416",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 10 06:24:15 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522001357",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Reinartz:2022:PPP,
  author =       "Christopher Reinartz and Thomas T. Enevoldsen",
  title =        "\pkg{pyTEP}: a {Python} package for interactive
                 simulations of the {Tennessee Eastman} process",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101053",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000449",
  acknowledgement = ack-nhfb,
  articleno =    "101053",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Robertson:2022:RPP,
  author =       "Hayden Robertson and Isaac J. Gresham and Stuart W.
                 Prescott and Grant B. Webber and Erica J. Wanless and
                 Andrew Nelson",
  title =        "\pkg{refellips}: a {Python} package for the analysis
                 of variable angle spectroscopic ellipsometry data",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101225",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001431",
  acknowledgement = ack-nhfb,
  articleno =    "101225",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Safa:2022:TPP,
  author =       "Ibrahim Safa and Jeffrey Lazar and Alex Pizzuto and
                 Oswaldo Vasquez and Carlos A. Arg{\"u}elles and Justin
                 Vandenbroucke",
  title =        "\pkg{TauRunner}: a public {Python} program to
                 propagate neutral and charged leptons",
  journal =      j-COMP-PHYS-COMM,
  volume =       "278",
  number =       "??",
  pages =        "Article 108422",
  month =        sep,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108422",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 10 06:24:15 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522001412",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Schoofs:2022:ATA,
  author =       "Ebert Schoofs and Mehrdad Abdi and Serge Demeyer",
  title =        "{AmPyfier}: {Test} amplification in {Python}",
  journal =      j-J-SOFTW-EVOL-PROC,
  volume =       "34",
  number =       "11",
  pages =        "e2490:1--e2490:??",
  month =        nov,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1002/smr.2490",
  ISSN =         "2047-7473 (print), 2047-7481 (electronic)",
  ISSN-L =       "2047-7473",
  bibdate =      "Wed Mar 15 07:34:35 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwevolproc.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Softw. Evol. Proc.",
  fjournal =     "Journal of Software: Evolution and Process",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
  onlinedate =   "24 July 2022",
}

@Article{Sharma:2022:UOS,
  author =       "Pankajeshwara Nand Sharma and Bastin Tony Roy
                 Savarimuthu and Nigel Stanger",
  title =        "Unearthing open source decision-making processes: a
                 case study of {Python} enhancement proposals",
  journal =      j-SPE,
  volume =       "52",
  number =       "10",
  pages =        "2312--2346",
  month =        oct,
  year =         "2022",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.3128",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Feb 28 12:16:34 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "12 August 2022",
}

@Article{Silvestri:2022:SFP,
  author =       "Luciano G. Silvestri and Lucas J. Stanek and Gautham
                 Dharuman and Yongjun Choi and Michael S. Murillo",
  title =        "\pkg{Sarkas}: a fast pure-{Python} molecular dynamics
                 suite for plasma physics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "272",
  number =       "??",
  pages =        "Article 108245",
  month =        mar,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108245",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jan 21 15:44:23 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046552100357X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Singh:2022:DMT,
  author =       "Navjot Singh and Zecheng Zhang and Xiaoxiao Wu and
                 Naijing Zhang and Siyuan Zhang and Edgar Solomonik",
  title =        "Distributed-memory tensor completion for generalized
                 loss functions in {Python} using new sparse tensor
                 kernels",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "169",
  number =       "??",
  pages =        "269--285",
  month =        nov,
  year =         "2022",
  CODEN =        "JPDCER",
  DOI =          "https://doi.org/10.1016/j.jpdc.2022.07.005",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Mon Aug 29 12:03:19 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jpardistcomp2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0743731522001708",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Smith:2022:ICC,
  author =       "Matthew J. Smith and Mohammad A. Mansournia and
                 Camille Maringe and Paul N. Zivich and Stephen R. Cole
                 and Cl{\'e}mence Leyrat and Aur{\'e}lien Belot and
                 Bernard Rachet and Miguel A. Luque-Fernandez",
  title =        "Introduction to computational causal inference using
                 reproducible {Stata}, {R}, and {Python} code: a
                 tutorial",
  journal =      j-STAT-MED,
  volume =       "41",
  number =       "2",
  pages =        "407--432",
  day =          "30",
  month =        jan,
  year =         "2022",
  CODEN =        "SMEDDA",
  DOI =          "https://doi.org/10.1002/sim.9234",
  ISSN =         "0277-6715 (print), 1097-0258 (electronic)",
  ISSN-L =       "0277-6715",
  bibdate =      "Tue Feb 22 08:38:44 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 https://www.math.utah.edu/pub/tex/bib/statmed2020.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Stat. Med.",
  fjournal =     "Statistics in Medicine",
  journal-URL =  "https://onlinelibrary.wiley.com/journal/10970258",
  onlinedate =   "28 October 2021",
}

@Article{Tawfik:2022:PPP,
  author =       "Sherif Abdulkader Tawfik and Salvy P. Russo",
  title =        "\pkg{PyPhotonics}: a {Python} package for the
                 evaluation of luminescence properties of defects",
  journal =      j-COMP-PHYS-COMM,
  volume =       "273",
  number =       "??",
  pages =        "Article 108222",
  month =        apr,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108222",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Jan 25 06:27:42 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003349",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Thorp:2022:PFE,
  author =       "Kelly R. Thorp",
  title =        "\pkg{pyfao56}: {FAO-56} evapotranspiration in
                 {Python}",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101208",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001261",
  acknowledgement = ack-nhfb,
  articleno =    "101208",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Thurman:2022:YTA,
  author =       "Marnanel Thurman",
  title =        "\pkg{yex}: a {\TeX}-alike typesetter in {Python}",
  journal =      j-TUGboat,
  volume =       "43",
  number =       "2",
  pages =        "134--135",
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.47397/tb/43-2/tb134thurman-yex",
  ISSN =         "0896-3207",
  ISSN-L =       "0896-3207",
  bibdate =      "Fri Oct 7 13:47:30 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  URL =          "https://tug.org/TUGboat/tb43-2/tb134thurman-yex.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "TUGboat",
  issue =        "134",
  journal-URL =  "https://tug.org/TUGboat/",
  remark =       "Intermediate{\Dash}implementing TeX in the Python
                 environment, focusing on HTML output.",
}

@Article{Valiev:2022:CPP,
  author =       "Marat Valiev and Gennady N. Chuev and Marina V.
                 Fedotova",
  title =        "{CDFTPY}: a {Python} package for performing classical
                 density functional theory calculations for molecular
                 liquids",
  journal =      j-COMP-PHYS-COMM,
  volume =       "276",
  number =       "??",
  pages =        "Article 108338",
  month =        jul,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108338",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Wed May 4 06:12:54 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046552200056X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Velikajne:2022:PRP,
  author =       "Nina Velikajne and Miha Mo{\v{s}}kon",
  title =        "\pkg{RhythmCount}: a {Python} package to analyse the
                 rhythmicity in count data",
  journal =      j-J-COMPUT-SCI,
  volume =       "63",
  pages =        "??--??",
  month =        sep,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jocs.2022.101758",
  ISSN =         "1877-7503 (print), 1877-7511 (electronic)",
  ISSN-L =       "1877-7503",
  bibdate =      "Tue Sep 19 13:56:18 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S1877750322001429",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Sci.",
  articleno =    "101758",
  fjournal =     "Journal of Computational Science",
  journal-URL =  "https://www.sciencedirect.com/journal/journal-of-computational-science",
}

@Article{Verma:2022:PBT,
  author =       "Ashok Kumar Verma",
  title =        "A {Python}-based tool for constructing observables
                 from the {DSN}'s closed-loop archival tracking data
                 files",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101190",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001145",
  acknowledgement = ack-nhfb,
  articleno =    "101190",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Verschelde:2022:EAS,
  author =       "Jan Verschelde",
  title =        "Exporting {Ada} Software to {Python} and {Julia}",
  journal =      j-SIGADA-LETTERS,
  volume =       "42",
  number =       "1",
  pages =        "76--78",
  month =        jun,
  year =         "2022",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/3577949.3577961",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "0736-721X",
  bibdate =      "Tue Apr 11 11:59:12 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigada.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3577949.3577961",
  abstract =     "The objective is to demonstrate the making of Ada
                 software available to Python and Julia programmers
                 using GPRbuild. GPRbuild is the project manager of the
                 GNAT \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "https://dl.acm.org/loi/sigada",
}

@Article{Wagner:2022:CAT,
  author =       "Felix Wagner and Daniel Bartolot and Damir Rizvanovic
                 and Florian Reindl and Jochen Schieck and Wolfgang
                 Waltenberger",
  title =        "{Cait}: Analysis Toolkit for Cryogenic Particle
                 Detectors in {Python}",
  journal =      j-COMPUT-SOFTW-BIG-SCI,
  volume =       "6",
  number =       "1",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s41781-022-00092-4",
  ISSN =         "2510-2036 (print), 2510-2044 (electronic)",
  ISSN-L =       "2510-2036",
  bibdate =      "Tue Dec 20 07:52:26 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsoftwbigsci.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s41781-022-00092-4",
  acknowledgement = ack-nhfb,
  ajournal =     "Comput. Softw. Big Sci.",
  articleno =    "19",
  fjournal =     "Computing and Software for Big Science",
  journal-URL =  "https://www.springer.com/journal/41781",
}

@Article{Wagner:2022:FEL,
  author =       "Christoph W. Wagner and Sebastian Semper and Jan
                 Kirchhof",
  title =        "\pkg{fastmat}: {Efficient} linear transforms in
                 {Python}",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101013",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000218",
  acknowledgement = ack-nhfb,
  articleno =    "101013",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Walker:2022:POP,
  author =       "S. D. Walker and A. Abramov and L. J. Nevay and W.
                 Shields and S. T. Boogert",
  title =        "\pkg{Pyg4ometry}: a {Python} library for the creation
                 of {Monte Carlo} radiation transport physical
                 geometries",
  journal =      j-COMP-PHYS-COMM,
  volume =       "272",
  number =       "??",
  pages =        "Article 108228",
  month =        mar,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108228",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jan 21 15:44:23 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003404",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Watrobski:2022:PMR,
  author =       "Jaros{\l}aw Watr{\'o}bski and Aleksandra Baczkiewicz
                 and Wojciech Sa{\l}abun",
  title =        "\pkg{pyrepo-mcda} --- Reference objects based {MCDA}
                 software package",
  journal =      j-SOFTWAREX,
  volume =       "19",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101107",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:57 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000711",
  acknowledgement = ack-nhfb,
  articleno =    "101107",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Welker:2022:CPF,
  author =       "Simon Welker and Muhamed Amin and Jochen K{\"u}pper",
  title =        "\pkg{CMInject}: {Python} framework for the numerical
                 simulation of nanoparticle injection pipelines",
  journal =      j-COMP-PHYS-COMM,
  volume =       "270",
  number =       "??",
  pages =        "Article 108138",
  month =        jan,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108138",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Dec 20 16:41:52 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521002502",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Widyasari:2022:RWP,
  author =       "Ratnadira Widyasari and Gede Artha Azriadi Prana and
                 Stefanus Agus Haryono and Shaowei Wang and David Lo",
  title =        "Real world projects, real faults: evaluating spectrum
                 based fault localization techniques on {Python}
                 projects",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "27",
  number =       "6",
  pages =        "??--??",
  month =        nov,
  year =         "2022",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-022-10189-4",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Tue May 2 16:12:39 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-022-10189-4",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  articleno =    "147",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Wiecha:2022:PNF,
  author =       "Peter R. Wiecha and Cl{\'e}ment Majorel and Arnaud
                 Arbouet and Adelin Patoux and Yoann Br{\^u}l{\'e} and
                 G{\'e}rard Colas des Francs and Christian Girard",
  title =        "{``pyGDM''} --- new functionalities and major
                 improvements to the {Python} toolkit for nano-optics
                 full-field simulations",
  journal =      j-COMP-PHYS-COMM,
  volume =       "270",
  number =       "??",
  pages =        "Article 108142",
  month =        jan,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108142",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Dec 20 16:41:52 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046552100254X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Wieckowski:2022:PPL,
  author =       "Jakub Wieckowski and Bart{\l}omiej Kizielewicz and
                 Wojciech Sa{\l}abun",
  title =        "\pkg{pyFDM}: a {Python} library for uncertainty
                 decision analysis methods",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101271",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001893",
  acknowledgement = ack-nhfb,
  articleno =    "101271",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Wittreich:2022:PGA,
  author =       "Gerhard R. Wittreich and Dionisios G. Vlachos",
  title =        "{Python Group Additivity (\pkg{pGrAdd})} software for
                 estimating species thermochemical properties",
  journal =      j-COMP-PHYS-COMM,
  volume =       "273",
  number =       "??",
  pages =        "Article 108277",
  month =        apr,
  year =         "2022",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2021.108277",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Tue Jan 25 06:27:42 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465521003891",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Yang:2022:MPF,
  author =       "Yilin Yang and Tianxing He and Baowen Xu",
  title =        "Mining {Python} fix patterns via analyzing
                 fine-grained source code changes",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "27",
  number =       "2",
  pages =        "??--??",
  month =        mar,
  year =         "2022",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-021-10087-1",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Fri Feb 25 18:03:08 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-021-10087-1",
  acknowledgement = ack-nhfb,
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Zaman:2022:PPL,
  author =       "Mashiyat Zaman and Kotaro Tanahashi and Shu Tanaka",
  title =        "{PyQUBO}: {Python} Library for Mapping Combinatorial
                 Optimization Problems to {QUBO} Form",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "71",
  number =       "4",
  pages =        "838--850",
  month =        apr,
  year =         "2022",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2021.3063618",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Thu Mar 17 06:38:17 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Zhang:2022:PIP,
  author =       "Yinsheng Zhang and Haiyan Wang and Yongbo Cheng and
                 Xiaolin Qin",
  title =        "\pkg{pyCLAMs}: an integrated {Python} toolkit for
                 classifiability analysis",
  journal =      j-SOFTWAREX,
  volume =       "18",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101007",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 2 09:45:22 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022000188",
  acknowledgement = ack-nhfb,
  articleno =    "101007",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Zhang:2022:QIO,
  author =       "Qiang Zhang and Lei Xu and Xiangyu Zhang and Baowen
                 Xu",
  title =        "Quantifying the interpretation overhead of {Python}",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "215",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        mar,
  year =         "2022",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2021.102759",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Tue Jan 25 06:43:25 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642321001520",
  acknowledgement = ack-nhfb,
  articleno =    "102759",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Zolotov:2022:VPF,
  author =       "Oleg Zolotov and Yulia Romanovskaya and Maria
                 Knyazeva",
  title =        "Version 2.0-\pkg{pyFIRI} --- a free and open source
                 {Python} software package of the non-auroral {Earth}'s
                 lower ionosphere",
  journal =      j-SOFTWAREX,
  volume =       "20",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101263",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Fri Dec 9 06:06:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001819",
  acknowledgement = ack-nhfb,
  articleno =    "101263",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Aguado:2023:QPP,
  author =       "Daniel G{\'o}mez Aguado and Vicent Gimeno and Julio
                 Jos{\'e} Moyano-Fern{\'a}ndez and Juan Carlos
                 Garcia-Escartin",
  title =        "\pkg{QOptCraft}: a {Python} package for the design and
                 study of linear optical quantum systems",
  journal =      j-COMP-PHYS-COMM,
  volume =       "282",
  number =       "??",
  pages =        "Article 108511",
  month =        jan,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108511",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Oct 27 09:04:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522002302",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Alfadel:2023:EAS,
  author =       "Mahmoud Alfadel and Diego Elias Costa and Emad
                 Shihab",
  title =        "Empirical analysis of security vulnerabilities in
                 {Python} packages",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "28",
  number =       "3",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-022-10278-4",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Wed May 17 06:39:05 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-022-10278-4",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  articleno =    "59",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Aman:2023:ADC,
  author =       "Hirohisa Aman and Sousuke Amasaki and Tomoyuki
                 Yokogawa and Minoru Kawahara",
  title =        "An automated detection of confusing variable pairs
                 with highly similar compound names in {Java} and
                 {Python} programs",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "28",
  number =       "5",
  pages =        "??--??",
  month =        sep,
  year =         "2023",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-023-10339-2",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Thu Aug 10 15:49:42 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-023-10339-2",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  articleno =    "108",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Arjona:2023:TSE,
  author =       "Aitor Arjona and Gerard Finol and Pedro Garc{\'\i}a
                 L{\'o}pez",
  title =        "Transparent serverless execution of {Python}
                 multiprocessing applications",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "140",
  number =       "??",
  pages =        "436--449",
  month =        mar,
  year =         "2023",
  CODEN =        "FGSEVI",
  DOI =          "https://doi.org/10.1016/j.future.2022.10.038",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Mon Dec 5 09:29:56 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/futgencompsys2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167739X22003612",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@Article{Bao:2023:PEN,
  author =       "Nana Bao and Xingting Yan and Shiwen Wei and Zihao
                 Wang",
  title =        "\pkg{Py-EFIT}: a new {Python} package for plasma
                 equilibrium reconstruction on {EAST} tokamak",
  journal =      j-COMP-PHYS-COMM,
  volume =       "282",
  number =       "??",
  pages =        "Article 108549",
  month =        jan,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108549",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Oct 27 09:04:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522002685",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Bernardi:2023:TEP,
  author =       "Simona Bernardi and Ra{\'u}l Javierre and Jos{\'e}
                 Merseguer",
  title =        "\pkg{tegdet}: an extensible {Python} library for
                 anomaly detection using time evolving graphs",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101363",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000596",
  acknowledgement = ack-nhfb,
  articleno =    "101363",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Blackmore:2023:DPP,
  author =       "Jacob A. Blackmore and Philip D. Gregory and Jeremy M.
                 Hutson and Simon L. Cornish",
  title =        "\pkg{Diatomic-py}: a {Python} module for calculating
                 the rotational and hyperfine structure of {$^1 \Sigma
                 $} molecules",
  journal =      j-COMP-PHYS-COMM,
  volume =       "282",
  number =       "??",
  pages =        "Article 108512",
  month =        jan,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108512",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Oct 27 09:04:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522002314",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Boelens:2023:SST,
  author =       "Arnout M. P. Boelens",
  title =        "\pkg{Stplanpy}: a sustainable transportation planner
                 for {Python}",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101339",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000353",
  acknowledgement = ack-nhfb,
  articleno =    "101339",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Brekel:2023:VPF,
  author =       "Josh Brekel and Kelly R. Thorp and Kendall C. DeJonge
                 and Thomas J. Trout",
  title =        "Version 1.1.0-\pkg{pyfao56}: {FAO-56}
                 evapotranspiration in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101336",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000328",
  acknowledgement = ack-nhfb,
  articleno =    "101336",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Briegel:2023:PPP,
  author =       "Karl D. Briegel and Felix Riccius and Jakob Filser and
                 Alexander Bourgund and Robert Spitzenpfeil and Mirco
                 Panighel and Carlo Dri and Barbara A. J. Lechner and
                 Friedrich Esch",
  title =        "\pkg{PyfastSPM}: a {Python} package to convert {$1$D}
                 {FastSPM} data streams into publication quality
                 movies",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101269",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200187X",
  acknowledgement = ack-nhfb,
  articleno =    "101269",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Brun:2023:BPJ,
  author =       "Yuriy Brun and Tian Lin and Jessie Elise Somerville
                 and Elisha M. Myers and Natalie Ebner",
  title =        "Blindspots in {Python} and {Java} {APIs} Result in
                 Vulnerable Code",
  journal =      j-TOSEM,
  volume =       "32",
  number =       "3",
  pages =        "76:1--76:??",
  month =        jul,
  year =         "2023",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/3571850",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Fri Jun 9 06:39:39 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3571850",
  abstract =     "Blindspots in APIs can cause software engineers to
                 introduce vulnerabilities, but such blindspots are,
                 unfortunately, common. We study the effect APIs with
                 blindspots have on developers in two languages by
                 replicating a 109-developer, 24-Java-API \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Softw. Eng. Methodol.",
  articleno =    "76",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "https://dl.acm.org/loi/tosem",
}

@Article{Camino:2023:CPI,
  author =       "Bruno Camino and Huanyu Zhou and Eleonora Ascrizzi and
                 Alberto Boccuni and Filippo Bodo and Alessandro Cossard
                 and Davide Mitoli and Anna Maria Ferrari and Alessandro
                 Erba and Nicholas M. Harrison",
  title =        "\pkg{CRYSTALpytools}: a {Python} infrastructure for
                 the \pkg{Crystal} code",
  journal =      j-COMP-PHYS-COMM,
  volume =       "292",
  number =       "??",
  pages =        "Article 108853",
  month =        nov,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108853",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Sep 11 09:09:56 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523001984",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Cao:2023:TBD,
  author =       "Yulu Cao and Lin Chen and Wanwangying Ma and Yanhui Li
                 and Yuming Zhou and Linzhang Wang",
  title =        "Towards Better Dependency Management: a First Look at
                 Dependency Smells in {Python} Projects",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "49",
  number =       "4",
  pages =        "1741--1765",
  month =        apr,
  year =         "2023",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/TSE.2022.3191353",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Fri Apr 21 11:17:27 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "IEEE Trans. Softw. Eng.",
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Caponi:2023:BPP,
  author =       "Francesco Caponi and David F. Vetsch and Davide
                 Vanzo",
  title =        "\pkg{BASEveg}: a {Python} package to model riparian
                 vegetation dynamics coupled with river morphodynamics",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101361",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000572",
  acknowledgement = ack-nhfb,
  articleno =    "101361",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Cass:2023:HPS,
  author =       "Stephen Cass and Harry Goldstein",
  title =        "How {Python} Swallowed the World: Lessons from
                 Compiling Top Programming Languages",
  journal =      j-IEEE-SPECTRUM,
  volume =       "60",
  number =       "9",
  pages =        "2--2",
  month =        sep,
  year =         "2023",
  CODEN =        "IEESAM",
  DOI =          "https://doi.org/10.1109/MSPEC.2023.10234196",
  ISSN =         "0018-9235 (print), 1939-9340 (electronic)",
  ISSN-L =       "0018-9235",
  bibdate =      "Thu Sep 14 06:53:25 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeespectrum2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Spectrum",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
}

@Article{Castillo-Felisola:2023:CPA,
  author =       "Oscar Castillo-Felisola and Dominic T. Price and
                 Mattia Scomparin",
  title =        "{Cadabra} and {Python} algorithms in general
                 relativity and cosmology {II}: Gravitational waves",
  journal =      j-COMP-PHYS-COMM,
  volume =       "289",
  number =       "??",
  pages =        "Article 108748",
  month =        aug,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108748",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri May 19 06:19:24 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523000930",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Chatelain:2023:PAP,
  author =       "Yohan Chatelain and Nigel Yong Sao Young and Gregory
                 Kiar and Tristan Glatard",
  title =        "{PyTracer}: Automatically Profiling Numerical
                 Instabilities in {Python}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "72",
  number =       "6",
  pages =        "1792--1803",
  month =        jun,
  year =         "2023",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2022.3224377",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed May 17 10:34:15 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "IEEE Trans. Comput.",
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Chen:2023:PBC,
  author =       "Jie Chen and Tao Jiang and Dongjin Yu and Haiyang Hu",
  title =        "Pattern-based circular reference detection in
                 {Python}",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "227",
  number =       "??",
  pages =        "??--??",
  month =        apr,
  year =         "2023",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2023.102932",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Wed Apr 5 08:58:27 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S016764232300014X",
  acknowledgement = ack-nhfb,
  articleno =    "102932",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Chen:2023:RPO,
  author =       "Zhi Chen and Peng Xiong",
  title =        "{RSOME} in {Python}: An Open-Source Package for Robust
                 Stochastic Optimization Made Easy",
  journal =      j-INFORMS-J-COMPUT,
  volume =       "35",
  number =       "4",
  pages =        "717--724",
  month =        jul # "\slash " # aug,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1287/ijoc.2023.1291",
  ISSN =         "1091-9856 (print), 1526-5528 (electronic)",
  ISSN-L =       "1091-9856",
  bibdate =      "Thu Aug 3 06:01:03 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/informs-j-comput.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://pubsonline.informs.org/doi/full/10.1287/ijoc.2023.1291",
  acknowledgement = ack-nhfb,
  ajournal =     "INFORMS J. Comput.",
  fjournal =     "INFORMS Journal on Computing",
  journal-URL =  "https://pubsonline.informs.org/journal/ijoc",
  onlinedate =   "30 March 2023",
}

@Article{Czmil:2023:GPI,
  author =       "Anna Czmil and Jacek Kluska and Sylwester Czmil",
  title =        "\pkg{GPR}: a {Python} implementation of an extremely
                 simple classifier based on fuzzy logic and gene
                 expression programming",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101362",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000584",
  acknowledgement = ack-nhfb,
  articleno =    "101362",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Dang:2023:LGP,
  author =       "Khanh Dang and Jie Chen and Brian Rodgers and Saryu
                 Fensin",
  title =        "\pkg{LAVA 1.0}: a general-purpose {Python} toolkit for
                 calculation of material properties with \pkg{LAMMPS}
                 and \pkg{VASP}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "286",
  number =       "??",
  pages =        "Article 108667",
  month =        may,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108667",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Feb 25 06:01:56 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523000127",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{dePuiseau:2023:SPF,
  author =       "Constantin Waubert de Puiseau and Jannik Peters and
                 Christian D{\"o}rpelkus and Hasan Tercan and Tobias
                 Meisen",
  title =        "\pkg{schlably}: a {Python} framework for deep
                 reinforcement learning based scheduling experiments",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101383",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000791",
  acknowledgement = ack-nhfb,
  articleno =    "101383",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{DiDomenico:2023:NPB,
  author =       "Daniel {Di Domenico} and Jo{\~a}o V. F. Lima and
                 Gerson G. H. Cavalheiro",
  title =        "{NAS Parallel Benchmarks with Python}: a performance
                 and programming effort analysis focusing on {GPUs}",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "79",
  number =       "8",
  pages =        "8890--8911",
  month =        may,
  year =         "2023",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-022-04932-3",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Thu Apr 6 06:16:05 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsuper2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s11227-022-04932-3",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Supercomputing",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Dorado-Rojas:2023:MMP,
  author =       "Sergio A. Dorado-Rojas and Fernando Fachini and
                 Tetiana Bogodorova and Giuseppe Laera and Marcelo de
                 Castro Fernandes and Luigi Vanfretti",
  title =        "\pkg{{ModelicaGridData}}: {Massive} power system
                 simulation data generation and labeling tool using
                 {Modelica} and {Python}",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101258",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001765",
  acknowledgement = ack-nhfb,
  articleno =    "101258",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Escudero-Arnanz:2023:DPP,
  author =       "{\'O}scar Escudero-Arnanz and Antonio G. Marques and
                 Cristina Soguero-Ruiz and Inmaculada Mora-Jim{\'e}nez
                 and Gregorio Robles",
  title =        "\pkg{dtwParallel}: a {Python} package to efficiently
                 compute dynamic time warping between time series",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101364",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000602",
  acknowledgement = ack-nhfb,
  articleno =    "101364",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ethier:2023:PGA,
  author =       "Jeffrey G. Ethier and Andr{\'e}s C{\'o}rdoba and Jay
                 D. Schieber",
  title =        "\pkg{pyDSM}: {GPU}-accelerated rheology predictions
                 for entangled polymers in {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "290",
  number =       "??",
  pages =        "Article 108786",
  month =        sep,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108786",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Jun 9 07:27:07 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523001315",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Funk:2023:CLC,
  author =       "Dan Funk",
  title =        "Creating a Low-Code Business Process Execution
                 Platform With {Python}, {BPMN}, and {DMN}",
  journal =      j-IEEE-SOFTWARE,
  volume =       "40",
  number =       "1",
  pages =        "9--17",
  month =        jan # "\slash " # feb,
  year =         "2023",
  CODEN =        "IESOEG",
  DOI =          "https://doi.org/10.1109/MS.2022.3212033",
  ISSN =         "0740-7459 (print), 1937-4194 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Tue May 2 07:37:09 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeesoft2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=52",
}

@Book{Gezerlis:2023:NMP,
  author =       "Alex Gezerlis",
  title =        "Numerical Methods in Physics with {Python}",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  edition =      "Second",
  pages =        "700",
  year =         "2023",
  ISBN =         "1-009-30385-6 (hardcover), 1-009-30386-4 (paperback)",
  ISBN-13 =      "978-1-009-30385-9 (hardcover), 978-1-009-30386-6
                 (paperback)",
  LCCN =         "QC20.7.N86 G49 2023",
  bibdate =      "Tue Aug 1 06:54:48 MDT 2023",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  abstract =     "Bringing together idiomatic Python programming,
                 foundational numerical methods, and physics
                 applications, this is an ideal standalone textbook for
                 courses on computational physics. All the frequently
                 used numerical methods in physics are explained,
                 including foundational techniques and hidden gems on
                 topics such as linear algebra, differential equations,
                 root-finding, interpolation, and integration. The
                 second edition of this introductory book features
                 several new codes and 140 new problems (many on physics
                 applications), as well as new sections on the
                 singular-value decomposition, derivative-free
                 optimization, Bayesian linear regression, neural
                 networks, and partial differential equations. The last
                 section in each chapter is an in-depth project,
                 tackling physics problems that cannot be solved without
                 the use of a computer. Written primarily for students
                 studying computational physics, this textbook brings
                 the non-specialist quickly up to speed with Python
                 before looking in detail at the numerical methods often
                 used in the subject.",
  acknowledgement = ack-nhfb,
  subject =      "Mathematical physics; Data processing; Numerical
                 analysis; Python (Computer program language); Data
                 processing.; Python (Computer program language)",
  tableofcontents = "Preface \\
                 1. Idiomatic Python \\
                 2. Numbers \\
                 3. Derivatives \\
                 4. Matrices \\
                 5. Zeroes and minima \\
                 6. Approximation \\
                 7. Integrals \\
                 8. Differential equations \\
                 Appendix A. Installation and setup \\
                 Appendix B. Number representations \\
                 Appendix C. Math background \\
                 Bibliography \\
                 Index",
}

@Article{Goona:2023:DOS,
  author =       "Nithin Kumar Goona and Shraddha M. Naik and Saidi
                 Reddy Parne and Anand Paul",
  title =        "\pkg{DssPyLib}: an open-source {Python} {FEM} software
                 to solve {Poisson} equation in {2-D} using distributed
                 source scheme",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101308",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000043",
  acknowledgement = ack-nhfb,
  articleno =    "101308",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Guo:2023:OPP,
  author =       "Junjun Guo and Aijun Ye and Xiaowei Wang and Zhongguo
                 Guan",
  title =        "\pkg{{OpenSeesPyView}}: {Python} programming-based
                 visualization and post-processing tool for
                 {OpenSeesPy}",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101278",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001960",
  acknowledgement = ack-nhfb,
  articleno =    "101278",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Hanasaki:2023:IRT,
  author =       "Kota Hanasaki and Zulfikhar A. Ali and Min Choi and
                 Mauro {Del Ben} and Bryan M. Wong",
  title =        "Implementation of real-time {TDDFT} for periodic
                 systems in the open-source \pkg{PySCF} software
                 package",
  journal =      j-J-COMPUT-CHEM,
  volume =       "44",
  number =       "9",
  pages =        "980--987",
  day =          "5",
  month =        apr,
  year =         "2023",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.27058",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Fri Aug 25 09:22:21 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "23 December 2022",
}

@Article{Hernandez-Olivan:2023:MPL,
  author =       "Carlos Hernandez-Olivan and Jose R. Beltran",
  title =        "\pkg{Musicaiz}: a {Python} library for symbolic music
                 generation, analysis and visualization",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101365",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000614",
  acknowledgement = ack-nhfb,
  articleno =    "101365",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Horn:2023:PTD,
  author =       "Logan Bishop-Van Horn",
  title =        "{pyTDGL}: Time-dependent {Ginzburg--Landau} in
                 {Python}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "291",
  number =       "??",
  pages =        "Article 108799",
  month =        oct,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108799",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Aug 10 07:51:47 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523001443",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Hu:2023:ESP,
  author =       "Mingzhe Hu and Yu Zhang",
  title =        "An empirical study of the {Python\slash C API} on
                 evolution and bug patterns",
  journal =      j-J-SOFTW-EVOL-PROC,
  volume =       "35",
  number =       "2",
  pages =        "e2507:1--e2507:??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1002/smr.2507",
  ISSN =         "2047-7473 (print), 2047-7481 (electronic)",
  ISSN-L =       "2047-7473",
  bibdate =      "Wed Mar 15 07:34:36 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwevolproc.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Softw. Evol. Proc.",
  fjournal =     "Journal of Software: Evolution and Process",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
  onlinedate =   "06 September 2022",
}

@Article{Hussain:2023:PPP,
  author =       "Md. Manjurul Hussain and Ishtiak Mahmud and Sheikh
                 Hefzul Bari",
  title =        "\pkg{pyHomogeneity}: a {Python} Package for
                 Homogeneity Test of Time Series Data",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "11",
  number =       "1",
  pages =        "??--??",
  month =        "????",
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.427",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Tue Jun 13 08:02:36 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.427",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
  onlinedate =   "14 Feb 2023",
}

@Article{Jin:2023:PEP,
  author =       "Gan Jin and Hongsheng Pang and Yuyang Ji and Zujian
                 Dai and Lixin He",
  title =        "{PYATB}: an efficient {Python} package for electronic
                 structure calculations using ab initio tight-binding
                 model",
  journal =      j-COMP-PHYS-COMM,
  volume =       "291",
  number =       "??",
  pages =        "Article 108844",
  month =        oct,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108844",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Aug 10 07:51:47 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523001893",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Joswig:2023:PPF,
  author =       "Fabian Joswig and Simon Kuberski and Justus T.
                 Kuhlmann and Jan Neuendorf",
  title =        "\pkg{pyerrors}: a {Python} framework for error
                 analysis of {Monte Carlo} data",
  journal =      j-COMP-PHYS-COMM,
  volume =       "288",
  number =       "??",
  pages =        "Article 108750",
  month =        jul,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108750",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon May 8 10:42:24 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523000954",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Karakoc:2023:BPC,
  author =       "Mesut Karako{\c{c}}",
  title =        "\pkg{BiFold}: a {Python} code for the calculation of
                 double-folded (bifold) potentials with density-in\slash
                 dependent nucleon--nucleon interactions",
  journal =      j-COMP-PHYS-COMM,
  volume =       "284",
  number =       "??",
  pages =        "Article 108613",
  month =        mar,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108613",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Feb 25 06:01:54 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522003320",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Kaufmann:2023:APP,
  author =       "Josef Kaufmann and Karsten Held",
  title =        "\pkg{ana\_cont}: {Python} package for analytic
                 continuation",
  journal =      j-COMP-PHYS-COMM,
  volume =       "282",
  number =       "??",
  pages =        "Article 108519",
  month =        jan,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108519",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Oct 27 09:04:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522002387",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Kim:2023:FPL,
  author =       "Taewon D. Kim and M. Richer and Gabriela
                 S{\'a}nchez-D{\'\i}az and Ram{\'o}n Alain
                 Miranda-Quintana and Toon Verstraelen and Farnaz
                 Heidar-Zadeh and Paul W. Ayers",
  title =        "\pkg{Fanpy}: a {Python} library for prototyping
                 multideterminant methods in {\em ab initio\/} quantum
                 chemistry",
  journal =      j-J-COMPUT-CHEM,
  volume =       "44",
  number =       "5",
  pages =        "697--709",
  day =          "15",
  month =        feb,
  year =         "2023",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.27034",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Fri Aug 25 09:22:19 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputchem2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Comput. Chem.",
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://www.interscience.wiley.com/jpages/0192-8651",
  onlinedate =   "28 November 2022",
}

@Article{Koot:2023:PVP,
  author =       "Paul Koot and Miguel Angel Mendoza-Lugo and Dominik
                 Paprotny and Oswaldo Morales-N{\'a}poles and Elisa
                 Ragno and Dani{\"e}l T. H. Worm",
  title =        "\pkg{PyBanshee} version (1.0): a {Python}
                 implementation of the {MATLAB} toolbox {BANSHEE} for
                 {Non-Parametric Bayesian Networks} with updated
                 features",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101279",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022001972",
  acknowledgement = ack-nhfb,
  articleno =    "101279",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Lalor:2023:PIS,
  author =       "John Patrick Lalor and Pedro Rodriguez",
  title =        "\pkg{py-irt}: a Scalable Item Response Theory Library
                 for {Python}",
  journal =      j-INFORMS-J-COMPUT,
  volume =       "35",
  number =       "1",
  pages =        "5--13",
  month =        jan # "\slash " # feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1287/ijoc.2022.1250",
  ISSN =         "1091-9856 (print), 1526-5528 (electronic)",
  ISSN-L =       "1091-9856",
  bibdate =      "Tue Feb 7 06:06:38 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/informs-j-comput.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://pubsonline.informs.org/doi/full/10.1287/ijoc.2022.1250",
  acknowledgement = ack-nhfb,
  ajournal =     "INFORMS J. Comput.",
  fjournal =     "INFORMS Journal on Computing",
  journal-URL =  "https://pubsonline.informs.org/journal/ijoc",
  onlinedate =   "15 November 2022",
}

@Article{Lee:2023:PPP,
  author =       "Kyunghoon Lee and Jun Hyeong Kim and Woo Youn Kim",
  title =        "{pyMCD}: {Python} package for searching transition
                 states via the multicoordinate driven method",
  journal =      j-COMP-PHYS-COMM,
  volume =       "291",
  number =       "??",
  pages =        "Article 108831",
  month =        oct,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108831",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Aug 10 07:51:47 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523001765",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Li:2023:APA,
  author =       "Yipeng Li and Xiangmin Jiao",
  title =        "{ARPIST}: Provably accurate and stable numerical
                 integration over spherical triangles",
  journal =      j-J-COMPUT-APPL-MATH,
  volume =       "420",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        mar,
  year =         "2023",
  CODEN =        "JCAMDI",
  DOI =          "https://doi.org/10.1016/j.cam.2022.114822",
  ISSN =         "0377-0427 (print), 1879-1778 (electronic)",
  ISSN-L =       "0377-0427",
  bibdate =      "Tue Nov 1 08:45:04 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputapplmath2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/matlab.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0377042722004204",
  acknowledgement = ack-nhfb,
  articleno =    "114822",
  fjournal =     "Journal of Computational and Applied Mathematics",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03770427",
  remark =       "Open-source implementation in MATLAB and Python.",
}

@Article{Li:2023:MPM,
  author =       "Yunguo Li and Huaiwei Ni",
  title =        "\pkg{MD2D}: a {Python} module for accurate
                 determination of diffusion coefficient from molecular
                 dynamics",
  journal =      j-COMP-PHYS-COMM,
  volume =       "284",
  number =       "??",
  pages =        "Article 108599",
  month =        mar,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108599",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Feb 25 06:01:54 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522003186",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Li:2023:PTP,
  author =       "Ye Li and Hongxiang Ren and Haijiang Li",
  title =        "\pkg{PyVT}: a toolkit for preprocessing and analysis
                 of vessel spatio-temporal trajectories",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101316",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000122",
  acknowledgement = ack-nhfb,
  articleno =    "101316",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Liegeois:2023:PPI,
  author =       "Kim Liegeois and Mauro Perego and Tucker Hartland",
  title =        "{PyAlbany}: a {Python} interface to the {C++}
                 multiphysics solver {Albany}",
  journal =      j-J-COMPUT-APPL-MATH,
  volume =       "425",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2023",
  CODEN =        "JCAMDI",
  DOI =          "https://doi.org/10.1016/j.cam.2022.115037",
  ISSN =         "0377-0427 (print), 1879-1778 (electronic)",
  ISSN-L =       "0377-0427",
  bibdate =      "Fri Feb 17 08:25:58 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputapplmath2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0377042722006355",
  acknowledgement = ack-nhfb,
  articleno =    "115037",
  fjournal =     "Journal of Computational and Applied Mathematics",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03770427",
}

@Article{Liu:2023:TUB,
  author =       "Di Liu and Yang Feng and Yanyan Yan and Baowen Xu",
  title =        "Towards understanding bugs in {Python} interpreters",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "28",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2023",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-022-10239-x",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Wed May 17 06:39:04 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-022-10239-x",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  articleno =    "19",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Lukasczyk:2023:ESA,
  author =       "Stephan Lukasczyk and Florian Kroi{\ss} and Gordon
                 Fraser",
  title =        "An empirical study of automated unit test generation
                 for {Python}",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "28",
  number =       "2",
  pages =        "??--??",
  month =        mar,
  year =         "2023",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-022-10248-w",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Wed May 17 06:39:05 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-022-10248-w",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  articleno =    "36",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Lukyanenko:2023:PAS,
  author =       "Dmitry Lukyanenko",
  title =        "Parallel Algorithm for Solving Overdetermined Systems
                 of Linear Equations, Taking into Account Round-Off
                 Errors",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "16",
  number =       "5",
  month =        may,
  year =         "2023",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a16050242",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Thu Jun 1 07:31:19 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-4893/16/5/242",
  abstract =     "The paper proposes a parallel algorithm for solving
                 large overdetermined systems of linear algebraic
                 equations with a dense matrix. This algorithm is based
                 on the use of a modification of the conjugate gradient
                 method, which is able to take into account rounding
                 errors accumulated during calculations when making a
                 decision to terminate the iterative process. The
                 parallel algorithm is constructed in such a way that it
                 takes into account the capabilities of the message
                 passing interface (MPI) parallel programming
                 technology, which is used for the software
                 implementation of the proposed algorithm. The
                 programming examples are shown using the Python
                 programming language and the mpi4py package, but all
                 programs are built in such a way that they can be
                 easily rewritten using the C/C++/Fortran programming
                 languages. The advantage of using the modern MPI-4.0
                 standard is demonstrated.",
  acknowledgement = ack-nhfb,
  articleno =    "242",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  pagecount =    "??",
}

@Article{Ma:2023:PPT,
  author =       "Jinfeng Ma and Hua Zheng and Ruonan Li and Kaifeng Rao
                 and Yanzheng Yang and Weifeng Li",
  title =        "\pkg{PyVecContour}: a {Python} toolkit for vectorized
                 isosurface mapping",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101317",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000134",
  acknowledgement = ack-nhfb,
  articleno =    "101317",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Mardan:2023:PPP,
  author =       "Amir Mardan and Bernard Giroux and Gabriel
                 Fabien-Ouellet",
  title =        "\pkg{PyFWI}: a {Python} package for full-waveform
                 inversion and reservoir monitoring",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101384",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000808",
  acknowledgement = ack-nhfb,
  articleno =    "101384",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Menvouta:2023:DPP,
  author =       "Emmanuel Jordy Menvouta and Sven Serneels and Tim
                 Verdonck",
  title =        "\pkg{direpack}: a {Python 3} package for
                 state-of-the-art statistical dimensionality reduction
                 methods",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101282",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S235271102200200X",
  acknowledgement = ack-nhfb,
  articleno =    "101282",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Nino-Ruiz:2023:ADA,
  author =       "El{\'\i}as D. Nino-Ruiz and Randy Consuegra",
  title =        "\pkg{AMLCS-DA}: a data assimilation package in
                 {Python} for {Atmospheric General Circulation Models}",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101374",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000705",
  acknowledgement = ack-nhfb,
  articleno =    "101374",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Niskanen:2023:CPB,
  author =       "Matti Niskanen and Timo L{\"a}hivaara",
  title =        "\pkg{COMPOSTI}: a {Python}-based program for seismic
                 trans-dimensional inversion",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101298",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022002163",
  acknowledgement = ack-nhfb,
  articleno =    "101298",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Obonna:2023:DMM,
  author =       "Ugochukwu Onyekachi Obonna and Felix Kelechi Opara and
                 Christian Chidiebere Mbaocha and Jude-Kennedy Chibuzo
                 Obichere and Isdore Onyema Akwukwaegbu and Miriam
                 Mmesoma Amaefule and and Cosmas Ifeanyi Nwakanma",
  title =        "Detection of Man-in-the-Middle {(MitM)} Cyber-Attacks
                 in Oil and Gas Process Control Networks Using Machine
                 Learning Algorithms",
  journal =      j-FUTURE-INTERNET,
  volume =       "15",
  number =       "8",
  pages =        "280",
  day =          "21",
  month =        aug,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi15080280",
  ISSN =         "1999-5903",
  bibdate =      "Sat Aug 26 11:22:50 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/15/8/280",
  abstract =     "Recently, the process control network (PCN) of oil and
                 gas installation has been subjected to amorphous
                 cyber-attacks. Examples include the denial-of-service
                 (DoS), distributed denial-of-service (DDoS), and
                 man-in-the-middle (MitM) attacks, and this may have
                 largely been caused by the integration of open network
                 to operation technology (OT) as a result of low-cost
                 network expansion. The connection of OT to the internet
                 for firmware updates, third-party support, or the
                 intervention of vendors has exposed the industry to
                 attacks. The inability to detect these unpredictable
                 cyber-attacks exposes the PCN, and a successful attack
                 can lead to devastating effects. This paper reviews the
                 different forms of cyber-attacks in PCN of oil and gas
                 installations while proposing the use of machine
                 learning algorithms to monitor data exchanges between
                 the sensors, controllers, processes, and the final
                 control elements on the network to detect anomalies in
                 such data exchanges. Python 3.0 Libraries,
                 Deep-Learning Toolkit, MATLAB, and Allen Bradley
                 RSLogic 5000 PLC Emulator software were used in
                 simulating the process control. The outcomes of the
                 experiments show the reliability and functionality of
                 the different machine learning algorithms in detecting
                 these anomalies with significant precise attack
                 detections identified using tree algorithms (bagged or
                 coarse ) for man-in-the-middle (MitM) attacks while
                 taking note of accuracy-computation complexity
                 trade-offs.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Pandey:2023:PNI,
  author =       "Vivek Pandey and Sudhir K. Pandey",
  title =        "\pkg{PY-Nodes}: an {\em ab-initio} {Python} code for
                 searching nodes in a material using {{\em
                 Nelder--Mead\/}}'s simplex approach",
  journal =      j-COMP-PHYS-COMM,
  volume =       "283",
  number =       "??",
  pages =        "Article 108570",
  month =        feb,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108570",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Dec 5 09:16:39 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522002892",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Raj:2023:FPT,
  author =       "Surbhi Raj and Jimson Mathew and Arijit Mondal",
  title =        "\pkg{FDT}: a {Python} toolkit for fake image and video
                 detection",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101395",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000912",
  acknowledgement = ack-nhfb,
  articleno =    "101395",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Ramalhinho:2023:FSP,
  author =       "Jo{\~a}o Ramalhinho and Thomas Dowrick and Ester
                 Bonmati and Matthew J. Clarkson",
  title =        "\pkg{Fan-Slicer}: a {Pycuda} Package for Fast
                 Reslicing of Ultrasound Shaped Planes",
  journal =      j-J-OPEN-RES-SOFT,
  volume =       "11",
  number =       "1",
  pages =        "??--??",
  month =        "????",
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.5334/jors.422",
  ISSN =         "2049-9647",
  ISSN-L =       "2049-9647",
  bibdate =      "Tue Jun 13 08:02:36 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jors.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://openresearchsoftware.metajnl.com/articles/10.5334/jors.422",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "Journal of Open Research Software",
  journal-URL =  "https://openresearchsoftware.metajnl.com/issue/archive/",
  onlinedate =   "8 Feb 2023",
}

@Article{Ramos-Carreno:2023:DDC,
  author =       "Carlos Ramos-Carre{\~n}o and Jos{\'e} L. Torrecilla",
  title =        "\pkg{dcor}: {Distance} correlation and energy
                 statistics in {Python}",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101326",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000225",
  acknowledgement = ack-nhfb,
  articleno =    "101326",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Roald:2023:MLC,
  author =       "Marie Roald",
  title =        "\pkg{{MatCoupLy}}: {Learning} coupled matrix
                 factorizations with {Python}",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101292",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022002102",
  acknowledgement = ack-nhfb,
  articleno =    "101292",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Rodriguez:2023:SPN,
  author =       "Jose S. Rodriguez and Robert B. Parker and Carl D.
                 Laird and Bethany L. Nicholson and John D. Siirola and
                 Michael L. Bynum",
  title =        "Scalable Parallel Nonlinear Optimization with
                 {PyNumero} and {Parapint}",
  journal =      j-INFORMS-J-COMPUT,
  volume =       "35",
  number =       "2",
  pages =        "509--517",
  month =        mar # "\slash " # apr,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1287/ijoc.2023.1272",
  ISSN =         "1091-9856 (print), 1526-5528 (electronic)",
  ISSN-L =       "1091-9856",
  bibdate =      "Tue May 2 07:01:41 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/informs-j-comput.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://pubsonline.informs.org/doi/full/10.1287/ijoc.2023.1272",
  acknowledgement = ack-nhfb,
  ajournal =     "INFORMS J. Comput.",
  fjournal =     "INFORMS Journal on Computing",
  journal-URL =  "https://pubsonline.informs.org/journal/ijoc",
  onlinedate =   "15 March 2023",
}

@Article{Sauter:2023:BRF,
  author =       "Roger Sauter",
  title =        "Book Review: {{\booktitle{Foundations of Statistics
                 for Data Scientists: With R and Python}} by Alan
                 Agresti and Maria Kateri, Boca Raton, FL: Chapman and
                 Hall\slash CRC, 2022, xv + 453 pp., \$136.46 (hcb)}",
  journal =      j-TECHNOMETRICS,
  volume =       "65",
  number =       "1",
  pages =        "132--133",
  year =         "2023",
  CODEN =        "TCMTA2",
  DOI =          "https://doi.org/10.1080/00401706.2022.2163806",
  ISSN =         "0040-1706 (print), 1537-2723 (electronic)",
  ISSN-L =       "0040-1706",
  bibdate =      "Wed Mar 22 15:30:00 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/technometrics2020.bib;
                 http://www.tandf.co.uk/journals/titles/00401706.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Technometrics",
  journal-URL =  "http://www.tandfonline.com/loi/utch20",
  onlinedate =   "01 Feb 2023",
}

@Article{Shah:2023:QPB,
  author =       "S. A. Shah and Hao Li and Eric R. Bittner and Carlos
                 Silva and Andrei Piryatinski",
  title =        "\pkg{QuDPy}: a {Python}-based tool for computing
                 ultrafast non-linear optical responses",
  journal =      j-COMP-PHYS-COMM,
  volume =       "292",
  number =       "??",
  pages =        "Article 108891",
  month =        nov,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108891",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Sep 11 09:09:56 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523002369",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@InProceedings{Shajii:2023:CCH,
  author =       "Ariya Shajii and Gabriel Ramirez and Haris
                 Smajlovi{\'c} and Jessica Ray and Bonnie Berger and
                 Saman Amarasinghe and Ibrahim Numanagi{\'c}",
  booktitle =    "Proceedings of the {32nd ACM SIGPLAN International
                 Conference on Compiler Construction}",
  title =        "{Codon}: A Compiler for High-Performance Pythonic
                 Applications and {DSLs}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  month =        feb,
  year =         "2023",
  DOI =          "https://doi.org/10.1145/3578360.3580275",
  bibdate =      "Sat Apr 8 14:38:50 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://docs.exaloop.io/codon/;
                 https://github.com/exaloop/codon;
                 https://github.com/exaloop/codon.git",
  abstract =     "Domain-specific languages (DSLs) are able to provide
                 intuitive high-level abstractions that are easy to work
                 with while attaining better performance than
                 general-purpose languages. Yet, implementing new DSLs
                 is a burdensome task. As a result, new DSLs are usually
                 embedded in general-purpose languages. While low-level
                 languages like C or C++ often provide better
                 performance as a host than high-level languages like
                 Python, high-level languages are becoming more
                 prevalent in many domains due to their ease and
                 flexibility. Here, we present Codon, a
                 domain-extensible compiler and DSL framework for
                 high-performance DSLs with Python's syntax and
                 semantics. Codon builds on previous work on
                 ahead-of-time type checking and compilation of Python
                 programs and leverages a novel intermediate
                 representation to easily incorporate domain-specific
                 optimizations and analyses. We showcase and evaluate
                 several compiler extensions and DSLs for Codon
                 targeting various domains, including bioinformatics,
                 secure multi-party computation, block-based data
                 compression and parallel programming, showing that
                 Codon DSLs can provide benefits of familiar high-level
                 languages and achieve performance typically only seen
                 with low-level languages, thus bridging the gap between
                 performance and usability.",
  acknowledgement = ack-nhfb,
  keywords =     "domain-specific languages; intermediate
                 representation; optimization; Python; Python
                 compilation; type checking",
}

@Article{Shen:2023:VAO,
  author =       "Yang Shen and Robert H. Moore and Ankit Deo",
  title =        "Visualizing {Abaqus} output database in {ParaView}: a
                 universal converter in {Python} and {C++}",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101331",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000274",
  acknowledgement = ack-nhfb,
  articleno =    "101331",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Sihi:2023:TPC,
  author =       "Antik Sihi and Sudhir K. Pandey",
  title =        "\pkg{TRACK}: a {Python} code for calculating the
                 transport properties of correlated electron systems
                 using {Kubo} formalism",
  journal =      j-COMP-PHYS-COMM,
  volume =       "285",
  number =       "??",
  pages =        "Article 108640",
  month =        apr,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108640",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Feb 25 06:01:55 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522003599",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Singh:2023:BEC,
  author =       "Raman Singh and Sean Sturley and Hitesh Tewari",
  title =        "Blockchain-Enabled {Chebyshev} Polynomial-Based Group
                 Authentication for Secure Communication in an {Internet
                 of Things} Network",
  journal =      j-FUTURE-INTERNET,
  volume =       "15",
  number =       "3",
  pages =        "96",
  day =          "28",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi15030096",
  ISSN =         "1999-5903",
  bibdate =      "Wed Mar 29 11:12:24 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
                 https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-5903/15/3/96",
  abstract =     "The utilization of Internet of Things (IoT) devices in
                 various smart city and industrial applications is
                 growing rapidly. Within a trusted authority (TA), such
                 as an industry or smart city, all IoT devices are
                 closely monitored in a controlled infrastructure.
                 However, in cases where an IoT device from one TA needs
                 to communicate with another IoT device from a different
                 TA, the trust establishment between these devices
                 becomes extremely important. Obtaining a digital
                 certificate from a certificate authority for each IoT
                 device can be expensive. To solve this issue, a group
                 authentication framework is proposed that can establish
                 trust between group IoT devices owned by different
                 entities. The Chebyshev polynomial has many important
                 properties, semigroup is one of the most important.
                 These properties make the Chebyshev polynomial a good
                 candidate for the proposed group authentication
                 mechanism. The secure exchange of information between
                 trusted authorities is supported by Blockchain
                 technology. The proposed framework was implemented and
                 tested using Python and deployed on Blockchain using
                 Ethereum's Goerli's testnet. The results show that the
                 proposed framework can reasonably use Chebyshev
                 polynomials with degrees up to four digits in length.
                 The values of various parameters related to Blockchain
                 are also discussed to understand the usability of the
                 proposed framework.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Sipper:2023:EKE,
  author =       "Moshe Sipper and Tomer Halperin and Itai Tzruia and
                 Achiya Elyasaf",
  title =        "\pkg{EC-KitY}: {Evolutionary} computation tool kit in
                 {Python} with seamless machine learning integration",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101381",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000778",
  acknowledgement = ack-nhfb,
  articleno =    "101381",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Song:2023:PPC,
  author =       "Shanshan Song and Mingyu Zhu and Hongcheng Ni and Jian
                 Wu",
  title =        "\pkg{PyStructureFactor}: a {Python} code for the
                 molecular structure factor in tunneling ionization
                 rates",
  journal =      j-COMP-PHYS-COMM,
  volume =       "292",
  number =       "??",
  pages =        "Article 108882",
  month =        nov,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108882",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Sep 11 09:09:56 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523002278",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Souza:2023:EPB,
  author =       "Paulo S. Souza and Tiago Ferreto and Rodrigo N.
                 Calheiros",
  title =        "{EdgeSimPy}: {Python}-based modeling and simulation of
                 edge computing resource management policies",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "148",
  number =       "??",
  pages =        "446--459",
  month =        nov,
  year =         "2023",
  CODEN =        "FGSEVI",
  DOI =          "https://doi.org/10.1016/j.future.2023.06.013",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Wed Sep 13 17:21:29 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/futgencompsys2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167739X23002340",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@Article{Sun:2023:UUG,
  author =       "Yiming Sun and Daniel German and Stefano Zacchiroli",
  title =        "Using the uniqueness of global identifiers to
                 determine the provenance of {Python} software source
                 code",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "28",
  number =       "5",
  pages =        "??--??",
  month =        sep,
  year =         "2023",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-023-10317-8",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Thu Aug 10 15:49:42 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-023-10317-8",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  articleno =    "107",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Szustak:2023:POP,
  author =       "Lukasz Szustak and Marcin Lawenda and Sebastian Arming
                 and Gregor Bankhamer and Christoph Schweimer and Robert
                 Els{\"a}sser",
  title =        "Profiling and optimization of {Python}-based social
                 sciences applications on {HPC} systems by means of task
                 and data parallelism",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "148",
  number =       "??",
  pages =        "623--635",
  month =        nov,
  year =         "2023",
  CODEN =        "FGSEVI",
  DOI =          "https://doi.org/10.1016/j.future.2023.07.005",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Wed Sep 13 17:21:29 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/futgencompsys2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167739X23002571",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@Article{Toriyama:2023:VPT,
  author =       "Michael Y. Toriyama and Jiaxing Qu and L{\'\i}dia C.
                 Gomes and Elif Ertekin",
  title =        "{VTAnDeM}: a {Python} toolkit for simultaneously
                 visualizing phase stability, defect energetics, and
                 carrier concentrations of materials",
  journal =      j-COMP-PHYS-COMM,
  volume =       "287",
  number =       "??",
  pages =        "Article 108691",
  month =        jun,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108691",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Mar 17 07:49:53 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046552300036X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Toth:2023:VBP,
  author =       "R{\'o}bert T{\'o}th and B{\'a}lint T{\'o}th and
                 Mikl{\'o}s Hoffmann and Marianna Zichar",
  title =        "\pkg{viskillz-blender} --- a {Python} package to
                 generate assets of {Mental Cutting Test} exercises
                 using {Blender}",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101328",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000249",
  acknowledgement = ack-nhfb,
  articleno =    "101328",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Tritt:2023:SGO,
  author =       "Alex Tritt and Joshua Morris and Joel Hochstetter and
                 R. P. Anderson and James Saunderson and L. D. Turner",
  title =        "\pkg{Spinsim}: a {GPU} optimized {Python} package for
                 simulating spin-half and spin-one quantum systems",
  journal =      j-COMP-PHYS-COMM,
  volume =       "287",
  number =       "??",
  pages =        "Article 108701",
  month =        jun,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108701",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Fri Mar 17 07:49:53 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465523000462",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Velichko:2023:NNE,
  author =       "Andrei Velichko and Maksim Belyaev and Yuriy Izotov
                 and Murugappan Murugappan and Hanif Heidari",
  title =        "Neural Network Entropy ({NNetEn}): Entropy-Based {EEG}
                 Signal and Chaotic Time Series Classification, {Python}
                 Package for {NNetEn} Calculation",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "16",
  number =       "5",
  month =        may,
  year =         "2023",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a16050255",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Thu Jun 1 07:31:19 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://www.mdpi.com/1999-4893/16/5/255",
  acknowledgement = ack-nhfb,
  articleno =    "255",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  pagecount =    "??",
}

@Article{Vergara:2023:SSP,
  author =       "J. M. Vergara and M. E. Mora-Ramos and E. Fl{\'o}rez
                 and J. D. Correa",
  title =        "\pkg{SPIN}: {P[S]imple [P]ython [I]pywidgets
                 [N]otebook} interface to obtain the optoelectronic
                 properties of materials employing {DFT}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "284",
  number =       "??",
  pages =        "Article 108614",
  month =        mar,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108614",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Sat Feb 25 06:01:54 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522003332",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Wang:2023:PPP,
  author =       "Hongjin Wang and Jingyi Zhuang and Zhen Zhang and Qi
                 Zhang and Renata M. Wentzcovitch",
  title =        "{pgm}: a {Python} package for free energy calculations
                 within the phonon gas model",
  journal =      j-COMP-PHYS-COMM,
  volume =       "291",
  number =       "??",
  pages =        "Article 108845",
  month =        oct,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2023.108845",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Aug 10 07:51:47 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S001046552300190X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Wieckowski:2023:HDM,
  author =       "Jakub Wieckowski and Bart{\l}omiej Kizielewicz and
                 Wojciech Sa{\l}abun",
  title =        "Handling decision-making in {Intuitionistic Fuzzy}
                 environment: {PyIFDM} package",
  journal =      j-SOFTWAREX,
  volume =       "22",
  number =       "??",
  pages =        "??--??",
  month =        may,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101344",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023000407",
  acknowledgement = ack-nhfb,
  articleno =    "101344",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Yoon:2023:PFO,
  author =       "Tae Jun Yoon and Katie A. Maerzke and Robert P.
                 Currier and Alp T. Findikoglu",
  title =        "\pkg{PyOECP}: a flexible open-source software library
                 for estimating and modeling the complex permittivity
                 based on the open-ended coaxial probe {(OECP)}
                 technique",
  journal =      j-COMP-PHYS-COMM,
  volume =       "282",
  number =       "??",
  pages =        "Article 108517",
  month =        jan,
  year =         "2023",
  CODEN =        "CPHCBZ",
  DOI =          "https://doi.org/10.1016/j.cpc.2022.108517",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Thu Oct 27 09:04:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compphyscomm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465522002363",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Zhang:2023:RRB,
  author =       "Qiang Zhang and Lei Xu and Baowen Xu",
  title =        "{RegCPython}: a Register-based {Python} Interpreter
                 for Better Performance",
  journal =      j-TACO,
  volume =       "20",
  number =       "1",
  pages =        "14:1--14:??",
  month =        mar,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3568973",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Fri Feb 17 06:54:21 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3568973",
  abstract =     "Interpreters are widely used in the implementation of
                 many programming languages, such as Python, Perl, and
                 Java. Even though various JIT compilers emerge in an
                 endless stream, interpretation efficiency still plays a
                 critical role in program performance. Does a
                 stack-based interpreter or a register-based interpreter
                 perform better? The pros and cons of the pair of
                 architectures have long been discussed. The stack
                 architecture is attractive for its concise model and
                 compact bytecode, but our study finds that the
                 register-based interpreter can also be implemented
                 easily and that its bytecode size only grows by a small
                 margin. Moreover, the latter turns out to be
                 appreciably faster. Specifically, we implemented an
                 open source Python interpreter named RegCPython based
                 on CPython v3.10.1. The former is register based, while
                 the latter is stack based. Without changes in syntax,
                 Application Programming Interface, and Application
                 Binary Interface, RegCPython is excellently compatible
                 with CPython, as it does not break existing syntax or
                 interfaces. It achieves a speedup of 1.287 on the most
                 favorable benchmark and 0.977 even on the most
                 unfavorable benchmark. For all Python-intensive
                 benchmarks, the average speedup reaches 1.120 on x86
                 and 1.130 on ARM. Our evaluation work, which also
                 serves as an empirical study, provides a detailed
                 performance survey of both interpreters on modern
                 hardware. It points out that the register-based
                 interpreters are more efficient mainly due to the
                 elimination of machine instructions needed, while
                 changes in branch mispredictions and cache misses have
                 a limited impact on performance. Additionally, it
                 confirms that the register-based implementation is also
                 satisfactory in terms of memory footprint, compilation
                 cost, and implementation complexity.",
  acknowledgement = ack-nhfb,
  articleno =    "14",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "https://dl.acm.org/loi/taco",
}

@Article{Zhao:2023:CMP,
  author =       "Yang Zhao and Qing Liu",
  title =        "Causal {ML}: {Python} package for causal inference
                 machine learning",
  journal =      j-SOFTWAREX,
  volume =       "21",
  number =       "??",
  pages =        "??--??",
  month =        feb,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2022.101294",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Thu Jun 1 09:21:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 ttp://www.math.utah.edu/pub/tex/bib/softwarex.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711022002126",
  acknowledgement = ack-nhfb,
  articleno =    "101294",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Zhao:2023:PFE,
  author =       "Yanli Zhao and Andrew Gu and Rohan Varma and Liang Luo
                 and Chien-Chin Huang and Min Xu and Less Wright and
                 Hamid Shojanazeri and Myle Ott and Sam Shleifer and
                 Alban Desmaison and Can Balioglu and Pritam Damania and
                 Bernard Nguyen and Geeta Chauhan and Yuchen Hao and
                 Ajit Mathews and Shen Li",
  title =        "{PyTorch FSDP}: Experiences on Scaling Fully Sharded
                 Data Parallel",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "16",
  number =       "12",
  pages =        "3848--3860",
  month =        aug,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3611540.3611569",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Mon Sep 18 10:22:20 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3611540.3611569",
  abstract =     "It is widely acknowledged that large models have the
                 potential to deliver superior performance across a
                 broad range of domains. Despite the remarkable
                 \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Misc{Anonymous:20xx:PP,
  author =       "Anonymous",
  title =        "The {Python} Papers",
  howpublished = "Web site",
  year =         "20xx",
  ISSN =         "1834-3147",
  bibdate =      "Thu Apr 16 09:01:00 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://pythonpapers.org/tpp.html",
  acknowledgement = ack-nhfb,
}

@Misc{Anonymous:20xx:PPA,
  author =       "Anonymous",
  title =        "{Python} Papers Anthology",
  howpublished = "Web site",
  year =         "20xx",
  bibdate =      "Thu Apr 16 09:01:00 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://pythonpapers.org/",
  acknowledgement = ack-nhfb,
}

@Misc{Anonymous:20xx:PPM,
  author =       "Anonymous",
  title =        "{Python} Papers Monograph",
  howpublished = "Web site",
  year =         "20xx",
  bibdate =      "Thu Apr 16 09:01:00 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://pythonpapers.org/tppm.html",
  acknowledgement = ack-nhfb,
}

@Misc{Anonymous:20xx:PPS,
  author =       "Anonymous",
  title =        "{Python} Papers Source Codes",
  howpublished = "Web site",
  year =         "20xx",
  ISSN =         "1836-621X",
  bibdate =      "Thu Apr 16 09:01:00 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://pythonpapers.org/tppsc.html",
  acknowledgement = ack-nhfb,
}

%%% ====================================================================
%%% Cross-referenced entries must come last; entries are sorted by year,
%%% and then by citation label, with `bibsort --byyear':
@Proceedings{EurOpen:1991:EUD,
  editor =       "{EurOpen}",
  booktitle =    "EurOpen. UNIX Distributed Open Systems in Perspective.
                 Proceedings of the Spring 1991 EurOpen Conference,
                 Troms{\o}, Norway, May 20--24, 1991",
  title =        "EurOpen. {UNIX} Distributed Open Systems in
                 Perspective. Proceedings of the Spring 1991 EurOpen
                 Conference, Troms{\o}, Norway, May 20--24, 1991",
  publisher =    pub-EUROPEN,
  address =      pub-EUROPEN:adr,
  pages =        "viii + 331",
  year =         "1991",
  ISBN =         "1-873611-00-5",
  ISBN-13 =      "978-1-873611-00-5",
  LCCN =         "????",
  bibdate =      "Fri May 22 11:28:47 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:1992:PAC,
  editor =       "{ACM}",
  booktitle =    "Proceedings of the 1992 ACM Conference on Lisp and
                 Functional Programming: papers presented at the
                 conference, San Francisco, California, June 22--24,
                 1992",
  title =        "Proceedings of the 1992 {ACM} Conference on Lisp and
                 Functional Programming: papers presented at the
                 conference, San Francisco, California, June 22--24,
                 1992",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 357",
  year =         "1992",
  ISBN =         "0-89791-483-X, 0-89791-481-3",
  ISBN-13 =      "978-0-89791-483-3, 978-0-89791-481-9",
  LCCN =         "QA76.73.L23A26 1992",
  bibdate =      "Tue Nov 10 07:55:44 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "Also published as {{\em LISP Pointers}}, vol. {\bf V},
                 no. 1, January-March, 1992. ACM order no. 552920.",
  acknowledgement = ack-nhfb,
  classification = "721.1; 723.1; 723.1.1",
  conftitle =    "Proceedings of SIGPLAN Conference on Lisp and
                 Functional Programming",
  corpsource =   "Carnegie Mellon Univ., Pittsburgh, PA, USA",
  keywords =     "Data abstraction; Digital storage; Dynamic program
                 parallelization; Fixed point iteration; Formal logic;
                 Functional programming; Garbage collection; Lambda
                 tagging; Lazy pattern matching; Linear logic; lisp
                 (programming language); Parallel processing systems;
                 Program compilers; Programming theory",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@Proceedings{Hunter:1995:PSB,
  editor =       "Lawrence Hunter and Teri E. Klein",
  booktitle =    "Pacific Symposium on Biocomputing '96: Hawaii, USA,
                 3--6 January, 1996",
  title =        "Pacific Symposium on Biocomputing '96: Hawaii, {USA},
                 3--6 January, 1996",
  publisher =    pub-WORLD-SCI,
  address =      pub-WORLD-SCI:adr,
  pages =        "xv + 757",
  year =         "1995",
  ISBN =         "981-02-2578-4",
  ISBN-13 =      "978-981-02-2578-0",
  LCCN =         "QH323.5.P33 1996",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.cgl.ucsf.edu/psb/psb96/",
  acknowledgement = ack-nhfb,
  conftitle =    "Proceedings of Biocomputing '96",
  corpsource =   "Lab. of Comput. Graphics, California Univ., San
                 Francisco, CA, USA",
  pubcountry =   "Singapore",
  treatment =    "P Practical",
}

@Proceedings{Cabrera:1996:PFI,
  editor =       "L.-F. Cabrera and N. Islam",
  booktitle =    "Proceedings of the Fifth International Workshop on
                 Object-Orientation in Operating Systems: October
                 27--28, 1996, Seattle, Washington",
  title =        "Proceedings of the Fifth International Workshop on
                 Object-Orientation in Operating Systems: October
                 27--28, 1996, Seattle, Washington",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "x + 171",
  year =         "1996",
  ISBN =         "0-8186-7693-0",
  ISBN-13 =      "978-0-8186-7693-2",
  LCCN =         "QA 76.76 O63 I59 1996",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "IEEE catalog number 96TB100089.",
  acknowledgement = ack-nhfb,
  conflocation = "Seattle, WA, USA; 27-28 Oct. 1996",
  conftitle =    "Proceedings of the Fifth International Workshop on
                 Object- Orientation in Operating Systems",
  corpsource =   "Corporation for Nat. Res. Initiatives, Reston, VA,
                 USA",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Oper. Syst.;
                 USENIX",
  treatment =    "P Practical",
}

@Proceedings{USENIX:1996:ATT,
  editor =       "{USENIX} Association",
  booktitle =    "4th Annual Tcl/Tk Workshop '96, July 10--13, 1996.
                 Monterey, CA",
  title =        "4th Annual Tcl/Tk Workshop '96, July 10--13, 1996.
                 Monterey, {CA}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "235",
  day =          "10--13",
  month =        jul,
  year =         "1996",
  ISBN =         "1-880446-78-2",
  ISBN-13 =      "978-1-880446-78-2",
  LCCN =         "QA76.73.T44 T44 1996",
  bibdate =      "Fri May 22 11:34:02 1998",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  location =     "Monterey, CA",
}

@Proceedings{USENIX:1996:PSUb,
  editor =       "{USENIX}",
  booktitle =    "Proceedings of the Second USENIX Conference on
                 Object-Oriented Technologies and Systems (COOTS), June
                 17--21, 1996, Toronto, Canada",
  title =        "Proceedings of the Second {USENIX} Conference on
                 Object-Oriented Technologies and Systems ({COOTS}),
                 June 17--21, 1996, Toronto, Canada",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "261",
  year =         "1996",
  ISBN =         "1-880446-77-4",
  ISBN-13 =      "978-1-880446-77-5",
  LCCN =         "QA76.64 .U85 1996",
  bibdate =      "Wed Oct 16 14:05:50 2002",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/coots96/",
  acknowledgement = ack-nhfb,
  location =     "Toronto, Canada",
}

@Proceedings{ACM:1997:PAS,
  editor =       "{ACM}",
  booktitle =    "Proceedings of the ACM Symposium on User Interface
                 Software and Technology. 10th Annual Symposium. UIST
                 '97: Banff, Alberta, Canada, 14--17 October 1997",
  title =        "Proceedings of the {ACM} Symposium on User Interface
                 Software and Technology. 10th Annual Symposium. {UIST}
                 '97: Banff, Alberta, Canada, 14--17 October 1997",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "x + 238",
  year =         "1997",
  ISBN =         "0-89791-881-9",
  ISBN-13 =      "978-0-89791-881-7",
  LCCN =         "????",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
  conftitle =    "Proceedings of Tenth Annual Symposium on User
                 Interface Software and Technology",
  corpsource =   "Dept. of Comput. Sci., Carnegie Mellon Univ.,
                 Pittsburgh, PA, USA",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@Proceedings{Anonymous:1997:PIP,
  editor =       "Anonymous",
  booktitle =    "Proceedings of the 6th International Python
                 Conference: October 14--17, 1997, San Jose,
                 California",
  title =        "Proceedings of the 6th International Python
                 Conference: October 14--17, 1997, San Jose,
                 California",
  publisher =    pub-CNRI,
  address =      pub-CNRI:adr,
  pages =        "????",
  year =         "1997",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Wed Oct 28 07:23:05 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{Anonymous:1997:PWM,
  editor =       "Anonymous",
  booktitle =    "Proceedings of the Workshop on Management of
                 Semi-Structured Data: {Tucson, Arizona, May 16, 1997}",
  title =        "Proceedings of the Workshop on Management of
                 Semi-Structured Data: {Tucson, Arizona, May 16, 1997}",
  publisher =    "????",
  address =      "????",
  pages =        "vi + 99",
  year =         "1997",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Fri May 22 11:37:17 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib;
                 melvyl.cdlib.org:210/CDL90",
  acknowledgement = ack-nhfb,
  subject =      "Data structures (Computer science); Congresses; World
                 Wide Web; Congresses",
}

@Proceedings{Heath:1997:PES,
  editor =       "Michael Heath and Virginia Torczon and Greg Astfalk
                 and Petter E. Bj{\o}rstad and Alan H. Karp and Charles
                 H. Koelbel and Vipin Kumar and Robert F. Lucas and
                 Layne T. Watson and David E. Womble",
  booktitle =    "Proceedings of the Eighth SIAM Conference on Parallel
                 Processing for Scientific Computing. Held in
                 Minneapolis, MN, March 14--17, 1997",
  title =        "Proceedings of the Eighth {SIAM} Conference on
                 Parallel Processing for Scientific Computing. Held in
                 Minneapolis, {MN}, March 14--17, 1997",
  publisher =    pub-SIAM,
  address =      pub-SIAM:adr,
  pages =        "????",
  year =         "1997",
  CODEN =        "PSSCFK",
  ISBN =         "0-89871-395-1",
  ISBN-13 =      "978-0-89871-395-4",
  LCCN =         "????",
  MRclass =      "65-06 (65Y05)",
  MRnumber =     "98h:65004",
  bibdate =      "Tue Oct 27 18:53:49 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "CD-ROM for Windows, Macintosh and UNIX; no paper form
                 published.",
  acknowledgement = ack-nhfb,
}

@Proceedings{IEEE:1997:PAP,
  editor =       "{IEEE}",
  booktitle =    "Proceedings. Asia Pacific Software Engineering
                 Conference and International Computer Science
                 Conference: December 2--5, 1997, Hong Kong",
  title =        "Proceedings. Asia Pacific Software Engineering
                 Conference and International Computer Science
                 Conference: December 2--5, 1997, Hong Kong",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xvi + 542",
  year =         "1997",
  ISBN =         "0-8186-8271-X",
  ISBN-13 =      "978-0-8186-8271-1",
  LCCN =         "QA76.758.A77 1997",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "IEEE catalog number 97TB100207. IEEE Computer Society
                 order number PR08271.",
  acknowledgement = ack-nhfb,
  conflocation = "Hong Kong; 2-5 Dec. 1997",
  conftitle =    "Proceedings of Joint 4th International Computer
                 Science Conference and 4th Asia Pacific Software
                 Engineering Conference",
  corpsource =   "Johannes Kepler Univ., Linz, Austria",
  sponsororg =   "Croucher Found.; UNU/IIST; IEEE Hong Kong Sect.
                 Comput. Chapter; ACM Hong Kong Chapter; Hong Kong
                 Comput. Soc",
  treatment =    "P Practical",
}

@Proceedings{IEEE:1997:PIP,
  editor =       "{IEEE}",
  booktitle =    "Proceedings. 11th International Parallel Processing
                 Symposium, April 1--5, 1997, Geneva, Switzerland",
  title =        "Proceedings. 11th International Parallel Processing
                 Symposium, April 1--5, 1997, Geneva, Switzerland",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xxi + 765",
  year =         "1997",
  ISBN =         "0-8186-7793-7",
  ISBN-13 =      "978-0-8186-7793-9",
  LCCN =         "QA76.58 .I56 1997",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "IEEE catalog number 97TB100107. IEEE Computer Society
                 Press order number PR07792",
  acknowledgement = ack-nhfb,
  conftitle =    "Proceedings 11th International Parallel Processing
                 Symposium",
  corpsource =   "Dept. of Comput. Sci., Utah Univ., Salt Lake City, UT,
                 USA",
  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",
}

@Proceedings{Ege:1998:PTO,
  editor =       "R. Ege and M. Singh and B. Meyer",
  booktitle =    "Proceedings. Technology of Object-Oriented Languages
                 and Systems, TOOLS-23",
  title =        "Proceedings. Technology of Object-Oriented Languages
                 and Systems, {TOOLS-23}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xi + 406",
  year =         "1998",
  ISBN =         "0-8186-8383-X",
  ISBN-13 =      "978-0-8186-8383-1",
  LCCN =         "????",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "IEEE catalog number 97TB100221.",
  acknowledgement = ack-nhfb,
  conflocation = "Santa Barbara, CA, USA; 28 July-1 Aug. 1997",
  conftitle =    "Proceedings of TOOLS USA 97. International Conference
                 on Technology of Object Oriented Systems and
                 Languages",
  corpsource =   "Lawrence Livermore Nat. Lab., CA, USA",
  sponsororg =   "Interactive Software Eng",
  treatment =    "P Practical 1 Steering object-oriented scientific
                 comput\ldots{} Yang, T.-Y.B. 1998 2 Alice: easy to use
                 interactive 3D graphics Pierce, J.S. 1997 3 A CGI
                 framework in Python Kuchling, A.M. 1998 4 XML
                 programming in Python McGrath, S. 1998 5 Template
                 processing classes for Python Howes, B. 1998 6 Design
                 by contract for Python Plosch, R. 1997 7 Design and
                 implementation of Web documents\ldots{} Hyeon Jong Kim
                 1997 8 Python: a GUI development tool Conway, M.J.
                 1995",
}

@Proceedings{USENIX:2000:PAL,
  editor =       "{USENIX}",
  booktitle =    "Proceedings of the 4th Annual Linux Showcase and
                 Conference, Atlanta, October 10--14, 2000, Atlanta,
                 Georgia, USA",
  title =        "Proceedings of the 4th Annual Linux Showcase and
                 Conference, Atlanta, October 10--14, 2000, Atlanta,
                 Georgia, {USA}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "394",
  year =         "2000",
  ISBN =         "1-880446-17-0",
  ISBN-13 =      "978-1-880446-17-1",
  LCCN =         "????",
  bibdate =      "Wed Oct 16 06:06:36 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/als2000/",
  acknowledgement = ack-nhfb,
}

@Proceedings{Langtangen:2003:ATC,
  editor =       "Hans Petter Langtangen and Aslak Tveito",
  booktitle =    "Advanced Topics in Computational Partial Differential
                 Equations: Numerical Methods and {Diffpack}
                 Programming",
  title =        "Advanced Topics in Computational Partial Differential
                 Equations: Numerical Methods and {Diffpack}
                 Programming",
  volume =       "33",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xix + 658",
  pages =        "xix + 658",
  year =         "2003",
  CODEN =        "LNCSA6",
  DOI =          "https://doi.org/10.1007/978-3-642-18237-2",
  ISBN =         "3-540-01438-1 (print), 3-642-18237-2 (e-book)",
  ISBN-13 =      "978-3-540-01438-6 (print), 978-3-642-18237-2
                 (e-book)",
  ISSN =         "1439-7358",
  ISSN-L =       "1439-7358",
  LCCN =         "QA377 .A45 2003",
  bibdate =      "Thu Dec 20 14:35:38 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       ser-LNCSE,
  URL =          "http://link.springer.com/book/10.1007/978-3-642-18237-2;
                 http://www.diffpack.com/Book;
                 http://www.springerlink.com/content/978-3-642-18237-2",
  acknowledgement = ack-nhfb,
  series-URL =   "http://link.springer.com/bookseries/3527",
  tableofcontents = "X. Cai, E. Acklam, H. P. Langtangen, A. Tveito:
                 Parallel Computing \\
                 X. Cai: Overlapping Domain Decomposition Methods \\
                 K. A. Mardal, G. W. Zumbusch, H. P. Langtangen:
                 Software Tools for Multigrid Methods \\
                 K. A. Mardal, H. P. Langtangen: Mixed Finite Elements
                 \\
                 K. A. Mardal, J. Sundnes, H. P. Langtangen, A. Tveito:
                 Systems of PDEs and Block Preconditioning \\
                 {\AA}degard, H. P. Langtangen, A. Tveito:
                 Object-Oriented Implementation of Fully Implicit
                 Methods for Systems of PDEs \\
                 H. P. Langtangen, H. Osnes: Stochastic Partial
                 Differential Equations \\
                 H. P. Langtangen and K A. Mardal: Using Diffpack from
                 Python Scripts \\
                 X. Cai, A. M. Bruaset, H. P. Langtangen, G. T. Lines,
                 K. Samuelsson, W. Shen, A. Tveito, G. Zumbusch:
                 Performance Modeling of PDE Solvers \\
                 J. Sundnes, G. T. Lines, P. Grottum, A. Tveito:
                 Numerical Methods and Software for Modeling the
                 Electrical Activity in the Human Heart \\
                 O. Skavhaug, B. F. Nielsen, A. Tveito: Mathematical
                 Models of Financial Derivatives \\
                 O. Skavhaug, B. F. Nielsen, A. Tveito: Numerical
                 Methods for Financial Derivatives \\
                 T. Thorvaldsen, H. P. Langtangen, H. Osnes: Finite
                 Element Modeling of Elastic Structures \\
                 K. M. Okstad, T. Kvamsdal: Simulation of Aluminum
                 Extrusion \\
                 A. Kjeldstad, H. P. Langtangen, J. Skogseid, K.
                 Bjorlykke: Simulation of Deformations, Fluid Flow and
                 Heat Transfer in Sedimentary Basins",
}

@Book{Bruaset:2006:NSP,
  editor =       "Are Magnus Bruaset and Aslak Tveito",
  booktitle =    "Numerical Solution of Partial Differential Equations
                 on Parallel Computers",
  title =        "Numerical Solution of Partial Differential Equations
                 on Parallel Computers",
  volume =       "51",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xii + 482",
  pages =        "xii + 482",
  year =         "2006",
  CODEN =        "LNCSA6",
  ISBN =         "3-540-29076-1 (print), 3-540-31619-1 (e-book)",
  ISBN-13 =      "978-3-540-29076-6 (print), 978-3-540-31619-0
                 (e-book)",
  ISSN =         "1439-7358",
  ISSN-L =       "1439-7358",
  LCCN =         "QA377 .N87 2006",
  bibdate =      "Thu Dec 20 12:25:17 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       ser-LNCSE,
  URL =          "http://link.springer.com/book/10.1007/3-540-31619-1",
  acknowledgement = ack-nhfb,
  series-URL =   "http://link.springer.com/bookseries/3527",
}

@Book{Logg:2012:ASD,
  editor =       "Anders Logg and Kent-Andre Mardal and Garth Wells",
  booktitle =    "Automated Solution of Differential Equations by the
                 Finite Element Method: The {FEniCS} Book",
  title =        "Automated Solution of Differential Equations by the
                 Finite Element Method: The {FEniCS} Book",
  volume =       "84",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xiii + 723",
  pages =        "xiii + 723",
  year =         "2012",
  CODEN =        "LNCSA6",
  DOI =          "https://doi.org/10.1007/978-3-642-23099-8",
  ISBN =         "3-642-23098-9 (print), 3-642-23099-7 (e-book)",
  ISBN-13 =      "978-3-642-23098-1 (print), 978-3-642-23099-8
                 (e-book)",
  ISSN =         "1439-7358",
  ISSN-L =       "1439-7358",
  LCCN =         "????",
  bibdate =      "Thu Dec 20 14:35:51 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncse.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  note =         "The software developed by the FEniCS Project is free
                 for all to use and modify (licensed under the GNU
                 (L)GPL), and so is this book.",
  series =       ser-LNCSE,
  URL =          "http://fenicsproject.org;
                 http://fenicsproject.org/book/;
                 http://link.springer.com/book/10.1007/978-3-642-23099-8;
                 http://www.springerlink.com/content/978-3-642-23099-8;
                 https://launchpad.net/fenics-book",
  abstract =     "This book is written by researchers and developers
                 behind the FEniCS Project and explores an advanced,
                 expressive approach to the development of mathematical
                 software. The presentation spans mathematical
                 background, software design and the use of FEniCS in
                 applications. Theoretical aspects are complemented with
                 computer code which is available as free/open source
                 software. The book begins with a tutorial for readers
                 who are new to the topic. Following the tutorial,
                 chapters in Part I address fundamental aspects of the
                 approach to automating the creation of finite element
                 solvers. Chapters in Part II address the design and
                 implementation of the FEnicS software. Chapters in Part
                 III present the application of FEniCS to a wide range
                 of applications, including fluid flow, solid mechanics,
                 electromagnetics and geophysics.",
  acknowledgement = ack-nhfb,
  series-URL =   "http://link.springer.com/bookseries/3527",
  subject =      "Mathematics; Geography; Electronic data processing;
                 Computer science; Computer software; Engineering
                 mathematics; Mathematical Software; Theoretical,
                 Mathematical and Computational Physics; Numeric
                 Computing; Appl.Mathematics/Computational Methods of
                 Engineering; Computational Science and Engineering;
                 Earth Sciences, general",
  tableofcontents = "1 A FEniCS tutorial / 1 \\
                 I Methodology / 75 \\
                 2 The finite element method / 77 \\
                 3 Common and unusual finite elements / 95 \\
                 4 Constructing general reference finite elements / 121
                 \\
                 5 Finite element variational forms / 133 \\
                 6 Finite element assembly / 141 \\
                 7 Quadrature representation of finite element
                 variational forms / 147 \\
                 8 Tensor representation of finite element variational
                 forms / 159 \\
                 9 Discrete optimization of finite element matrix
                 evaluation / 163 \\
                 II Implementation / 171 \\
                 10 DOLFIN: a C++/Python finite element library / 173
                 \\
                 11 FFC: the FEniCS form compiler / 227 \\
                 12 FErari: an optimizing compiler for variational forms
                 / 239 \\
                 13 FIAT: numerical construction of finite element basis
                 functions / 247 \\
                 14 Instant: just-in-time compilation of C/C++ in Python
                 / 257 \\
                 15 SyFi and SFC: symbolic finite elements and form
                 compilation / 273 \\
                 16 UFC: a finite element code generation interface /
                 283 \\
                 17 UFL: a finite element form language / 303 \\
                 18 Unicorn: a unified continuum mechanics solver / 339
                 \\
                 19 Lessons learned in mixed language programming / 363
                 \\
                 III Applications / 383 \\
                 20 Finite elements for incompressible fluids / 385 \\
                 21 A comparison of finite element schemes for the
                 incompressible Navier--Stokes equations / 399 \\
                 22 Simulation of transitional flows / 421 \\
                 23 Computational hemodynamics / 441 \\
                 24 Cerebrospinal fluid flow / 455 \\
                 25 Improved Boussinesq equations for surface water
                 waves / 471 \\
                 26 Applications in solid mechanics / 505 \\
                 27 A computational framework for nonlinear elasticity /
                 525 \\
                 28 Turbulent flow and fluid structure interaction / 543
                 \\
                 29 An adaptive finite element solver for fluid
                 structure interaction problems / 553 \\
                 30 Modeling evolving discontinuities / 571 \\
                 31 Dynamic simulations of convection in the Earth s
                 mantle / 585 \\
                 32 Automatic calibration of depositional models / 601
                 \\
                 33 A coupled stochastic and deterministic model of
                 Ca${2+}$ dynamics in the dyadic cleft / 611 \\
                 34 Electromagnetic waveguide analysis / 629 \\
                 35 Block preconditioning of systems of PDEs / 643 \\
                 36 Automated testing of saddle point stability
                 conditions / 657 \\
                 List of authors / 673 \\
                 GNU Free Documentation License / 681 \\
                 References / 689 \\
                 Index / 717",
}

@Book{Balbaert:2015:GSJ,
  editor =       "Ivo Balbaert and Kevin Colaco and Neeshma Ramakrishnan
                 and Rashmi Sawant",
  title =        "Getting started with {Julia} programming: enter the
                 exciting world of {Julia}, a high-performance language
                 for technical computing",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "214",
  year =         "2015",
  ISBN =         "1-78328-479-X, 1-78328-480-3 (e-book)",
  ISBN-13 =      "978-1-78328-479-5, 978-1-78328-480-1 (e-book)",
  LCCN =         "QA297 .B353 2015eb",
  bibdate =      "Thu Apr 8 10:48:12 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/julia.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  series =       "Community Experience Distilled",
  URL =          "http://public.ebookcentral.proquest.com/choice/publicfullrecord.aspx?p=1973847;
                 http://site.ebrary.com/id/11025933;
                 http://www.vlebooks.com/vleweb/product/openreader?id=none\%26isbn=9781783284801",
  abstract =     "This book is for you if you are a data scientist or
                 working on any technical or scientific computation
                 projects. The book assumes you have a basic working
                 knowledge of high-level dynamic languages such as
                 MATLAB, R, Python, or Ruby.",
  acknowledgement = ack-nhfb,
  subject =      "Numerical analysis; Computer programs; Mathematical
                 analysis; Reference; Questions and Answers; Computer
                 programs.",
  tableofcontents = "Preface \\
                 The Rationale for Julia \\
                 1: Installing the Julia Platform \\
                 Installing Julia \\
                 Windows version \\
                 usable from Windows XP SP2 onwards \\
                 Ubuntu version \\
                 OS X \\
                 Building from source \\
                 Working with Julia's shell \\
                 Startup options and Julia scripts \\
                 Packages \\
                 Adding a new package \\
                 Installing and working with Julia Studio \\
                 Installing and working with IJulia \\
                 Installing Sublime-IJulia \\
                 Installing Juno \\
                 Other editors and IDEs \\
                 How Julia works \\
                 Summary \\
                 2: Variables, Types, and Operations \\
                 Variables, naming conventions, and comments \\
                 Types \\
                 Integers \\
                 Floating point numbers \\
                 Elementary mathematical functions and operations \\
                 Rational and complex numbers \\
                 Characters \\
                 Strings \\
                 Formatting numbers and strings \\
                 Regular expressions \\
                 Ranges and arrays \\
                 Other ways to create arrays \\
                 Some common functions for arrays \\
                 How to convert an array of chars to a string \\
                 Dates and times \\
                 Scope and constants \\
                 Summary \\
                 3: Functions \\
                 Defining functions \\
                 Optional and keyword arguments \\
                 Anonymous functions \\
                 First-class functions and closures \\
                 Recursive functions \\
                 Map, filter, and list comprehensions \\
                 Generic functions and multiple dispatch \\
                 Summary \\
                 4: Control Flow \\
                 Conditional evaluation \\
                 Repeated evaluation \\
                 The for loop \\
                 The while loop \\
                 The break statement \\
                 The continue statement \\
                 Exception handling \\
                 Scope revisited \\
                 Tasks \\
                 Summary \\
                 5: Collection Types \\
                 Matrices \\
                 Tuples \\
                 Dictionaries \\
                 Keys and values \\
                 looping \\
                 Sets \\
                 Making a set of tuples \\
                 Example project \\
                 word frequency \\
                 Summary \\
                 6: More on Types, Methods, and Modules \\
                 Type annotations and conversions \\
                 Type conversions and promotions \\
                 The type hierarchy \\
                 subtypes and supertypes \\
                 Concrete and abstract types \\
                 User-defined and composite types \\
                 When are two values or objects equal or identical? \\
                 Multiple dispatch example \\
                 Types and collections \\
                 inner constructors \\
                 Type unions \\
                 Parametric types and methods \\
                 Standard modules and paths \\
                 Summary \\
                 7: Metaprogramming in Julia \\
                 Expressions and symbols \\
                 Eval and interpolation \\
                 Defining macros \\
                 Built-in macros \\
                 Testing \\
                 Debugging \\
                 Benchmarking \\
                 Starting a task \\
                 Reflection capabilities \\
                 Summary \\
                 8: I/O, Networking, and Parallel Computing \\
                 Basic input and output \\
                 Working with files \\
                 Reading and writing CSV files \\
                 Using DataFrames \\
                 Other file formats \\
                 Working with TCP sockets and servers \\
                 Interacting with databases \\
                 Parallel operations and computing \\
                 Creating processes \\
                 Using low-level communications \\
                 Parallel loops and maps \\
                 Distributed arrays \\
                 Summary \\
                 9: Running External Programs \\
                 Running shell commands \\
                 Interpolation \\
                 Pipelining \\
                 Calling C and FORTRAN \\
                 Calling Python \\
                 Performance tips \\
                 Tools to use \\
                 Summary \\
                 10: The Standard Library and Packages \\
                 Digging deeper into the standard library \\
                 Julia's package manager",
}

@Proceedings{Cornea:2020:ISC,
  editor =       "Marius Cornea and Weiqiang Liu and Arnaud Tisserand",
  booktitle =    "{2020 27th IEEE Symposium on Computer Arithmetic:
                 ARITH 2020: proceedings: Portland, Oregon, USA, 7--10
                 June 2020}",
  title =        "{2020 27th IEEE Symposium on Computer Arithmetic:
                 ARITH 2020: proceedings: Portland, Oregon, USA, 7--10
                 June 2020}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  year =         "2020",
  DOI =          "https://doi.org/10.1109/ARITH48897.2020",
  ISBN =         "1-72817-120-2, 1-72817-121-0",
  ISBN-13 =      "978-1-72817-120-3, 978-1-72817-121-0",
  LCCN =         "????",
  bibdate =      "Wed Jul 7 06:24:52 2021",
  bibdate =      "Wed Jul 7 06:23:45 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/benfords-law.bib;
                 https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  URL =          "https://ieeexplore.ieee.org/servlet/opac?punumber=9146973",
  acknowledgement = ack-nhfb,
}

@Proceedings{IEEE:2020:SPI,
  editor =       "{IEEE}",
  booktitle =    "{SC'20: Proceedings of the International Conference
                 for High Performance Computing, Networking, Storage and
                 Analysis (Atlanta, Georgia, November 9--19, 2020)}",
  title =        "{SC'20: Proceedings of the International Conference
                 for High Performance Computing, Networking, Storage and
                 Analysis (Atlanta, Georgia, November 9--19, 2020)}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "????",
  year =         "2020",
  DOI =          "https://doi.org/10.1109/SC41405.2020",
  ISBN =         "1-72819-998-0, 1-72819-999-9 (printondemand)",
  ISBN-13 =      "978-1-72819-998-6, 978-1-72819-999-3 (printondemand)",
  LCCN =         "QA76.88",
  bibdate =      "Mon Sep 11 06:40:11 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib",
  acknowledgement = ack-nhfb,
}