Course Identification

Basic programming skills bootcamp (Python)
20203141

Lecturers and Teaching Assistants

Prof. Roi Avraham, Dr. Itay Tirosh, Mr. Gabor Szabo
N/A

Course Schedule and Location

2020
First Semester
27.10.19-31.10.19, FGS room B, 09:00-17:00 Daily,
27/10/2019
31/10/2019

Field of Study, Course Type and Credit Points

Life Sciences: Lecture; Elective; Core; 2.50 points
Chemical Sciences: Lecture; Elective; Regular; 2.00 points
Life Sciences (Molecular and Cellular Neuroscience Track): Lecture; Elective; Core; 2.50 points
Life Sciences (Brain Sciences: Systems, Computational and Cognitive Neuroscience Track): Lecture; Elective; Regular; 2.50 points
Life Sciences (Computational and Systems Biology Track): Lecture; Obligatory; Core; 2.50 points

Comments

27.10.19-31.10.19, FGS room B
Priority will be given to MSc students under the Life Sciences Board of Studies.
The course grade is based on the obligatory participation of the student and a final assignment that has to be submitted within 30 days after the end of the course.

Prerequisites

No

Restrictions

35

Language of Instruction

English

Registration by

02/09/2019

Attendance and participation

Obligatory

Grade Type

Pass / Fail

Grade Breakdown (in %)

100%

Evaluation Type

Final assignment

Scheduled date 1

N/A
N/A
-
A final assignment that has to be submitted within 30 days after the end of the course.

Estimated Weekly Independent Workload (in hours)

N/A

Syllabus

This is a beginner course suitable for anyone wanting to process scientific data. It is especially suitable for students and people working in scientific environments.


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:

  • Duration of the course is 5 days.
  • The course includes approximately 40% hands on lab work.
  • The course can be given in either using Python 2 or 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 http://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

N/A