Skip to main content
`Ctrl`+`K`

# Data Science I (course at WHZ)

The first part of the data science lecture series introduces the Python programming language and some Python libraries required for data processing. Next to Python the focus is on working with big data, obtaining, understanding and restructuring data, as well as extracting basic statistical information from data.

## Warm-Up

### Week 1

Prepare

- Data Science, AI, Machine Learning

- Python and Jupyter

- Computers and Programming

Discuss and apply

- Computer Basics (exercises)

- Install and Use Python

  - Working with JupyterLab (project)

Practical exercise session

- Install and Use Python

  - Install Jupyter Locally (project)

## Python for Data Science

### Week 2 (Crash Course I)

Prepare

- Crash Course

  - A First Python Program

  - Building Blocks

Discuss and apply

- Finding Errors (exercises)

- Basics (exercises)

Practical exercise session

- Install and Use Python

  - Python Without Jupyter (project)

- Python Programming

  - Simple List Algorithms (project)

### Week 3 (Crash Course II)

Prepare

- Crash Course, continued

  - Screen IO

  - Library Code

  - Everything is an Object

Discuss and apply

- More Basics (exercises, last task is bonus)

Practical exercise session

- Python Programming

  - Geometric Objects (project, last section is bonus)

### Week 4 (Variables and Operators)

Prepare

- Variables and Operators

  - Names and Objects

  - Types

  - Operators (section Operators as Member Functions is bonus)

  - Efficiency (all but section Garbage Collection is bonus)

Discuss and apply

- Variables and Operators (exercises)

- Memory Management (exercises, all but the last two tasks are considered bonus)

Practical exercise session

- Weather

  - DWD Open Data Portal (project)

- Python Programming

  - bonus: Vector Multiplication (project)

### Week 5 (Lists and Friends, Strings)

Prepare

- Lists and Friends

  - Tuples

  - Lists

  - Dictionaries

  - Iterable Objects

- Strings

  - Basics

  - Special Characters

  - String Formatting

Discuss and apply

- Lists and Friends (exercises)

- Strings (exercises, last one is bonus)

Practical exercise session

- MNIST Character Recognition

  - The xMNIST Family of Data Sets (project)

### Week 6 (Accessing Data)

Prepare

- Accessing Data

  - File IO

  - Text Files

  - ZIP Files

  - CSV Files

  - HTML Files

  - XML Files

  - Web Access

Discuss and apply

- File Access (exercises)

Practical exercise session

- Cafeteria, download part (project)

### Week 7 (Functions, Modules, Packages)

Prepare

- Functions

  - Basics

  - Passing Arguments

  - Anonymous Functions (Lambdas)

  - Function and Method Objects

  - Recursion

- Modules and Packages

Discuss and apply

- Functions (exercises)

Practical exercise session

- Cafeteria, parsing part (project)

### Week 8 (Errors, Debugging, Inheritance)

Prepare

- Error Handling and Debugging Overview

- Inheritance (last section Exceptions Inherit from Exception is bonus)

- Unified Modeling Language (UML) (bonus)

Discuss and apply

- Object-Oriented Programming (exercises)

- Further Python Features (bonus reading)

Practical exercise session

- Weather

  - Getting Forecasts, download part (project)

## Managing Data with Python

### Week 9 (NumPy Basics)

Prepare

- Efficient Computations with NumPy

  - NumPy Arrays

  - Array Operations

  - Advanced Indexing

  - Vectorization

Discuss and apply

- NumPy Basics (exercises)

Practical exercise session

- Weather

  - Getting Forecasts, parsing part (project, automatic download is bonus)

### Week 10 (Advanced NumPy)

Prepare

- Efficient Computations with NumPy, continued

  - Array Manipulation Functions

  - Copies and Views

  - Efficiency Considerations

  - Special Floats

  - Linear Algebra Functions

  - Random Numbers

- Saving and Loading Non-Standard Data

Discuss and apply

- Image Processing with NumPy (exercises, last one is bonus)

Practical exercise session

- MNIST Character Recognition

  - Load QMNIST (project)

### Week 11 (Pandas Basics)

Prepare

- High-Level Data Management with Pandas

  - Series

  - Data Frames

Discuss and apply

- Pandas Basics (exercises)

Practical exercise session

- Public Transport

  - Get Data and Set Up the Environment (project)

### Week 12 (Advanced Indexing, Dates and Times)

Prepare

- High-Level Data Management with Pandas, continued

  - Advanced Indexing

  - Dates and Times

Discuss and apply

- Pandas Indexing (exercises)

Practical exercise session

- Corona Deaths (project)

### Week 13 (Categories, Restructuring)

Prepare

- High-Level Data Management with Pandas, continued

  - Categorical Data

  - Restructuring Data

  - Performance Issues

Discuss and apply

- Advanced Pandas (exercises)

- Pandas Vectorization (exercises)

Practical exercise session

- Weather

  - Climate Change (project)