Matteo Barnaba, PhD
scientific software developer specialized in HPC
matteo.barnaba@exact-lab.it
-
introduction to computer programming (how to talk to computers)
-
intro to Python3
-
variables
-
conditions, aka flow of control (if, else, elif)
-
errors (raise, try, catch)
-
loops (while, for)
-
functions (def and lambda)
-
modules (import)
-
object oriented programming
- classes and objects
- Python data model
- inheritance
- polymorphism
- abstraction
- iterators
- decorators
- functors
-
collections
- lists
- tuples
- dictionaries
- sets
-
input-output
- read
- write
- formatted I/O
- contexts
-
data visualization (matplotlib)
-
Numpy/Scipy module and numerical applications/examples
- function interpolation and approximation
- numerical optimization
- numerical integration
- solution of differential equations
Any suggestions from the attendees are warmly welcome (both for the topics and examples) as the course is intended to be as interactive as possible.
It would also be very useful to know whether you know other programming languages, which ones and how well (1-5). So I can explain (hopefully) new concepts in terms of other programming languages you are familiar with.
Please let me know via my mail address: matteo.barnaba@exact-lab.it
- This course is not about how to setup Python and the other needed modules on your system. The process is usually quite easy but might be very system-dependent and it is not related to the language itself.
I strongly suggest you to use Google Colab for this course as I will be using it too. I prepared this jupyter notebook for the course and my idea would be to expand it together.
In case you do not like Google, there are other solutions for running jupyter notebooks in your browser, e.g., alternatives. I did not test them, do not ask me in case something is not right with them ... sorry ;)