Teaching

Training services and courses

These are topics that I wish someone had taught me when I myself was a grad student or just starting off in software engineering. But I can teach other topics that is most useful for you; I always love to work with students who want to improve their skills, and learn together with me. Please get in touch!

Introduction to Python and practical programming

A little goes a very long way. Learn the basics of the Python language, with a focus on "automating the boring stuff" like text and data processing, and manipulating audio, images and PDF files.

By the end of these lessons, you will have set up a Python environment and written simple scripts that boost your productivity.

Software engineering skills and tools

Have you secured the basics and are looking to scale up your workflows and become a "power user"? Tap into the vast world of tools already out there, the Unix system and tools, concepts such as source control, as well as how to use generative AI effectively.

Algorithms, system design and networks

Whether you're looking to secure your next (or first) job as a software engineer and are preparing for interviews, or simply want to write more effective code, an understanding of algorithms and data structures is important, as well as an understanding of principles of modern system design, including networks.

In this course we shall learn to use the various devices and tools out there that support the modern wonder that is the Internet.

Mathematical modelling and scientific computing

Modern frameworks make it easy to quickly build complex systems, but to take them further it is important to understand the mathematical principles that they are founded upon. Get a systematic grounding for topics in applied maths such as linear algebra, Fourier methods and numerical computing. For more advanced students I will also introduce more specialised topics like mathematical modelling and simulation of real systems.

Recommendations

I [...] was consistently impressed by her ability to bridge the gap between complex DSP theory and practical software implementation. She is exceptional at translating heavy mathematical concepts into efficient code. [...] If you are looking for someone who understands the 'why' behind the math and the 'how' of the code—especially in the audio space—Joanna is the one to hire.

I first met Joanna when I was a third-year undergraduate at Cambridge. She went above and beyond as a supervisor, taking extra time to go through topics from the lecture notes to ensure I fully understood the material.

When the opportunity arose to choose tutors for the She talks science STEP summer school, Joanna was a natural first choice. Her kind demeanour and encouraging approach to problem-solving always brings out the best in her students.

Joanna has been one of my biggest supporters and mentors throughout my journey to becoming a Data Analyst. I’m honestly not sure I would have ever started learning Python without her encouragement and guidance. She was always patient with my countless questions and had a real talent for breaking complex ideas into clear, approachable concepts.

I learned a lot through the code review process, where her comments would often teach me something new, or allow me to consider a different approach that would make my code more maintainable in the long run. I would definitely recommend her as a coach/mentor in all things science and software engineering.

Check out my other recommendations on LinkedIn!

Cambridge teaching

I teach a number of courses in the Mathematical Tripos at Cambridge. I currently offer supervisions in the following courses:

  • Fluid Dynamics I
  • Mathematical Biology
  • Methods ("engineering maths": calculus, Fourier transforms, PDEs)
  • Quantum Mechanics: resources and posts
  • Variational Principles (calculus of variations)

In recent years I have also taught many other courses including

  • Dynamics and Relativity
  • Probability

I do not organise supervisions with Cambridge undergraduates directly – please speak to your Director of Studies.

However, I'm always happy to take external students who want to learn this material simply for the sake of learning; do get in touch.

A level Maths and university preparation

I offer 1-1 or group teaching for A level Mathematics and Further Mathematics, and for university preparation including the STEP exam.