October 26, 2021, by Kate Snaith
Open coding environments: student projects and beyond
In today’s International Open Access Week blog post we are talking to members of our research community about open coding environments and open notebooks in teaching and research practice.
Dr James Sharp is an Associate Professor of Soft Condensed Matter Physics at the University of Nottingham. In this blog post, James shares the motivations for trialling the use of Jupyter Notebooks for students final year research project in the School of Physics and Astronomy.
Dr Robyn Ward, Digital Research Technologist at the University of Nottingham, describes the features that make a shared coding environment relevant to postgraduate researchers and academics.
Dr Beth Montague-Hellen, Senior Research Librarian at the University of Nottingham, explains the benefits shared code and software have, and how researchers can ensure their work is credited.
Q. James, students undertaking Physics degrees span computational, theoretical and experimental physics. What are they tasked with completing for their research project?
Our students are asked to work in pairs to complete a twelve-week project in which they tackle an open-ended research problem under the guidance of a member of academic staff. This is quite different to their previous work in laboratories and lectures which tends to be more prescriptive.
In the initial stages, students are asked to produce a plan for their project along with any necessary safety documentation. The latter is usually relevant to experimental projects only.
Once the plan is completed, the students are asked to research the background to their project and then to design their own small research study. Depending upon the nature of the project (and the interests of the supervisor) this can either be experimental, theoretical or computational.
The students are then required to carry out their small research project by taking measurements and recording data, by working through detailed theoretical calculations and/or producing computer simulations of the physical processes that they are trying to study.
Students are required to keep a contemporaneous account of their work by recording their findings, observations, calculations and data in a notebook or laboratory diary. At the end of the project, the contents of the diary are used to help the students to write a six thousand word project report which they submit for the purposes of assessment.
“The ability to produce reproducible/reliable results and to communicate them in oral and written form are all very important when it comes to interacting with students, the general public as well as government and funding agencies.“
Q. What is a third-year research project designed to teach students, what skills is it designed to develop?
The third-year project provides students with the opportunity to design and execute a small research study under the guidance of an academic supervisor. Students learn how to communicate their ideas using the contents of the notebook/lab diary, via the written project report and in communications skills sessions that are designed to help develop oral presentation and writing skills.
Q. How important do you think it is for students to develop these skills, particularly those who go onto a career in research / undergo a PhD?
All of the skills mentioned previously are vital for professional scientists. The ability to produce reproducible/reliable results and to communicate them in oral and written form are all very important when it comes to interacting with students, the general public as well as government and funding agencies.
Q. What might using an open coding environment allow students to do differently/more efficiently?
Our hope is that the use of Jupyter notebooks within an educational GitHub environment will allow students who are doing computational work in Python to collaborate more effectively during their projects. The GitHub environment should also provide supervisors and laboratory staff to have oversight on the individual projects and to monitor the project diaries.
Previous attempts to use OneNote notebooks as laboratory diaries did not work well for computational projects. Students were forced to copy and paste code from whichever Python distribution they were using and into OneNote along with any output that the code generated. This proved to be highly inefficient and much of the formatting used in generating the code tends to get lost during the cut and paste process. The beauty of Jupyter notebooks is that the code can be generated and executed with the notebook!
Q. How might supervision of projects change or improve?
I would like to think that supervision will not change significantly as this is something that we generally do to a very high standard.
Once we have overcome any initial teething issues with the integration of Jupyter notebooks into the third year laboratory, supervisors should be able to quickly check-in with students’ work and focus on discussing the relevant physics with them.
Q. Reflecting on the use of open-source tools for student research projects, have they contributed to a change in your outlook and/or way of working in academic research practices?
I am still undecided on this! Jupyter notebooks were only integrated into the third year laboratory this year and it is too early to tell how successful/useful they will be. However, having played around with the notebooks myself, I can see the benefits of using them from coding and collaboration points of view.
“If at the end of a project researchers use Open Research to share data, code and methods then this enhanced collaboration can continue on into the wider researcher community.”
Q. Robyn, what are the standout features of Jupyter Notebooks for a postgraduate researcher, or academic?
Jupyter Notebooks combined with an environment manager such as Anaconda provide a reproducible, sharable coding environment. Providing an environment file alongside the code allows collaborators to use the shared code on any computer, anywhere. It is also very handy for the researcher who wishes to return to their code after a number of years; with an environment file they will still be able to run the code even if operating system changes or versions of languages have been depreciated.
Q. Beth, why is it beneficial to share code and software in open environments, and how can researchers retain some control over how their work is used?
James describes how research notebooks and accurate recording of methods and code support reproducibility of the results and collaboration between researchers. But it doesn’t have to stop there. If at the end of a project researchers use Open Research to share data, code and methods then this enhanced collaboration can continue on into the wider researcher community. GitHub is particularly useful for this as it allows others to make suggestions and create new copies of the code, which the researcher can alter to take the project in an entirely new direction.
Understandably researchers want to ensure that they continue to get credit for the work they’ve created, that’s where licensing comes in. Software and data are subject to copyright just the same as any written output. By applying a license, researchers can clearly state what others can do with the work (use, share, build on etc.) and who should be credited. Much like journal articles, software and data sets can be cited to give credit to the original creators.
Thank you to our contributors for sharing this insightful chat! Follow the Library Matters blog throughout International Open Access Week for more great insights into the benefits of open research.
For more information about open research, please visit the Libraries website.
No comments yet, fill out a comment to be the first