Python Programming for Scientific Engineering (16-17-18 Jan. 2023)
Lecturer
Dr. Stefano Michieletto
Dept. of Management and Engineering - DTG
e-mail: stefano.michieletto@unipd.it
Dr. Mattia Guidolin
Dept. of Management and Engineering - DTG
e-mail: mattia.guidolin@unipd.it
Topics
The course is designed to be beginner-friendly, starting from the Python programming basics and focusing on how it can be used for scientific data manipulation and analysis.
This introduction to Python for Scientific Engineering will kickstart your learning of Python, as well as programming in general.
Basic Python skills can help you process and analyze tons of data quickly and effectively.
Upon its completion, you will be able to write your own Python scripts and perform hands-on data analysis using NumPy and Pandas, the two most popular Python open-source libraries for data analysis.
Syllabus (tentative)
1. Python Language Basics.
We will start from the very beginning, introducing the basic concepts of Python programming. On the first day of the course, we will dive into key concepts, including variables and operators, control flow, functions, and built-in data structures.
2. Introduction to NumPy.
We will learn about NumPy, a fundamental Python package for mathematical and statistical operations. We will also get started with data exploration.
3. Data Manipulation with Pandas
We will then jump into Pandas, a library created to facilitate working with data. We will use Pandas and NumPy to supercharge your analysis.
4. Data Visualization with Matplotlib
We will not have a lot of time for this topic, but we must understand how to use data visualization to explore data, the core skill in data analysis.
5. Guided project
In the latest hours of the course, we will apply the acquired skills to explore real data.
Timetable
The course will be held on the days of 15, 16, and 17 June 2022 with the following timetable:
9:00-11:00 lecture
11:00-12:30 hands-on
13:30-15:30 lecture
15:30-17:00 hands-on
Classrooms
Monday 16/01 VM10
Tuesday 17/01 Saletta riunioni second piano San Nicola (bring your own PC)
Wednesday 18/01 VM10
Lectures format
In person lessons.
Admission
Please send an e-mail to the lecturer and register on Moodle.
Examination
To complete the course and get your grade, you will need to complete all the exercises proposed in the hands-on sessions. Although you are warmly invited to work on the exercises during the three days of the course, you can also hand them over in the following weeks but before the end of July.
SETUP YOUR DEVELOPMENT ENVIRONMENT: GITHUB
Setting up your development environment and being ready for the first lecture is a matter of a few minutes:
- step 1. Register for an account on GitHub.
- step 2. Get the test assignment and create a test repository
- 2.a Go to the link of the test assignment https://classroom.github.com/a/i8mlhoeT
- 2.b Authorize GitHub Classroom
- 2.c Find your email address (if you are not on the list skip to 2.d and let us know)
- 2.d Accept the assignment
- 2.e Refresh the page, access your assignment, and accept the invitation
- 2.f Now you have a personal copy of the assignment files (the copy is called repository) and you can modify the test_notebook (step 3)
All the materials and hands-on exercises will be distributed as GitHub classroom assignments.
- step 3. Open https://github.com/python-prog-scientific-eng-aa-2022-23
- 3.a access your repo named "test-accountname"
- 3.b click on Code -> create codespace on main
- 3.c Click on Extensions on the left panel
- 3.d Search for "jupyter"
- 3.e Install the Jupyter extension
- 3.f select the test_notebook.ipynb notebook
- 3.g now you are ready to modify the notebook and run the Hello World example
- 4.a After modifying the code, to save and commit the changes click on "Source control" on the left panel
- 4.b Enter a message describing what you have implemented
- 4.c click "Commit"
- 4.d click "Sync Changes"
- 4.e now the changes will appear on your GitHub repo!
Python Language Basics
Lecture: https://classroom.github.com/a/zbvfafs1
Assignment: https://classroom.github.com/a/aRaTcLOJ
Data Structures
Lecture: https://classroom.github.com/a/0gyaom_1
Assignment: https://classroom.github.com/a/pJJmKqmx
Dictionaries
Lecture: https://classroom.github.com/a/WE5Y6HS9
Functions
Lecture: https://classroom.github.com/a/Ttgbw7hG
Assignment: https://classroom.github.com/a/bKK_eZIP
Numpy
Lecture: https://classroom.github.com/a/_PIP8C0p
Assignment: https://classroom.github.com/a/itwlQUKL
Pandas
Lecture: https://classroom.github.com/a/lksNLyqX
Assignment: https://classroom.github.com/a/9mtlE3nR
Matplotlib
Lecture: https://classroom.github.com/a/g7mGI-8t
Assignment: https://classroom.github.com/a/ZKo4JtPo
Guided Project
https://classroom.github.com/a/ryySJckm