Skip to main content
It looks like you're using Internet Explorer 11 or older. This website works best with modern browsers such as the latest versions of Chrome, Firefox, Safari, and Edge. If you continue with this browser, you may see unexpected results.

Computer Science: ACM Student Chapter Workshop Materials

Resources to support the Computer Science Program at KAUST

Python Workshop Materials

Tutorial Structure

Topics covered:

  • Basics of Python & NumPy ,
  • Visualization Tools,
  • Advanced Topics: Object Oriented Programming, Optimization, Machine Learning.

Each topic consists of two sessions: The first one provides a general overview with many quick hands-on exercises. The second discusses additional tips, tricks, and Pythonic hacks, and walks you through a couple of short mini-projects (exercises).

Module 1: Basics

This is a beginners' level tutorial where we focus on the basic syntax of the language and essential functionality as well as the fundamental packages NumPy & SciPy. The first session targets to give a comprehensive intro, while second focuses on specific and cool examples.

Session I: Getting started with Python: Using iPython notebook, syntax, I/O, NumPy & SciPy.

Tutorial  Basics: Introduction to Python

Session II: A few cool and interesting hands-on examples of Python usage.

Tutorial  Basics: NumPy & SciPy

Module 2: Plotting and Data Visualization

The second day focuses on using Python for data visualization and introduces the widely used Matplotlib and other packages such as Seaborn, and Bokeh. During the first session we will discuss the main Python graphics concepts such as figures, axes, etc., and will work through a number of quick examples. There will be a simple mini-project given as a homework. The second session builds upon our knowledge of Matplotlib, and walks through a few more techniques, such as complex plotting.

Session I: Introduction to Python plotting and visualization packages: Matplotlib, Seaborn.

Tutorial  Basics: Mini-project                                                             

Session II: Advanced visualization techniques using Matplotlib. Interactive graphics with Bokeh.

Tutorial  Plotting and Visualization

Module 3: Advanced Topics: Object Oriented Programming

In this tutorial we introduce object-oriented programming (OOP), Classes and objects, functions, scopes and closures, as well as cover useful logging techniques.

Tutorial Advanced Topics: Object Oriented Programming

Module 4: Advanced Topics: Optimization & Machine learning

During the first part of this session we will cover optimization using SciPy and OpenOpt and in the last part some machine learning techniques with Scikit-Learn.

Tutorial  Advanced Topics: Optimization & Machine Learning

Prior Tutorial web pages

Workshop Creators

Many Thanks to Yiannis Hadjimichael, Maruan Al-Shedivat and Emaad Manzoor for these Python Workshop Tutorials!

Mathematica Tutorial