ARC at UN’s OSPOs for Good and What’s next for OSS?
By David Pérez-Suárez, on 26 July 2024
I, together with Malvika Sharan and Arielle Bennett from the Alan Turing Institute / The Turing Way and Neil Chue Hong from Software Sustainable Institute, attended at the beginning of July OSPOs for Good symposium at the United Nations Headquarters, representing research institutions from the UK.
What’s an OSPO?
An Open Source Programme Office (OSPO) is an entity within an organisation that looks after their Open Source strategy and operation. OSPOs have been set in the industry for many years (and under many different names), but it’s only till recent years when academic and research institutions as well as government and world organisations have also started to create them. Certainly, the goals of all these different OSPOs differ, but by having a common name helps to develop a fabric across them to promote collaboration.
OSPOs for good?
At the symposium, OSPOs from different entities – national and local level government, institutions and private sector – together with open source communities, think tanks, and activists, joined together to discuss how Open Source and through those varied programme offices can be used to help tackle the UN’s Sustainable Development Goals (SDGs). Ideas ranged from those that can run within specific communities, companies, or institutions to collaborations across all of them.
For over two years now, the UN has been running an OSPO, and this event is part of their commitment to working with the whole world. The symposium gave details about how OSPOs were formed and their motivations, as well as advertise initiatives from those attending. For example, the OSPO at the UN started by a survey to all its sub-organisations to know their positions on Open Source Software, whether that’s from a user, creator, maintainer, community member or stakeholder point of view. They have grown fast and highlighted that Open Source is more than Open Source Software! Open Source covers open communities, knowledge, data, science, …. On the digital front, these were referred to as Digital Public Goods (DPGs), which I think conveys more weight than open source software or open data. A person may not understand what open source software is, but a public good resonates that it has something good for them!
On open source communities, however, many of us have the tendency to focus on the software and forget to look beyond it. How can we go an extra step and check how what we are creating can be relevant to the SDGs? That may look too hard (and even ambitious?), if that’s the case, we should have a commitment to no harm – I firstly heard it from Malvika’s talk: Applying Do No Harm principle to enhance open source sustainability at SOOCon24. That’s where many of us need to start with, reviewing our practices and applying do-no-harm principles within our communities to work towards Open Source for good.
Though many people see the goods of Open Source for the world, not everyone at is an open source advocate! Even within the UN, they’ve got challenges and myths against Open Source that are common in many other communities. Some of these are based on trusting more big tech companies or using privacy or security concerns as an excuse to prevent opening their source (whether it’s data, code or knowledge). Regarding security, however, a recent event that caused a worldwide mayhem demonstrates that vulnerabilities are not exclusively on open source software.
From understanding how UN’s OSPO works within a multi-organisation level, we moved into a state/local government level. In Germany, they are working to unite much of the different wheel-reinventions at different states into a more collaborative approach where the tools and processes are shared (such as platforms like openCode). This has not only stopped there, but they are collaborating with France too! There, the BlueHats initiative helps to promote and recognise the community behind Open Source development within government. Funding open source is a big problem, and that was discussed too – people from Sovereign TechFund and ZenDiS gave an overview of the current successful model that’s being used in Germany.
Initiatives within foundations and cities were also discussed, as well as the opportunities universities can have collaborating with their local communities on that.
One of the UN’s OSPO star activities mentioned and praised was Reboot the Earth. Five hackathons that happened around the globe to come up with ideas that can advance the SDGs. The winners from each of them presented their ideas to us, and now they are taking part in a coaching programme to scale their solutions. This was very inspiring!
Once the symposium finished, I, together with many of the attendees, participated in a 1-day workshop: What’s next for Open Source? There we had more time to interact and collaborate between us and come up with various lists of actions to keep pushing forward the idea of Open Source for good. At least, one thing was easily done: we made connections between various organisations that will convert into future collaborations.
What’s next for UCL?
Well, glad you asked! At ARC we are starting to build an OSPO to provide Open Source guidance and support to research, education, and e-infrastructure projects through the whole university. At the moment we are scoping our vision and midterm goals, but hopefully soon we can advertise our plans to the rest of the university and the whole world. Would you like to be involved? Write to us at open.source@ucl.ac.uk.
Where can I read more about the event?
You can check the event highlights, the event recordings and reports from other attendees such as Nicole Martinelli at OpenSource.net, Steven J. Vaughan-Nichols at The New Stack and at The Register, Nithya Ruff at the Linux Foundation, and Henriette Litta at the Open Knowledge Foundation,
RSE Initiatives – 6 months in
By Amanda Ho-Lyn, on 7 June 2024
What?
At ARC I think it would be fair to say we strive to develop and improve not only on an individual level, but also on a group level. One of the ways we are doing this is through our RSE (Research Software Engineer) Initiatives – aiming to advance/evolve the RSE team to improve collaboration and delivery of the best possible software. They involve taking a more objective look at the current processes within our department and determining, by consensus, whether some of these processes need to be updated, or if a new solution should be devised. These are not overnight quick-fixes but rather, slow & steady progressions in the right direction.
We’ve focussed on 3 main areas: Professional Development, Good Practices and Knowledge Sharing.
As we’ve recently reached the 6 month mark of embarking on this journey, I thought I’d share an overview of each initiative’s aim and how we’re doing.
Professional Development
Notable people: Connor Aird, Stef Piatek & soon to be Paul Smith
This is about understanding how we currently decide to upskill (soft and technical) ourselves, what opportunities there are and how we can enable and support more/better opportunities.
The way we decided to figure out what people are doing regarding their professional (and to some degree personal) development was by interviewing them.
At the time of writing almost all the interviews have been completed and data gathered, being prepared for analysis.
Good Practices
Notable people: Haroon Chughtai, Kimberly Meechan & Emily Dubrovska
This looks at how much we engage with establishing and following best practices with technologies, languages and tools. We also want to determine whether there are areas where we could formalise/document this for future RSEs – a notable example is within the Python Tooling Community.
We decided it would be worth modelling the approaches of the Python Tooling Community and seeing whether there are other language/technology communities within ARC that don’t have best practice guidance but would benefit from it. This was done through a survey.
At the time of writing, the next groups of interest are Web Development and DevOps – both in the stages of requirements gathering/gaining an idea of what guidance could be documented or be built on, as well as looking into how it could best be delivered.
Knowledge Sharing
Notable people: George Svarovsky & Amanda Ho-Lyn
This is about understanding how we currently share knowledge across the group – particularly project information – and how we can improve our current systems to be more usable and make information more accessible.
We decided to do a survey to see how people felt about how information is currently shared and also how much they actually felt they knew about different aspects. There were also some mentions of discontent about where information was posted and shared across a plethora of platforms.
At the time of writing, we have added a mini landing page to the ARC GitHub (note that you must be part of the org to see it) in an attempt to centralise relevant links to various places – this is a living thing and can be updated as necessary. We have also sent out a survey (thank you to those who took the time to complete it) and have plans to act on the results – see my post with more details about this (coming soon).
Thanks to everyone who’s been a part of this and continues to help us improve – especially to Asif who is forging the way ahead. And keep an eye out for more surveys! 😁
Creating Custom Font Symbols
By Amanda Ho-Lyn, on 5 June 2024
Why?
There are various reasons why researchers may want to include custom symbols to a font; they may want to represent a new concept or add characters from historical sources that are not available in a font yet. Being able to do so makes their work more accessible to colleagues and the public. In the cases of ancient languages, there often aren’t fonts that support these glyphs as they are still being researched and aren’t widely used outside of their respective communities. There are also arguments to be made for using custom glyphs in art and design.
How?
Figure out your glyph codes
With the Unicode standard we have the capability to facilitate this through the private use areas (PUAs) wherein we can assign codes to the custom glyphs. This provides the glyphs with a universal ID allowing them to be packaged and used more widely – this can be especially important when dealing with more than one font which may make use of the PUAs as we want to limit clashing of codes and will allow the font to be usable across different projects that may have use for the custom glyphs.
If you have an existing font and want to check if it uses some PUA codes, open the font in a charset checker and specify the Private Use Area block (you can also check for other things). If you’re free and clear, then you have no restrictions when it comes to picking the codes within the PUA block.
Draw your glyphs
You’ll need to design your glyphs with a specialist tool. Since we’re working with custom Unicode ranges in this case, that’s a specific bit of functionality to look for. I used glyphr studio which was a free online tool and it worked really well. It’s a good idea to know how many glyphs you’ll need to draw as you have to specify a range, though it can be updated. If you can work from references that will make this process much simpler. You’ll also want to spend some time getting used to the interface if you’ve not used a font designer before. With glyphr studio you define the outline points and it automatically fills in the space between. Do also remember to define a height (typically automatic) and width (not automatic) so that your glyphs will display properly.
You can fine tune the curvature, width etc of the points and once you have the basis down you can always come back to fine tune and tweak the glyphs until you’re satisfied. This is definitely the most time consuming but can be fun once you’re accustomed to the interface.
Export
Export your file as an .otf (OpenType Font) and fill out the relevant metadata as you see fit. Feel free to also keep a copy of the project file from glyphr studio but you can always edit the .otf file and it should have all the relevant data. This file can be shared and stored and can be included in projects as needed.
Including it in your project
To include your snazzy new .otf file in a web project, you can just add the file to the codebase, preferably under static/fonts. Then, you can import it into your main CSS file as follows:
To utilise it, you can implement a symbol picker (particularly helpful if the symbols don’t have a letter equivalent), add to a special character input in your text editor, or assign it as you would any other font.
Et voila!
Customising Rich Text Editors
By Amanda Ho-Lyn, on 5 June 2024
Why?
Customising rich text editors within web apps offers significant benefits, particularly for researchers in Digital Humanities. While basic text editors fulfil essential functions, rich text editors (RTEs) can incorporate features such as rich text formatting and customisable styling, allowing for clearer and more engaging presentation of textual information. Whilst they provide greater benefits than regular text editors, you can further enhance them through customisation, which can greatly improve the user experience and effectiveness of communication.
RTEs can be particularly useful in situations where researchers are working with sources where meaning is encoded in the visual layout. They enable researchers to communicate broader and more intricate ideas effectively. Features like embedded multimedia content (photos, videos, links), interactive elements (tables, footnotes), and collaborative editing tools (history, comments) can facilitate the expression and exploration of complex concepts within the text itself. These can also include adding functionality for symbols or text decorators not widely used – helpful with mathematics and ancient languages. See my post on creating custom font symbols for more details.
Customisation can also foster more connections and cohesiveness within the website or application. Integrated features such as cross-referencing, hyperlinking, and version control enhance the interconnectedness of textual content, enabling users to navigate seamlessly between related information and fostering a more immersive and engaging user experience.
TLDR: Basic text editors are fine for simple input, Rich Text Editors are better for things with more variety and customising them can build on the functionality to enrich the quality of research done.
How?
This somewhat depends on the structure of your project, but most likely it will be through a CDN, npm install or directly adding the package to your codebase (in the case of JavaScript). If you have a python based project, odds are you can install through pip.
From experience…
I recommend CK Editor (4) as this has worked well through both implementations and is very stable and well-established, meaning there are many plugins already written that work with it. You can, of course, write your own for even more customised functionality! The 5th version is likely also a good option, but may require a different license. There are different degrees of customisability with CK Editor, from using their basic setups to enabling any and all plugins you can find, which makes it very adaptable to a variety of projects. You could even overhaul the entire thing if you really wanted. It uses a config.js file as default but each initialisation can also be customised on an individual basis, as well.
For example, here are two different builds of the editor:
The first is quite simple, though not the most basic and has extra functionality that isn’t immediately obvious @ mentions and image browsing. The second is more populated (more plugins enabled) and also has some entirely custom functions (the Vs and Us on the second line) for adding diacriticals through Unicode. It also has @ mentions which have been implemented with more complexity due to a greater breadth of items referenced. These were each implemented through different languages (one through Python and one through JS) and whilst the way of configuring the build was different in each project, the results are stable and reliable whilst remaining flexible.
We have also used QuillJS but this was less well established and when it updated to a new major version, the old version stopped working (not great for a research project that is almost entirely text content).
TLDR: There are tonnes of options out there and it’s not always the best idea to go for the one that is the newest and most-cutting edge, particularly if you need something reliable and easy to maintain. I think CK Editor 4 is a solid choice for the next few years since it’s stable and well established, while still being flexible and customisable to your needs.
The importance of collaboration: The latest engagement between DiRAC and ARC
By Connor Aird, on 26 April 2024
When time is scarce on a research project, it is important to continuously plan and effectively collaborate with the whole team. A good example of this is the DiRAC project, Spontaneous Symmetry Breaking in 3d Models of Fermions with Prof Simon Hands (PI) which, due to a funding deadline, had to be delivered in 5 weeks. This project aims to explore the phase diagram of a relativistic field theory of fermions using a code base developed by Prof Hands et al, known as thirring-rhmc. However, the collaboration with ARC and Prof Hands covered a much smaller scope.
Aims
Our aim was to migrate the work of a PhD student (Dr Jude Worthy) into the default branch of the thirring-rhmc code base. Once this was completed, the intention was that some performance improvements could be investigated as part of the project. Jude’s work implemented a higher accuracy but consequently lower performance formulation (Wilson kernel) of something already implemented in the code base (Shamir kernel). This reduction in performance is the reason for the desire to gain some performance improvements. However, from the PI’s initial comments, it was clear that the key aim remained the code migration – “…I’m increasingly convinced it only makes sense to pursue this research program further if an improved formulation is employed, so the Shamir -> Wilson transition as essential”.
Obstacles
Several obstacles threatened the success of this project. Development on the original version of thirring-rhmc had continued throughout Jude’s PhD but unfortunately git had not been used to develop the Wilson kernel. Therefore, the two codes had diverged significantly with no clear indication as to what degree. Due to this divergence, it was vital to develop a continuous testing suite to have any chance of success. However, the outputs of thirring-rhmc are statistical in nature and can, whilst remaining correct, vary significantly with only slight changes to the code. Therefore, a lot of domain specific knowledge would be required to design these tests.
What we did
This project’s strict time constraints required us to take a methodical approach to planning our work. For each task, we defined a clear definition of done and ensured we understood how that individual piece of work helped progress towards our key aim. Continuously planning our tasks in this way was essential to our success.
The lack of clarity around what changes in the Wilson kernel were significant meant our first task was to set up reliable unit tests. With these tests in place, we could confidently alter the code and catch any breaking changes we might introduce. Helpfully, some stale tests were already present in the repository. With Simon’s domain knowledge, we were able to update these existing tests to create a working test suite. When these tests failed and highlighted issues we couldn’t solve independently, we were able to quickly reach a solution through regular communication with Simon. Simon’s domain knowledge was an invaluable asset throughout the project. As a bonus, we were able to demonstrate the confidence regular testing gave us when carrying out large refactors and migrations. This will hopefully increase the chances of Simon’s research team continuing to maintain and build upon these tests, therefore preventing the tests going stale again. This is a great example of how close collaboration between RSEs and Researchers can benefit both parties.
This close collaboration and communication with Simon helped to quickly increase our knowledge of the code base and research domain. Due to this better understanding, we identified the likely causes of two known issues with Jude’s code. Most notably, we identified that the inflated value of an input parameter was a key reason for the Wilson kernels reduced performance.
Conclusion
To conclude, RSEs and Researchers work best together when they effectively communicate. Siloing the domain knowledge of these two parties only reduces the chances of success. Our projects are collaborations and can only succeed if we work in this way from the very beginning.
Research Integrity in an AI-Enabled World
By Samantha Ahern, on 5 April 2024
Over the last 15 months there has been much debate, hype and concern relating to capabilities of tools and platforms leveraging Large Language Models (LLMs) and media generators. Broadly termed Generative AI. The predominant narrative in Higher Education has been around the perceived threat to academic integirty and associated value to degrees. As such a lot of focus and discussion has focused on taught students, assessment design and “AI-proof” assessment. This has been coupled with concerns relating to the inability to reliably detect generated content, and the disproportionate number of false positives related to non-native English speakers text submitted to various platforms.
However, despite the proliferation of Generative AI enabled research tools and platforms, numerous workshops offering increased research output productivity and publications asking authors to declare whether or not these tools were used in producing outputs there has been limited discussion with relation to staff and research integrity.
Coupled with the publication of initial findings from a study on staff use of these tools by Watermayer, Lanclos and Phipps that included use to complete “little things like health and safety stuff, or ethics, or summarizing reports” and potential safety risks from fine-tuning models as reported in the Stanford Univeristy published policy briefing Safety Risks from Customizing Foundation Models via Fine-Tuning a workshop focusing on the interplay of Generative AI and research integrity and ethics was proposed as an AIUK Fringe event.
Research Integrity in an AI-Enabled World took place on Monday 25th March 2024. The aim was to explore how we think Generative AI enabled tools and platforms, could and should impact on the research process, and what the integrity and ethics implication are. Eventually aim would be to produce a policy white paper.
The event was organised so that there was a series of thought provoking talks in the morning, followed by a world-cafe style session in the afternoon. The event was held under the Chatham House Rule to enable open and frank discussion of the topic and arising issues.
The first set of talks predominantly focused on ethical issues. There were discussions on authorship, and the nature of authorship where multiple actors are involved e.g. training data creators, platform developers and prompters. Bias in image generation, reinforcing misconceptions and stereotypes. Culminating in a talk on the University of Salfords evolving approach to Generative AI and research ethics.
The second set of talks was focused on current capabilities, limitations and implications of using Generative AI enabled tools in the research pipeline, predomintly focusing on qualitative analysis. This session included a discussion around evidence synthesis and the need to find more efficient methods whilst maintaining reliability and a breadth of knowledge, and different approaches using “traditional” machine learning approaches versus use of large language models. Enhanced capabilities of Computer Aided Qualitative Data Analysis Systems and implications for methodological approaches were also introduced and discussed. The session concluded with a talk from Prof Jeremy Watson about the work currently being undertaken by the UK Committee on Research Integrity’s AI working group, of which he is member. Key themes currently under consideration by UKCORI are:
- Governance
- Roles and Responsibilities
- Skills and Training
- Public Understanding and Expectations
- Attribution and Ownership – IP, etc.
- Understanding Data Inputs and Models
- Need for Research in AI and Integrity
During the world-cafe session participants addressed the following questions:
- What do we mean by Research Integrity in an AI-Enabled Research Environment?
- Are there degrees of Research Integrity based on discipline and how embedded AI use is in the research process?
- What are the key ethical and legal considerations?
Including the following participant proposed questions:
- Generative AI is extremely good at in-filling uncertainty, where details of images become filled with bias. Should the responsibility of bias be equally on a prompter who enables this by omission?
- Recalibration of government and private funded RI in AI? Isn’t this the foundation of biases for RI?
Outputs from the world cafe session will be analysed over the next few weeks, and workshop participants were invited to contribute to the development of workshop outputs.
Key themes that emerged from the event include:
- Transparency
- Criticality
- Responsibility
- Fitness for purpose
- Data protection and privacy
- Digital divide – privilege and harms
- Training – education
The workshop was well received by participants, with the participants rate their overall experience of the event as 4.71 out of 5.
The speaker sessions were rated as very good by over 70% of participants. With the world cafe being mentioned as a highlight of the event.
As the proposer, organising and the host of the event I can’t help but still wonder:
- Can we ethically and with genuine integrity use tools which are fundamentally ethically flawed?
- Why are we accepting of these issues?
- How should we be pushing back?
I will leave you with these words from Arudhati Roy with which I opened the event:
Role models, outreach and changing the future of STE(A)M
By Samantha Ahern, on 20 December 2023
STE(A)M is for everyone, so why isn’t that reflected in the demography of STE(A)M professionals?
Sadly, when we look at the prevailing media representation and social narrative around STE(A)M it’s not surprising. Which, is why, events like the one I recently supported at Samuel Whitbred Academy organised by STEMPoint are incredibly important.
Over the course of the day I supported girls from four different secondary schools undertaking two computing challenges, one focused on coding, the other on robotics. In addition to the challenges, the participants also had the opportunity to hear from the STEM Ambassadors, most of them women, supporting the event about our careers, why and how we got into STEM.
This was a key part of the event as it enabled them to learn more about the different types of STE(A)M careers available, pathways into those careers and the diversity of the people working in them.
It is often said that you can’t be, what you can’t see. You also can’t be what you don’t know about. This is why since 2015 I have been a STEM Ambassador.
During this time I have supported a number of events requesting support via the STEM Learning platform, featured in a STEMettes Christmas Calendar, been profiled for BCS Women and designed and delivered some RI Masterclasses. On a more subtle level I use my full first name on publications and when public speaking, re-emphasising that I am a woman in STEM.
The event at Samuel Whitbred Academy was a lot of fun, I always enjoy seeing students engaging with a STEM challenge. Especially seeing young women grow in confidence in their abilities and seeing computing as a space for them.
Unsurprisingly I spent most of the day supporting the robotics challenge. It was fantastic to see them rise to the challenge, and in some cases go beyond the extension task. I hope to support further events in 2024.
I strongly recommend becoming a STEM Ambassador to my colleagues, it really does make a big difference to the participants.
Randomising Blender scene properties for semi-automated data generation
By Ruaridh Gollifer, on 12 December 2023
Blender is a free and open-source software for 3D geometry rendering. Uses include modelling, simulation, animation, virtual reality applications, and more recently synthetic datasets generation. This last application is of particular interest in the field of medical imaging, where often there is limited real data that can be used to train machine learning models. By creating large amounts of synthetic but realistic data, we can improve the performance of models in tasks such as polyp detection in image guided surgery. Synthetic data generation has other advantages since using tools like Blender gives us more control and we can generate a variety of ground truth data from segmentation masks to optic flow fields, which in real data would be very challenging to generate or would involve extensive time consuming manual labelling. Another advantage of this approach is that often we can easily scale up our synthetic datasets by randomising parameters of the modelled 3D geometry. There can be challenges to make the data realistic and representative of the real data.
The Problem
The aim was to develop an add-on that would help researchers and medical imaging experts determine which range of parameter values make realistic synthetic images. Prior to the project, the dataset generation involved a more laborious process of manually creating scenes in Blender with parameters changed manually for introducing variation in the datasets. A more efficient process was needed during the prototyping of synthetic dataset generation to decide what range of parameters make sense visually, and therefore in the future, to more easily extend to other use cases.
What we did
In collaboration with the UCL Wellcome / EPSRC Centre for Interventional and Surgical Sciences (WEISS), research software engineers from ARC have developed a Blender add-on to randomise relevant parameters for the generation of datasets for polyp detection within the colon. The add-on was originally developed to render a highly diverse and (near) photo-realistic synthetic dataset of laparoscopic surgery camera views. To replicate the different camera positions used in surgery as well as the shape and appearance of the tissues, we focused on randomising three main components of the scene: camera transforms (camera orientation and location), geometry and materials. However, we allowed for more flexibility beyond these 3 main groups of parameters, implementing utilities to randomise other user-defined properties. The software also allows the following features: 1) setting the minimum and maximum bounds through an input file, 2) setting a randomisation seed for reproducibility, 3) exporting output parameters for a chosen number of frames to an output file. The add-on includes testing through Pytest, documentation for users and developers, example input and output files and a sample Blender scene.
The outcomes
Version 1.0.0 of the Blender Randomiser is available under a BSD 3-Clause License. The GitHub repo is public where the software can be downloaded and installed with instructions provided on how to use the add-on. Examples of what can be produced in Blender can be found at the UCL Research Data Repository (N.B. these examples were produced manually prior to completion of this project).
Developer notes are also available to allow contributions.
—
k-Plan now available to researchers!
By Sam Cunliffe, on 11 December 2023
One of ARC’s longest-running collaborations is with the Biomedical Ultrasound Group. Over the past three years, we’ve been developing a graphical user interface to simulate ultrasound treatment plans!
This software is called k-Plan, and licences are now available for sale through UCL’s commercial partner, BrainBox (who also sell ultrasound transducers).
If you’re interested in medical ultrasound, and think this software might help you: you can read the full UCL press release, or you can see some more snapshots of k-Plan in action.
The people behind the work…
Our collaboration is managed and led by Bradley Treeby. As well as me, there’s a full roster of research software engineers who’ve worked hard at various times over the last three years to make this happen:
- Panayiotis Georgiou, ex-UCL now ARM.
- Timothy Spain, ex-UCL now NERSC, 🇳🇴.
- Ilektra Christidi, ARC, UCL.
- Alessandro Felder, ARC, UCL.
- Orod Razeghi, ex-UCL now University of Cambridge.
- Idil Ozdemir, ARC, UCL.
- Connor Aird, ARC, UCL.
We also have collaborators from the Brno University of Technology who work behind the scenes on the middleware and back-end of k-Plan and run the planning simulations in the cloud.
First Julia workshop at ARC
By David Pérez-Suárez, on 15 November 2023
Last Friday (the 10th of November) we run our first ever Julia workshop. After years of having an expert in our team – Mosè – who has been introducing the rest of the team to this wonderful language and even convinced some collaborators to use it on their projects, we’ve done the jump to teach it to the UCL community.
This first workshop was limited to a reduced number of learners (10-12). Seven of which attended (most of them physicists!), with our team of three (myself instructing, with Mosè and Tuomas helping — also all physicists 😅) made the learners’ experience very positive.
Originally, we were going to use the Carpentries Julia lesson available in the incubator. However, Mosè and I decided against it as the expected previous knowledge was higher than what we were aiming for. Therefore, we created our own lesson!
Our lesson started with the basics, different types of numbers, strings and how all them fit in the family of types in Julia. We introduced some of the quirks Julia surprises you with when you come from a different language. This was key in our lesson! We started to write a function as if it was Python — which was what we expected to be the most familiar for our cohort. From there, we were introducing new concepts and syntax to make our code more “julianic” (I’ve come up with that term, so it may not be the one used by the Julia community). We covered the basics (types, function, conditionals, loops and plotting) during the morning session. After lunch, we went to introduce how to use other libraries to solve polynomials and ordinary differential equations. We even introduced unit testing and had time to learn how to work with CSV files with DataFrames and gave a quick overview of Pluto.
During the preparation of the material and the class, I was constantly supported by Mosè, bouncing lots of ideas and suggestions. We’ve even found a bug in one of the libraries we were going to use that they fixed instantly after Mosè reported it.
The class went smoothly. We encountered some problems with the installation of Julia and some unexpected slowness when installing libraries (we reported it after the workshop, and it was also fixed straight away!). This is some of the feedback we’ve received at the end of the day:
- Great course, learned a lot.
- The course has been great. The pace is good and it allows us to ask any questions we have.
- Comparison’s to Python really helped me appreciate the advantages of Julia. Paper plane example was great.
- Very good course, covered all the right topics for a 1-day intro session.
Personally, I don’t remember a class that has gone so well! With very little difficulties, covering everything we were planning to do and answering very interesting questions from our learners. It may have been due to the small number of learners, or because of their previous programming experience, or the similar background across all of them, or maybe, it’s because Julia is easy to learn 😉. Whatever reason it is, I really want to repeat it, with a larger class and a more varied background of learners. There’s no reason for only letting the physicists have fun with Julia, right.
So, if you are interested in learning Julia, be sure that we will repeat more sessions like this one! This may be too basic for you? Don’t worry, we are also planning to run a more advanced workshop focused on Julia for HPC during Term 2’s reading week. Keep an eye out for our future announcements.
Now that we have started, we won’t stop!