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: %% Cell type:markdown id: tags:
# Introduction to Python for Engineers # Introduction to Python for Engineers
## Agenda ## Agenda
- [Where do we start?](#where-do-we-start) - [Where do we start?](#where-do-we-start)
- [An Example of a Python Program](#an-example-of-a-python-program) - [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) - [Background and History of Python Programming Language](#background-and-history-of-python-programming-language)
- [About this Course](#about-this-course) - [About this Course](#about-this-course)
- [Lession 1: Introduction to Jupyter Notebook](#lesson-1) - [Lession 1: Introduction to Jupyter Notebook](#lesson-1)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# Where do we start? # Where do we start?
Let's do a short Poll to see what you alredy know about Python. Let's do a short Poll to see what you alredy know about Python.
1. I have never used Python before. 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, but I am not very familiar with it.
1. I have used Python before and I am somewhat familiar with it. 1. I have used Python before and I am somewhat familiar with it.
1. I am a Python expert. 1. I am a Python expert.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# An Example of a Python Program # An Example of a Python Program
Below you see 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! 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: %% Cell type:code id: tags:
``` python ``` python
print('Python is fun!') print('Python is fun!')
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
for g in range(3, 0, -1): for g in range(3, 0, -1):
print(g) print(g)
``` ```
%% Cell type:markdown id: tags: %% 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. 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: %% Cell type:markdown id: tags:
# Background and History of Python Programming Language # Background and History of Python Programming Language
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Why Python? ## Why Python?
Python is a very popular programming language for a variety of reasons 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. * **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) * **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. * **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. * **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. * **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. * **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. * **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: %% Cell type:markdown id: tags:
## Background and History of Python Programming Language ## Background and History of Python Programming Language
Let's trace the roots of this programming language Let's trace the roots of this programming language
* https://www.youtube.com/watch?v=Tm5u97I7OrM * https://www.youtube.com/watch?v=Tm5u97I7OrM
* https://www.youtube.com/watch?v=ucD_1ryKKm0 * https://www.youtube.com/watch?v=ucD_1ryKKm0
* https://www.youtube.com/watch?v=J0Aq44Pze-w * https://www.youtube.com/watch?v=J0Aq44Pze-w
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Different Ways to use Python ## 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. * **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. * **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++. * **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) * **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: %% Cell type:markdown id: tags:
# About this Course # About this Course
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Some Comments Upfront ## Some Comments Upfront
1. The goal of this course is a dedicated introduction to the programming language for engineers 1. The goal of this course is a dedicated introduction to the programming language for engineers
* Basic usage of the language * Basic usage of the language
* Crunching data and connecting from different sources * Crunching data and connecting from different sources
* Dealing with math and visualization * Dealing with math and visualization
2. With 2 ECTS we can only scrath at the surface 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 * 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! * 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) * 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 3. Language: This course is in English language
* Most of the documentaiton and examples you find are in English anyway * Most of the documentaiton and examples you find are in English anyway
* We plan to offer this course to incomming exchange students * We plan to offer this course to incomming exchange students
4. There are tons of material to read, learn, and get support online 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/ * Most of the time this course refers to: https://docs.python.org/3/ and https://www.w3schools.com/
* It's simple, complete, and it looks the same for many programming languages * 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: %% Cell type:markdown id: tags:
## Content of this Course ## Content of this Course
1. The basics (Week 1-4) 1. The basics (Week 1-4)
* Working with Jupiter Notebooks and VS-Code * Working with Jupiter Notebooks and VS-Code
* Python syntax, data types, and control structures, loops * Python syntax, data types, and control structures, loops
* Functions, namespaces, and libraries * Functions, namespaces, and libraries
2. Working with data (Week 5-7) 2. Working with data (Week 5-7)
* Extended list types: dictionary, tuples, sets * Extended list types: dictionary, tuples, sets
* Crunching strings * Crunching strings
* Reading and writing files * Reading and writing files
3. Dedicated libraries for engineers (Week 8-10) 3. Dedicated libraries for engineers (Week 8-10)
* Pandas * Pandas
* NumPy * NumPy
* MathPlot * MathPlot
4. Advanced programming skills (Week 11-14) 4. Advanced programming skills (Week 11-14)
* Using webservices * Using webservices
* Object oriented programming with Python * Object oriented programming with Python
You will find all required links on Moodle. And all lecture notebooks can be accessed here: 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 https://gitlab.ost.ch/edu-public/python-for-engineers/pyeng-lectures
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## About coding and AI in this course ## 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 * 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. * At these days, we cannot trust into AI.
* Sometimes it does not understand the problem, your are trying to solve, * Sometimes it does not understand the problem, your are trying to solve,
* sometimes it just makes things up that that do not exist * sometimes it just makes things up that that do not exist
* AI has become a problem in cyber security * AI has become a problem in cyber security
* Thus, AI is only a helpful tool, if you can understand the output of it * 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. * 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** **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 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: %% Cell type:markdown id: tags:
## Our Development Environment ## Our Development Environment
* In this course we use **Visual Studio Vode** as our IDE (most of you should be familiar with this) * 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** * 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 * 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***! * 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 * 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) * 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 * 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** * 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. * 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: %% Cell type:markdown id: tags:
# Lesson 1: Introduction to Jupyter Notebook # Lesson 1: Introduction to Jupyter Notebook
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## About Jupyter Notebook ## About Jupyter Notebook
* As mentioned before Jupyter Notebooks are a great way to program, explain, document and present results all in one place. * 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 * Jupyter notebook is a fusion of two very fundamental technologies
* Markdown: A simple notation convention to create formated text using a plain text editor * Markdown: A simple notation convention to create formated text using a plain text editor
* Python: Our programming language * Python: Our programming language
* In short jupiter notebook is a simple file with the ending .ipynb * 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 * 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 * Inside these file we can create blocks
* Markdown blocks to wirte text * Markdown blocks to wirte text
* Python blocks to write code * Python blocks to write code
* Each python block is followed by an output block where we see the results of the python code. * Each python block is followed by an output block where we see the results of the python code.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Let's Create our First Notebook ## Let's Create our First Notebook
<img src="images/pynb-hello-world.png" class="float-left" /> <img src="images/pynb-hello-world.png" class="float-left" />
You see, it's simple... You see, it's simple...
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Here's What a Real Document Could Look Like ## Here's What a Real Document Could Look Like
[Example](http://localhost:8888/notebooks/lecture1/example.ipynb#) [Example](http://localhost:8888/notebooks/lecture1/example.ipynb#)
Need more hints? Need more hints?
* This a good introduction to jupyter notebooks: https://www.dataquest.io/blog/jupyter-notebook-tutorial/ * 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 * This is a good guide to work with jupyter in VSCode: https://code.visualstudio.com/docs/datascience/jupyter-notebooks
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## The most Important Markdown Rules ## The most Important Markdown Rules
| Sign | Explanation | Exampe | | Sign | Explanation | Exampe |
| --------------- | ----------------------------- | --------------------------------------- | | --------------- | ----------------------------- | --------------------------------------- |
| `# Title` | Heading 1 | <h1>Heading 1</h1> | | `# Title` | Heading 1 | <h1>Heading 1</h1> |
| `## Title` | Heading 2 | <h2>Heading 1</h1> | | `## Title` | Heading 2 | <h2>Heading 1</h1> |
| `*some text*` | Italic | *This is italic text* | | `*some text*` | Italic | *This is italic text* |
| `**some text**` | Bold | **This is bold text** | | `**some text**` | Bold | **This is bold text** |
| `* Point` | Bullet point | <ul><li>Point 1</li></ul> | | `* 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> | | `1. Item` | Numberd Item (allways use 1.) | <ol><li>Item 1</li><li>Item 2</li></ol> |
| `---` | Horizontal line | | | `---` | Horizontal line | |
| \`code\` | Code (mono spcae) | `code example` | | \`code\` | Code (mono spcae) | `code example` |
For further reference go here: [https://markdownguide.org/cheat-sheet/] For further reference go here: [https://markdownguide.org/cheat-sheet/]
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# We did it, that's all for today. # We did it, that's all for today.
## *Now let's get our hands dirty!* ## *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