Embedding skills for a new Profession by teaching programming in an immersive and authentic environment
Background
The 15 credit unit — Introduction to Programming was launched in November 2019 and was the third in a new distance learning PG Cert in Clinical Bioinformatics. It was designed to teach the fundamentals of genomics medicine and basic coding in Python to a diverse cohort of off-campus learners. We wanted to make sure the students who were juggling work, home and study would be fully supported and have real world learning experiences that reflected the programming challenges within the field of Clinical Bioinformatics. Also, skills such as programming are growing in demand, therefore we wanted to create high quality materials that could be reused easily for different audiences.
Authentic and Immersive Approaches
The reason we wanted authentic learning experiences is because Clinical Bioinformatics is a relatively new profession. It brings together computer science with genomics in clinical practice and the skills needed to become a clinical bioinformatician have been in short supply in the NHS with training and education trying to fill the skills gap. Those new to the field come from many different backgrounds; be it people from the health sector with little or no programming experience to those with IT knowledge but with limited clinical experience. This variety was reflected in a survey at the start of the course which included guest students as well as the cohort of 10 students.
To equip the students with transferable skills we immersed them in a simulated real-world development environment which facilitated the co-development of code and team-based discussion and problem solving. The students were able to help each other’s learning, yielding efficiencies in facilitation and were taught principals of self-education to advance their programming and research skills. They were also helped by facilitators and lecturers who were available asynchronously on Slack throughout the course as well as synchronously at a set time and day each week.
Teaching methods and tools
So how did we do this?
We created 12 Jupyter Notebooks which are interactive online workbooks that include coding exercises within the teaching materials. They help build learning incrementally, with exercises giving code examples in short easily-digestible steps alongside practice-based tasks all of which were well-suited to introducing the basic principles of Python programming. After covering the basics, we used the notebooks to introduce the students to REST APIs (see below) commonly used to collate genomics data. We then used the notebooks to introduce team based SPRINT (see below) scenarios requiring the students to prototype code that will meet real-world needs of NHS scientists and co-develop genomics software that is used in clinical practice (VariantValidator https://onlinelibrary.wiley.com/doi/full/10.1002/humu.23348).
- We scaffolded the learning by beginning with key tools such as GitHub and using Git to provide the version control workflow during the course.
- To ensure an authentic learning experience, the students were taught to use Anaconda (see below)to install Python3 (see below)onto their own machines. They also installed git and windows users also installed and initialised git bash (see below)so that all students could be taught in a LINUX environment.
- The course content was delivered outside of Blackboard (learning management system) to the students using GitHub (https://github.com/i3hsInnovation), and other than initial introductory materials, the course material was taught using Jupyter Notebooks.
- We introduced real world development processes and methods such as Agile, an iterative process used to develop software, in order to organise the team into practice-based problems in the form of SPRINTS. The sequence of tasks and tools used within each of the SPRINTS is shown below:
This entirely agile delivery strategy enabled us to engage the students in a realistic software development process with the flexibility to change the requirements of each SPRINT such that the students could be simultaneously taught domain-specific best practices, e.g. how to source reliable and robust genomics data and difficulties associated with working with APIs.
Social Learning
The general discussions, team strategy and product owner interaction during the SPRINTS (where an educator would act as the customer for the programming task) were delivered through slack (i3hs-innovation.slack.com). Slack was also used for group work and educational support, such as solving initial configuration issues, pastoral support and providing personal feedback on SPRINT activities. The students also demonstrated great team-working skills by working closely of teams of 5 / 6 members which potentially lessened any feelings of isolation commonly associated with distance learning. This peer-supported learning involved over 600 messages and sharing 123 resources and files in a cohort of 10 students. Collaboration on tasks and helping less-experienced cohort members were key and also enabled them to develop a community of practice, which is essential to sharing best practice and reuse of code within clinical bioinformatics.
Building immersive and authentic learning environments
The approach for the Introduction to Programming module, was to provide an authentic and immersive learning journey. The aim was to try to simulate everyday clinical bioinformatics working practices but in a safe learning environment that could give them the space to fail and learn from their mistakes both individually and as a team.
Back to Practice
The students were developing tools that will ultimately be refined and put into practice, for example, in the final SPRINT they built resources from requirements gathered locally in their own practice as well as additional prototype resources to support the VariantValidator software.
This meant students needed to download the notebooks locally and work with different versions using GitHub and work as a team on Slack. The challenge was to provide enough support to help deal with any issues they had with the tools and techniques being taught but enough autonomy to develop problem-solving skills, much needed as a clinical bioinformatician. This balancing act required significant resource both at the design stage with additional materials for different learner requirements and during the delivery stage with two facilitators to provide support via Slack at set times during the 10 weeks of the course.
Next steps
We will be improving the course by co-developing the course with students during the redesign and development phase and collating more practice based needs. This will provide more sprints which will enable the development of clinical bioinformatics problem solving skills and also have an immediate use and impact on practice. Jupyter notebooks are increasingly being used in teaching and research, the next step is to create a notebook wizard with other members of the i3HS team. This will help to ensure consistency, quality and reusability of the notebooks and also support other academic tutors in building their awareness and understanding of their application for computational skills-based learning.
About the authors
Fran Hooley — link to Medium
Fran Hooley is a Lecturer in Technology Enhanced Learning at the University of Manchester in the i3HS hub. Fran is deputy director for the PG Cert in Clinical Bioinformatics and has over 15 years’ experience of technology enhanced learning roles in Higher Education and the private sector. She has a proven track record for delivering pedagogically-sound, award-winning and innovative technology-enhanced learning solutions. Fran has also had roles delivering academic development events and conferences to support dissemination of teaching excellence. She has M.Ed. in eLearning and is a Fellow of the HEA.
Pete Causey-Freeman — link to Research profile
Pete Causey-Freeman is a Lecturer in Healthcare Sciences (genomics) at the University of Manchester in the i3HS hub. He also teaches in the Manchester Academy for Healthcare Science Education on the NHS Scientist Training Programmes, primarily in clinical genomics bioinformatics Pete is the creator of VariantValidator and is an active member of the HGVS Variant Description Working Group. He holds a PhD in molecular genetics. He is a self-taught programmer and reflected on his own experiences whilst learning programming to create the unit’s material.