Course Identification

Basic programming skills bootcamp (Python)
20232122

Lecturers and Teaching Assistants

Mr. Gabor Szabo
Dekel Yahav Har-shai

Course Schedule and Location

2023
Second Semester
Monday, 09:15 - 12:00, WSoS, Rm B
22/03/2023
21/07/2023

Field of Study, Course Type and Credit Points

Chemical Sciences: Lecture; Elective; Regular; 2.00 points

Comments

22-23/3, 26-28/3 09:15-12:00 , then 5 first weeks of the semester, Mondays, 09:15-12:00.
Priority will be given to students under the Chemistry BOS.
Students should bring their personal laptop.

The course grade is based on the obligatory participation of the student, the submission of the exercises during the course, 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

20/02/2023

Attendance and participation

Obligatory

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)

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:

  • 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

N/A