This is a beginner course suitable for anyone wanting to process scientific data with minimal or no prior knowledge.
Course objectives:
- To be able to write programs in Python.
- To master the rich set of Python libraries and modules.
- Understand procedural control flow in Python
- Use Object Oriented programming techniques
Course format:
- The course will be given in Python 3
- Prerequisites:
- Experience with a text editor like emacs, vi, pico or notepad.
- Understanding of files and directories.
Syllabus:
· Introduction to Computers and Programming
- The parts of a computer and a mobile phone
- Different types of programming languages: Compiled vs. Interpreted
- Programming paradigms: imperative, procedural, oop, declarative, functional, logic, mathematical.
- Software licensing model (Closed Source, Share-ware, Open Source, Free Software)
- Software distribution model (packaged, service, application).
- Single core, multi core, cluster
- Complexity - run time, memory usage
· Development and runtime environment in Python and elsewhere
- Notepad++ and the command line.
- PyCharm
- Jupyter notebook
- Spider
- Running from the IDE vs. the command line vs. on a server vs. in a cluster.
- Compare the above with Matlab.
· The Scientific libraries
- NumPy
- Pandas
- SciPy
- Matplotlib
- Seaborn
- Comparing with Matlab and R
Introduction to Python:
- Installing Python
- Where and why to use Python
- Using the Python interactive interpreter
- Documentation and how to get help?
- Indentation
Types and operators:
- Strings
- Numbers
- Lists (arrays)
- Tuples
- Dictionaries (hashes)
- Sorting
Functions subroutines:
- Function parameters
- Positional parameters
- Named parameters
- Default values
- Optional parameters
- Return values
- Function documentation
- Lambda functions
Control flow:
- For loops
- While loops
- Loop controls
- Conditionals
- Chained comparison
- Enumerate
- Boolean and logical operators
IO:
- print
- print formatting
- read/write files
Regular expression (pattern matching):
- Matching all
- Searching for a single match
- Meta characters
- Character classes
- Special character classes
- Quantifiers
- Alternatives
- Modifier flags
- Anchors
- Back-references
- Substitution
The Python standard library:
- Filesystem related functions
- Running external processes
Creating modules:
- Loading a module
- Finding a module in a private directory
- Changing the search path to a relative directory
- Importing selected functions
- Namespaces
- Creating executable module
Exception handling:
- Creating non-fatal warnings
- Catching exceptions
- Handling exceptions
- Throwing a new exception
- The final block
- Creating your own exception
Object Oriented Programming:
- Defining classes
- Initializing objects
- Methods
- Attributes or members
- The self
- Inheritance
• Additional uses:
- Installing and using 3rd party modules
- Writing simple web scraping program
- Writing a simple Web application
- Accessing SQL databases
- Reading and writing Excel files
Extra topics:
- Version control with Git.
- General differences/attributes of other programming languages.
- Basic complexity calculation.
-
Gabor Szabo Training (Hostlocal Ltd.)
gabor@szabgab.com https://szabgab.com/
+972-54-4624648