## SPONSORS

## WORKSHOP REPORT

PWSAfrica started over the months of July and August 2018 at the University of Ibadan in Nigeria, where a two-week-long workshop was held to train over 100 participants. The participants involved undergraduates and postgraduates from different STEM departments, with majority from the Mathematics department.

In the first week, the participants were introduced to data types, conditional statements, loops, data structures, functions, file I/O and functional programming. In the first half of the second week, certain Python libraries for scientific computing were introduced. And in the last few days of the workshop, participants were split into teams and they were assigned group projects, which involved writing codes to solve complex problems. See the description of the group projects below.

## GROUP PROJECTS

Background

At the end of the workshop, we’re not going to teach you anything new. What’s the point in cramming more in if you’re never given the chance to solve interesting problems with what you know? Tom, Ben, Sofiat and Fionnuala have put together projects to test your understanding of Python, and to give you some lovely meaty problems that should be fun to work on.

Project 1: Designing and implementing your own language

It’s nice to be able to write Python, but programming languages actually aren’t that special. Tom’s absolutely fascinated by programming languages, and he solved this problem when he was learning Python, and he thinks you can, too. The problem is to take a simple programming language, and to implement it, so that you can write and run your own programs. You’ll come away with a deeper understanding of what programming is and what programming languages are, and a feeling for what the less-mathematical kind of computer science can be like! You can download Tom’s project here!

Project 2: Mathematical Modelling and Scientific Computation

In 2015, the Kariba Dam at the Zambezi River between Zambia and Zimbabwe was found to be in danger of failing, and it was advised that action be taken fast. However, there are a number of ways in which to resolve the problem:

doing repair work on the existing dam

rebuilding a dam at the site of the existing one

removing the existing dam and replacing it with ten to twenty smaller dams along the river.

Your Task: Pick one of the ways to resolve the issues with the Kariba Dam, implement the model of section 2.1 and investigate the problem by means of simulations (this is an open ended problem which was featured in the 2017 Mathematical Contest in Modeling 1). You can download Ben’s project here!

Project 3: Matching Corp Members in the NYSC

The National Youth Service Corps (NYSC) is an organization set up by the Nigerian government to involve the country’s graduates in the development of the country. Since 1973 graduates of universities and later polytechnics have been required to take part in the NYSC program for one year. Have you ever wondered how the allocation of corp members is being carried out by the NYSC administrative? Given the number of youths that need to be allocated in each batch, can you estimate how long it will take if this allocation process is done manually, or the amount of human resources it will require? Obviously, a lot! To save time and resources, the Director General (DG) of NYSC has approached you as a mathematician and programmer to help design an automated system that can be used to efficiently allocate corps members to one of the 36 states in Nigeria, based on their choices. You can download Sofiat’s project here!

Project 4: An animation of firework

We are celebrating the end of our programming workshop and we want to do it in style. The task set is to create a firework display for the closing ceremony (on the computer screen!!!). You can download Fionnuala’s project here!

## ON A FINAL NOTE

We’ve had a fantastic time delivering PWSA2018! Many thanks to the University of Ibadan for hosting us, and to the participants for their dedication and enthusiasm towards learning.

PWSA2018 has ended; however, learning does not! We’ve put together one final piece of material: a Jupyter Notebook containing advice, useful libraries, websites, and a bunch more problems to solve. We hope that, in using it, you’ll find that you can actually improve on your programming skills through self-study, now that you know the basics. You can download the notebook here. If you have questions, remember you can email and ask.