Course Identification

Basic programming skills bootcamp (Python)
20203452

Lecturers and Teaching Assistants

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

Course Schedule and Location

2020
Second Semester
February 16-20, 09:00-17:00 daily. FGS room A,
16/02/2020
20/02/2020

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

16.2.2020-20.2.2020, FGS room A
* On 17-Feb the lecture will be held at Feinberg lab 1
Students should bring their personal laptop.
Priority will be given to MSc and PhD 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

30

Language of Instruction

English

Registration by

15/01/2020

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 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:

  • 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