skip to main content
10.1145/3079368.3079409acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

The Act of Computer Programming in Science

Authors Info & Claims
Published:03 April 2017Publication History

ABSTRACT

Classically, computers have been used as knowledge discovery tools insofar as the result of executing a program provides useful insight. For instance, the solution of a differential equation may help us understand the natural world, the value of a parameter of a statistical model may help us understand the probabilistic structure of a domain, the variable assignment maximising an objective function may help to further business goals. A secondary class of knowledge discovery stems from the act of using a programming language. By modeling a domain computationally, the developer can discover new and interesting properties of that domain, and better convey those insights to others. The purpose of this work is twofold: First, we want to show that programming languages can help their users achieve knowledge discovery moments and, secondly, that this property is the least exploited feature of programming languages in the general science community. We want to outline a research program with the objective of making scientific programming more efficient in its ultimate goal of knowledge discovery.

References

  1. Y. Achdou, J. Han, J.-M. Lasry, P.-L. Lions, and B. Moll. Heterogeneous agent models in continuous time. Preprint, 2014. URL http://www.princeton.edu/~moll/HACT.pdf.Google ScholarGoogle Scholar
  2. V. Arnaoudova, M. Di Penta, and G. Antoniol. Linguistic antipatterns: What they are and how developers perceive them. Empirical Software Engineering, 21(1):104--158, 2016. URL http://link.springer.com/article/10.1007/s10664-014-9350-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Barthes. Elements of Semiology. Hill and Wang, reissue edition, Apr. 1977. ISBN 0-374-52146-8.Google ScholarGoogle Scholar
  4. K. Beck. Smalltalk Best Practice Patterns. Volume 1: Coding. Prentice Hall, Englewood Cliffs, NJ, 1997. URL https://raw.githubusercontent.com/anapata/reading/master/chapter14/Draft-Smalltalk%20Best%20Practice%20Paterns%20Kent%20Beck.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Berlinet and C. Thomas-Agnan. Reproducing kernel Hilbert spaces in probability and statistics. Springer Science & Business Media, 2011. URL https://books.google.com/books?hl=en&lr=&id=bX3TBwAAQBAJ&oi=fnd&pg=PP11&dq=Reproducing+Kernel+Hilbert+Spaces+in+Probability+and+Statistics&ots=jU3hW31AC8&sig=Ta5-9bNtMXx-0-jCoN5DfXSeqOE.Google ScholarGoogle Scholar
  6. Bokeh Development Team. Bokeh: Python library for interactive visualization, 2014. URL http://www.bokeh.pydata.org.Google ScholarGoogle Scholar
  7. E. Bonabeau. Agent-based modeling: Methods and techniques for simulating human systems. Proceedings of the National Academy of Sciences, 99(suppl 3):7280--7287, 2002. URL http://www.pnas.org/content/99/suppl_3/7280.short.Google ScholarGoogle ScholarCross RefCross Ref
  8. S. Butler, M. Wermelinger, Y. Yu, and H. Sharp. Relating identifier naming flaws and code quality: An empirical study. In 2009 16th Working Conference on Reverse Engineering, pages 31--35. IEEE, 2009. URL http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5328661. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Caniglia. Homological Smalltalk Algebra. In ESUG, Brescia at the Università Cattolica, Italy, July 2015.Google ScholarGoogle Scholar
  10. F. De Saussure. Nature of the linguistic sign. Course in general linguistics, pages 65--70, 1916. URL https://www.homeworkmarket.com/sites/default/files/q2/02/04/making_sense_of_language_ch_2.pdf.Google ScholarGoogle Scholar
  11. E. W. Dijkstra. The humble programmer. Communications of the ACM, 15(10):859--866, 1972. URL http://dl.acm.org/citation.cfm?id=361591. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Erwig and E. Walkingshaw. Semantics-driven DSL design. Computational Linguistics: Concepts, Methodologies, Tools, and Applications, page 251, 2014. URL https://books.google.com/books?hl=en&lr=&id=EhOXBQAAQBAJ&oi=fnd&pg=PA251&dq=Semantics-Driven+DSL+Design&ots=vMe53Xh3D6&sig=2U-UCfRgSwbLAWA5w9CSnu2h5r0.Google ScholarGoogle Scholar
  13. M. Foucault. Les mots et les choses: une archéologie des sciences humaines. Gallimard, 1966.Google ScholarGoogle Scholar
  14. G. Frege, P. T. Geach, and M. Black. On Concept and Object. Mind, 60(238):168--180, 1951. ISSN 0026-4423. URL http://www.jstor.org/stable/2251430.Google ScholarGoogle Scholar
  15. A. Gelman, D. Lee, and J. Guo. Stan a probabilistic programming language for Bayesian inference and optimization. Journal of Educational and Behavioral Statistics, page 1076998615606113, 2015. URL http://jeb.sagepub.com/content/early/2015/10/09/1076998615606113.abstract.Google ScholarGoogle Scholar
  16. A. J. Goldberg. SMALLTALK-80: the interactive programming environment. 1984. URL http://cumincad.scix.net/cgi-bin/works/Show?61be. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. E. P. Goldenberg. Logo-A cultural glossary. Byte, 7(8):210, 1982.Google ScholarGoogle Scholar
  18. N. D. Goodman and A. Stuhlmüller. The Design and Implementation of Probabilistic Programming Languages. http://dippl.org, 2014. Accessed: 2017-1-16.Google ScholarGoogle Scholar
  19. A. D. Gordon, T. A. Henzinger, A. V. Nori, and S. K. Rajamani. Probabilistic programming. In Proceedings of the on Future of Software Engineering, pages 167--181. ACM, 2014. URL http://dl.acm.org/citation.cfm?id=2593900. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. V. Grimm, U. Berger, F. Bastiansen, S. Eliassen, V. Ginot, J. Giske, J. Goss-Custard, T. Grand, S. K. Heinz, G. Huse, and others. A standard protocol for describing individual-based and agent-based models. Ecological modelling, 198(1):115--126, 2006. URL http://www.sciencedirect.com/science/article/pii/S0304380006002043.Google ScholarGoogle ScholarCross RefCross Ref
  21. C. Hidalgo. Why information grows: The evolution of order, from atoms to economies. Basic Books, 2015. URL https://books.google.com/books?hl=en&lr=&id=xpPSDQAAQBAJ&oi=fnd&pg=PT9&dq=why+information+grows&ots=7eJ7aS5Jbd&sig=FanhpuDQ97SODzU0xbO87sWUy3c.Google ScholarGoogle Scholar
  22. K. E. Iverson. Notation as a tool of thought. ACM SIGAPL APL Quote Quad, 35(1-2):2--31, 2007. URL http://dl.acm.org/citation.cfm?id=1234322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. E. Knuth. Literate programming. The Computer Journal, 27(2):97--111, 1984. URL http://comjnl.oxfordjournals.org/content/27/2/97.short. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. J. Lunn, A. Thomas, N. Best, and D. Spiegelhalter. WinBUGS-a Bayesian modelling framework: concepts, structure, and extensibility. Statistics and computing, 10(4):325--337, 2000. URL http://link.springer.com/article/10.1023/A:1008929526011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. W. Macy and R. Willer. From factors to factors: computational sociology and agent-based modeling. Annual review of sociology, 28(1):143--166, 2002.Google ScholarGoogle Scholar
  26. MathMorph development team. MathMorph, 2000. URL http://www.dm.uba.ar/MathMorphs/.Google ScholarGoogle Scholar
  27. J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, Part I. Communications of the ACM, 3(4):184--195, 1960. URL http: //dl.acm.org/citation.cfm?id=367199. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. Naur. Programming Languages, Natural Languages, and Mathematics. Commun. ACM, 18(12):676--683, Dec. 1975. ISSN 0001-0782. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. J. Noble, R. Biddle, and E. Tempero. Patterns as Signs: A Semiotics of Object-Oriented Design Patterns. Systems, Signs and Actions, 2(1):3--40, 2006. URL http://www.sysiac.org/uploads/2-2-Noble.pdf.Google ScholarGoogle Scholar
  30. L. Notarfrancesco and L. Caniglia. MathMorphs: An Environment for Learning and Doing Math. Technical report, University of Buenos Aires, Argentina, 2000.Google ScholarGoogle Scholar
  31. S. Papert. Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc., 1980. URL http://dl.acm.org/citation.cfm?id=1095592. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. Pearl. Bayesian networks: A model of self-activated memory for evidential reasoning. University of California (Los Angeles). Computer Science Department, 1985.Google ScholarGoogle Scholar
  33. C. S. Peirce. Collected Papers. Cambridge: Harvard University Press, 1931.Google ScholarGoogle Scholar
  34. T. Petricek. Programming language theory: Thinking the unthinkable. PPIG 2016, Sept. 2016. URL http://tomasp.net/academic/drafts/unthinkable/unthinkable-ppig.pdf.Google ScholarGoogle Scholar
  35. M. Plummer and others. JAGS: A program for analysis of Bayesian graphical models using Gibbs sampling. In Proceedings of the 3rd international workshop on distributed statistical computing, volume 124, page 125. Vienna, 2003. URL http://www.ci.tuwien.ac.at/Conferences/DSC-2003/Drafts/Plummer.pdf.Google ScholarGoogle Scholar
  36. M. Priestley. A science of operations: machines, logic and the invention of programming. Springer Science & Business Media, 2011. URL https://books.google.com/books?hl=en&lr=&id=uflV0_q-FEUC&oi=fnd&pg=PR3&dq=A+science+of+operations:+machines,+logic+and+the+invention+of+programming.&ots=5JkZzOLwWI&sig=z0nLW0dwBgn2LRQmy76kVIl25vU. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. S. F. Railsback and V. Grimm. Agent-based and individual-based modeling: a practical introduction. Princeton university press, 2011. URL https://books.google.com/books?hl=en&lr=&id=tSI2DkMtoWQC&oi=fnd&pg=PP2&dq=Agent-Based+and+Individual-Based+Modeling+:+A+Practical+Introduction&ots=dQ7ZYA4NYF&sig=A3hphAvIIfq67h5NwSosQV-xgrI.Google ScholarGoogle Scholar
  38. D. Ritchie, A. Stuhlmüller, and N. D. Goodman. C3: Lightweight Incrementalized MCMC for Probabilistic Programs using Continuations and Callsite Caching. arXiv:1509.02151 {cs}, Sept. 2015. URL http://arxiv.org/abs/1509.02151. arXiv:1509.02151.Google ScholarGoogle Scholar
  39. S. Sankaranarayanan, A. Chakarov, and S. Gulwani. Static analysis for probabilistic programs: inferring whole program properties from finitely many paths. In ACM SIGPLAN Notices, volume 48, pages 447--458. ACM, 2013. URL http://dl.acm.org/citation.cfm?id=2462179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. H. Shen. Interactive notebooks: Sharing the code. Nature News, 515(7525): 151, Nov. 2014. URL http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261.Google ScholarGoogle ScholarCross RefCross Ref
  41. K. Tanaka-Ishii. Semiotics of programming. Cambridge University Press, 2010. URL https://books.google.com/books?hl=en&lr=&id=irizHa1MXJoC&oi=fnd&pg=PR5&dq=Semiotics+of+Programming&ots=qM4TCdH_we&sig=9eEiXuNNPGzYnMFDl33cXS_Uddk. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. S. Turkle and S. Papert. Epistemological pluralism: Styles and voices within the computer culture. Signs: Journal of women in culture and society, 16(1):128--157, 1990.Google ScholarGoogle Scholar
  43. M. M. Waldrop. The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal. Penguin USA (P) C/O Penguin Putnam Incorporated, 2002. ISBN 978-0-14-200135-6. Google-Books-ID: 7HpQAAAAMAAJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. H. Wilkinson. How Smalltalk affects Thinking. In Smalltalks 2014, Cordoba, Argentina, 2014. URL https://www.youtube.com/watch?time_continue=15&v=brdx8YAVZag.Google ScholarGoogle Scholar

Index Terms

  1. The Act of Computer Programming in Science

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          Programming '17: Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming
          April 2017
          193 pages
          ISBN:9781450348362
          DOI:10.1145/3079368

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 3 April 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader