Course Identification

Basic programming skills (Python)
20253072

Lecturers and Teaching Assistants

Mr. Gabor Szabo, Dr. Yaron Antebi
Liron Hoffman, Hadar Klimovski

Course Schedule and Location

2025
Second Semester
Thursday, 09:00 - 12:00, WSoS, Rm B
27/03/2025
03/07/2025

Field of Study, Course Type and Credit Points

Life Sciences: Lecture; Elective; 2.50 points
Chemical Sciences: Lecture; 2.50 points

Comments

Priority will be given to MSc and Ph.D. students under the Life Sciences Board of Studies.

Students should bring their personal laptops.

The course grade is based on 10 exercises and a final assignment that has to be submitted until the last learning day of the semester.



Prerequisites

No

Restrictions

30

Language of Instruction

English

Attendance and participation

Expected and Recommended

Grade Type

Numerical (out of 100)

Grade Breakdown (in %)

50%
35%
15%
Other 15% is the project proposal

Evaluation Type

Final assignment

Scheduled date 1

N/A
N/A
-
N/A

Estimated Weekly Independent Workload (in hours)

1

Syllabus

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

Learning Outcomes

Upon successful completion of this course students should be able to:

  1. Write simple data processing programs in Python
  2. Convert files from one format to another format required in scientific environments.
  3. Difrantiate between major programming environments.

Reading List

N/A

Website