Skip to content
Snippets Groups Projects
Commit 95d6ed7e authored by Felix Nyffenegger's avatar Felix Nyffenegger
Browse files

finished unit 2

parent 097d5593
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Introduction to Python for Engineers
## Agenda
- [Where do we start?](#where-do-we-start)
- [An Example of a Python Program](#an-example-of-a-python-program)
- [Background and History of Python Programming Language](#background-and-history-of-python-programming-language)
- [About this Course](#about-this-course)
- [Lession 1: Introduction to Jupyter Notebook](#lesson-1)
%% Cell type:markdown id: tags:
# Where do we start?
Let's do a short Poll to see what you alredy know about Python.
1. I have never used Python before.
1. I have used Python before, but I am not very familiar with it.
1. I have used Python before and I am somewhat familiar with it.
1. I am a Python expert.
%% Cell type:markdown id: tags:
# An Example of a Python Program
Below you see an example of a python program.
If you are used to other programming languages, this looks a bit different... but you'll get used to it!
%% Cell type:code id: tags:
``` python
print('Python is fun!')
```
%% Cell type:code id: tags:
``` python
for g in range(3, 0, -1):
print(g)
```
%% Cell type:markdown id: tags:
As you can see python is easy to read, almost like English. You will learn more about the Python syntax, later on.
%% Cell type:markdown id: tags:
# Background and History of Python Programming Language
%% Cell type:markdown id: tags:
## Why Python?
Python is a very popular programming language for a variety of reasons
* **Readability and Simplicity**: Python has a clean and readable syntax, which makes it easy to learn and understand.
* **Versatility**: Python is a general-purpose language, meaning it can be used for a wide range of applications, from web development to data analysis, machine learning, automation, and more. (e.g. our PLM System "CIM Database" is written in Python)
* **Large Standard Library**: Python comes with a vast standard library that provides modules and functions for many common tasks, reducing the need for external libraries.
* **Extensive Ecosystem**: There is a rich ecosystem of third-party libraries and frameworks that extend Python’s capabilities across different domains.
* **Community Support**: Python has a large and active community, which means extensive documentation, a wealth of tutorials, and community-contributed packages are readily available.
* **Cross-Platform Compatibility**: It can run on various operating systems like Windows, macOS, and Linux without modification.
* **Data Science and Machine Learning**: Python has become the go-to language for data science and machine learning, largely due to libraries like NumPy, Pandas, Scikit-learn, and TensorFlow.
%% Cell type:markdown id: tags:
## Background and History of Python Programming Language
Let's trace the roots of this programming language
* https://www.youtube.com/watch?v=Tm5u97I7OrM
* https://www.youtube.com/watch?v=ucD_1ryKKm0
* https://www.youtube.com/watch?v=J0Aq44Pze-w
%% Cell type:markdown id: tags:
## Different Ways to use Python
* **Python in "Jupiter Notebooks"**: This slide you see is a document, called Jupiter Notebook. It combines text / documentation with coding. In every code cell we can execute some python. All cells know of each other. This is a very convenient way do data analytics, since you can explain your thoughts, run your code, and visualize the results at the same place.
* **Standalone Python Applications**. You write your code in an IDE such as VS-Code and execute it. There many different types of applications, such as web-applications, command line applications, or applications with a user interface that runs on your operating system.
* **Micro-Python**: This is a subset of Python to write code, that runs on micro-controllers. This is becoming more and more popular for prototyping IoT applications. However, in terms of speed, it cannot compete with C/C++.
* **Python Scripting**: And many software systems use Python as a scripting language to enhance its functionality (like our PLM solution at OST, or AWS Lambda Functions)
%% Cell type:markdown id: tags:
# About this Course
%% Cell type:markdown id: tags:
## Some Comments Upfront
1. The goal of this course is a dedicated introduction to the programming language for engineers
* Basic usage of the language
* Crunching data and connecting from different sources
* Dealing with math and visualization
2. With 2 ECTS we can only scrath at the surface
* We will give you a lot of hints where you can do a deep dive yourself
* If you want to become a programmer: you need to programm, A LOT!
* We highly recommend to to give yourself challanges (AI is a good source to find ideas on how you can challange yourselg)
3. Language: This course is in English language
* Most of the documentaiton and examples you find are in English anyway
* We plan to offer this course to incomming exchange students
4. There are tons of material to read, learn, and get support online
* Most of the time this course refers to: https://www.w3schools.com/
* It's simple, complete, and it looks the same for many programming languages
* Most of the time this course refers to: https://docs.python.org/3/ and https://www.w3schools.com/
* The fist is comprehensive and accurate to the latest standard
* The second one is simple, sets focus on the basics, and it looks the same for many programming languages
%% Cell type:markdown id: tags:
## Content of this Course
1. The basics (Week 1-4)
* Working with Jupiter Notebooks and VS-Code
* Python syntax, data types, and control structures, loops
* Functions, namespaces, and libraries
2. Working with data (Week 5-7)
* Extended list types: dictionary, tuples, sets
* Crunching strings
* Reading and writing files
3. Dedicated libraries for engineers (Week 8-10)
* Pandas
* NumPy
* MathPlot
4. Advanced programming skills (Week 11-14)
* Using webservices
* Object oriented programming with Python
You will find all required links on Moodle. And all lecture notebooks can be accessed here:
https://gitlab.ost.ch/edu-public/python-for-engineers/pyeng-lectures
%% Cell type:markdown id: tags:
## About coding and AI in this course
* AI and co-pilots are great tools! I use them a lot for programming, it makes me faster
* At these days, we cannot trust into AI.
* Sometimes it does not understand the problem, your are trying to solve,
* sometimes it just makes things up that that do not exist
* AI has become a problem in cyber security
* Thus, AI is only a helpful tool, if you can understand the output of it
* When using AI, make sure you know what you are doing.
**If you are new to a langugage don't use co-pilots. You need to get familiar with the syntax and you need to figure out how to use the language yourself**
Remark, this Video explains very well, what you should consider when learning Python, and how to use/not use AI/Co-Pilots: https://www.youtube.com/watch?v=St48epdRDZw
%% Cell type:markdown id: tags:
## Our Development Environment
* In this course we use **Visual Studio Vode** as our IDE (most of you should be familiar with this)
* Most of the exercises will be done on **Jupiter Notebook**
* All templates and exercises are deliveres thoroug **gitlab**: https://gitlab.ost.ch/edu-public/python-for-engineers/pyeng-exercises
* We highly encourage you to store your code in a personal ***git repository***!
* This is the way programmers work, and you won't loose your code
* If you want support, this is the best way to share code with us (I will not accept python files via email)
* For those who don't know git, go here: https://www.youtube.com/watch?v=r8jQ9hVA2qs
* In class we are working with **Python version 3.7**
* Feel free to use your own device and upgrade to version **3.12**. However, we will not support or assist with private installations.
%% Cell type:markdown id: tags:
# Lesson 1: Introduction to Jupyter Notebook
%% Cell type:markdown id: tags:
## About Jupyter Notebook
* As mentioned before Jupyter Notebooks are a great way to program, explain, document and present results all in one place.
* Jupyter notebook is a fusion of two very fundamental technologies
* Markdown: A simple notation convention to create formated text using a plain text editor
* Python: Our programming language
* In short jupiter notebook is a simple file with the ending .ipynb
* Visual Studio Code (or in Jupyterlab, wich is another tool work with Jupyter notebooks) help you make these files interactive
* Inside these file we can create blocks
* Markdown blocks to wirte text
* Python blocks to write code
* Each python block is followed by an output block where we see the results of the python code.
%% Cell type:markdown id: tags:
## Let's Create our First Notebook
<img src="images/pynb-hello-world.png" class="float-left" />
You see, it's simple...
%% Cell type:markdown id: tags:
## Here's What a Real Document Could Look Like
[Example](http://localhost:8888/notebooks/lecture1/example.ipynb#)
Need more hints?
* This a good introduction to jupyter notebooks: https://www.dataquest.io/blog/jupyter-notebook-tutorial/
* This is a good guide to work with jupyter in VSCode: https://code.visualstudio.com/docs/datascience/jupyter-notebooks
%% Cell type:markdown id: tags:
## The most Important Markdown Rules
| Sign | Explanation | Exampe |
| --------------- | ----------------------------- | --------------------------------------- |
| `# Title` | Heading 1 | <h1>Heading 1</h1> |
| `## Title` | Heading 2 | <h2>Heading 1</h1> |
| `*some text*` | Italic | *This is italic text* |
| `**some text**` | Bold | **This is bold text** |
| `* Point` | Bullet point | <ul><li>Point 1</li></ul> |
| `1. Item` | Numberd Item (allways use 1.) | <ol><li>Item 1</li><li>Item 2</li></ol> |
| `---` | Horizontal line | |
| \`code\` | Code (mono spcae) | `code example` |
For further reference go here: [https://markdownguide.org/cheat-sheet/]
%% Cell type:markdown id: tags:
# We did it, that's all for today.
## *Now let's get our hands dirty!*
......
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment