Difference between revisions of "PhD Python Course"

From ISLAB/CAISR
(Created page with "A separate page for discussions == Introduction == Books: * http://www.diveintopython.net/ - really good, but a little bit dated * http://learn...")
 
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
A separate page for [[Python Course discussions|discussions]]
+
== Course Format ==
 +
 
 +
I am responsible for the PhD course about Python, which is part of the mandatory "Introduction to research in embedded and intelligent systems" (FOIT002)... it used to be called "Advanced Python Programming" and I believe the current official name is "Embedded Intelligent Systems Languages and Tools".
 +
 
 +
This is a reminder and a "call for presentations" email. If you want to prepare a presentation for the course, let me know :)
 +
 
 +
This course is very application-driven (the goal is to make it easier for students to use Python as a tool) and also participant-driven (since I do not necessarily know what specific topics are useful for you). The focus is on exploring available tools and libraries, and on figuring out how to make best use out of them.
 +
 
 +
To this end, the course consists of presentations by students -- each about two hours total, with the first half being a lecture/presentation, and the second half being some form of hands-on exercise/demo. The topic can be anything related to programming tools... preferably Python, but not necessarily -- for example, we have had presentations about R before.
 +
 
 +
You can also check the course webpage on the wiki, with past presentations: https://wiki.hh.se/caisr/index.php/Python_Course
 +
 
 +
In order to get credits for the course, you will need to do one such presentation, and attend most of presentations by other students (at least three).
 +
 
 +
Also, if you know of somebody who is interested in the course but didn't get this email, let me know (and/or subscribe them to the mailing list)
 +
 
 +
 
 +
-- Slawomir
 +
 
 +
== Recent Presentations ==
 +
* Tiago Fernandes Cortinhal (2024-08-16): [[Media:PytorchLightning.pdf|Pytorch with Lightning Presentation]] and [[Media:PytorchLightning.zip|Pytorch with Lightning Jupyter Notebook]]
 +
* Ghaith Altarabichi (2024-03-19): [[Media:deap.zip|DEAP]]
 +
* Ali Nada (2024-03-14): [[Media:CudaC.pdf|Cuda C Presentation]] and [[Media:CudaC.zip|Cuda C Additional Materials]]
 +
* Galina (2024-03-13): [[Media:Plotly.pdf|Plotly Presentation]] and [[Media:Plotly.zip|Plotly Additional Materials]]
 +
* Nasrin Taghiyarrenani (2024-03-12): Adapt
 +
* Emanuella Budu (2024-02-26): [[Media:SDV.pdf|SDV Presentation]] and [[Media:SDV.zip|SDV Additional Materials]]
 +
* Kevin Hernandez Diaz (2024-02-12): [[Media:DLib.pdf|DLib Presentation]] and [[Media:DLib.zip|DLib Additional Materials]]
 +
* Anna Vettoruzzo (2023-11-23): [[Media:PyCaret_presentation.pdf|PyCaret Presentation]]
 +
* Abu Mohammed Raisuddin (2023-10-19): [[Media:Git_Raisuddin.pptx|Advanced git]]
 +
* Felix Rosberg (2023-09-21): [[Media:Gradio demo.zip|Gradio]]
 +
* Talha Hanif Butt (2023-05-26): [https://bidaf.hh.se/public/AnIntroductionToJulia.pptx Presentation] and [https://bidaf.hh.se/public/AnIntroductionToJuliaNotebooks.zip Notebooks]
 +
* Quentin Delooz (2023-01-10): [[Media:Manim.pptx|manim library]]
 +
* Pablo Del Moral (2022-09-29): R language
 +
* Sina Entekhabi (2022-09-06) [[Media:Presentation-Sina.pptx|Z3]]
 +
* Kunru Chen (2022-04-20) [[Media:KerasPhD_IntroITE.pdf|Keras]]
 +
* Awais Ashfaq (2022-04-07)
 +
* Ece Calikus (2022-03-30)
 +
* Rebeen on PyTorch (2021-11-11): [https://bidaf.hh.se/public/Presentation1-PyTorch-Rebeen.pptx Presentation] and [https://github.com/rebeen/Pytorch_Tutorial- Tutorial]
 +
* Nesma on TensorFlow: [[Media:tensorflow-presentation.pptx|presentation]] and [[Media:tensorflow-examples.zip|examples]]
 +
 
 +
== Presentations from years ago ==
 +
* 2021-01-12 Gensim (presented by Alexander) [[Media:Gensim presentation and code.zip]]
 +
* 2020-04-26 Visualisation using bokeh (presented by Sundas) [[Media:Vista_Bokeh.pptx]]
 +
* NumPy and SciPy (presented by Wagner) [[File:Python_course_(scipy_and_numpy)_(Wagner).zip]]
 +
* Scikit (presented by Jens) [[File:Presentation_v3_final.pdf]]
 +
* Matplotlib (presented by Saeed) [[File:Matplotlib pres.zip‎]]
 +
* OpenCV (presented by Anna) [[File:OpenCV_by_Anna.zip]]
 +
* Interactive Python (presented by Saeed) [[File:GUI_by_saeed.zip]]
 +
* Optimization (presented by Mahboobeh) [[File:Optimization_by_mahboobeh.zip]]
 +
* Parallel Programming (presented by Süleyman) [[File:Parallel_by_Süleyman.zip‎]]
 +
* What else? (Maybe Simpy? Pygame? Cython? PIL? PySerial? ...)
  
 
== Introduction ==
 
== Introduction ==
  
Books:
+
Books (those are quite a bit dated, I am sure there are newer ones out there, but I don't know them):
* http://www.diveintopython.net/ - really good, but a little bit dated
+
* http://www.diveintopython.net/ - quite good
 
* http://learnpythonthehardway.org/book/ - seems good, even if a little basic (but I have not read it)
 
* http://learnpythonthehardway.org/book/ - seems good, even if a little basic (but I have not read it)
  
Line 11: Line 61:
 
* Wing IDE: http://www.wingware.com/
 
* Wing IDE: http://www.wingware.com/
 
* Eric: http://eric-ide.python-projects.org/
 
* Eric: http://eric-ide.python-projects.org/
 +
* codeblocks: http://www.codeblocks.org/
 
* Eclipse & PyDev plugin: http://pydev.org/
 
* Eclipse & PyDev plugin: http://pydev.org/
 
* pyscripter: http://code.google.com/p/pyscripter/
 
* pyscripter: http://code.google.com/p/pyscripter/
Line 16: Line 67:
  
 
Official:
 
Official:
* Download: http://www.python.org/ (remember to grab 2.x branch -- current version is 2.7.3)
+
* Download: http://www.python.org/
* Documentation: http://docs.python.org/2.7/
+
* Documentation: http://docs.python.org/
* Tutorial: http://docs.python.org/2.7/tutorial/index.html
+
* Tutorial: http://docs.python.org/3/tutorial/index.html
* Library Reference: http://docs.python.org/2.7/library/index.html
+
* Library Reference: http://docs.python.org/3/library/index.html
  
 
Things to start with
 
Things to start with
* setuptools: http://packages.python.org/distribute/easy_install.html
+
* pip: https://docs.python.org/3/installing/
  
 
Essential libraries:
 
Essential libraries:
Line 28: Line 79:
 
* matplotlib
 
* matplotlib
  
== 2013.01.23 ==
+
== 2015.12.04 ==
  
 
Things I have talked about today (non-obvious and important stuff in '''bold'''):
 
Things I have talked about today (non-obvious and important stuff in '''bold'''):
Line 53: Line 104:
 
** metaclasses
 
** metaclasses
  
Things I did not have time to talk about but I wanted to... modules in standard library you should definitely know about:
+
Modules in standard library you should definitely know about:
 
* sqlite3
 
* sqlite3
 
* collections (especially defaultdict)
 
* collections (especially defaultdict)
Line 77: Line 128:
 
Fun:
 
Fun:
 
* http://www.pythonchallenge.com/
 
* http://www.pythonchallenge.com/
 
== Library Presentations ==
 
* NumPy and SciPy (presented by Wagner) [[File:Python_course_(scipy_and_numpy)_(Wagner).zip]]
 
* Scikit (presented by Jens) [[File:Presentation_v3_final.pdf]]
 
* Matplotlib (presented by Saeed) [[File:Matplotlib pres.zip‎]]
 
* OpenCV (presented by Anna) [[File:OpenCV_by_Anna.zip]]
 
* Interactive Python (presented by Saeed) [[File:GUI_by_saeed.zip]]
 
* Optimization (presented by Mahboobeh) [[File:Optimization_by_mahboobeh.zip]]
 
* Parallel Programming (presented by Süleyman) [[File:Parallel_by_Süleyman.zip‎]]
 
* What else? (Maybe Simpy? Pygame? Cython? PIL? PySerial? ...)
 

Latest revision as of 14:12, 25 August 2024

Course Format

I am responsible for the PhD course about Python, which is part of the mandatory "Introduction to research in embedded and intelligent systems" (FOIT002)... it used to be called "Advanced Python Programming" and I believe the current official name is "Embedded Intelligent Systems Languages and Tools".

This is a reminder and a "call for presentations" email. If you want to prepare a presentation for the course, let me know :)

This course is very application-driven (the goal is to make it easier for students to use Python as a tool) and also participant-driven (since I do not necessarily know what specific topics are useful for you). The focus is on exploring available tools and libraries, and on figuring out how to make best use out of them.

To this end, the course consists of presentations by students -- each about two hours total, with the first half being a lecture/presentation, and the second half being some form of hands-on exercise/demo. The topic can be anything related to programming tools... preferably Python, but not necessarily -- for example, we have had presentations about R before.

You can also check the course webpage on the wiki, with past presentations: https://wiki.hh.se/caisr/index.php/Python_Course

In order to get credits for the course, you will need to do one such presentation, and attend most of presentations by other students (at least three).

Also, if you know of somebody who is interested in the course but didn't get this email, let me know (and/or subscribe them to the mailing list)


-- Slawomir

Recent Presentations

Presentations from years ago

Introduction

Books (those are quite a bit dated, I am sure there are newer ones out there, but I don't know them):

IDE:

Official:

Things to start with

Essential libraries:

  • numpy / scipy
  • matplotlib

2015.12.04

Things I have talked about today (non-obvious and important stuff in bold):

  • Hello, world!
  • list / dictionary / string / number / tuple / set
  • functions
    • default arguments, keyword arguments, variable argument lists
    • anonymous functions / lambda
  • exceptions
  • if / for / while / else / break / continue
    • else also works for loops
  • variables & assignment
    • pass-by-reference semantics
    • difference between = and ==
  • generators / iterators
  • list comprehension / generator comprehension / dictionary comprehension
  • string formatting
  • modules / import / import as / import from
  • classes
    • special methods: __init__ / __str__ / __eq__ / __call__ / ...
    • descriptors
  • advanced ideas
    • decorators
    • metaclasses

Modules in standard library you should definitely know about:

  • sqlite3
  • collections (especially defaultdict)
  • re
  • datetime
  • threading / multiprocessing / Queue
  • random
  • itertools / functools
  • os / sys / shutil / os.path
  • pickle
  • md5
  • subprocess
  • socket
  • urllib / httplib / email / cgi / urlparse / cookielib
  • pdb (especially pm)
  • win32api / win32gui

Additional

Advanced stuff:

Fun: