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.
- 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 Scholar
- 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 ScholarDigital Library
- R. Barthes. Elements of Semiology. Hill and Wang, reissue edition, Apr. 1977. ISBN 0-374-52146-8.Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Bokeh Development Team. Bokeh: Python library for interactive visualization, 2014. URL http://www.bokeh.pydata.org.Google Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- L. Caniglia. Homological Smalltalk Algebra. In ESUG, Brescia at the Università Cattolica, Italy, July 2015.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- M. Foucault. Les mots et les choses: une archéologie des sciences humaines. Gallimard, 1966.Google Scholar
- 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 Scholar
- 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 Scholar
- A. J. Goldberg. SMALLTALK-80: the interactive programming environment. 1984. URL http://cumincad.scix.net/cgi-bin/works/Show?61be. Google ScholarDigital Library
- E. P. Goldenberg. Logo-A cultural glossary. Byte, 7(8):210, 1982.Google Scholar
- N. D. Goodman and A. Stuhlmüller. The Design and Implementation of Probabilistic Programming Languages. http://dippl.org, 2014. Accessed: 2017-1-16.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- D. E. Knuth. Literate programming. The Computer Journal, 27(2):97--111, 1984. URL http://comjnl.oxfordjournals.org/content/27/2/97.short. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- MathMorph development team. MathMorph, 2000. URL http://www.dm.uba.ar/MathMorphs/.Google Scholar
- 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 ScholarDigital Library
- P. Naur. Programming Languages, Natural Languages, and Mathematics. Commun. ACM, 18(12):676--683, Dec. 1975. ISSN 0001-0782. Google ScholarDigital Library
- 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 Scholar
- L. Notarfrancesco and L. Caniglia. MathMorphs: An Environment for Learning and Doing Math. Technical report, University of Buenos Aires, Argentina, 2000.Google Scholar
- S. Papert. Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc., 1980. URL http://dl.acm.org/citation.cfm?id=1095592. Google ScholarDigital Library
- J. Pearl. Bayesian networks: A model of self-activated memory for evidential reasoning. University of California (Los Angeles). Computer Science Department, 1985.Google Scholar
- C. S. Peirce. Collected Papers. Cambridge: Harvard University Press, 1931.Google Scholar
- T. Petricek. Programming language theory: Thinking the unthinkable. PPIG 2016, Sept. 2016. URL http://tomasp.net/academic/drafts/unthinkable/unthinkable-ppig.pdf.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- H. Wilkinson. How Smalltalk affects Thinking. In Smalltalks 2014, Cordoba, Argentina, 2014. URL https://www.youtube.com/watch?time_continue=15&v=brdx8YAVZag.Google Scholar
Index Terms
- The Act of Computer Programming in Science
Recommendations
Introducing object-oriented programming into the computer science curriculum
In recent years, object-oriented programming languages and object-oriented program design have become increasingly popular. Dialects of many popular programming languages are now available which support the major concepts of object-oriented programming; ...
Introducing object-oriented programming into the computer science curriculum
SIGCSE '87: Proceedings of the eighteenth SIGCSE technical symposium on Computer science educationIn recent years, object-oriented programming languages and object-oriented program design have become increasingly popular. Dialects of many popular programming languages are now available which support the major concepts of object-oriented programming; ...
Comments