Difference between revisions of "PhD Python Course"
| Line 1: | Line 1: | ||
| − | + | == Course Format == | |
| + | |||
| + | Dear all, | ||
| + | |||
| + | As you may know/remember, I'm responsible for the PhD course about Python... it used to be called "Advanced Python Programming" and I think the current official name is "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 (I do not necessarily know what is 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 -- about two hours total, with the first half more lecture-like presentation, and the second half a hands-on exercises. The topic can be anything related to programming tools... preferably Python, but not necessarily -- for example, we have had presentations about R before. | ||
| + | |||
| + | In order to get credits for the course, you will need to do one such presentation, and also need to use Python in some capacity in your research -- plus have a short (half an hour) discussion with me about that. | ||
| + | |||
| + | 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 == | == Recent Presentations == | ||
Revision as of 21:00, 2 August 2019
Course Format
Dear all,
As you may know/remember, I'm responsible for the PhD course about Python... it used to be called "Advanced Python Programming" and I think the current official name is "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 (I do not necessarily know what is 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 -- about two hours total, with the first half more lecture-like presentation, and the second half a hands-on exercises. The topic can be anything related to programming tools... preferably Python, but not necessarily -- for example, we have had presentations about R before.
In order to get credits for the course, you will need to do one such presentation, and also need to use Python in some capacity in your research -- plus have a short (half an hour) discussion with me about that.
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
Nesma on TensorFlow: presentation and examples
Introduction
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/ - quite good
- http://learnpythonthehardway.org/book/ - seems good, even if a little basic (but I have not read it)
IDE:
- IDLE: http://www.ai.uga.edu/mc/idle/index.html
- Wing IDE: http://www.wingware.com/
- Eric: http://eric-ide.python-projects.org/
- codeblocks: http://www.codeblocks.org/
- Eclipse & PyDev plugin: http://pydev.org/
- pyscripter: http://code.google.com/p/pyscripter/
- also, http://bit.ly/tgMCbD
Official:
- Download: http://www.python.org/
- Documentation: http://docs.python.org/
- Tutorial: http://docs.python.org/3/tutorial/index.html
- Library Reference: http://docs.python.org/3/library/index.html
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:
Library Presentations from two years ago
- 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? ...)