Course Identification

Basic programming skills bootcamp (Python)
20233022

Lecturers and Teaching Assistants

Mr. Gabor Szabo
Joelle Welmoed Rachel Van Zuiden

Course Schedule and Location

2023
Second Semester
Sunday, 09:15 - 12:00, FGS, Rm B
29/03/2023
14/05/2023

Field of Study, Course Type and Credit Points

Life Sciences: Lecture; Elective; Regular; 2.50 points
Chemical Sciences: Lecture; Elective; Regular; 2.00 points
Life Sciences (Computational and Systems Biology Track): Lecture; Obligatory; Regular; 2.50 points

Comments

The first 5 lectures will be given in a bootcamp format during the week of March 29 - April 4 from 9-12. The rest of the lectures will be on Sundays from 9-12 during the first 5 weeks of the semester (April 17 - May 15).

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

Registration by

17/01/2023

Attendance and participation

Obligatory

Grade Type

Numerical (out of 100)

Grade Breakdown (in %)

50%
50%

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 duration of the course is 10 lectures. The first 5 lectures will be given in a bootcamp format during the week before the semester begins. Another 5 lectures will be given once a week during the first 5 weeks of the semester.
  • The course includes approximately 40% hands-on lab work.
  • The course can be given in either using Python 2 or Python 3

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