Python Tutorials

ACM Student Chapter | KAUST | 2014

Venue: University Library Computer Lab
Date: February 23 - 27, 2014


[03/02/2014]: All tutorials are now updated and include solutions.
Thanks everybody for attending the tutorials! It was great experience to teach and show you Python in action. We hope you enjoyed our sessions, and we will be glad if you can give us some feedback. A short questionnaire will be sent soon. It will take you no more than 5 minutes to complete it.

[02/26/2014]: Advanced techniques' tutorials are now available.

[02/24/2014]: Special topics tutorials are now available. Please check the repository or use the links in the schedule below.

[02/23/2014]: Basics tutorials are now updated, and our solutions for the exercises are available. Please check the repository or use the links in the schedule below.

[02/21/2014]: Please note that it is not required to bring your own laptop in any of our sessions. All necessary software has been already installed the library computer lab workstations. However, if you want to bring your laptop please follow the setup instructions.

[02/18/2014]: We appreciate your high interest! Please note that all tutorials are already full, except the last one (MPI with Python). New registration will go into a waiting list. If for any reason you are not able to attend a tutorial, please let us know in advance by sending email to .

[02/15/2014]: KAUST ACM Student Chapter is pleased to invite you to take part in a week of Python tutorials, February 23 - 27, 2014. Before attending, please register.


The tutorials are split into 3 parts: Basic, intermediate, and advanced levels. Each tutorial level is given on a separate day. The morning sessions cover general Python topics of various levels; the afternoon sessions are devoted to specific techniques, packages, and problems that could be easily solved with Python. Finally, we have a 2-hour session on MPI with Python.

Day 1:   Sunday, Feb 23
10:30 - 12:00 Basics, part I Tareq Malas Add to calendar
14:00 - 15:30 Basics, part II Tareq Malas,
Maruan Al-Shedivat
Add to calendar
Day 2:   Monday, Feb 24
10:30 - 12:00 Special topics, part I Tareq Malas Add to calendar
14:00 - 15:30 Special topics, part II Yiannis Hadjimichael Add to calendar
Day 3:   Wednesday, Feb 26
10:30 - 12:00 Advanced techniques, part I Maruan Al-Shedivat Add to calendar
14:00 - 15:30 Advanced techniques, part II Maruan Al-Shedivat,
Yiannis Hadjimichael
Add to calendar
Day 4:   Thursday, Feb 27
14:00 - 16:00 MPI with Python Lisandro Dalcin Add to calendar


Day 1: Basics

This is a beginners' level session, in which we focus on the basic syntax of the language and essential functionality. The session is hands-on.

Part I: Getting started with Python: Using iPython notebook, basic usage and syntax

Part II: Python libraries, programming approaches in python, advanced syntax usage, input and output.

Day 2: Special topics

This session is focused on stepping beyond basics and also on some useful numerical packages used by scientists world wide: Numpy, SciPy, and Matplotlib. The session is hands-on.

Part I: Useful tools for automated script generation; terminal commands execution and parsing results; working with files: reading, parsing, using encodings, and writing to files.

Part II: Scientific calculations with NumPy and advanced plotting techniques with MatPlotLib.

Day 3: Advanced techniques

During this session we go further from procedural programming to object-oriented style and functional approaches widely used in professional Python programming. The session is hands-on.

Part I: Classes and objects, object-oriented programming, functional programming, memory management.

Part II: Machine learning in Python with Scikit-Learn; Optimization in Python with OpenOpt.

Day 4: MPI with Python

During this session you will learn about Message Passing Interface (MPI) programming approach in high performance computing and about how to work with it in Python. This session is a lecture.

We hope that you will enjoy the tutorials and will learn skills you can apply in your daily research and programming. Looking forward to seeing you there!