CSA Africa 2022
NitHub, 6 Commercial Road,
University of Lagos, Nigeria
18 July - 03 August, 2022
Summary
CSA Africa 2022 ran physically from 18 July - 03 August 2022, in partnership with NITDA Hub (NitHub), University of Lagos, Nigeria. The workshop consisted of seven team members from the University of Glasgow, eight local volunteers, and 194 participants from across Nigeria (selected from a pool of 2,024 applications received from 18 different African countries). About 47% of the selected participants were women, childcare support was provided for three mothers who came to the workshop with their babies, travel support was provided for 36 participants who travelled from outside Lagos, accommodation provision on the University campus for 126 participants, and daily lunch for all. We were intentional about increasing the gender balance by emphasising everywhere during the application process that women are strongly encouraged to apply, as well as reinforce our aim to provide childcare support for those with kids.
​
Alongside our workshop, we also hosted a Women in Tech Conference on Saturday 30th July, with the theme "Breaking the Glass Ceiling".
​
The CSA Africa team would like to thank our host institution and our generous sponsors who helped to support this event, as well as a huge number of individuals and teams at the University of Glasgow and the NitHub, University of Lagos.
​
​
Gallery
WORKSHOP
OBJECTIVES
-
Help at least 250 beneficiaries improve on their programming skills and confidence.
-
Provide child care and other types of support for women to increase gender diversity.
-
Provide support for participants from outside Lagos or Nigeria to attend physically.
-
Expose our beneficiaries to practical problems to give context to what they are learning.
Workshop tracks
The workshop will be split into multiple tracks to give all participants – from beginners through to those with more experience – the opportunity to learn new computer programming skills. The following information provides an overview of each track (further information TBC).
WEEK 1 (18 - 22 July)
Week 1 Track 1:
Python fundamentals for beginners
​
This track will cover:
-
Introduction to Python programming
-
Variables and expressions
-
Sequential and Conditional coding
-
Loops and Iteration
-
Functions
-
Data structures (string, lists, dictionaries)
Pre-requisite:
No programming experience is required for this track.
​
Week 1 Track 2:
Further Programming
​
This track will cover:
-
Quick recap of Python fundamentals
-
Techniques to approach problem solving, e.g., recursion, memoization, divide and conquer.
-
Introduction to object-oriented programming
-
Introduction to functional programming (lambda, filter, reduce, map)
-
Python libraries (Numpy and Matplotlib)
​
​
WEEK 2 (25 - 29 July)
Week 2 Track 1:
Python fundamentals for beginners (continued)
​
This track will cover:
-
Reading to and writing from Files
-
Python libraries: Numpy and Matplotlib
-
Reading data using Numpy
-
Plotting data using Matplotlib
-
Further problem solving
Pre-requisite:
You must have successfully completed week 1 track 1.
Week 2 Track 3:
Introduction to Machine Learning
​
​
This track will cover:
-
Machine learning: what it is and what it is useful for
-
Basics of some machine learning algorithms, specifically regression, classification, clustering, and projection
-
Metrics for evaluating machine learning methods
-
Some exciting developments in the area of machine learning
-
Further problem solving and applications
Pre-requisite:
You must have successfully completed week 1 track 2.
​
Week 2 Track 2:
Data structures and algorithms
​
This track will cover:
-
Advanced data structures (stacks, queues, and BST)
-
Analysing the time complexity of a program using the Big-O notation
-
Algorithms (searching and sorting)
-
Further problem solving
​
Pre-requisite:
You must have successfully completed week 1 track 2.
Week 2 Track 4:
Introduction to Internet of Things (IoT)
​
This track will cover:
-
Fundamental concepts of current, voltage, resistance, power, and understanding how to measure them
-
Basic electrical safety and the design of basic electrical circuits
-
Setting up Raspberry Pi computer and connecting the required peripherals
-
Executing Python programs from the Raspberry Pi desktop
-
Using the Raspberry Pi and Python to sense and control the physical world
-
Networking the Raspberry Pi to remotely sense, control and actuate the physical world
-
Building interesting real-world applications with the Raspberry Pi and Python
Pre-requisite:
You must have successfully completed week 1 track 2.
​
WEEK 3 (01 - 04 August)
Projects
Following a brief recap of the material that has been taught, participants will be split into groups (based on their week 2 tracks) to work on a substantial programming project. Participants will be encouraged to work together to solve the task, and will present their work, as a group, on the final day.