Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Greg Wilson is active.

Publication


Featured researches published by Greg Wilson.


PLOS Computational Biology | 2016

A Quick Introduction to Version Control with Git and GitHub

John Blischak; Emily R. Davenport; Greg Wilson

Many scientists write code as part of their research. Just as experiments are logged in laboratory notebooks, it is important to document the code you use for analysis. However, a few key problems can arise when iteratively developing code that make it difficult to document and track which code version was used to create each result. First, you often need to experiment with new ideas, such as adding new features to a script or increasing the speed of a slow step, but you do not want to risk breaking the currently working code. One often-utilized solution is to make a copy of the script before making new edits. However, this can quickly become a problem because it clutters your file system with uninformative filenames, e.g., analysis.sh, analysis_02.sh, analysis_03.sh, etc. It is difficult to remember the differences between the versions of the files and, more importantly, which version you used to produce specific results, especially if you return to the code months later. Second, you will likely share your code with multiple lab mates or collaborators, and they may have suggestions on how to improve it. If you email the code to multiple people, you will have to manually incorporate all the changes each of them sends. Fortunately, software engineers have already developed software to manage these issues: version control. A version control system (VCS) allows you to track the iterative changes you make to your code. Thus, you can experiment with new ideas but always have the option to revert to a specific past version of the code you used to generate particular results. Furthermore, you can record messages as you save each successive version so that you (or anyone else) reviewing the development history of the code is able to understand the rationale for the given edits. It also facilitates collaboration. Using a VCS, your collaborators can make and save changes to the code, and you can automatically incorporate these changes to the main code base. The collaborative aspect is enhanced with the emergence of websites that host version-controlled code. In this quick guide, we introduce you to one VCS, Git (https://git-scm.com), and one online hosting site, GitHub (https://github.com), both of which are currently popular among scientists and programmers in general. More importantly, we hope to convince you that although mastering a given VCS takes time, you can already achieve great benefits by getting started using a few simple commands. Furthermore, not only does using a VCS solve many common problems when writing code, it can also improve the scientific process. By tracking your code development with a VCS and hosting it online, you are performing science that is more transparent, reproducible, and open to collaboration [1,2]. There is no reason this framework needs to be limited only to code; a VCS is well-suited for tracking any plain-text files: manuscripts, electronic lab notebooks, protocols, etc.


PLOS Computational Biology | 2017

Ten simple rules for making research software more robust

Morgan Taschuk; Greg Wilson

Software produced for research, published and otherwise, suffers from a number of common problems that make it difficult or impossible to run outside the original institution or even off the primary developer’s computer. We present ten simple rules to make such software robust enough to be run by anyone, anywhere, and thereby delight your users and collaborators.


technical symposium on computer science education | 2014

Teaching computing with the IPython notebook (abstract only)

Greg Wilson; Fernando Pérez; Peter Norvig

The IPython Notebook is an interactive browser-based environment where you can combine code execution, text, mathematics, plots, and rich media into a single document. Originally designed for use as an electronic lab notebook for computational science, it is increasingly being used in teaching as well, and a rich ecosystem of open source plugins and extensions for teaching is growing around it. The first half of this hands-on workshop will introduce the Notebook and present examples of lessons and instructional materials built around it. In the second half, attendees will explore future directions for the Notebook as a teaching platform. For more information, please view our GitHub repository online at https://github.com/gvwilson/sigcse2014-ipython-workshop.


PLOS Computational Biology | 2018

Ten simple rules for collaborative lesson development

Gabriel A. Devenyi; Rémi Emonet; Rayna M. Harris; Kate L. Hertweck; Damien Irving; Ian Milligan; Greg Wilson

The collaborative development methods pioneered by the open source software community offer a way to create lessons that are open, accessible, and sustainable. This paper presents ten simple rules for doing this drawn from our experience with several successful projects.


PLOS Computational Biology | 2018

Ten quick tips for teaching programming

Neil C.C. Brown; Greg Wilson

Research from educational psychology suggests that teaching and learning are subject-specific activities [1]: learning programming has a different set of challenges and techniques than learning physics or learning to read and write. Computing is a younger discipline than mathematics, physics, or biology, and while there have been correspondingly fewer studies of how best to teach it, there is a growing body of evidence about what works and what doesn’t. This paper presents 10 quick tips that should be the foundation of any teaching of programming, whether formal or informal. These tips will be useful to anyone teaching programming at any level and to any audience. A larger list aimed primarily at K–12 audiences can be found at [2].


PLOS Biology | 2014

Best Practices for Scientific Computing

Greg Wilson; D. A. Aruliah; C. Titus Brown; Neil Chue Hong; Matt Davis; Richard T. Guy; Steven H. D. Haddock; Kathryn D. Huff; Ian M. Mitchell; Mark D. Plumbley; Ben Waugh; Ethan P. White; Paul P. H. Wilson


PLOS Computational Biology | 2017

Good enough practices in scientific computing

Greg Wilson; Jennifer Bryan; Karen Cranston; Justin Kitzes; Lex Nederbragt; Tracy K. Teal


International Journal of Digital Curation | 2015

Data Carpentry: Workshops to Increase Data Literacy for Researchers

Tracy K. Teal; Karen Cranston; Hilmar Lapp; Ethan P. White; Greg Wilson; Karthik Ram; Aleksandra Pawlik


Archive | 2015

Software Carpentry: Programming with Sage

Aron Ahmadia; Raniere Silva; Piotr Banaszkiewicz; Sarah R. Supp; James Allen; Jon Pipitone; Kara Woo; Jeff Hollister; Michael Sumner; Noushin Ghaffari; Scott Ritchie; Peter Schmiedeskamp; Areej Alsheikh-Hussain; Greg Wilson; Aaron O'Leary; Natalie Robinson; Auriel Fournier; François Michonneau; Abigail Cabunoc; Mik Black; Bill Mills; Stephen Turner; Andy Boughton; Daniel Turek; Sarah Stevens; Rémi Emonet; Tom Wright; Daniel Chen; Matthew Aiello-Lammens; Donna Henderson


Archive | 2017

Sustaining Software as a Key Element of Cyberinfrastructure: Submission in Response to NSF CI 2030 Request for Information

Daniel S. Katz; Robert Haines; Kathryn D. Huff; Frank Löffler; Marlon E. Pierce; Michael A. Heroux; Kyle E. Niemeyer; Sandra Gesing; Jeffrey C. Carver; Greg Wilson

Collaboration


Dive into the Greg Wilson's collaboration.

Top Co-Authors

Avatar

François Michonneau

Florida Museum of Natural History

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mike Jackson

University of Nottingham

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Karen Cranston

National Evolutionary Synthesis Center

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge