People studying Chemistry, Biology, Physics, Life Sciences and a whole lot of other sciences will have a lot of need in processing and analyzing the data they collected. This involves a lot of manual work, but plenty of this can be automated. There are many ready-made applications that can handle some of the computations, but there are even more that need special treatment.

This course was designed to be given at the Weizmann Institute of Science in Rehovot, Israel. It includes a basic Python course with specific extensions for scientific computational needs. It also touches other areas of programming that can help scientists to use software the best possible way they can.

The recordings include clarifying questions and the solution of the exercises by Nóra Doleschall.

The slides used during the recording are available here.

  • Part 1 (27:51 min)
    • 00:00 Introduction to the Bootcamp.
    • 01:37 Nóra Doleschall introduces herself and her background in programming.
    • 02:47 Overview of the Bootcamp. (Programming Python, Computer architecture, Version Control System)
    • 08:04 About Code-Maven, all the slides, the Python slides.
    • 09:38 Showing the Windows command line and the file explorer
    • 15:20 Keyboard shortcuts for the slides
    • 16:48 Keyboard shortcuts on YouTube
    • 17:37 Start talking about the slides
    • 17:55 What is Python?
    • 20:14 What is needed to write a program?
    • 24:08 The source code of Python
    • 26:00 Open Source
  • Part 2 (50:12 min)
    • 00:00 The beginning of the "First steps" chapter.
    • 00:55 Python 2 vs. Python 3 - Why is it important to know about Python 2.
    • 04:00 Installing Python.
    • 04:10 Linux
    • 05:17 Apple Mac OSX Homebrew
    • 06:38 MS Windows Anaconda 64 bit vs 32 bit.
    • 12:57 Verify the installation in Anaconda Prompt. Configure the color of the window.
    • 17:26 Editor, IDE for Python
    • 19:56 Documentation of Python, search engines, Stack Overflow
    • 23:45 Program types
    • 28:13 Python on the command line
    • 29:53 Hello World! - Writing our first program in Python.
    • 36:00 TAB completion on the Windows command line.
    • 37:40 Windows file explorer - make the file extensions and the hidden files visible.
    • 41:00 File extensions and Syntax highlighting in Notepad++.
    • 43:50 How to download all the examples from GitHub
    • 47:00 Comments
    • 48:45 Variables
    • 49:53 Exercise: Hello World
  • Part 3 (49:29 min)
    • 00:00 More in the "First steps" chapter
    • 00:47 Nóra had a couple of questions:
    •      Should we use Atom as an editor?
    •      Should we use Python downloaded from Python.org?
    •      What if we have two installations of Python on our computer?
    •      What other editors and programming environments to use?
    • 11:20 Asking questions?
    • 12:15 What is programming?
    • 18:05 What are the programming languages?
    • 22:05 Let's eat grandpa! Words and punctuation matter!
    • 22:35 Literals, Value Types - The consistency of single- and double-quotes.
    • 30:20 Running the script using a relative path. Showing exceptions (runtime errors) and how to try to understand them.
    • 34:00 How to search for explanation about an exception. How to interpret what we see in StackOverflow.
    • 39:30 The type system in Python and other languages.
    • 40:50 The floating point error
    • 43:40 Value Types in Numpy, Binary (base 2) representation of numbers.
  • Part 4 (10.01 min)
    • 00:00 The end of the "First steps" chapter.
    • 01:20 Variables. Assignment. Multiplying numbers.
    • 03:20 Multiply two string. (Ctrl-g is used in many editors to go to a line-number)
    • 05:50 Adding numbers together.
    • 06:10 Adding strings together. (concatenation)
    • 08:23 Exercises: Calculations
  • Part 5 (43:33 min)
    • 00:00 Keyboard shortcuts for the slides
    • 01:25 Reviewing the exercises from the previous chapter. Talking about operator precedence.
    • 04:09 The math module of Python. Attributes and methods.
    • 09:45 The Python interactive shell (REPL).
    • 19:40 The beginning of the "Second steps" chapter up till "Conditional main".
    • 19:55 Modules - the sys module, getsizeof.
    • 30:00 The main function, indentation.
    • 35:25 Can a function be named the same name as an already existing function?
    • 37:10 Indentation
    • 38:36 Conditional main (dunderscore) (error correction: those are quotations around "__main_"_ not parentheses.)
  • Part 6 (1:00:37 min)
    • 00:00 "Second steps" starting at Input/Output till the exercises.
    • 00:00 Input - Output I/O
    • 05:23 print in Python 2
    • 08:12 print in Python 3
    • 13:00 from __future__ import print_function
    • 14:57 Exception: SyntaxError: Missing parentheses in call
    • 15:50 Prompting for user input in Python 2 (raw_input)
    • 19:20 Prompting for user input in Python 3 (input)
    • 26:01 Prompting in both Python 2 and Python 3.
    • 28:45 Add numbers entered by the user.
    • 32:30 How can I check if a string can be converted to a number?
    • 37:26 Nóra pointing out the error in the previous example. Oups.
    • 38:23 Converting string to int
    • 41:49 Conditionals: if, else, elif
    • 53:20 Ternary operator (Conditional Operator)
    • 56:00 Case and switch in Python.
    • 56:30 Exercises: Rectangle, Circle, Calculator
    • 57:40 Learning Python the Hard way.
  • Part 7 (44:19 min)
    • 00:00 Review of the previous chapter, answering questions raised during the previous video.
    • 00:50 Power of. About forgetting language constructs.
    • 02:50 Check if a string can be converted to a float.
    • 07:45 Solution of the area of rectangle exercise.
    • 13:57 Solution of calculator exercise.
    • 20:10 Command line arguments
    • 32:10 Command line arguments - len
    • 34:00 Showing PyPi
    • 35:03 Command line and exit. Usage. Exit code.
    • 41:25 Continuous Integration systems.
    • 43:20 Exercises: Rectangle, Calculator.
  • Part 8 (55:40 min)
    • 00:00 Solutions of the Rectangle and Calculator exercises.
    • 03:30 Solution of Calculator with eval and why not to use eval.
    • 08:25 Compilation vs. Interpretation
    • 16:00 Is Python compiled or interpreted?
    • 20:50 Flake 8 static code analysis (linter).
    • 22:10 Numbers chapter
    • 25:10 Operators for Numbers
    • 30:08 Integer division and the __future__
    • 30:50 Pseudo Random numbers (uniform distribution)
    • 35:38 Fixed Random numbers (seed)
    • 37:56 Rolling dice - randrange
    • 40:41 Random choice
    • 41:40 built-in method
    • 45:19 Exception: TypeError: 'module' object is not callable
    • 48:30 Exception: AttributeError: module 'random' has no attribute
    • 52:28 Exercises: Number guessing game; Fruit salad
  • Part 9 (51:25 min)
    • 00:00 Intro to this video
    • 02:10 How to get MS Windows not to close the cmd when the program ends?
    • 04:00 Associate file extension with a program in MS Windows
    • 09:30 Solution of Number guessing game level 0.
    • 13:38 Solution of Fruit Salad.
    • 19:05 Comparison and Boolean
    • 20:30 Comparison operators
    • 20:40 Compare numbers, compare strings (ASCII, Unicode)
    • 24:35 Do NOT Compare different types!
    • 28:03 Complex if statement with boolean operators (and, or, not)
    • 31:14 Boolean truth tables
    • 32:08 Boolean values: True and False
    • 35:00 Flag
    • 37:15 Toggle
    • 38:10 Short circuit
    • 42:10 Does this value count as True or False?
    • 43:15 True and False values in Python
    • 43:58 Incorrect use of conditions
    • 45:49 "False" is True
    • 48:02 What is the type of True and False?
    • 49:10 Exercises: compare numbers; compare strings
  • Part 10 (1:18:52 min)
    • 00:00 Solution to compare numbers
    • 03:57 Solution to compare strings
    • 08:00 Nóra explains her solutions using functions
    • 13:10 Refactoring
    • 19:27 Start the chapter Strings
    • 19:38 Single quoted and double quoted strings
    • 21:19 Triple quoted strings (multiline strings)
    • 21:47 What would you do if you wanted to print a quote character? Escaping quotes. \n, \t
    • 26:43 Is it OK to TABs instead of spaces for indenting Python code? Indentation examples. Notepad++ show whitespaces.
    • 35:13 String length (len)
    • 35:36 String repetition and concatenation
    • 37:18 A character in a string.
    • 38:00 Is a string a list? No, it's a Sequence.
    • 39:00 String slice (instead of substr)
    • 41:58 Change a string - Strings are immutable
    • 44:20 String copy
    • 47:05 String functions and methods (len, upper, lower)
    • 49:30 All the built-in functions of Python
    • 50:29 index and rindex in string
    • 58:24 When the string is not found we get an exception. How can we prevent it?
    • 59:16 find in string
    • 1:00:39 in string
    • 1:03:51 Encodings: ASCII, Windows-1255, Unicode
    • 1:09:32 raw strings
    • 1:14:42 ord
    • 1:16:16 chr - number to character
    • 1:16:45 Exercises
  • Part 11 (1:02:56 min)
    • 00:00 Solving the exercise: one string in another string.
    • 04:32 Solving the exercise: compare strings. Including Nóra finding a bug in my solution and fixing it.
    • 12:27 Solving the exercise: ASCII CLI.
    • 13:00 Loops chapter
    • 14:23 for-in and while loops.
    • 15:49 for-in loop on strings.
    • 18:17 for-in loop on lists.
    • 19:33 for-in loop on range.
    • 22:58 for-in loop with early end using break.
    • 26:08 for-in loop skipping parts using continue
    • 28:06 for-in loop with break and continue.
    • 30:58 while loop.
    • 32:30 Infinite while loop.
    • 34:25 while with complex expression.
    • 35:28 while with break
    • 38:34 De Morgan's law
    • 40:25 while True
    • 42:12 Duplicate input call.
    • 45:11 Eliminate duplicate input call.
    • 46:05 do while loop.
    • 47:30 while with meny continue calls.
    • 50:28 Exit vs. return vs. break and continue.
    • 52:25 Exercises.
  • Part 12 (51:31 min)
    • 00:00 Nóra solves the exercises of the Loop chapter.
    • 02:00 Solution for exercise: Print all the locations in a string
    • 16:27 Solution for exercise: Number guessing game.
    • 40:40 Solution for exercise: Count unique characters. (also using sets)
    • 45:10 What is the difference between == and the "is" operator?
  • Part 13 (20:38 min)
    • 00:00 Nóra solves the rest of the levels of the number guessing game in the Loops chapter.
  • Part 14 (1:01:23 min)
    • 00:00 Intro.
    • 01:14 Formatted Printing.
    • 01:48 format - sprintf
    • 08:31 Examples using format - indexing
    • 09:00 Examples using format with names
    • 09:36 Format columns
    • 15:00 Examples using format - alignment
    • 16:18 Format - string
    • 17:15 Format characters and types.
    • 18:05 Format floating point numbers.
    • 18:46 f-strings (formatted string literals).
    • 21:01 raw f-strings.
    • 22:40 What would you use in a GUI? - Templates.
    • 25:02 First part of the List chapter.
    • 29:00 Access single element of a list, access sublist (slice) of a list.
    • 31:26 List slice with steps.
    • 33:52 Change the content of a list.
    • 37:25 Change with steps.
    • 38:44 List assignment and list copy. (shallow copy, deep copy)
    • 48:51 join
    • 51:30 join list of numbers (also show map, str, and list comprehension)
    • 56:59 split (divide strings, separate parts of a string).
  • Part 15 (32:56 min)
    • Lists chapter from split till first exercises.
  • Part 16 (24:13 min)
    • Nóra solving the exercises in the middle of the Lists chapter
  • Part 17 (37:38 min)
    • The second part of the Lists chapter.
  • Part 18 (1:25:42 min)
    • Reviewing the exercises at the end of the lists chapter.
    • Discussing Algorithm complexity.
  • Part 19 (1:02:22 min)
    • The Files chapter
    • Images, Excel files, text files
  • Part 20 (1:08:14 min)
  • Part 21 (52:04 min)
  • Part 22 (42:42 min)
    • Nora solving the exercises from the Dictionaries chapter
  • Part 23 (38:55 min)
    • Nora solving the exercises from the Dictionaries chapter
  • Part 24 (16:12 min)
    • 00:00 The sets chapter
    • 02:45 Creating a set
    • 05.00 Creating and empty set.
    • 05:25 Adding element to a set. (add)
    • 06:00 Merging one set into another set. (update)
    • 09:23 intersection
    • 10:38 subset
    • 11:05 symmetric difference
    • 11:40 union
    • 12:44 What is the difference between union and update?
    • 13:20 relative complement
  • Part 25 (1:17:23 min)
    • The Functions chapter
  • ...