- This is part of the Python course 2024
- At the Weizmann Institute of Science
- Led by Gábor Szabó
- Direct link to course information
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
· 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.
Upon successful completion of this course students should be able to:
Write simple data processing programs in Python Convert files from one format to another format required in scientific environments. Difrantiate between major programming environments.