Original Agenda: Python For SAP Developers (2023-03-13 - 2023-03-15)

Agenda (i.e., a basis for further discussion) for a three day Python training. Exercises will be woven in on demand (see here).

Day 1: Basics

Goal: gain a basic understanding of Python: variables, datatypes, some language internals (good to know if one wants to do more).

Setup

Datatypes

An overview of the language, how variables are used, and which primary datatypes there are.

Control Flow, Sequences, Iteration

Basic branching and looping. Iteration (via the for loop) is an important topic in Python, which is why we dedicate some time to it.

More Datatypes

There is more to say about datatypes than what has already been said (there is always more to everything in Python). What’s mutable, va. immutable, and what are the consequences? How can we save another three lines of code? What’s Pythonic?

Day 2: Outlook Into Advanced Python

Goal: there’s always more. OO isn’t necessary, for example, nonetheless Python is strongly object oriented internally [1]. Exception handling isn’t necessary either (one can always let exceptions pass by and terminate the program). Knowing what decorators are isn’t necessary either, much like the iterator protocol, or context managers.

If you want to do more (probably with less code), you’ll want to know more; on day 2 we take a look into some topics that are optional, but good to at least know the basics of.

OO Introduction

Python is strongly object oriented internally - even an int is an object of class int, for example. It does not impose OO knowledge on its users though; nevertheless knowing a bit of it cannot hurt.

Exception Handling

Error handling is commonly done using exceptions - a construct that lets you focus your code on the sunny case, and do clumsy error handling in a separate section of the code.

Context Managers (Automatic Cleanup)

Much like error handling, resource cleanup tends to become clumsy. Context managers are a way to bring more structure to that part of a program.

Iteration, Generators, Comprehensions

Iterating over large sets of data - while at the same time saving resources - is one of the absolute strengths of Python. Lets dive a bit deeper into what a for loop actually is.

Day 3: Domain Specifics

That day is dedicated to solving domain specific problems: implementing a SAP data pipeline in Python.

Pandas

From Pandas

NumPy

Unit Testing

Footnotes