Console
CSA Africa 2021 (ONLINE)
FORMAT

Due to the global pandemic, our workshop for 2021 was held fully online, from 30 August - 10 September 2021.

LEARNING OUTCOMES

The workshop spanned two weeks, with two parallel tracks in the first week as well as the second week. 


FINAL REPORT

This report highlights details of the 2021 workshop which took place fully online due to the ongoing pandemic.

Week 1 Track 1: Python fundamentals for beginners

This track covered

  • Introduction to Python programming

  • Variables and expressions

  • Sequential and Conditional coding

  • Loops and Iteration

  • Functions

  • Data structures (string, lists, dictionaries)

  • Files

 

Pre-requisite

No programming experience is required for this track.

 

Skills gained

  • You will be able to read in data from the keyboard or a file

  • Write out to the screen or save the data in a file

  • Store the data in various data structures such as lists and dictionaries

  • Process the data using iteration and conditions to solve problems

  • Use functions to reuse sections of code in the program

Week 1 Track 2: Programming confidence and problem solving

This track covered

  • Quick recap of Python fundamentals

  • Techniques to approach problem solving, e.g., recursion, memoization.

  • How to get confident with programming

  • Python errors and how to handle exceptions with try and except

  • Advanced data structures (stacks, queues, binary search trees)

 

Pre-requisite

Good understanding of Python fundamentals, including functions, file IO, and the basic data types (lists, strings, tuples and dictionaries).

 

Skills gained

  • Better understanding of Python fundamentals

  • Problem solving

  • Programming confidence

  • Error Handling

  • Advanced data structures

Week 2 Track 1: Data science with Python

This track covered

  • Numpy: you will learn why ndarrays are useful for high dimensional data and apply commonly used numpy functions

  • Plotting your data using matplotlib

  • Basics of some machine learning algorithms, specifically methods for projection, clustering, and classification

  • Application of what you’ve learned to real world problems

Pre-requisite

  • Good understanding of Python fundamentals 

  • Knowledge of how to use Python libraries

 

Skills gained

  • Efficiently storing and processing data using numpy

  • Data visualisation

  • Machine learning fundamentals

  • Evaluating the performance of your machine learning algorithms

Week 2 Track 2: Algorithms, complexity and object-oriented programming (OOP)

This track covered

  • Analysing the time complexity of a program using the Big-O notation  

  • Algorithms (searching and sorting)

  • Object-oriented programming (objects, variables, methods and operator overloading)

 

Pre-requisite

Good understanding of Python fundamentals, including functions, file IO, and the basic data types (lists, strings, tuples and dictionaries). Also, ideally, participate in track 2 of week 1.

 

Skills gained

  • Algorithms

  • Complexity

  • Debugging

  • OOP