%%% -*-BibTeX-*- %%% ==================================================================== %%% BibTeX-file{ %%% author = "Nelson H. F. Beebe", %%% version = "2.213", %%% date = "21 April 2025", %%% time = "08:58:10 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", %%% URL = "https://www.math.utah.edu/~beebe", %%% checksum = "35614 62795 273561 2810306", %%% 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.213, the year coverage looked %%% like this: %%% %%% 1991 ( 3) 2003 ( 17) 2015 ( 83) %%% 1992 ( 3) 2004 ( 9) 2016 ( 43) %%% 1993 ( 0) 2005 ( 12) 2017 ( 64) %%% 1994 ( 0) 2006 ( 32) 2018 ( 97) %%% 1995 ( 10) 2007 ( 41) 2019 ( 55) %%% 1996 ( 16) 2008 ( 42) 2020 ( 75) %%% 1997 ( 33) 2009 ( 48) 2021 ( 99) %%% 1998 ( 27) 2010 ( 20) 2022 ( 103) %%% 1999 ( 9) 2011 ( 16) 2023 ( 135) %%% 2000 ( 23) 2012 ( 33) 2024 ( 100) %%% 2001 ( 20) 2013 ( 32) 2025 ( 9) %%% 2002 ( 23) 2014 ( 77) %%% 20xx ( 4) %%% %%% Article: 1037 %%% Book: 302 %%% InCollection: 1 %%% InProceedings: 30 %%% MastersThesis: 2 %%% Misc: 9 %%% Proceedings: 17 %%% TechReport: 14 %%% Unpublished: 1 %%% %%% Total entries: 1413 %%% %%% 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, 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-COMPUT-MATH = "Advances in Computational Mathematics"} @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-AMER-STAT = "The American Statistician"} @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-COMMUN-STAT-SIMUL-COMPUT = "Communications in Statistics: Simulation and Computation"} @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-COMP-SURV = "ACM Computing Surveys"} @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-SECUR = "Computers \& Security"} @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-ECOL-MODELL = "Ecological Modelling"} @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-HARDWAREX = "HardwareX"} @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-SEC-PRIV = "IEEE Security \& Privacy"} @String{j-IEEE-SOFTWARE = "IEEE Software"} @String{j-IEEE-SPECTRUM = "IEEE Spectrum"} @String{j-IEEE-TRANS-BIG-DATA = "IEEE Transactions on Big Data"} @String{j-IEEE-TRANS-COMPUT = "IEEE Transactions on Computers"} @String{j-IEEE-TRANS-PAR-DIST-SYS = "IEEE Transactions on Parallel and Distributed Systems"} @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-R-STAT-SOC-SER-A-STAT-SOC = "Journal of the Royal Statistical Society. Series A (Statistics in Society)"} @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-J-SYST-SOFTW = "The Journal of Systems and Software"} @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-PACMHCI = "Proceedings of the ACM on Human-Computer Interaction (PACMHCI)"} @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-TALG = "ACM Transactions on Algorithms"} @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 ", } @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/", } @Misc{Johansson:2014:PMP, author = "Fredrik Johansson and {The mpmath Development Team}", title = "\pkg{mpmath}: a {Python} library for arbitrary-precision floating-point arithmetic", howpublished = "Web site", year = "2014", bibdate = "Wed Apr 24 13:50:47 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://mpmath.org/", acknowledgement = ack-nhfb, } @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", } @Misc{Horsen:2015:G, author = "C. V. Horsen", title = "{GMPY}", howpublished = "Web site", year = "2015", bibdate = "Wed Apr 24 13:48:15 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://pypi.python.org/pypi/gmpy2", abstract = "gmpy2 is an optimized, C-coded Python extension module that supports fast multiple-precision arithmetic. gmpy2 is based on the original gmpy module. gmpy2 adds support for correctly rounded multiple-precision real arithmetic (using the MPFR library) and complex arithmetic (using the MPC library).", acknowledgement = ack-nhfb, } @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)", ISSN-L = "0002-9505", 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{Meurer:2017:SSC, author = "Aaron Meurer and Christopher P. Smith and Mateusz Paprocki and Ond{\v{r}}ej {\v{C}}ert{\'\i}k and Sergey B. Kirpichev and Matthew Rocklin and Amit Kumar and Sergiu Ivanov and Jason K. Moore and Sartaj Singh and Thilina Rathnayake and Sean Vig and Brian E. Granger and Richard P. Muller and Francesco Bonazzi and Harsh Gupta and Shivam Vats and Fredrik Johansson and Fabian Pedregosa and Matthew J. Curry and Andy R. Terrel and {\v{S}}t{\v{e}}p{\'a}n Rou{\v{c}}ka and Ashutosh Saboo and Isuru Fernando and Sumith Kulal and Robert Cimrman and Anthony Scopatz", title = "{SymPy}: symbolic computing in {Python}", journal = "PeerJ Computer Science", volume = "3", pages = "e103:1--e103:27", month = jan, year = "2017", DOI = "https://doi.org/10.7717/peerj-cs.103", ISSN = "2376-5992", bibdate = "Tue Apr 23 06:44:08 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, journal-URL = "https://peerj.com/cs/", } @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 = 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{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{Cimrman:2019:MFE, author = "Robert Cimrman and Vladim{\'\i}r Lukes and Eduard Rohan", title = "Multiscale finite element calculations in {Python} using {SfePy}", journal = j-ADV-COMPUT-MATH, volume = "45", number = "4", pages = "1897--1921", month = aug, year = "2019", CODEN = "ACMHEX", DOI = "https://doi.org/10.1007/s10444-019-09666-0", ISSN = "1019-7168 (print), 1572-9044 (electronic)", ISSN-L = "1019-7168", bibdate = "Thu May 30 08:11:48 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/advcomputmath.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://link.springer.com/article/10.1007/s10444-019-09666-0", acknowledgement = ack-nhfb, ajournal = "Adv. Comput. Math.", fjournal = "Advances in Computational Mathematics", journal-URL = "http://link.springer.com/journal/10444", } @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 = "http://www.tandf.co.uk/journals/titles/00401706.html; https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/technometrics2020.bib", 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", } @InProceedings{Pelletier:2021:GJP, author = "Michel Pelletier and Will Kimmerer and Timothy A. Davis and Timothy G. Mattson", editor = "{IEEE}", booktitle = "{2021 IEEE High Performance Extreme Computing Conference (HPEC)}", title = "The {GraphBLAS} in {Julia} and {Python}: the {PageRank} and Triangle Centralities", publisher = pub-IEEE, address = pub-IEEE:adr, pages = "1--7", year = "2021", DOI = "https://doi.org/10.1109/HPEC49654.2021.9622789", bibdate = "Mon Dec 18 08:06:55 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/julia.bib; https://www.math.utah.edu/pub/tex/bib/pagerank.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, } @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-000-29080-8 (e-book), 1-000-29084-0 (Mobipocket e-book), 1-000-29088-3 (e-book), 1-003-09747-2 (e-book)", ISBN-13 = "978-1-000-29088-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{Ascension:2022:BPM, author = "Alex M. Ascensi{\'o}n and Marcos J. Ara{\'u}zo-Bravo", title = "{BigMPI4py}: {Python} Module for Parallelization of Big Data Objects Discloses Germ Layer Specific {DNA} Demethylation Motifs", journal = j-TCBB, volume = "19", number = "3", pages = "1507--1522", month = may, year = "2022", CODEN = "ITCBCY", DOI = "https://doi.org/10.1109/TCBB.2020.3043979", ISSN = "1545-5963 (print), 1557-9964 (electronic)", ISSN-L = "1545-5963", bibdate = "Wed Oct 18 13:00:56 MDT 2023", 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/10.1109/TCBB.2020.3043979", abstract = "Parallelization in Python integrates Message Passing Interface via the mpi4py module. Since mpi4py does not support parallelization of objects greater than $ 2^{31} $ ytes, we developed BigMPI4py, a Python module that wraps mpi4py, supporting object sizes beyond this boundary. BigMPI4py automatically determines the optimal object distribution strategy, and uses vectorized methods, achieving higher parallelization efficiency. BigMPI4py facilitates the implementation of Python for Big Data applications in multicore workstations and High Performance Computer systems. We use BigMPI4py to speed-up the search for germ line specific de novo DNA methylated/unmethylated motifs from the 59 whole genome bisulfite sequencing DNA methylation samples from 27 human tissues of the ENCODE project. We developed a parallel implementation of the Kruskall-Wallis test to find CpGs with differential methylation across germ layers. The parallel evaluation of the significance of 55 million CpG achieved a 22x speedup with 25 cores allowing us an efficient identification of a set of hypermethylated genes in ectoderm and mesoderm-related tissues, and another set in endoderm-related tissues and finally, the discovery of germ layer specific DNA demethylation motifs. Our results point out that DNA methylation signal provide a higher degree of information for the demethylated state than for the methylated state. BigMPI4py is available at https://https://www.arauzolab.org/tools/bigmpi4py and https://gitlab.com/alexmascension/bigmpi4py and the Jupyter Notebook with WGBS analysis at https://gitlab.com/alexmascension/wgbs-analysis", acknowledgement = ack-nhfb, ajournal = "IEEE/ACM Trans. Comput. Biol. Bioinform.", fjournal = "IEEE/ACM Transactions on Computational Biology and Bioinformatics", journal-URL = "https://dl.acm.org/loi/tcbb", } @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{Gharat:2022:DNE, author = "Jatin Gharat and Bipin Kumar and Leena Ragha and Amit Barve and Shaik Mohammad Jeelani and John Clyne", title = "Development of {NCL} equivalent serial and parallel {Python} routines for meteorological data analysis", journal = j-IJHPCA, volume = "36", number = "3", pages = "337--355", day = "1", month = may, year = "2022", CODEN = "IHPCFL", DOI = "https://doi.org/10.1177/10943420221077110", ISSN = "1094-3420 (print), 1741-2846 (electronic)", ISSN-L = "1094-3420", bibdate = "Thu May 30 07:31:45 MDT 2024", bibsource = "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/abs/10.1177/10943420221077110", 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", ORCID-numbers = "https://orcid.org/0000-0001-7047-551X", } @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 = "http://www.tandfonline.com/toc/uasa20/117/539; 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", 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{Lazic:2022:BRB, author = "Stanley E. Lazic", title = "Book Review: {{\booktitle{{Bayesian} Modeling and Computation in Python Learning}}}", journal = j-J-R-STAT-SOC-SER-A-STAT-SOC, volume = "185", number = "S2", pages = "S764--S765", month = dec, year = "2022", CODEN = "JSSAEF", DOI = "https://doi.org/10.1111/rssa.12852", ISSN = "0964-1998 (print), 1467-985X (electronic)", ISSN-L = "0964-1998", bibdate = "Wed Oct 11 16:23:30 MDT 2023", bibsource = "https://academic.oup.com/jrsssa/; https://www.math.utah.edu/pub/tex/bib/jrss-a-2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://academic.oup.com/jrsssa/article/185/Supplement_2/S764/7069537", acknowledgement = ack-nhfb, fjournal = "Journal of the Royal Statistical Society. Series A (Statistics in Society)", journal-URL = "https://academic.oup.com/jrsssa/; http://www.jstor.org/journals/09641998.html", } @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 = "http://www.tandf.co.uk/journals/titles/00401706.html; 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", 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", } @InProceedings{Mamidi:2022:PAG, author = "Nischay Ram Mamidi and Dhruv Saxena and Kumar Prasun and Anil Nemili and Bharatkumar Sharma and S. M. Deshpande", editor = "{IEEE}", booktitle = "{2022 IEEE 29th International Conference on High Performance Computing, Data, and Analytics (HiPC)}", title = "Performance analysis of {GPU} accelerated meshfree {$q$-LSKUM} solvers in {Fortran}, {C}, {Python}, and {Julia}", publisher = pub-IEEE, address = pub-IEEE:adr, pages = "156--165", year = "2022", DOI = "https://doi.org/10.1109/HiPC56025.2022.00031", bibdate = "Mon Dec 18 08:06:55 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/fortran3.bib; https://www.math.utah.edu/pub/tex/bib/julia.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, } @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{Morales:2022:PRO, author = "F{\'e}lix Morales and Luis Bernal and Gustavo Pereira and Sandra P{\'e}rez-Buitrago and Michael Kammer and D. H. Stalder", title = "{PytuTester}: {RaspberryPi} open-source ventilator tester", journal = j-HARDWAREX, volume = "12", pages = "??--??", month = oct, year = "2022", CODEN = "????", DOI = "https://doi.org/10.1016/j.ohx.2022.e00334", ISSN = "2468-0672", bibdate = "Mon Dec 4 14:15:04 MST 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/hardwarex.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S2468067222000797", acknowledgement = ack-nhfb, articleno = "e00334", fjournal = "HardwareX", } @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{Ariza:2023:RLF, author = "Jonathan {\'A}lvarez Ariza and Christian Nomesqui Galvis", title = "{RaspyControl Lab}: a fully open-source and real-time remote laboratory for education in automatic control systems using {Raspberry Pi} and {Python}", journal = j-HARDWAREX, volume = "13", pages = "??--??", month = mar, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.ohx.2023.e00396", ISSN = "2468-0672", bibdate = "Mon Dec 4 14:15:06 MST 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/hardwarex.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S2468067223000032", acknowledgement = ack-nhfb, articleno = "e00396", fjournal = "HardwareX", } @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{Baczkiewicz:2023:VCP, author = "Aleksandra Baczkiewicz and Jaros{\l}aw Watr{\'o}bski and Wojciech Sa{\l}abun", title = "Version [1.1] --- [\pkg{Crispyn} --- a {Python} library for determining criteria significance with objective weighting methods]", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101541", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002376", acknowledgement = ack-nhfb, articleno = "101541", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Caliskan:2023:STC, author = "Murat {\c{C}}aliskan and Berk Anbaroglu", title = "{Space Time Cube} analytics in {QGIS} and {Python} for hot spot detection", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101498", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023001942", acknowledgement = ack-nhfb, articleno = "101498", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Caron:2023:PPM, author = "Eddy Caron and Jean-Fran{\c{c}}ois Witz and Christophe Cuvier and Arnaud Beaurain and Vincent Magnier and Ahmed {El Bartali}", title = "\pkg{PYCASO}: {Python} module for calibration of cameras by {Soloff's} method", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101440", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S235271102300136X", acknowledgement = ack-nhfb, articleno = "101440", 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{Chaudhary:2023:PPP, author = "Gaurav Chaudhary and Hicham Johra and Laurent Georges and Bj{\o}rn Austb{\o}", title = "\pkg{pymodconn}: a {Python} package for developing modular sequence-to-sequence control-oriented deep neural networks", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101599", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002959", acknowledgement = ack-nhfb, articleno = "101599", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Daole:2023:OXF, author = "Mattia Daole and Alessio Schiavo and Jos{\'e} Luis Corcuera B{\'a}rcena and Pietro Ducange and Francesco Marcelloni and Alessandro Renda", title = "\pkg{OpenFL-XAI}: {Federated} learning of explainable artificial intelligence models in {Python}", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101505", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023002017", acknowledgement = ack-nhfb, articleno = "101505", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Elia:2023:PPL, author = "Donatello Elia and Cosimo Palazzo and Sandro Fiore and Alessandro D'Anca and Andrea Mariello and Giovanni Aloisio", title = "\pkg{PyOphidia}: a {Python} library for High Performance Data Analytics at scale", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101538", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002340", acknowledgement = ack-nhfb, articleno = "101538", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Elsner:2023:TPP, author = "Jean Elsner", title = "Taming the {Panda} with {Python}: a powerful duo for seamless robotics programming and integration", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101532", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002285", acknowledgement = ack-nhfb, articleno = "101532", 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{Ferreira-Saraiva:2023:PPP, author = "Bruno D. Ferreira-Saraiva and Jo{\~a}o P. Matos-Carvalho and Nuno Fachada and Manuel Pita", title = "\pkg{ParShift}: a {Python} package to study order and differentiation in group conversations", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101554", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002509", acknowledgement = ack-nhfb, articleno = "101554", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Gharari:2023:EPP, author = "Shervan Gharari and Kasra Keshavarz and Wouter J. M. Knoben and Gouqiang Tang and Martyn P. Clark", title = "\pkg{EASYMORE}: a {Python} package to streamline the remapping of variables for {Earth System} models", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101547", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002431", acknowledgement = ack-nhfb, articleno = "101547", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @InProceedings{Godoy:2023:EPP, author = "William F. Godoy and Pedro Valero-Lara and T. Elise Dettling and Christian Trefftz and Ian Jorquera and Thomas Sheehy and Ross G. Miller and Marc Gonzalez-Tallada and Jeffrey S. Vetter and Valentin Churavy", editor = "{IEEE}", booktitle = "{2023 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)}", title = "Evaluating performance and portability of high-level programming models: {Julia}, {Python\slash Numba}, and {Kokkos} on exascale nodes", publisher = pub-IEEE, address = pub-IEEE:adr, pages = "373--382", year = "2023", DOI = "https://doi.org/10.1109/IPDPSW59300.2023.00068", bibdate = "Mon Dec 18 08:06:55 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/julia.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, } @Article{Goldstein:2023:RRG, author = "Harrison Goldstein and Samantha Frohlich and Meng Wang and Benjamin C. Pierce", title = "Reflecting on Random Generation", journal = j-PACMPL, volume = "7", number = "ICFP", pages = "200:1--200:??", month = aug, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1145/3607842", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Fri May 10 10:23:31 MDT 2024", 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/3607842", abstract = "Expert users of property-based testing often labor to craft random generators that encode detailed knowledge about what it means for a test input to be valid and interesting. Fortunately, the fruits of this labor can also be put to other uses. In the bidirectional programming literature, for example, generators have been repurposed as validity checkers, while Python's Hypothesis library uses the same structures for shrinking and mutating test inputs.\par To unify and generalize these uses and many others, we propose reflective generators, a new foundation for random data generators that can ``reflect'' on an input value to calculate the random choices that could have been made to produce it. Reflective generators combine ideas from two existing abstractions: free generators and partial monadic profunctors. They can be used to implement and enhance the aforementioned shrinking and mutation algorithms, generalizing them to work for any values that can be produced by the generator, not just ones for which a trace of the generator's execution is available. Beyond shrinking and mutation, reflective generators generalize a published algorithm for example-based generation, and they can also be used as checkers, partial value completers, and other kinds of test data producers.", acknowledgement = ack-nhfb, ajournal = "Proc. ACM Program. Lang.", articleno = "200", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Gomes:2023:PPT, author = "Eduardo Gomes and Lucas Pereira and Augusto Esteves and Hugo Morais", title = "\pkg{PyECOM}: a {Python} tool for analyzing and simulating {Energy Communities}", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101580", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002765", acknowledgement = ack-nhfb, articleno = "101580", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Gonzalez-Cely:2023:RPB, author = "Aura Ximena Gonzalez-Cely and Cristian Felipe Blanco-Diaz and Camilo A. R. Diaz and Teodiano Freire Bastos-Filho", title = "\pkg{Roborueda}: {Python}-based {GUI} to control a wheelchair and monitor user posture", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101555", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002510", acknowledgement = ack-nhfb, articleno = "101555", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Hacihabiboglu:2023:SPP, author = "H{\"u}seyin Hacihabiboglu", title = "\pkg{sphstat}: a {Python} package for inferential statistics on vectorial data on the unit sphere", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101514", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002108", acknowledgement = ack-nhfb, articleno = "101514", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Hahn:2023:BRB, author = "P. Richard Hahn", title = "Book Review: {{\booktitle{{Bayesian} Modeling and Computation in Python}}}", journal = j-AMER-STAT, volume = "77", number = "4", pages = "450--451", year = "2023", CODEN = "ASTAAJ", DOI = "https://doi.org/10.1080/00031305.2023.2261818", ISSN = "0003-1305 (print), 1537-2731 (electronic)", ISSN-L = "0003-1305", bibdate = "Wed Aug 14 09:33:35 MDT 2024", bibsource = "http://www.tandfonline.com/toc/utas20/77/4; https://www.math.utah.edu/pub/tex/bib/amstat2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.tandfonline.com/doi/full/10.1080/00031305.2023.2261818", acknowledgement = ack-nhfb, fjournal = "The American Statistician", journal-URL = "http://amstat.tandfonline.com/loi/utas20", } @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{Himpe:2023:EEG, author = "Christian Himpe", title = "\pkg{emgr} --- {EMpirical GRamian} Framework Version 5.99", journal = j-TOMS, volume = "49", number = "3", pages = "31:1--31:??", month = sep, year = "2023", CODEN = "ACMSCU", DOI = "https://doi.org/10.1145/3609860", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Fri Sep 29 08:05:09 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/toms.bib", URL = "https://dl.acm.org/doi/10.1145/3609860", abstract = "Version 5.99 of the empirical Gramian framework --- emgr --- completes a development cycle which focused on parametric model order reduction of gas network models while preserving compatibility to the previous development for the application of combined state and parameter reduction for neuroscience network models. Second, new features concerning empirical Gramian types, perturbation design, and trajectory post-processing, as well as a Python version in addition to the default MATLAB / Octave implementation, have been added. This work summarizes these changes, particularly since emgr version 5.4, see Himpe, 2018 [Algorithms 11(7): 91], and gives recent as well as future applications, such as parameter identification in systems biology, based on the current feature set.", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Math. Softw.", articleno = "31", fjournal = "ACM Transactions on Mathematical Software (TOMS)", journal-URL = "https://dl.acm.org/loi/toms", } @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{Ito:2023:SPF, author = "Yuma Ito and Masanori Hirose and Makio Tokunaga", title = "\pkg{Slitflow}: a {Python} framework for single-molecule dynamics and localization analysis", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101462", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023001589", acknowledgement = ack-nhfb, articleno = "101462", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Jalowiecki:2023:PPL, author = "Konrad Ja{\l}owiecki and Paulina Lewandowska and Lukasz Pawela", title = "\pkg{PyQBench}: a {Python} library for benchmarking gate-based quantum computers", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101558", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002546", acknowledgement = ack-nhfb, articleno = "101558", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Khatami:2023:CCP, author = "Siamak Khatami and Christopher Frantz", title = "\pkg{Copatrec}: a correlation pattern recognizer {Python} package for nonlinear relations", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101456", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023001528", acknowledgement = ack-nhfb, articleno = "101456", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Khuat:2023:HBP, author = "Thanh Tung Khuat and Bogdan Gabrys", title = "\pkg{hyperbox-brain}: a {Python} toolbox for hyperbox-based machine learning algorithms", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101425", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023001218", acknowledgement = ack-nhfb, articleno = "101425", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Koutsellis:2023:CWB, author = "Themistoklis Koutsellis and Georgios Xexakis and Konstantinos Koasidis and Natasha Frilingou and Anastasios Karamaneas and Alexandros Nikas and Haris Doukas", title = "In-Cognitive: a web-based {Python} application for fuzzy cognitive map design, simulation, and uncertainty analysis based on the {Monte Carlo} method", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101513", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023002091", acknowledgement = ack-nhfb, articleno = "101513", 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{LeBrigant:2023:PIG, author = "Alice {Le Brigant} and Jules Deschamps and Antoine Collas and Nina Miolane", title = "Parametric Information Geometry with the Package \pkg{Geomstats}", journal = j-TOMS, volume = "49", number = "4", pages = "34:1--34:??", month = dec, year = "2023", CODEN = "ACMSCU", DOI = "https://doi.org/10.1145/3627538", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Sat Dec 23 05:40:24 MST 2023", 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/3627538", abstract = "We introduce the information geometry module of the Python package Geomstats. The module first implements Fisher--Rao Riemannian manifolds of widely used parametric families of probability distributions, such as normal, gamma, beta, Dirichlet distributions, and more. The module further gives the Fisher Rao Riemannian geometry of any parametric family of distributions of interest, given a parameterized probability density function as input. The implemented Riemannian geometry tools allow users to compare, average, interpolate between distributions inside a given family. Importantly, such capabilities open the door to statistics and machine learning on probability distributions. We present the object-oriented implementation of the module along with illustrative examples and show how it can be used to perform learning on manifolds of parametric probability distributions.", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Math. Softw.", articleno = "34", fjournal = "ACM Transactions on Mathematical Software (TOMS)", journal-URL = "https://dl.acm.org/loi/toms", } @Article{Ledee:2023:EOP, author = "Fran{\c{c}}ois L{\'e}d{\'e}e and Pierryves Padey and Kyriaki Goulouti and S{\'e}bastien Lasvaux and Didier Beloin-Saint-Pierre", title = "\pkg{EcoDynElec}: {Open Python} package to create historical profiles of environmental impacts from regional electricity mixes", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101485", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023001814", acknowledgement = ack-nhfb, articleno = "101485", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Maina:2023:BRS, author = "Ezio Maina", title = "Book Review: {{\booktitle{A student's guide to Python for physical modeling}}, 2nd edition by Jesse M. Kinder and Philip Nelson, Princeton, NJ, Princeton University Press, 2021, 240 pp., \$26.95 (paperback), ISBN 978-0-691-22365-0. Scope: textbook. Level: undergraduate}", journal = j-CONTEMP-PHYS, volume = "64", number = "3", pages = "247--248", year = "2023", CODEN = "CTPHAF", DOI = "https://doi.org/10.1080/00107514.2023.2297735", ISSN = "0010-7514 (print), 1366-5812 (electronic)", ISSN-L = "0010-7514", bibdate = "Thu Sep 26 15:39:33 MDT 2024", 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 = "05 Jan 2024", } @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{Muller:2023:PSC, author = "Matthias M{\"u}ller", title = "\pkg{PyblioNet} --- Software for the creation, visualization and analysis of bibliometric networks", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101565", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002613", acknowledgement = ack-nhfb, articleno = "101565", 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{Nolp:2023:SNC, author = "Klaus N{\"o}lp and Lena Oden", title = "Simplifying non-contiguous data transfer with {MPI} for {Python}", journal = j-J-SUPERCOMPUTING, volume = "79", number = "17", pages = "20019--20040", month = nov, year = "2023", CODEN = "JOSUED", DOI = "https://doi.org/10.1007/s11227-023-05398-7", ISSN = "0920-8542 (print), 1573-0484 (electronic)", ISSN-L = "0920-8542", bibdate = "Tue Oct 3 05:58:52 MDT 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/jsuper2020.bib; https://www.math.utah.edu/pub/tex/bib/pvm.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://link.springer.com/article/10.1007/s11227-023-05398-7", acknowledgement = ack-nhfb, ajournal = "J. Supercomputing", fjournal = "The Journal of Supercomputing", journal-URL = "http://link.springer.com/journal/11227", } @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{Overberg:2023:EOS, author = "Florian A. Overberg and Philipp C. B{\"o}ttcher and Dirk Witthaut and Simon Morgenthaler", title = "\pkg{Emipy}: an open-source {Python}-based tool to analyze industrial emissions in {Europe}", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101458", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023001541", acknowledgement = ack-nhfb, articleno = "101458", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Padmavathi:2023:WCE, author = "P. Padmavathi and J. Harikiran", title = "Wireless Capsule Endoscopy Infected Images Detection and Classification Using {MobileNetV2-BiLSTM} Model", journal = j-INT-J-IMAGE-GRAPHICS, volume = "23", number = "05", pages = "??--??", month = sep, year = "2023", DOI = "https://doi.org/10.1142/S0219467823500419", ISSN = "0219-4678", ISSN-L = "0219-4678", bibdate = "Fri Oct 13 07:20:29 MDT 2023", 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/S0219467823500419", abstract = "An efficient tool to execute painless imaging and examine gastrointestinal tract illnesses of the intestine is also known as wireless capsule endoscopy (WCE). Performance, safety, tolerance, and efficacy are the several concerns that make adaptation challenging and wide applicability. In addition, to detect abnormalities, the great importance is the automatic analysis of the WCE dataset. These issues are resolved by numerous vision-based and computer-aided solutions. But, they want further enhancements and do not give the accuracy at the desired level. In order to solve these issues, this paper presents the detection and classification of WCE infected images by a deep neural network and utilizes a bleed image recognizer (BIR) that associates the MobileNetV2 design to classify the images of WCE infected. For the opening-level evaluation, the BIR uses the MobileNetV2 model for its minimum computation power necessity, and then the outcome is sent to the CNN for more processing. Then, Bi-LSTM with an attention mechanism is used to improve the performance level of the model. Hybrid attention Bi-LSTM design yields more accurate classification outcomes. The proposed scheme is implemented in the Python platform and the performance is evaluated by Cohen's kappa, F1-score, recall, accuracy, and precision. The implementation outcomes show that the introduced scheme achieved maximum accuracy of 0.996 with data augmentation with the dataset of WCE images which provided higher outcomes than the others.", acknowledgement = ack-nhfb, articleno = "2350041", fjournal = "International Journal of Image and Graphics (IJIG)", journal-URL = "http://www.worldscientific.com/worldscinet/ijig", } @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{Paramitha:2023:TLA, author = "Ranindya Paramitha and Fabio Massacci", title = "Technical leverage analysis in the {Python} ecosystem", journal = j-EMPIR-SOFTWARE-ENG, volume = "28", number = "6", pages = "??--??", month = nov, year = "2023", CODEN = "ESENFW", DOI = "https://doi.org/10.1007/s10664-023-10355-2", ISSN = "1382-3256 (print), 1573-7616 (electronic)", ISSN-L = "1382-3256", bibdate = "Thu Feb 1 06:51:17 MST 2024", 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-10355-2", acknowledgement = ack-nhfb, ajournal = "Empir. Software. Eng.", articleno = "139", fjournal = "Empirical Software Engineering", journal-URL = "http://link.springer.com/journal/10664", } @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{Ren:2023:PSA, author = "Xiquan Ren", title = "{Python} shared atomic data types", journal = j-SPE, volume = "53", number = "12", pages = "2393--2407", month = dec, year = "2023", CODEN = "SPEXBL", DOI = "https://doi.org/10.1002/spe.3259", ISSN = "0038-0644 (print), 1097-024X (electronic)", ISSN-L = "0038-0644", bibdate = "Tue Jan 9 09:41:57 MST 2024", 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 = "26 August 2023", } @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{Rozas:2023:PDP, author = "Gladys M. Cavero Rozas and Jose M. Cisneros Mandujano and Yomali A. Ferreyra Chombo and Daniela V. Moreno Rencoret and Yerko M. Ortiz Mora and Mart{\'\i}n E. Guti{\'e}rrez Pescarmona and Alberto J. Donayre Torres", title = "\pkg{pyBrick-DNA}: a {Python}-Based Environment for Automated Genetic Component Assembly", journal = j-J-COMPUT-BIOL, volume = "30", number = "12", pages = "1315--1321", month = dec, year = "2023", CODEN = "JCOBEM", DOI = "https://doi.org/10.1089/cmb.2023.0008", ISSN = "1066-5277 (print), 1557-8666 (electronic)", ISSN-L = "1066-5277", bibdate = "Tue May 28 16:00:58 MDT 2024", 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.2023.0008; https://www.liebertpub.com/doi/reader/10.1089/cmb.2023.0008", acknowledgement = ack-nhfb, ajournal = "J. Comput. Biol.", fjournal = "Journal of Computational Biology", journal-URL = "https://www.liebertpub.com/loi/cmb/", onlinedate = "20 November 2023", } @Article{Saadah:2023:BRA, author = "Aminatus Sa'adah", title = "Book Review: {{\booktitle{Artificial Intelligence with Python}}, Teik Toe Teoh and Zheng Rong, Springer, 2022, 336 pp., EUR 16.99, ISBN 978-981-16-8615-3}", journal = j-TECHNOMETRICS, volume = "65", number = "3", pages = "451--452", year = "2023", CODEN = "TCMTA2", DOI = "https://doi.org/10.1080/00401706.2023.2237826", ISSN = "0040-1706 (print), 1537-2723 (electronic)", ISSN-L = "0040-1706", bibdate = "Fri Oct 13 11:19:16 MDT 2023", bibsource = "http://www.tandf.co.uk/journals/titles/00401706.html; https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/technometrics2020.bib", acknowledgement = ack-nhfb, fjournal = "Technometrics", journal-URL = "http://www.tandfonline.com/loi/utch20", onlinedate = "22 Aug 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 = "http://www.tandf.co.uk/journals/titles/00401706.html; https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/technometrics2020.bib", acknowledgement = ack-nhfb, fjournal = "Technometrics", journal-URL = "http://www.tandfonline.com/loi/utch20", onlinedate = "01 Feb 2023", } @Article{Savage:2023:NRP, author = "Neil Savage", title = "News: Revamping {Python} for an {AI} World", journal = j-CACM, volume = "66", number = "12", pages = "13--14", month = dec, year = "2023", CODEN = "CACMA2", DOI = "https://doi.org/10.1145/3624987", ISSN = "0001-0782 (print), 1557-7317 (electronic)", ISSN-L = "0001-0782", bibdate = "Tue Nov 21 15:04:34 MST 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/cacm2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://dl.acm.org/doi/10.1145/3624987", abstract = "Mojo has the same syntax as Python, but runs up to 35,000 times faster.", acknowledgement = ack-nhfb, ajournal = "Commun. ACM", fjournal = "Communications of the ACM", journal-URL = "https://dl.acm.org/loi/cacm", } @Article{Schoedl:2023:PMA, author = "Nathan W. Schoedl and Emma J. MacKie and Michael J. Field and Eric A. Stubbs and Allan Zhang and Matthew Hibbs and Mathieu Gravey", title = "A {Python} Multiprocessing Approach for Fast Geostatistical Simulations of Subglacial Topography", journal = j-COMPUT-SCI-ENG, volume = "25", number = "3", pages = "42--49", month = mar, year = "2023", CODEN = "CSENFA", DOI = "https://doi.org/10.1109/MCSE.2023.3317773", ISSN = "1521-9615 (print), 1558-366X (electronic)", ISSN-L = "1521-9615", bibdate = "Sat Mar 16 11:42:40 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992", keywords = "Computational modeling; Data models; Ice surface; Ice thickness; Mathematical models; Program processors; Scalability; Stochastic processes; Terrain mapping; Uncertainty; Weight measurement", } @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{Shekhovtsov:2023:VPU, author = "Andrii Shekhovtsov and Bart{\l}omiej Kizielewicz and Wojciech Sa{\l}abun", title = "Version [1.1] --- [\pkg{pymcdm} --- The universal library for solving multi-criteria decision-making problems]", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101519", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002157", acknowledgement = ack-nhfb, articleno = "101519", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Tadj:2023:EID, author = "Timothy Tadj and Reza Arablouei and Volkan Dedeoglu", title = "On Evaluating {IoT} Data Trust via Machine Learning", journal = j-FUTURE-INTERNET, volume = "15", number = "9", pages = "309", day = "12", month = sep, year = "2023", CODEN = "????", DOI = "https://doi.org/10.3390/fi15090309", ISSN = "1999-5903", bibdate = "Thu Sep 28 13:55:47 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/9/309", abstract = "Data trust in IoT is crucial for safeguarding privacy, security, reliable decision-making, user acceptance, and complying with regulations. Various approaches based on supervised or unsupervised machine learning (ML) have recently been proposed for evaluating IoT data trust. However, assessing their real-world efficacy is hard mainly due to the lack of related publicly available datasets that can be used for benchmarking. Since obtaining such datasets is challenging, we propose a data synthesis method, called random walk infilling (RWI), to augment IoT time-series datasets by synthesizing untrustworthy data from existing trustworthy data. Thus, RWI enables us to create labeled datasets that can be used to develop and validate ML models for IoT data trust evaluation. We also extract new features from IoT time-series sensor data that effectively capture its autocorrelation as well as its cross-correlation with the data of the neighboring (peer) sensors. These features can be used to learn ML models for recognizing the trustworthiness of IoT sensor data. Equipped with our synthesized ground-truth-labeled datasets and informative correlation-based features, we conduct extensive experiments to critically examine various approaches to evaluating IoT data trust via ML. The results reveal that commonly used ML-based approaches to IoT data trust evaluation, which rely on unsupervised cluster analysis to assign trust labels to unlabeled data, perform poorly. This poor performance is due to the underlying assumption that clustering provides reliable labels for data trust, which is found to be untenable. The results also indicate that ML models, when trained on datasets augmented via RWI and using the proposed features, generalize well to unseen data and surpass existing related approaches. Moreover, we observe that a semi-supervised ML approach that requires only about 10\% of the data labeled offers competitive performance while being practically more appealing compared to the fully supervised approaches. The related Python code and data are available online.", acknowledgement = ack-nhfb, journal-URL = "https://www.mdpi.com/journal/futureinternet", } @Article{Tesse:2023:GMP, author = "Robin Tesse and C{\'e}dric Hernalsteens and Eustache Gnacadja and Nicolas Pauly and Eliott Ramoisiaux and Marion Vanwelde", title = "\pkg{Georges}: a modular {Python} library for seamless beam dynamics simulations and optimization", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101579", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002753", acknowledgement = ack-nhfb, articleno = "101579", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Thieu:2023:MOS, author = "Nguyen Van Thieu and Diego Oliva and Marco P{\'e}rez-Cisneros", title = "\pkg{MetaCluster}: an open-source {Python} library for metaheuristic-based clustering problems", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101597", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002935", acknowledgement = ack-nhfb, articleno = "101597", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Thorp:2023:VPF, author = "Kelly R. Thorp and Josh Brekel and Kendall C. DeJonge", title = "Version 1.2.0 --- \pkg{pyfao56}: {FAO-56} evapotranspiration in {Python}", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101518", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002145", acknowledgement = ack-nhfb, articleno = "101518", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Thrussell:2023:EPL, author = "Jasper Thrussell and Jim Michael Ferguson", title = "\pkg{ExactPack}: a {Python} library of exact analytic solutions", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101560", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S235271102300256X", acknowledgement = ack-nhfb, articleno = "101560", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Tsapetis:2023:UVU, author = "Dimitrios Tsapetis and Michael D. Shields and Dimitris G. Giovanis and Audrey Olivier and Lukas Novak and Promit Chakroborty and Himanshu Sharma and Mohit Chauhan and Katiana Kontolati and Lohit Vandanapu and Dimitrios Loukrezis and Michael Gardner", title = "\pkg{UQpy v4.1}: Uncertainty quantification with {Python}", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101561", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002571", acknowledgement = ack-nhfb, articleno = "101561", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Velasquez:2023:TAB, author = "Juan D. Velasquez", title = "\pkg{TechMiner}: {Analysis} of bibliographic datasets using {Python}", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101457", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S235271102300153X", acknowledgement = ack-nhfb, articleno = "101457", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @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{Xu:2023:PPT, author = "Jiachen Xu and Moritz Grosse-Wentrup", title = "{PyTES}: a {Python} toolbox for closed-loop transcranial electrical stimulation", journal = j-SOFTWAREX, volume = "23", number = "??", pages = "??--??", month = jul, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101403", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Thu Oct 5 12:03:02 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/S2352711023000997", acknowledgement = ack-nhfb, articleno = "101403", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Yaacov:2023:BBP, author = "Tom Yaacov", title = "\pkg{BPpy}: Behavioral programming in {Python}", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101556", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002522", acknowledgement = ack-nhfb, articleno = "101556", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Yamazaki:2023:CCG, author = "Tetsuro Yamazaki and Tomoki Nakamaru and Ryota Shioya and Tomoharu Ugawa and Shigeru Chiba", title = "Collecting Cyclic Garbage across Foreign Function Interfaces: Who Takes the Last Piece of Cake?", journal = j-PACMPL, volume = "7", number = "PLDI", pages = "130:1--130:??", month = jun, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1145/3591244", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Fri May 10 10:23:34 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/java2020.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/10.1145/3591244", abstract = "A growing number of libraries written in managed languages, such as Python and JavaScript, are bringing about new demand for a foreign language \ldots{}", acknowledgement = ack-nhfb, ajournal = "Proc. ACM Program. Lang.", articleno = "130", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Yang:2023:JPP, author = "Xuerui Yang and Jianxin Pan", title = "\pkg{jmcm}: a {Python} package for analyzing longitudinal data using joint mean-covariance models", journal = j-COMMUN-STAT-SIMUL-COMPUT, volume = "52", number = "11", pages = "5446--5461", year = "2023", CODEN = "CSSCDB", DOI = "https://doi.org/10.1080/03610918.2021.1990324", ISSN = "0361-0918", ISSN-L = "0361-0918", bibdate = "Sat May 18 14:28:30 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/communstatsimulcomput2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, fjournal = "Communications in Statistics: Simulation and Computation", journal-URL = "http://www.tandfonline.com/loi/lssp20", onlinedate = "14 Oct 2021", } @Article{Ye:2023:CTI, author = "Fangke Ye and Jisheng Zhao and Jun Shirako and Vivek Sarkar", title = "Concrete Type Inference for Code Optimization using Machine Learning with {SMT} Solving", journal = j-PACMPL, volume = "7", number = "OOPSLA2", pages = "249:1--249:??", month = oct, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1145/3622825", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Fri May 10 10:23:32 MDT 2024", 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/3622825", abstract = "Despite the widespread popularity of dynamically typed languages such as Python, it is well known that they pose significant challenges to code \ldots{}", acknowledgement = ack-nhfb, ajournal = "Proc. ACM Program. Lang.", articleno = "249", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @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{Yu:2023:REP, author = "Jiaxin Yu and Tapan Mukerji and Per Avseth", title = "\pkg{rockphypy}: an extensive {Python} library for rock physics modeling", journal = j-SOFTWAREX, volume = "24", number = "??", pages = "??--??", month = dec, year = "2023", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101567", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Sat Dec 16 07:45:56 MST 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/S2352711023002637", acknowledgement = ack-nhfb, articleno = "101567", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Zhang:2023:PPI, author = "Chihao Zhang and Shihua Zhang and Jingyi Jessica Li", title = "A {Python} Package \pkg{itca} for Information-Theoretic Classification Accuracy: a Criterion That Guides Data-Driven Combination of Ambiguous Outcome Labels in Multiclass Classification", journal = j-J-COMPUT-BIOL, volume = "30", number = "11", pages = "1246--1249", month = nov, year = "2023", CODEN = "JCOBEM", DOI = "https://doi.org/10.1089/cmb.2023.0191", ISSN = "1066-5277 (print), 1557-8666 (electronic)", ISSN-L = "1066-5277", bibdate = "Tue May 28 16:00:56 MDT 2024", 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.2023.0191; https://www.liebertpub.com/doi/reader/10.1089/cmb.2023.0191", acknowledgement = ack-nhfb, ajournal = "J. Comput. Biol.", fjournal = "Journal of Computational Biology", journal-URL = "https://www.liebertpub.com/loi/cmb/", onlinedate = "6 November 2023", } @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", } @Article{Zutt:2023:BRO, author = "Nicholas Zutt", title = "Book Review: {{\booktitle{An object-oriented Python cookbook in quantum information theory and quantum computing}} by M. S. Ramkarthik and Pranay Barkataki, Boca Raton, FL, CRC Press, Taylor \& {Francis} Group, 2023, 220 pp., 104 USD (hardback), ISBN: 978-1-032-25607-8}. {Scope}: handbook. Level: postgraduate.", journal = j-CONTEMP-PHYS, volume = "64", number = "1", pages = "84--85", year = "2023", CODEN = "CTPHAF", DOI = "https://doi.org/10.1080/00107514.2023.2217790", ISSN = "0010-7514 (print), 1366-5812 (electronic)", ISSN-L = "0010-7514", bibdate = "Wed May 29 10:04:39 MDT 2024", 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 = "09 May 2023", } @Article{Abdullahi:2024:DPB, author = "Asli M. Abdullahi and Jaime Hoefken Zink and Matheus Hostert and Daniele Massaro and Silvia Pascoli", title = "{DarkNews}: a {Python}-based event generator for heavy neutral lepton production in neutrino-nucleus scattering", journal = j-COMP-PHYS-COMM, volume = "297", number = "??", pages = "Article 109075", month = apr, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.109075", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Fri Feb 2 15:31:02 MST 2024", 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/S0010465523004204", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Ahirwar:2024:HBE, author = "Mini Bharati Ahirwar and Subodh S. Khire and Shridhar R. Gadre and Milind M. Deshmukh", title = "Hydrogen bond energy estimation ({H-BEE}) in large molecular clusters: a {Python} program for quantum chemical investigations", journal = j-J-COMPUT-CHEM, volume = "45", number = "5", pages = "274--283", day = "15", month = feb, year = "2024", CODEN = "JCCHDD", DOI = "https://doi.org/10.1002/jcc.27237", ISSN = "0192-8651 (print), 1096-987X (electronic)", ISSN-L = "0192-8651", bibdate = "Sat May 25 08:38:30 MDT 2024", 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 October 2023", } @Article{Amaral:2024:TPP, author = "Miguel Amaral and Gabriel Signoretti and Marianne Silva and Ivanovitch Silva", title = "\pkg{TAC}: a {Python} package for {IoT}-focused {Tiny Anomaly Compression}", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101747", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001183", acknowledgement = ack-nhfb, articleno = "101747", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Aoyama:2024:HWP, author = "Tatsumi Aoyama and Kazuyoshi Yoshimi and Kota Ido and Yuichi Motoyama and Taiki Kawamura and Takahiro Misawa and Takeo Kato and Akito Kobayashi", title = "{H-wave} --- a {Python} package for the {Hartree--Fock} approximation and the random phase approximation", journal = j-COMP-PHYS-COMM, volume = "298", number = "??", pages = "Article 109087", month = may, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109087", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Wed Mar 20 08:40:04 MDT 2024", 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/S0010465524000109", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Arenas-Guerrero:2024:RFM, author = "Juli{\'a}n Arenas-Guerrero and Paola Espinoza-Arias and Jos{\'e} Antonio Bernab{\'e}-Diaz and Prashant Deshmukh and Jos{\'e} Luis S{\'a}nchez-Fern{\'a}ndez and Oscar Corcho", title = "An \pkg{RML-FNML} module for {Python} user-defined functions in \pkg{Morph-KGC}", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101709", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000803", acknowledgement = ack-nhfb, articleno = "101709", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Arnaudon:2024:APM, author = "Alexis Arnaudon and Dominik J. Schindler and Robert L. Peach and Adam Gosztolai and Maxwell Hodges and Michael T. Schaub and Mauricio Barahona", title = "{Algorithm 1044: PyGenStability}, a Multiscale Community Detection with Generalized {Markov} Stability", journal = j-TOMS, volume = "50", number = "2", pages = "15:1--15:??", month = jun, year = "2024", CODEN = "ACMSCU", DOI = "https://doi.org/10.1145/3651225", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Tue Jul 2 07:51:57 MDT 2024", 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/3651225", abstract = "We present PyGenStability, a general-use Python software package that provides a suite of analysis and visualization tools for unsupervised multiscale community detection in graphs. PyGenStability finds optimized partitions of a graph at different levels \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Math. Softw.", articleno = "15", fjournal = "ACM Transactions on Mathematical Software (TOMS)", journal-URL = "https://dl.acm.org/loi/toms", } @Article{Arya:2024:PSS, author = "Deeksha M. Arya and Jin L. C. Guo and Martin P. Robillard", title = "Properties and Styles of Software Technology Tutorials", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "2", pages = "159--172", month = feb, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2023.3332568", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Fri Feb 16 07:34:28 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "Codes; Documentation; documentation design; documentation search; Java; Python; Software; Software documentation; software tutorials; Task analysis; tutorial properties; Tutorials", } @Article{Ataei:2024:XDM, author = "Mohammadmehdi Ataei and Hesam Salehipour", title = "\pkg{XLB}: a differentiable massively parallel lattice {Boltzmann} library in {Python}", journal = j-COMP-PHYS-COMM, volume = "300", number = "??", pages = "??--??", month = jul, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109187", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Mon May 6 07:51:16 MDT 2024", 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/S0010465524001103", acknowledgement = ack-nhfb, articleno = "109187", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Awasthi:2024:DLB, author = "Amruta Awasthi and Lenka Krpalkova and Joseph Walsh", title = "Deep Learning-Based {Boolean}, Time Series, Error Detection, and Predictive Analysis in Container Crane Operations", journal = j-ALGORITHMS-BASEL, volume = "17", number = "8", year = "2024", CODEN = "ALGOCH", DOI = "https://doi.org/10.3390/a17080333", ISSN = "1999-4893 (electronic)", ISSN-L = "1999-4893", bibdate = "Fri Aug 30 05:57:31 2024", 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/17/8/333", abstract = "Deep learning is crucial in marine logistics and container crane error detection, diagnosis, and prediction. A novel deep learning technique using Long Short-Term Memory (LSTM) detected and anticipated errors in a system with imbalanced data. The LSTM model was trained on real operational error data from container cranes. The custom algorithm employs the Synthetic Minority Oversampling TEchnique (SMOTE) to balance the imbalanced data for operational data errors (i.e., too few minority class samples). Python was used to program. Pearson, Spearman, and Kendall correlation matrices and covariance matrices are presented. The model's training and validation loss is shown, and the remaining data are predicted. The test set (30\% of actual data) and forecasted data had RMSEs of 0.065. A heatmap of a confusion matrix was created using Matplotlib and Seaborn. Additionally, the error outputs for the time series for the next n seconds were projected, with the n seconds input by the user. Accuracy was 0.996, precision was 1.00, recall was 0.500, and f1 score was 0.667, according to the evaluation criteria that were produced. Experiments demonstrated that the technique is capable of identifying critical elements. Thus, future attempts will improve the model's structure to forecast industrial big data errors. However, the advantage is that it can handle imbalanced data, which is usually what most industries have. With additional data, the model can be further improved.", acknowledgement = ack-nhfb, articleno = "333", fjournal = "Algorithms (Basel)", journal-URL = "https://www.mdpi.com/journal/algorithms", } @Article{Bakker:2024:HPH, author = "Wim Bakker and Frank van Ruitenbeek and Harald van der Werff and Christoph Hecker and Arjan Dijkstra and Freek van der Meer", title = "Hyperspectral {Python}: {HypPy}", journal = j-ALGORITHMS-BASEL, volume = "17", number = "8", year = "2024", CODEN = "ALGOCH", DOI = "https://doi.org/10.3390/a17080337", ISSN = "1999-4893 (electronic)", ISSN-L = "1999-4893", bibdate = "Fri Aug 30 05:57:31 2024", 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/17/8/337", abstract = "This paper describes the design, implementation, and usage of a Python package called Hyperspectral Python (HypPy). Proprietary software for processing hyperspectral images is expensive, and tools developed using these packages cannot be freely distributed. The idea of HypPy is to be able to process hyperspectral images using free and open-source software. HypPy was developed using Python and relies on the array-processing capabilities of packages like NumPy and SciPy. HypPy was designed with practical imaging spectrometry in mind and has implemented a number of novel ideas. To name a few of these ideas, HypPy has BandMath and SpectralMath tools for processing images and spectra using Python statements, can process spectral libraries as if they were images, and can address bands by wavelength rather than band number. We expect HypPy to be beneficial for research, education, and projects using hyperspectral data because it is flexible and versatile.", acknowledgement = ack-nhfb, articleno = "337", fjournal = "Algorithms (Basel)", journal-URL = "https://www.mdpi.com/journal/algorithms", } @Article{Belenchia:2024:LPL, author = "Matteo Belenchia and Flavio Corradini and Michela Quadrini and Michele Loreti", title = "{libmg}: a {Python} library for programming graph neural networks in {$ \mu {\cal G} $}", journal = j-SCI-COMPUT-PROGRAM, volume = "238", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "SCPGD4", DOI = "https://doi.org/10.1016/j.scico.2024.103165", ISSN = "0167-6423 (print), 1872-7964 (electronic)", ISSN-L = "0167-6423", bibdate = "Tue Aug 27 08:33:19 MDT 2024", 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/S0167642324000881", acknowledgement = ack-nhfb, articleno = "103165", fjournal = "Science of Computer Programming", journal-URL = "http://www.sciencedirect.com/science/journal/01676423", } @Article{Bertolotti:2024:WDD, author = "Francesco Bertolotti and Walter Cazzola and Dario Ostuni and Carlo Castoldi", title = "When the dragons defeat the knight: {Basilisk} an architectural pattern for platform and language independent development", journal = j-J-SYST-SOFTW, volume = "215", number = "??", pages = "??--??", month = sep, year = "2024", CODEN = "JSSODM", DOI = "https://doi.org/10.1016/j.jss.2024.112088", ISSN = "0164-1212 (print), 1873-1228 (electronic)", ISSN-L = "0164-1212", bibdate = "Tue Jun 11 07:32:57 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/java2020.bib; https://www.math.utah.edu/pub/tex/bib/jsystsoftw2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S016412122400133X", acknowledgement = ack-nhfb, ajournal = "J. Syst. Softw.", articleno = "112088", fjournal = "Journal of Systems and Software", journal-URL = "http://www.sciencedirect.com/science/journal/01641212", } @Article{Blanco:2024:AAQ, author = "Alison Fernandez Blanco and Araceli Queirolo C{\'o}rdova and Alexandre Bergel and Juan Pablo Sandoval Alcocer", title = "Asking and Answering Questions During Memory Profiling", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "5", pages = "1096--1117", month = may, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2024.3377127", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Sat Aug 24 08:23:19 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "Codes; Data mining; experimental design; Libraries; memory management; Memory management; Program analysis; Python; Resource management; Software", } @Article{Bodory:2024:EDM, author = "Hugo Bodory and Federica Mascolo and Michael Lechner", title = "Enabling Decision Making with the Modified Causal Forest: Policy Trees for Treatment Assignment", journal = j-ALGORITHMS-BASEL, volume = "17", number = "7", year = "2024", CODEN = "ALGOCH", DOI = "https://doi.org/10.3390/a17070318", ISSN = "1999-4893 (electronic)", ISSN-L = "1999-4893", bibdate = "Fri Aug 30 05:57:31 2024", 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/17/7/318", abstract = "Decision making plays a pivotal role in shaping outcomes across various disciplines, such as medicine, economics, and business. This paper provides practitioners with guidance on implementing a decision tree designed to optimise treatment assignment policies through an interpretable and non-parametric algorithm. Building upon the method proposed by Zhou, Athey, and Wager (2023), our policy tree introduces three key innovations: a different approach to policy score calculation, the incorporation of constraints, and enhanced handling of categorical and continuous variables. These innovations enable the evaluation of a broader class of policy rules, all of which can be easily obtained using a single module. We showcase the effectiveness of our policy tree in managing multiple, discrete treatments using datasets from diverse fields. Additionally, the policy tree is implemented in the open-source Python package mcf (modified causal forest), facilitating its application in both randomised and observational research settings.", acknowledgement = ack-nhfb, articleno = "318", fjournal = "Algorithms (Basel)", journal-URL = "https://www.mdpi.com/journal/algorithms", } @Article{Boguslawski:2024:PIF, author = "Katharina Boguslawski and Filip Brz{\k{e}}k and Rahul Chakraborty and Kacper Cie{\'s}lak and Seyedehdelaram Jahani and Aleksandra Leszczyk and Artur Nowak and Emil Sujkowski and Julian {\'S}wierczy{\'n}ski and Somayeh Ahmadkhani and Dariusz K{\k{e}}dziera and Maximilian H. Kriebel and Piotr Szymon {\.Z}uchowski and Pawe{\l} Tecmer", title = "{PyBEST}: Improved functionality and enhanced performance", journal = j-COMP-PHYS-COMM, volume = "297", number = "??", pages = "Article 109049", month = apr, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.109049", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Fri Feb 2 15:31:02 MST 2024", 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/S0010465523003946", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Boris:2024:TCY, author = "Alan Boris", title = "Take Control of Your Home: Escape Proprietary Smart-Home Tech with This {DIY} Panel", journal = j-IEEE-SPECTRUM, volume = "61", number = "9", pages = "16--18", month = sep, year = "2024", CODEN = "IEESAM", DOI = "https://doi.org/10.1109/MSPEC.2024.10669242", ISSN = "0018-9235 (print), 1939-9340 (electronic)", ISSN-L = "0018-9235", bibdate = "Mon Sep 9 17:36:16 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeespectrum2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, ajournal = "IEEE Spectrum", fjournal = "IEEE Spectrum", journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6", keywords = "Browsers; Containers; Control system security; Control systems; Electric variables measurement; Home appliances; Home automation; Monitoring; Operating systems; Python; Smart homes; Touch sensitive screens; Web servers", } @Article{Bota:2024:BPT, author = "Patr{\'\i}cia Bota and Rafael Silva and Carlos Carreiras and Ana Fred and Hugo Pl{\'a}cido da Silva", title = "\pkg{BioSPPy}: a {Python} toolbox for physiological signal processing", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101712", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000839", acknowledgement = ack-nhfb, articleno = "101712", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Bour:2024:APP, author = "Charline Bour and Abir Elbeji and Luigi {De Giovanni} and Adrian Ahne and Guy Fagherazzi", title = "{ALTRUIST}: a {Python} Package to Emulate a Virtual Digital Cohort Study Using Social Media Data", journal = j-IEEE-TRANS-BIG-DATA, volume = "10", number = "4", pages = "568--575", month = aug, year = "2024", DOI = "https://doi.org/10.1109/TBDATA.2024.3362193", ISSN = "2332-7790", ISSN-L = "2332-7790", bibdate = "Sat Aug 24 07:37:49 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeetransbigdata.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, fjournal = "IEEE Transactions on Big Data", journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6687317", keywords = "Blogs; Cohort; Computational modeling; digital health; Diseases; natural language processing; python; Recruitment; social media; Social networking (online); Sociology; Statistics", } @Article{Branthome:2024:PDE, author = "Matthieu Branth{\^o}me", title = "{Pyrates}: Design and Evaluation of a Serious Game Aimed at Introducing {Python} Programming and Easing the Transition from Blocks", journal = j-TOCE, volume = "24", number = "1", pages = "12:1--12:??", month = mar, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1145/3639061", ISSN = "1946-6226", ISSN-L = "1946-6226", bibdate = "Mon May 13 06:43:27 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/toce.bib", URL = "https://dl.acm.org/doi/10.1145/3639061", abstract = "This article reports on a design-based research study centered on the conception and the assessment of the Pyrates application. This online serious game aims at introducing Python programming to K--12 students while easing the transition from block-based \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Comp. Educ.", articleno = "12", fjournal = "ACM Transactions on Computing Education", journal-URL = "https://dl.acm.org/loi/toce", } @Article{Castano:2024:QPL, author = "Alberto Casta{\~n}o and Jaime Alonso and Pablo Gonz{\'a}lez and Pablo P{\'e}rez and Juan Jos{\'e} del Coz", title = "\pkg{QuantificationLib}: a {Python} library for quantification and prevalence estimation", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101728", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000992", acknowledgement = ack-nhfb, articleno = "101728", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Castro:2024:LHP, author = "Oscar Castro and Pierrick Bruneau and Jean-S{\'e}bastien Sottet and Dario Torregrossa", title = "Landscape of High-Performance {Python} to Develop Data Science and Machine Learning Applications", journal = j-COMP-SURV, volume = "56", number = "3", pages = "65:1--65:??", month = mar, year = "2024", CODEN = "CMSVAN", DOI = "https://doi.org/10.1145/3617588", ISSN = "0360-0300 (print), 1557-7341 (electronic)", ISSN-L = "0360-0300", bibdate = "Fri Nov 3 15:05:35 MDT 2023", bibsource = "https://www.math.utah.edu/pub/tex/bib/compsurv.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://dl.acm.org/doi/10.1145/3617588", abstract = "Python has become the prime language for application development in the data science and machine learning domains. However, data scientists are not necessarily \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Comput. Surv.", articleno = "65", fjournal = "ACM Computing Surveys", journal-URL = "https://dl.acm.org/loi/csur", } @Article{Chabib:2024:GGA, author = "Ahmed Chabib and Jean-Fran{\c{c}}ois Witz and Pierre Gosselet and Vincent Magnier", title = "\pkg{GCPU\_OpticalFlow}: a {GPU} accelerated {Python} software for strain measurement", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101688", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000591", acknowledgement = ack-nhfb, articleno = "101688", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Chen:2024:RDT, author = "Zhifei Chen and Lin Chen and Yibiao Yang and Qiong Feng and Xuansong Li and Wei Song", title = "Risky Dynamic Typing-related Practices in {Python}: an Empirical Study", journal = j-TOSEM, volume = "33", number = "6", pages = "140:1--140:??", month = jul, year = "2024", CODEN = "ATSMER", DOI = "https://doi.org/10.1145/3649593", ISSN = "1049-331X (print), 1557-7392 (electronic)", ISSN-L = "1049-331X", bibdate = "Mon Sep 30 08:52:15 MDT 2024", 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/3649593", abstract = "Python's dynamic typing nature provides developers with powerful programming abstractions. However, many type-related bugs are accumulated in code bases of Python due to the misuse of dynamic typing. The goal of this article is to aid in the understanding \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Softw. Eng. Methodol.", articleno = "140", fjournal = "ACM Transactions on Software Engineering and Methodology", journal-URL = "https://dl.acm.org/loi/tosem", } @Article{Cheng:2024:RKB, author = "Wei Cheng and Wei Hu and Xiaoxing Ma", title = "Revisiting Knowledge-Based Inference of {Python} Runtime Environments: a Realistic and Adaptive Approach", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "2", pages = "258--279", month = feb, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2023.3346474", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Fri Feb 16 07:34:28 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "Codes; configuration management; Feature extraction; Knowledge based systems; knowledge graph; knowledge-based inference; Python; Python runtime environment; Runtime environment; Syntactics; Task analysis", } @Article{Choudhuri:2024:CPP, author = "Souradipto Choudhuri and Keya Sau", title = "{CodonU}: a {Python} Package for Codon Usage Analysis", journal = j-TCBB, volume = "21", number = "1", pages = "36--44", year = "2024", CODEN = "ITCBCY", DOI = "https://doi.org/10.1109/TCBB.2023.3335823", ISSN = "1545-5963 (print), 1557-9964 (electronic)", ISSN-L = "1545-5963", bibdate = "Fri May 31 09:09:21 MDT 2024", 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/10.1109/TCBB.2023.3335823", abstract = "Codon Usage Analysis (CUA) has been accompanied by several web servers and independent programs written in several programming languages. Also this diversity speaks for the need of a reusable software that can be helpful in reading, manipulating and \ldots{}", acknowledgement = ack-nhfb, ajournal = "IEEE/ACM Trans. Comput. Biol. Bioinform.", fjournal = "IEEE/ACM Transactions on Computational Biology and Bioinformatics", journal-URL = "https://dl.acm.org/loi/tcbb", } @Article{Chowdhary:2024:PES, author = "Abhijit Chowdhary and Shady E. Ahmed and Ahmed Attia", title = "{PyOED}: an Extensible Suite for Data Assimilation and Model-Constrained Optimal Design of Experiments", journal = j-TOMS, volume = "50", number = "2", pages = "11:1--11:??", month = jun, year = "2024", CODEN = "ACMSCU", DOI = "https://doi.org/10.1145/3653071", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Tue Jul 2 07:51:57 MDT 2024", 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/3653071", abstract = "This article describes PyOED, a highly extensible scientific package that enables developing and testing model-constrained optimal experimental design (OED) for inverse problems. Specifically, PyOED aims to be a comprehensive Python toolkit for model-. \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Math. Softw.", articleno = "11", fjournal = "ACM Transactions on Mathematical Software (TOMS)", journal-URL = "https://dl.acm.org/loi/toms", } @Article{Cunha:2024:PMD, author = "Joao Cunha and Jos{\'e} Queiroz and Carlos Silva and Fabio Gentile and Diogo E. Aguiam", title = "\pkg{pyMOE}: Mask design and modeling for micro optical elements and flat optics", journal = j-COMP-PHYS-COMM, volume = "305", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109331", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Wed Sep 11 14:54:24 MDT 2024", 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/S0010465524002546", acknowledgement = ack-nhfb, articleno = "109331", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{DAquino:2024:PPI, author = "Zachary D'Aquino and Sylwester Arabas and Jeffrey H. Curtis and Akshunna Vaishnav and Nicole Riemer and Matthew West", title = "\pkg{PyPartMC}: a {Pythonic} interface to a particle-resolved, {Monte Carlo} aerosol simulation framework", journal = j-SOFTWAREX, volume = "25", number = "??", pages = "??--??", month = feb, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101613", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711023003096", acknowledgement = ack-nhfb, articleno = "101613", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Du:2024:JWE, author = "Dou Du and Taylor J. Baird and Kristjan Eimre and Sara Bonella and Giovanni Pizzi", title = "\pkg{Jupyter} widgets and extensions for education and research in computational physics and chemistry", journal = j-COMP-PHYS-COMM, volume = "305", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109353", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Wed Sep 11 14:54:24 MDT 2024", 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/S0010465524002765", acknowledgement = ack-nhfb, articleno = "109353", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Dyczkowski:2024:PLI, author = "Krzysztof Dyczkowski and Piotr Grochowalski and Dawid Kosior and Dorota Gil and Wojciech Kozio{\l} and Barbara P{\k{e}}kala and Uzay Kaymak and Caro Fuchs and Marco S. Nobile", title = "\pkg{Python} library for interval-valued fuzzy inference", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101730", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001018", acknowledgement = ack-nhfb, articleno = "101730", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Ehrenberg:2024:PSC, author = "Melanie Ehrenberg and Shahram Sarkani and Thomas A. Mazzuchi", title = "{Python} source code vulnerability detection with named entity recognition", journal = j-COMPUT-SECUR, volume = "140", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "CPSEDU", DOI = "https://doi.org/10.1016/j.cose.2024.103802", ISSN = "0167-4048 (print), 1872-6208 (electronic)", ISSN-L = "0167-4048", bibdate = "Sat Apr 6 10:17:19 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/computsecur2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S0167404824001032", acknowledgement = ack-nhfb, articleno = "103802", fjournal = "Computers \& Security", journal-URL = "http://www.sciencedirect.com/science/journal/01674048", } @Article{Errami:2024:VPL, author = "Najib Errami and Eduardo Queiroga and Ruslan Sadykov and Eduardo Uchoa", title = "{VRPSolverEasy}: a {Python} Library for the Exact Solution of a Rich Vehicle Routing Problem", journal = j-INFORMS-J-COMPUT, volume = "36", number = "4", pages = "956--965", month = "Fall", year = "2024", CODEN = "????", DOI = "https://doi.org/10.1287/ijoc.2023.0103", ISSN = "1091-9856 (print), 1526-5528 (electronic)", ISSN-L = "1091-9856", bibdate = "Wed Sep 4 06:43:31 MDT 2024", 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.0103", acknowledgement = ack-nhfb, ajournal = "INFORMS J. Comput.", fjournal = "INFORMS Journal on Computing", journal-URL = "https://pubsonline.informs.org/journal/ijoc", onlinedate = "28 December 2023", } @Article{Escribano:2024:PPP, author = "Nicolas Escribano and Jos{\'e} Manuel Bielsa and Francisco Lahuerta", title = "\pkg{pymetamodels}: a {Python} package for metamodeling and design automation", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101735", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001067", acknowledgement = ack-nhfb, articleno = "101735", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Fakhoury:2024:LBT, author = "Sarah Fakhoury and Aaditya Naik and Georgios Sakkas and Saikat Chakraborty and Shuvendu K. Lahiri", title = "{LLM}-Based Test-Driven Interactive Code Generation: User Study and Empirical Evaluation", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "9", pages = "2254--2268", month = sep, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2024.3428972", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Wed Oct 23 14:46:33 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "Accuracy; Artificial intelligence; Benchmark testing; code generation; Codes; cognitive load; human factors; Intent disambiguation; LLMs; Natural languages; Python; Task analysis; test generation", } @Article{Favero:2024:PNP, author = "Luiz Paulo F{\'a}vero and Helder Prado Santos and Patr{\'\i}cia Belfiore and Alexandre Duarte and Igor Pinheiro de Ara{\'u}jo Costa and Adilson Vilarinho Terra and Miguel {\^A}ngelo Lellis Moreira and Wilson Tarantin Junior and Marcos dos Santos", title = "A Proposal for a New {Python} Library Implementing Stepwise Procedure", journal = j-ALGORITHMS-BASEL, volume = "17", number = "11", pages = "??--??", month = nov, year = "2024", CODEN = "ALGOCH", DOI = "https://doi.org/10.3390/a17110502", ISSN = "1999-4893 (electronic)", ISSN-L = "1999-4893", bibdate = "Sat Dec 28 07:35:07 MST 2024", 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/17/11/502", acknowledgement = ack-nhfb, fjournal = "Algorithms (Basel)", journal-URL = "https://www.mdpi.com/journal/algorithms", } @Article{Fernandez-Candel:2024:ULU, author = "Carlos Javier Fern{\'a}ndez-Candel and Paula Mu{\~n}oz and Javier Troya and Antonio Vallecillo", title = "\pkg{UTypes}: a library for uncertain datatypes in {Python}", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101676", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000475", acknowledgement = ack-nhfb, articleno = "101676", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Fischer:2024:BRI, author = "Daniel Fischer", title = "Book Review: {{\booktitle{An Introduction to R and Python for Data Analysis: a Side-by-Side Approach}} Taylor R. Brown Chapman and Hall\slash CRC, 2023, 246 pages (hardback \$99.95, ebook \$74.96) ISBN 978-10322032-56}", journal = j-INT-STAT-REV, volume = "92", number = "1", pages = "132--134", month = apr, year = "2024", CODEN = "ISTRDP", DOI = "https://doi.org/10.1111/insr.12568", ISSN = "0306-7734 (print), 1751-5823 (electronic)", ISSN-L = "0306-7734", bibdate = "Tue May 28 13:00:02 MDT 2024", 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 = "06 March 2024", } @Article{Fitzpatrick:2024:DPP, author = "Paxton C. Fitzpatrick and Jeremy R. Manning", title = "\pkg{Davos}: a {Python} package ``smuggler'' for constructing lightweight reproducible notebooks", journal = j-SOFTWAREX, volume = "25", number = "??", pages = "??--??", month = feb, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101614", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711023003102", acknowledgement = ack-nhfb, articleno = "101614", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Frantz:2024:MBD, author = "Miles Frantz and Ya Xiao and Tanmoy Sarkar Pias and Na Meng and Danfeng Yao", title = "Methods and Benchmark for Detecting Cryptographic {API} Misuses in {Python}", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "5", pages = "1118--1129", month = may, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2024.3377182", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Sat Aug 24 08:23:19 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/cryptography2020.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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "benchmark; Benchmark testing; Ciphers; Codes; cryptographic API misuses; Cryptography; Encryption; Libraries; Python; Static code analysis", } @Article{Fraszczak:2024:NCP, author = "Damian Fraszczak and Edyta Fraszczak", title = "\pkg{NetCenLib}: a comprehensive {Python} library for network centrality analysis and evaluation", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101699", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000700", acknowledgement = ack-nhfb, articleno = "101699", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Freeborn:2024:UDR, author = "Todd J. Freeborn and Jacob A. Mota", title = "\pkg{Ultrasound DICOM Renamer}: a {MATLAB} graphical user interface for workflow improvement for {DICOM} ultrasound renaming", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101743", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001146", acknowledgement = ack-nhfb, articleno = "101743", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Gamallo-Fernandez:2024:VPL, author = "Pedro Gamallo-Fernandez and Efr{\'e}n Rama-Maneiro and Juan C. Vidal and Manuel Lama", title = "\pkg{VERONA}: a {Python} library for benchmarking deep learning in business process monitoring", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101734", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001055", acknowledgement = ack-nhfb, articleno = "101734", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Gao:2024:CDL, author = "Kai Gao and Runzhi He and Bing Xie and Minghui Zhou", title = "Characterizing Deep Learning Package Supply Chains in {PyPI}: Domains, Clusters, and Disengagement", journal = j-TOSEM, volume = "33", number = "4", pages = "97:1--97:??", month = may, year = "2024", CODEN = "ATSMER", DOI = "https://doi.org/10.1145/3640336", ISSN = "1049-331X (print), 1557-7392 (electronic)", ISSN-L = "1049-331X", bibdate = "Wed Apr 24 13:33:37 MDT 2024", 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/3640336", abstract = "Deep learning (DL) frameworks have become the cornerstone of the rapidly developing DL field. Through installation dependencies specified in the distribution metadata, numerous packages directly or transitively depend on DL frameworks, layer after layer, \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Softw. Eng. Methodol.", articleno = "97", fjournal = "ACM Transactions on Software Engineering and Methodology", journal-URL = "https://dl.acm.org/loi/tosem", } @Article{Guo:2024:GPT, author = "Yimeng Guo and Zhifei Chen and Lin Chen and Wenjie Xu and Yanhui Li and Yuming Zhou and Baowen Xu", title = "Generating {Python} Type Annotations from Type Inference: How Far Are We?", journal = j-TOSEM, volume = "33", number = "5", pages = "123:1--123:??", month = jun, year = "2024", CODEN = "ATSMER", DOI = "https://doi.org/10.1145/3652153", ISSN = "1049-331X (print), 1557-7392 (electronic)", ISSN-L = "1049-331X", bibdate = "Fri Jun 7 08:54:10 MDT 2024", 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/3652153", abstract = "In recent years, dynamic languages such as Python have become popular due to their flexibility and productivity. The lack of static typing makes programs face the challenges of fixing type errors, early bug detection, and code understanding. To alleviate \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Softw. Eng. Methodol.", articleno = "123", fjournal = "ACM Transactions on Software Engineering and Methodology", journal-URL = "https://dl.acm.org/loi/tosem", } @Article{Guo:2024:PLD, author = "Juncai Guo and Jin Liu and Xiao Liu and Yao Wan and Yanjie Zhao and Li Li and Kui Liu and Jacques Klein and Tegawend{\'e} F. Bissyand{\'e}", title = "\pkg{PyScribe} --- Learning to describe {Python} code", journal = j-SPE, volume = "54", number = "3", pages = "501--527", month = mar, year = "2024", CODEN = "SPEXBL", DOI = "https://doi.org/10.1002/spe.3291", ISSN = "0038-0644 (print), 1097-024X (electronic)", ISSN-L = "0038-0644", bibdate = "Fri May 24 08:43:49 MDT 2024", 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 = "09 December 2023", } @Article{Heinrich:2024:NSA, author = "G. Heinrich and S. P. Jones and M. Kerner and V. Magerya and A. Olsson and J. Schlenk", title = "Numerical scattering amplitudes with {pySecDec}", journal = j-COMP-PHYS-COMM, volume = "295", number = "??", pages = "Article 108956", month = feb, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.108956", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Thu Dec 21 14:15:33 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/S0010465523003016", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Huang:2024:RUA, author = "Qing Huang and Zhiwen Luo and Zhenchang Xing and Jinshan Zeng and Jieshan Chen and Xiwei Xu and Yong Chen", title = "Revealing the Unseen: {AI} Chain on {LLMs} for Predicting Implicit Dataflows to Generate Dataflow Graphs in Dynamically Typed Code", journal = j-TOSEM, volume = "33", number = "7", pages = "183:1--183:??", month = sep, year = "2024", CODEN = "ATSMER", DOI = "https://doi.org/10.1145/3672458", ISSN = "1049-331X (print), 1557-7392 (electronic)", ISSN-L = "1049-331X", bibdate = "Mon Sep 30 08:52:18 MDT 2024", 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/3672458", abstract = "Dataflow graphs (DFGs) capture definitions (defs) and uses across program blocks, which is a fundamental program representation for program analysis, testing and maintenance. However, dynamically typed programming languages like Python present implicit \ldots{}", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Softw. Eng. Methodol.", articleno = "183", fjournal = "ACM Transactions on Software Engineering and Methodology", journal-URL = "https://dl.acm.org/loi/tosem", } @Article{Jha:2024:GAT, author = "Raghav G. Jha and Abhishek Samlodia", title = "{GPU}-acceleration of tensor renormalization with {PyTorch} using {CUDA}", journal = j-COMP-PHYS-COMM, volume = "294", number = "??", pages = "Article 108941", month = jan, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.108941", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Tue Oct 31 06:41: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/S0010465523002862", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Jin:2024:GCP, author = "Yuyang Jin and Haojie Wang and Runxin Zhong and Chen Zhang and Xia Liao and Feng Zhang and Jidong Zhai", title = "Graph-Centric Performance Analysis for Large-Scale Parallel Applications", journal = j-IEEE-TRANS-PAR-DIST-SYS, volume = "35", number = "7", pages = "1221--1238", month = jul, year = "2024", CODEN = "ITDSEO", DOI = "https://doi.org/10.1109/TPDS.2024.3396849", ISSN = "1045-9219 (print), 1558-2183 (electronic)", ISSN-L = "1045-9219", bibdate = "Wed Jun 19 16:27:44 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, fjournal = "IEEE Transactions on Parallel and Distributed Systems", journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=71", keywords = "Analytical models; Codes; Computer bugs; dataflow abstraction; graph analysis; Libraries; Parallel applications; Performance analysis; performance analysis; Python; Task analysis", } @Article{Juge:2024:ASS, author = "Vincent Jug{\'e}", title = "Adaptive Shivers Sort: an Alternative Sorting Algorithm", journal = j-TALG, volume = "20", number = "4", pages = "31:1--31:55", month = oct, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1145/3664195", ISSN = "1549-6325 (print), 1549-6333 (electronic)", ISSN-L = "1549-6325", bibdate = "Sat Oct 12 11:56:24 MDT 2024", 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/talg.bib", URL = "https://dl.acm.org/doi/10.1145/3664195", abstract = "We present a new sorting algorithm, called adaptive ShiversSort, that exploits the existence of monotonic runs for sorting efficiently partially sorted data. This algorithm is a variant of the well-known algorithm TimSort, which is the sorting algorithm used in standard libraries of programming languages, such as Python or Java (for non-primitive types). More precisely, adaptive ShiversSort is a so-called $k$-aware merge-sort algorithm, a class that captures TimSort-like algorithms and that was introduced by Buss and Knop.\par In this article, we prove that, although adaptive ShiversSort is simple to implement and differs only slightly from TimSort, its computational cost, in number of comparisons performed, is optimal within the class of natural merge-sort algorithms, up to a small additive linear term. This makes adaptive ShiversSort the first $k$-aware algorithm to benefit from this property, which is also a 33\% improvement over TimSort's worst-case. This suggests that adaptive ShiversSort could be a strong contender for being used instead of TimSort.\par Then, we investigate the optimality of $k$-aware algorithms. We give lower and upper bounds on the best approximation factors of such algorithms, compared to optimal stable natural merge-sort algorithms. In particular, we design generalisations of adaptive ShiversSort whose computational costs are optimal up to arbitrarily small multiplicative factors.", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Algorithms", articleno = "31", fjournal = "ACM Transactions on Algorithms (TALG)", journal-URL = "https://dl.acm.org/loi/talg", } @Article{Kim:2024:EPB, author = "Minhyo Kim and Pilsung Kim and Riccardo Bassiri and Kiran Prasai and Martin M. Fejer and Kyung-ha Lee", title = "\pkg{ePDFpy}: a {Python}-based interactive {GUI} tool for electron pair distribution function analysis of amorphous materials", journal = j-COMP-PHYS-COMM, volume = "299", number = "??", pages = "??--??", month = jun, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109137", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Mon May 6 07:51:16 MDT 2024", 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/S0010465524000602", acknowledgement = ack-nhfb, articleno = "109137", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Klein:2024:ROS, author = "Patrick S. Klein and Maximilian Schiffer", title = "{RoutingBlocks}: an Open-Source {Python} Package for Vehicle Routing Problems with Intermediate Stops", journal = j-INFORMS-J-COMPUT, volume = "36", number = "4", pages = "966--973", month = "Fall", year = "2024", CODEN = "????", DOI = "https://doi.org/10.1287/ijoc.2023.0104", ISSN = "1091-9856 (print), 1526-5528 (electronic)", ISSN-L = "1091-9856", bibdate = "Wed Sep 4 06:43:31 MDT 2024", 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.0104", acknowledgement = ack-nhfb, ajournal = "INFORMS J. Comput.", fjournal = "INFORMS Journal on Computing", journal-URL = "https://pubsonline.informs.org/journal/ijoc", onlinedate = "29 January 2024", } @Article{Klesk:2024:FEC, author = "Przemys{\l}aw Klesk", title = "\pkg{FastRealBoostBins}: an ensemble classifier for fast predictions implemented in {Python} via \pkg{numba.jit} and \pkg{numba.cuda}", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101644", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000153", acknowledgement = ack-nhfb, articleno = "101644", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Kubba:2024:ELR, author = "Abbas Kubba and Hafedh Trabelsi and Faouzi Derbel", title = "Enhanced Long-Range Network Performance of an Oil Pipeline Monitoring System Using a Hybrid Deep Extreme Learning Machine Model", journal = j-FUTURE-INTERNET, volume = "16", number = "11", pages = "425", day = "17", month = nov, year = "2024", CODEN = "????", DOI = "https://doi.org/10.3390/fi16110425", ISSN = "1999-5903", bibdate = "Sat Nov 30 05:39:07 MST 2024", 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/16/11/425", abstract = "Leak detection in oil and gas pipeline networks is a climacteric and frequent issue in the oil and gas field. Many establishments have long depended on stationary hardware or traditional assessments to monitor and detect abnormalities. Rapid technological progress; innovation in engineering; and advanced technologies providing cost-effective, rapidly executed, and easy to implement solutions lead to building an efficient oil pipeline leak detection and real-time monitoring system. In this area, wireless sensor networks (WSNs) are increasingly required to enhance the reliability of checkups and improve the accuracy of real-time oil pipeline monitoring systems with limited hardware resources. The real-time transient model (RTTM) is a leak detection method integrated with LoRaWAN technology, which is proposed in this study to implement a wireless oil pipeline network for long distances. This study will focus on enhancing the LoRa network parameters, e.g., node power consumption, average packet loss, and delay, by applying several machine learning techniques in order to optimize the durability of individual nodes' lifetimes and enhance total system performance. The proposed system is implemented in an OMNeT++ network simulator with several frameworks, such as Flora and Inet, to cover the LoRa network, which is used as the system's network infrastructure. In order to implement artificial intelligence over the FLoRa network, the LoRa network was integrated with several programming tools and libraries, such as Python script and the TensorFlow libraries. Several machine learning algorithms have been applied, such as the random forest (RF) algorithm and the deep extreme learning machine (DELM) technique, to develop the proposed model and improve the LoRa network's performance. They improved the LoRa network's output performance, e.g., its power consumption, packet loss, and packet delay, with different enhancement ratios. Finally, a hybrid deep extreme learning machine model was built and selected as the proposed model due to its ability to improve the LoRa network's performance, with perfect prediction accuracy, a mean square error of 0.75, and an exceptional enhancement ratio of 39\% for LoRa node power consumption.", acknowledgement = ack-nhfb, journal-URL = "https://www.mdpi.com/journal/futureinternet", } @Article{Lahdour:2024:EOP, author = "M. Lahdour and T. {El Bardouni} and O. {El Hajjaji} and J. {El Bakkali} and J. Al-Zain and S. Oulad-Belayachi and H. Ziani and Abdelghani Idrissi and S. El Maliki {El Hlaibi}", title = "\pkg{ERSN-OpenMC-Py}: a {Python}-based open-source software for {OpenMC} {Monte Carlo} code", journal = j-COMP-PHYS-COMM, volume = "299", number = "??", pages = "??--??", month = jun, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109121", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Mon May 6 07:51:16 MDT 2024", 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/S0010465524000444", acknowledgement = ack-nhfb, articleno = "109121", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Lang:2024:EPN, author = "Logan Lang and Pedram Tavadze and Andres Tellez and Eric Bousquet and He Xu and Francisco Mu{\~n}oz and Nicolas Vasquez and Uthpala Herath and Aldo H. Romero", title = "Expanding {PyProcar} for new features, maintainability, and reliability", journal = j-COMP-PHYS-COMM, volume = "297", number = "??", pages = "Article 109063", month = apr, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.109063", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Fri Feb 2 15:31:02 MST 2024", 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/S0010465523004083", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Lavanya:2024:ECM, author = "V. Lavanya and P. Chandra Sekhar", title = "Efficient Cybersecurity Model Using Wavelet Deep {CNN} and Enhanced Rain Optimization Algorithm", journal = j-INT-J-IMAGE-GRAPHICS, volume = "24", number = "04", pages = "??--??", month = jul, year = "2024", DOI = "https://doi.org/10.1142/S0219467824500487", ISSN = "0219-4678", ISSN-L = "0219-4678", bibdate = "Sat Oct 19 15:24:03 MDT 2024", 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/S0219467824500487", abstract = "Cybersecurity has received greater attention in modern times due to the emergence of IoT (Internet-of-Things) and CNs (Computer Networks). Because of the massive increase in Internet access, various malicious malware have emerged and pose significant computer security threats. The numerous computing processes across the network have a high risk of being tampered with or exploited, which necessitates developing effective intrusion detection systems. Therefore, it is essential to build an effective cybersecurity model to detect the different anomalies or cyber-attacks in the network. This work introduces a new method known as {\em Wavelet Deep Convolutional Neural Network (WDCNN)\/} to classify cyber-attacks. The presented network combines WDCNN with Enhanced Rain Optimization Algorithm (EROA) to minimize the loss in the network. This proposed algorithm is designed to detect attacks in large-scale data and reduces the complexities of detection with maximum detection accuracy. The proposed method is implemented in PYTHON. The classification process is completed with the help of the two most famous datasets, KDD cup 1999 and CICMalDroid 2020. The performance of WDCNN\_EROA can be assessed using parameters like specificity, accuracy, precision F-measure and recall. The results showed that the proposed method is about 98.72\% accurate for the first dataset and 98.64\% for the second dataset.", acknowledgement = ack-nhfb, articleno = "2450048", fjournal = "International Journal of Image and Graphics (IJIG)", journal-URL = "http://www.worldscientific.com/worldscinet/ijig", } @Article{LeClercq:2024:APP, author = "Louis-St{\'e}phane {Le Clercq}", title = "{ABCal}: a {Python} package for author bias computation and scientometric plotting for reviews and meta-analyses", journal = j-SCIENTOMETRICS, volume = "129", number = "1", pages = "581--600", month = jan, year = "2024", CODEN = "SCNTDX", DOI = "https://doi.org/10.1007/s11192-023-04880-6", ISSN = "0138-9130 (print), 1588-2861 (electronic)", ISSN-L = "0138-9130", bibdate = "Wed Feb 14 09:29:16 MST 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/scientometrics2020.bib", URL = "https://link.springer.com/article/10.1007/s11192-023-04880-6", acknowledgement = ack-nhfb, ajournal = "Scientometrics", fjournal = "Scientometrics", journal-URL = "http://link.springer.com/journal/11192", } @Article{Li:2024:NLR, author = "Bo Li and Haowei Quan and Jiawei Wang and Pei Liu and Haipeng Cai and Yuan Miao and Yun Yang and Li Li", title = "Neural Library Recommendation by Embedding Project-Library Knowledge Graph", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "6", pages = "1620--1638", month = jun, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2024.3393504", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Sat Aug 24 08:23:19 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "graph neural network; Graph neural networks; knowledge graph; Knowledge graphs; Libraries; Mobile applications; Python; recommendation; Software; Third-party library; Vectors", } @Article{Li:2024:PPV, author = "Chunfang Li and Yuchen Pei and Yushi Shen and Junli Lu and Yalv Fan and Xiaoyu Linghu and Yuanzhi Tian and Kun Wang", title = "\pkg{PyVisVue3D3}: {Python} visualization from hierarchy tree to call graph", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101689", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000608", acknowledgement = ack-nhfb, articleno = "101689", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Lin:2024:MPB, author = "Jian-Hao Lin and Yu-Juan Quan and Bo-Ping Han", title = "\pkg{MetaIBM}: a {Python}-based library for individual-based modelling of eco-evolutionary dynamics in spatial-explicit metacommunities", journal = j-ECOL-MODELL, volume = "492", number = "??", pages = "??--??", month = jun, year = "2024", CODEN = "ECMODT", DOI = "https://doi.org/10.1016/j.ecolmodel.2024.110730", ISSN = "0304-3800 (print), 1872-7026 (electronic)", ISSN-L = "0304-3800", bibdate = "Mon May 6 11:12:46 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ecolmodell2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S0304380024001182", acknowledgement = ack-nhfb, ajournal = "Ecol. Modell.", articleno = "110730", fjournal = "Ecological Modelling: International Journal on Ecological Modelling and Systems Ecology", journal-URL = "https://www.journals.elsevier.com/ecological-modelling", } @Article{Lopez-Fernandez:2024:BNP, author = "Aurelio L{\'o}pez-Fern{\'a}ndez and Francisco A. G{\'o}mez-Vela and Jorge Gonzalez-Dominguez and Parameshachari Bidare-Divakarachari", title = "\pkg{bioScience}: a new {Python} science library for high-performance computing bioinformatics analytics", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101666", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000372", acknowledgement = ack-nhfb, articleno = "101666", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Lopez:2024:DRA, author = "Alvaro Lorenzo Lopez and Ashley Morris and Owain Jones and Alexander B. Phillips and Francisco Mario Hern{\'a}ndez Tejera and Adrian Penate-Sanchez", title = "Developing a Reconfigurable Architecture for the Remote Operation of Marine Autonomous Systems", journal = j-IEEE-SOFTWARE, volume = "41", number = "4", pages = "160--170", month = apr, year = "2024", CODEN = "IESOEG", DOI = "https://doi.org/10.1109/MS.2023.3317065", ISSN = "0740-7459 (print), 1937-4194 (electronic)", ISSN-L = "0740-7459", bibdate = "Tue Oct 15 14:23:25 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeesoft2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, ajournal = "IEEE Softw.", fjournal = "IEEE Software", journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=52", keywords = "Autonomous robots; Autonomous vehicles; Logic gates; Marine technology; Microservice architectures; Oceanography; Performance evaluation; Python; Reconfigurable architectures; Remote handling equipment; Robots; Software architecture; Web services", } @Article{Manzano:2024:TPP, author = "Mart{\'\i} Manzano and Claudia Ayala and Cristina G{\'o}mez", title = "\pkg{TrustML}: a {Python} package for computing the trustworthiness of {ML} models", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101740", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001110", acknowledgement = ack-nhfb, articleno = "101740", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Maurer:2024:PPT, author = "Valentin J. Maurer and Marc Siggel and Jan Kosinski", title = "\pkg{PyTME} ({Python Template Matching Engine}): a fast, flexible, and multi-purpose template matching library for cryogenic electron microscopy data", journal = j-SOFTWAREX, volume = "25", number = "??", pages = "??--??", month = feb, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101636", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000074", acknowledgement = ack-nhfb, articleno = "101636", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Mejia-Domenzain:2024:ASC, author = "Lorena Mejia-Domenzain and Jinhao Chen and Christopher Lourenco and Erick Moreno-Centeno and Timothy A. Davis", title = "{Algorithm 1050}: {SPEX} {Cholesky}, {LDL}, and {Backslash} for Exactly Solving Sparse Linear Systems", journal = j-TOMS, volume = "50", number = "4", pages = "25:1--25:??", month = dec, year = "2024", CODEN = "ACMSCU", DOI = "https://doi.org/10.1145/3700592", ISSN = "0098-3500 (print), 1557-7295 (electronic)", ISSN-L = "0098-3500", bibdate = "Sat Dec 14 17:48:45 MST 2024", 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/3700592", abstract = "SPEX Cholesky, SPEX LDL, and SPEX Backslash are software packages for exactly solving sparse linear systems, $ A \mathbf {x} = \mathbf {b} $. SPEX Cholesky, used for symmetric positive definite (SPD) systems, computes an integral Cholesky factorization to solve the system in time proportional to arithmetic work --- to date the only algorithm for SPD linear systems with this property. SPEX LDL extends SPEX Cholesky for symmetric negative definite and symmetric indefinite matrices with exclusively non-zero leading principal minors. SPEX Backslash is a general-purpose exact solver that automatically determines the best ordering and factorization to exactly solve the system. Computationally, we test the accuracy of MATLAB sparse backslash, the state-of-the-art collection of sparse matrix solvers, revealing it is near perfect for 87\% of the tested instances. In addition, we show that SPEX Cholesky outperforms alternate exact solvers in runtime; specifically, SPEX Cholesky outperforms the exact solver Linbox and exact LU factorization on 70\% and 92\% of tested instances, respectively. Each of SPEX Cholesky, SPEX LDL, and SPEX Backslash is implemented in C and is accompanied by easy-to-use Python and MATLAB interfaces. They are distributed via GitHub, as a component of the SPEX software package, and as component of SuiteSparse.", acknowledgement = ack-nhfb, ajournal = "ACM Trans. Math. Softw.", articleno = "25", fjournal = "ACM Transactions on Mathematical Software (TOMS)", journal-URL = "https://dl.acm.org/loi/toms", } @Article{Mitura:2024:MIC, author = "Jakub Mitura and Beata E. Chrapko and Oliwia Bachanek-Mitura", title = "\pkg{MedVoxelHD}: Improved {CUDA-accelerated} morphological {Hausdorff} distances in medical image analysis", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101744", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001158", acknowledgement = ack-nhfb, articleno = "101744", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Molner:2024:SPB, author = "Antonio Molner and Francisco Carrillo-Perez and Alberto Guill{\'e}n", title = "\pkg{SnapperML}: a {Python}-based framework to improve machine learning operations", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101648", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000190", acknowledgement = ack-nhfb, articleno = "101648", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Natella:2024:ACG, author = "Roberto Natella and Pietro Liguori and Cristina Improta and Bojan Cukic and Domenico Cotroneo", title = "{AI} Code Generators for Security: Friend or Foe?", journal = j-IEEE-SEC-PRIV, volume = "22", number = "5", pages = "73--81", month = sep # "\slash " # oct, year = "2024", DOI = "https://doi.org/10.1109/MSEC.2024.3355713", ISSN = "1540-7993 (print), 1558-4046 (electronic)", ISSN-L = "1540-7993", bibdate = "Sat Sep 21 07:05:53 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeesecpriv.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, fjournal = "IEEE Security \& Privacy", journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=8013", keywords = "Artificial intelligence; Benchmark testing; Codes; Computer security; Large language models; Natural languages; Performance evaluation; Python; Security; Writing", } @Article{Nazarov:2024:HLG, author = "N. A. Nazarov and V. V. Terekhov", title = "High level {GPU}-accelerated {$2$D} {PIV} framework in {Python}", journal = j-COMP-PHYS-COMM, volume = "295", number = "??", pages = "Article 109009", month = feb, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.109009", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Thu Dec 21 14:15:33 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/S0010465523003545", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Pandey:2024:PND, author = "Prakash Pandey and Sudhir K. Pandey", title = "\pkg{PH-NODE}: a {DFPT} and finite displacement supercell based {Python} code for searching nodes in topological phononic materials", journal = j-COMP-PHYS-COMM, volume = "303", number = "??", pages = "??--??", month = oct, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109281", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Wed Aug 7 06:48:28 MDT 2024", 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/S0010465524002042", acknowledgement = ack-nhfb, articleno = "109281", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Pinon:2024:BRH, author = "Adelson Pi{\~n}{\'o}n", title = "Book Review: {{\booktitle{Handbook of Regression Modeling in People Analytics, With Examples in R and Python}}, by Keith McNulty, 1st edition, CRC Press. 2021. 255 pp. ISBN: 978-1-032-04174-2, \pounds 59.99 (hbk)}", journal = j-J-R-STAT-SOC-SER-A-STAT-SOC, volume = "187", number = "2", pages = "544--545", month = apr, year = "2024", CODEN = "JSSAEF", DOI = "https://doi.org/10.1093/jrsssa/qnad116", ISSN = "0964-1998 (print), 1467-985X (electronic)", ISSN-L = "0964-1998", bibdate = "Tue Apr 23 08:47:43 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/jrss-a-2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/s-plus.bib", URL = "http://academic.oup.com/jrsssa/article/187/2/544/7256154", acknowledgement = ack-nhfb, fjournal = "Journal of the Royal Statistical Society. Series A (Statistics in Society)", journal-URL = "https://academic.oup.com/jrsssa/; http://www.jstor.org/journals/09641998.html", } @Article{Pinon:2024:HRM, author = "Adelson Pi{\~n}{\'o}n", title = "Handbook of Regression Modeling in People Analytics, With Examples in {R} and {Python}", journal = j-J-R-STAT-SOC-SER-A-STAT-SOC, volume = "187", number = "2", pages = "544--545", month = apr, year = "2024", CODEN = "JSSAEF", DOI = "https://doi.org/10.1093/jrsssa/qnad116", ISSN = "0964-1998 (print), 1467-985X (electronic)", ISSN-L = "0964-1998", bibdate = "Tue Apr 23 08:47:43 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/jrss-a-2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib; https://www.math.utah.edu/pub/tex/bib/s-plus.bib", URL = "http://academic.oup.com/jrsssa/article/187/2/544/7256154", acknowledgement = ack-nhfb, fjournal = "Journal of the Royal Statistical Society. Series A (Statistics in Society)", journal-URL = "https://academic.oup.com/jrsssa/; http://www.jstor.org/journals/09641998.html", } @Article{Podgorski:2024:BRG, author = "Krzysztof Podg{\'o}rski", title = "Book Review: {{\booktitle{-Geographic Data Science With Python}}, Sergio Rey, Dani Arribas-Bel, Levi John Wolf CRC Press, 2023, xiv + 410 pages, 119 Color \& 4 B/W Illustrations, \pounds 39.19\slash \$89.95, paperback ISBN: 978-1-032-44595-3 (pbk)}", journal = j-INT-STAT-REV, volume = "92", number = "1", pages = "134--135", month = apr, year = "2024", CODEN = "ISTRDP", DOI = "https://doi.org/10.1111/insr.12569", ISSN = "0306-7734 (print), 1751-5823 (electronic)", ISSN-L = "0306-7734", bibdate = "Tue May 28 13:00:02 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/intstatrev.bib; https://www.math.utah.edu/pub/tex/bib/python.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 = "28 February 2024", } @Article{Potvliege:2024:MCP, author = "R. M. Potvliege", title = "\pkg{mqdtfit}: a collection of {Python} functions for empirical multichannel quantum defect calculations", journal = j-COMP-PHYS-COMM, volume = "300", number = "??", pages = "??--??", month = jul, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109172", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Mon May 6 07:51:16 MDT 2024", 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/S001046552400095X", acknowledgement = ack-nhfb, articleno = "109172", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Rak-amnouykit:2024:PPS, author = "Ingkarat Rak-amnouykit and Ana Milanova and Guillaume Baudart and Martin Hirzel and Julian Dolby", title = "Principled and practical static analysis for {Python}: {Weakest} precondition inference of hyperparameter constraints", journal = j-SPE, volume = "54", number = "3", pages = "363--393", month = mar, year = "2024", CODEN = "SPEXBL", DOI = "https://doi.org/10.1002/spe.3279", ISSN = "0038-0644 (print), 1097-024X (electronic)", ISSN-L = "0038-0644", bibdate = "Fri May 24 08:43:49 MDT 2024", 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 = "22 November 2023", } @Article{Reyes:2024:SPL, author = "Axel Reyes and Marcelo Mendoza and Camila Vera and Francesca Lucchini and Jan Dimter and Felipe Guti{\'e}rrez and Naim Bro and Hans Lobel and Ariel Reyes", title = "\pkg{SpatialCluster}: a {Python} library for urban clustering", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101739", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001109", acknowledgement = ack-nhfb, articleno = "101739", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Shalabh:2024:AUB, author = "Shalabh", title = "Applied Univariate, Bivariate, and Multivariate Statistics Using {Python}: a {Beginner}'s Guide to Advanced Data Analysis", journal = j-J-R-STAT-SOC-SER-A-STAT-SOC, volume = "187", number = "2", pages = "548--548", month = apr, year = "2024", CODEN = "JSSAEF", DOI = "https://doi.org/10.1093/jrsssa/qnad122", ISSN = "0964-1998 (print), 1467-985X (electronic)", ISSN-L = "0964-1998", bibdate = "Tue Apr 23 08:47:43 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/jrss-a-2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://academic.oup.com/jrsssa/article/187/2/548/7282112", acknowledgement = ack-nhfb, fjournal = "Journal of the Royal Statistical Society. Series A (Statistics in Society)", journal-URL = "https://academic.oup.com/jrsssa/; http://www.jstor.org/journals/09641998.html", } @Article{Shalabh:2024:BRA, author = "Shalabh", title = "Book Review: {{\booktitle{Applied Univariate, Bivariate, and Multivariate Statistics Using Python: a Beginner's Guide to Advanced Data Analysis}}, by Daniel J. Denis, Wiley. 2021. 278 + xx pp. \pounds 89.99 (hard cover). ISBN 978-1-119-57814-7}", journal = j-J-R-STAT-SOC-SER-A-STAT-SOC, volume = "187", number = "2", pages = "548--548", month = apr, year = "2024", CODEN = "JSSAEF", DOI = "https://doi.org/10.1093/jrsssa/qnad122", ISSN = "0964-1998 (print), 1467-985X (electronic)", ISSN-L = "0964-1998", bibdate = "Sat Oct 12 10:04:53 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/jrss-a-2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://academic.oup.com/jrsssa/article/187/2/548/7282112", acknowledgement = ack-nhfb, fjournal = "Journal of the Royal Statistical Society. Series A (Statistics in Society)", journal-URL = "https://academic.oup.com/jrsssa/; http://www.jstor.org/journals/09641998.html", } @Article{Sharma:2024:HDM, author = "Pankajeshwara Nand Sharma and Bastin Tony Roy Savarimuthu and Nigel Stanger", title = "How are decisions made in open source software communities? --- {Uncovering} rationale from {Python} email repositories", journal = j-J-SOFTW-EVOL-PROC, volume = "36", number = "4", pages = "e2526:1--e2526:??", month = apr, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1002/smr.2526", ISSN = "2047-7473 (print), 2047-7481 (electronic)", ISSN-L = "2047-7473", bibdate = "Sat May 25 07:47:43 MDT 2024", 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 = "26 January 2023", } @Article{Sheikh-Mohammad-Zadeh:2024:SPG, author = "Abbas Sheikh-Mohammad-Zadeh and Nicolas Saunier and E. O. D. Waygood", title = "\pkg{STUDIO}: a {Python} graphical tool for analyzing street user observations from video data", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101742", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001134", acknowledgement = ack-nhfb, articleno = "101742", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Singh:2024:PIW, author = "Nitig Singh and Vaibhav Tyagi and Saurabh Das and Udaya Kumar Sahoo and Shyam Sundar Kundu", title = "{Python Indian Weather Radar Toolkit (pyiwr)}: an open-source {Python} library for processing, analyzing and visualizing weather radar data", journal = j-J-COMPUT-SCI, volume = "81", number = "??", pages = "??--??", month = sep, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.jocs.2024.102363", ISSN = "1877-7503 (print), 1877-7511 (electronic)", ISSN-L = "1877-7503", bibdate = "Wed Aug 28 10:41:44 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/jcomputsci.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S187775032400156X", acknowledgement = ack-nhfb, ajournal = "J. Comput. Sci.", articleno = "102363", fjournal = "Journal of Computational Science", journal-URL = "https://www.sciencedirect.com/journal/journal-of-computational-science", } @Article{Sisniega:2024:FOS, author = "Jaime C{\'e}spedes Sisniega and {\'A}lvaro L{\'o}pez Garc{\'\i}a", title = "\pkg{Frouros}: an open-source {Python} library for drift detection in machine learning systems", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101733", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024001043", acknowledgement = ack-nhfb, articleno = "101733", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Spinellis:2024:EDP, author = "Diomidis Spinellis", title = "Engineering Data Processing Workflows", journal = j-IEEE-SOFTWARE, volume = "41", number = "4", pages = "25--29", month = apr, year = "2024", CODEN = "IESOEG", DOI = "https://doi.org/10.1109/MS.2024.3385665", ISSN = "0740-7459 (print), 1937-4194 (electronic)", ISSN-L = "0740-7459", bibdate = "Tue Oct 15 14:23:25 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ieeesoft2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", acknowledgement = ack-nhfb, ajournal = "IEEE Softw.", fjournal = "IEEE Software", journal-URL = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=52", keywords = "Best practices; Codes; Data analysis; Data processing; Machine learning; Metadata; Monitoring; Object recognition; Performance evaluation; Prototypes; Python; Software tools; Workflow management software", } @Article{Terezol:2024:OPP, author = "Morgane T{\'e}r{\'e}zol and Ana{\"\i}s Baudot and Ozan Ozisik", title = "\pkg{ODAMNet}: a {Python} package to identify molecular relationships between chemicals and rare diseases using overlap, active module and random walk approaches", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101701", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000724", acknowledgement = ack-nhfb, articleno = "101701", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Thieu:2024:FSU, author = "Nguyen Van Thieu and Ngoc Hung Nguyen and Ali Asghar Heidari", title = "Feature selection using metaheuristics made easy: Open source {MAFESE} library in {Python}", journal = j-FUT-GEN-COMP-SYS, volume = "160", number = "??", pages = "340--358", month = nov, year = "2024", CODEN = "FGSEVI", DOI = "https://doi.org/10.1016/j.future.2024.06.006", ISSN = "0167-739X (print), 1872-7115 (electronic)", ISSN-L = "0167-739X", bibdate = "Mon Aug 12 06:41:13 MDT 2024", 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/S0167739X24003030", acknowledgement = ack-nhfb, fjournal = "Future Generation Computer Systems", journal-URL = "http://www.sciencedirect.com/science/journal/0167739X", } @Article{Vitturi:2024:EPO, author = "Mattia de' Michieli Vitturi and Andrea Bevilacqua and Alessandro Tadini and Augusto Neri", title = "\pkg{ELICIPY} 1.0: a {Python} online tool for expert elicitation", journal = j-SOFTWAREX, volume = "25", number = "??", pages = "??--??", month = feb, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101641", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000128", acknowledgement = ack-nhfb, articleno = "101641", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Wallin:2024:BRI, author = "Gabriel Wallin", title = "Book Review: {{\booktitle{An Introduction to R and Python for Data Analysis: A Side-by-Side Approach}}, Taylor R. Brown. Boca Raton, FL: Chapman \& Hall\slash CRC Press, 2023, xix + 246 pp., \$99.95(H), ISBN: 978-1-032-20325-6}.", journal = j-AMER-STAT, volume = "78", number = "2", pages = "265--265", year = "2024", CODEN = "ASTAAJ", DOI = "https://doi.org/10.1080/00031305.2024.2320949", ISSN = "0003-1305 (print), 1537-2731 (electronic)", ISSN-L = "0003-1305", bibdate = "Wed Aug 14 09:33:36 MDT 2024", bibsource = "http://www.tandfonline.com/toc/utas20/78/2; https://www.math.utah.edu/pub/tex/bib/amstat2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.tandfonline.com/doi/full/10.1080/00031305.2024.2320949", acknowledgement = ack-nhfb, fjournal = "The American Statistician", journal-URL = "http://amstat.tandfonline.com/loi/utas20", } @Article{Wanzenbock:2024:CFS, author = "Ralf Wanzenb{\"o}ck and Florian Buchner and P{\'e}ter Kov{\'a}cs and Georg K. H. Madsen and Jes{\'u}s Carrete", title = "{Clinamen2}: Functional-style evolutionary optimization in {Python} for atomistic structure searches", journal = j-COMP-PHYS-COMM, volume = "297", number = "??", pages = "Article 109065", month = apr, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2023.109065", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Fri Feb 2 15:31:02 MST 2024", 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/S0010465523004101", acknowledgement = ack-nhfb, fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Weber:2024:EJM, author = "Thomas Weber and Janina Ehe and Sven Mayer", title = "Extending {Jupyter} with Multi-Paradigm Editors", journal = j-PACMHCI, volume = "8", number = "EICS", pages = "245:1--245:??", month = jun, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1145/3660247", ISSN = "2573-0142 (electronic)", ISSN-L = "2573-0142", bibdate = "Mon Oct 21 07:30:53 MDT 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/pacmhci.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://dl.acm.org/doi/10.1145/3660247", abstract = "Computational notebooks like the Jupyter programming environment have been popular, particularly for developing data-driven applications. One of its main benefits is that it easily supports different programming languages with exchangeable kernels. Thus, \ldots{}", acknowledgement = ack-nhfb, articleno = "245", fjournal = "Proceedings of the ACM on Human-Computer Interaction (PACMHCI)", journal-URL = "https://dl.acm.org/loi/pacmhci", } @Article{Wieckowski:2024:VPP, author = "Jakub Wieckowski and Wojciech Sa{\l}abun", title = "Version [1.1]-[\pkg{pyFDM}: a {Python} library for uncertainty decision analysis methods]", journal = j-SOFTWAREX, volume = "25", number = "??", pages = "??--??", month = feb, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2023.101607", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711023003035", acknowledgement = ack-nhfb, articleno = "101607", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Wimmler:2024:HRG, author = "Marie-Christin Wimmler and Uta Berger", title = "How root-grafted trees form networks: Modeling network dynamics with {pyNET}", journal = j-ECOL-MODELL, volume = "498", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "ECMODT", DOI = "https://doi.org/10.1016/j.ecolmodel.2024.110916", ISSN = "0304-3800 (print), 1872-7026 (electronic)", ISSN-L = "0304-3800", bibdate = "Wed Nov 6 08:53:16 MST 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/ecolmodell2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "http://www.sciencedirect.com/science/article/pii/S0304380024003041", acknowledgement = ack-nhfb, ajournal = "Ecol. Modell.", articleno = "110916", fjournal = "Ecological Modelling: International Journal on Ecological Modelling and Systems Ecology", journal-URL = "https://www.journals.elsevier.com/ecological-modelling", } @Article{Xu:2024:MUI, author = "Xiaoyan Xu and Filipe R. Cogo and Shane McIntosh", title = "Mitigating the Uncertainty and Imprecision of Log-Based Code Coverage Without Requiring Additional Logging Statements", journal = j-IEEE-TRANS-SOFTW-ENG, volume = "50", number = "9", pages = "2350--2362", month = sep, year = "2024", CODEN = "IESEDJ", DOI = "https://doi.org/10.1109/TSE.2024.3435067", ISSN = "0098-5589 (print), 1939-3520 (electronic)", ISSN-L = "0098-5589", bibdate = "Wed Oct 23 14:46:33 2024", 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 = "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32", keywords = "code coverage; Codes; Instruments; Python; Runtime; Software; software logging; Source coding; Static analysis; Uncertainty", } @Article{Xu:2024:PPP, author = "Siyuan Xu and Zheng Liu and Xun Xu and Yuzheng Guo and Su-Huai Wei and Xie Zhang", title = "\pkg{PyArc}: a {Python} package for computing absorption and radiative coefficients from first principles", journal = j-COMP-PHYS-COMM, volume = "305", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109352", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Wed Sep 11 14:54:24 MDT 2024", 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/S0010465524002753", acknowledgement = ack-nhfb, articleno = "109352", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Xu:2024:PUF, author = "Yumeng Xu and Shubhanshu Tiwari and Marco Drago", title = "\pkg{PycWB}: a user-friendly, modular, and {Python}-based framework for gravitational wave unmodelled search", journal = j-SOFTWAREX, volume = "26", number = "??", pages = "??--??", month = may, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1016/j.softx.2024.101639", ISSN = "2352-7110", ISSN-L = "2352-7110", bibdate = "Wed May 29 07:44:49 MDT 2024", 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/S2352711024000104", acknowledgement = ack-nhfb, articleno = "101639", fjournal = "SoftwareX", journal-URL = "https://www.sciencedirect.com/journal/softwarex/issues", } @Article{Zhang:2024:PMJ, author = "Qiang Zhang and Lei Xu and Baowen Xu", title = "{Python} meets {JIT} compilers: a simple implementation and a comparative evaluation", journal = j-SPE, volume = "54", number = "2", pages = "225--256", month = feb, year = "2024", CODEN = "SPEXBL", DOI = "https://doi.org/10.1002/spe.3267", ISSN = "0038-0644 (print), 1097-024X (electronic)", ISSN-L = "0038-0644", bibdate = "Sat Feb 3 11:19:12 MST 2024", 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 September 2023", } @Article{Zhang:2024:PRB, author = "Jialu Zhang and Jos{\'e} Pablo Cambronero and Sumit Gulwani and Vu Le and Ruzica Piskac and Gustavo Soares and Gust Verbruggen", title = "{PyDex}: Repairing Bugs in Introductory {Python} Assignments using {LLMs}", journal = j-PACMPL, volume = "8", number = "OOPSLA1", pages = "133:1--133:??", month = apr, year = "2024", CODEN = "????", DOI = "https://doi.org/10.1145/3649850", ISSN = "2475-1421 (electronic)", ISSN-L = "2475-1421", bibdate = "Fri May 10 10:23:37 MDT 2024", 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/3649850", abstract = "Students often make mistakes in their introductory programming assignments as part of their learning process. Unfortunately, providing \ldots{}", acknowledgement = ack-nhfb, ajournal = "Proc. ACM Program. Lang.", articleno = "133", fjournal = "Proceedings of the ACM on Programming Languages (PACMPL)", journal-URL = "https://dl.acm.org/loi/pacmpl", } @Article{Zhemchugov:2024:LCP, author = "E. V. Zhemchugov and S. I. Godunov and E. K. Karkaryan and V. A. Novikov and A. N. Rozanov and M. I. Vysotsky", title = "\pkg{libepa} --- A {C++\slash Python} library for calculations of cross sections of ultraperipheral collisions", journal = j-COMP-PHYS-COMM, volume = "305", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109347", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Wed Sep 11 14:54:24 MDT 2024", 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/S0010465524002704", acknowledgement = ack-nhfb, articleno = "109347", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Zhu:2024:JOS, author = "Junyan Zhu and Jiang Cao and Chen Song and Bo Li and Zhengsheng Han", title = "\pkg{Jiezi}: an open-source {Python} software for simulating quantum transport based on non-equilibrium {Green}'s function formalism", journal = j-COMP-PHYS-COMM, volume = "302", number = "??", pages = "??--??", month = sep, year = "2024", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109251", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Mon Jun 10 06:56:34 MDT 2024", 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/S0010465524001747", acknowledgement = ack-nhfb, articleno = "109251", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Zong:2024:GNG, author = "Xing Zong and Shang Zheng and Haitao Zou and Hualong Yu and Shang Gao", title = "{GraphPyRec}: a novel graph-based approach for fine-grained {Python} code recommendation", journal = j-SCI-COMPUT-PROGRAM, volume = "238", number = "??", pages = "??--??", month = dec, year = "2024", CODEN = "SCPGD4", DOI = "https://doi.org/10.1016/j.scico.2024.103166", ISSN = "0167-6423 (print), 1872-7964 (electronic)", ISSN-L = "0167-6423", bibdate = "Tue Aug 27 08:33:19 MDT 2024", 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/S0167642324000893", acknowledgement = ack-nhfb, articleno = "103166", fjournal = "Science of Computer Programming", journal-URL = "http://www.sciencedirect.com/science/journal/01676423", } @Article{Cheng:2025:TPP, author = "Sibo Cheng and Jinyang Min and Che Liu and Rossella Arcucci", title = "{TorchDA}: a {Python} package for performing data assimilation with deep learning forward and transformation functions", journal = j-COMP-PHYS-COMM, volume = "306", number = "??", pages = "??--??", month = jan, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109359", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Thu Nov 7 15:34:59 MST 2024", 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/S0010465524002820", acknowledgement = ack-nhfb, articleno = "109359", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Daniluk:2025:PCS, author = "Andrzej Daniluk and Bart{\l}omiej Daniluk and Grzegorz M. W{\'o}jcik", title = "A {Python} code for simulations of {RHEED} intensity oscillations within the one-dimensional dynamical approximation", journal = j-COMP-PHYS-COMM, volume = "308", number = "??", pages = "??--??", month = mar, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109467", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Tue Dec 31 12:14:09 MST 2024", 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/S0010465524003904", acknowledgement = ack-nhfb, articleno = "109467", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Eiximeno:2025:PHO, author = "Benet Eiximeno and Arnau Mir{\'o} and Beka Begiashvili and Eusebio Valero and Ivette Rodriguez and Oriol Lehmkhul", title = "\pkg{PyLOM}: a {HPC} open source reduced order model suite for fluid dynamics applications", journal = j-COMP-PHYS-COMM, volume = "308", number = "??", pages = "??--??", month = mar, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109459", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Tue Dec 31 12:14:09 MST 2024", 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/S0010465524003825", acknowledgement = ack-nhfb, articleno = "109459", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Harlander:2025:FCG, author = "Robert V. Harlander and Theodoros Nellopoulos and Anton Olsson and Marius Wesle", title = "\pkg{ftint}: Calculating gradient-flow integrals with {pySecDec}", journal = j-COMP-PHYS-COMM, volume = "306", number = "??", pages = "??--??", month = jan, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109384", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Thu Nov 7 15:34:59 MST 2024", 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/S0010465524003072", acknowledgement = ack-nhfb, articleno = "109384", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Kasiraju:2025:PTP, author = "Sashank Kasiraju and Yifan Wang and Saurabh Bhandari and Aayush R. Singh and Dionisios G. Vlachos", title = "A {Python} tool for parameter estimation of ``black box'' macro- and micro-kinetic models with {Bayesian} optimization --- {petBOA}", journal = j-COMP-PHYS-COMM, volume = "306", number = "??", pages = "??--??", month = jan, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109358", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Thu Nov 7 15:34:59 MST 2024", 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/S0010465524002819", acknowledgement = ack-nhfb, articleno = "109358", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Magalhaes:2025:IVP, author = "Tiago E. C. Magalh{\~a}es", title = "An improved version of {PyWolf} with multithread-based parallelism support", journal = j-COMP-PHYS-COMM, volume = "307", number = "??", pages = "??--??", month = feb, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109431", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Fri Dec 6 05:59:54 MST 2024", 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/S0010465524003540", acknowledgement = ack-nhfb, articleno = "109431", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @Article{Mechri:2025:SLL, author = "Abdechakour Mechri and Mohamed Amine Ferrag and Merouane Debbah", title = "{SecureQwen}: Leveraging {LLMs} for vulnerability detection in {Python} codebases", journal = j-COMPUT-SECUR, volume = "148", number = "??", pages = "??--??", month = jan, year = "2025", CODEN = "CPSEDU", DOI = "https://doi.org/10.1016/j.cose.2024.104151", ISSN = "0167-4048 (print), 1872-6208 (electronic)", ISSN-L = "0167-4048", bibdate = "Sat Dec 7 15:07:59 MST 2024", bibsource = "https://www.math.utah.edu/pub/tex/bib/computsecur2020.bib; https://www.math.utah.edu/pub/tex/bib/python.bib", URL = "https://www.sciencedirect.com/science/article/pii/S0167404824004565", acknowledgement = ack-nhfb, articleno = "104151", fjournal = "Computers \& Security", journal-URL = "http://www.sciencedirect.com/science/journal/01674048", } @Article{Tran:2025:DSL, author = "Hoai-Chau Tran and Anh-Duy Tran and Kim-Hung Le", title = "{DetectVul}: a statement-level code vulnerability detection for {Python}", journal = j-FUT-GEN-COMP-SYS, volume = "163", number = "??", pages = "??--??", month = feb, year = "2025", CODEN = "FGSEVI", DOI = "https://doi.org/10.1016/j.future.2024.107504", ISSN = "0167-739X (print), 1872-7115 (electronic)", ISSN-L = "0167-739X", bibdate = "Wed Nov 27 08:13:40 MST 2024", 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/S0167739X24004680", acknowledgement = ack-nhfb, articleno = "107504", fjournal = "Future Generation Computer Systems", journal-URL = "http://www.sciencedirect.com/science/journal/0167739X", } @Article{Wang:2025:PAW, author = "Yuxuan Wang and Kerui Lai and Guoqiang Lan and Jun Song", title = "{Ph3pyWF}: an automated workflow software package for ceramic lattice thermal conductivity calculation", journal = j-COMP-PHYS-COMM, volume = "307", number = "??", pages = "??--??", month = feb, year = "2025", CODEN = "CPHCBZ", DOI = "https://doi.org/10.1016/j.cpc.2024.109441", ISSN = "0010-4655 (print), 1879-2944 (electronic)", ISSN-L = "0010-4655", bibdate = "Fri Dec 6 05:59:54 MST 2024", 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/S0010465524003643", acknowledgement = ack-nhfb, articleno = "109441", fjournal = "Computer Physics Communications", journal-URL = "http://www.sciencedirect.com/science/journal/00104655", } @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: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, }