THE POWER OF PYTHON IN SCIENCE AND EDUCATION. Simon Funke

Similar documents
Spring 2014 SYLLABUS Michigan State University STT 430: Probability and Statistics for Engineering

Business Analytics and Information Tech COURSE NUMBER: 33:136:494 COURSE TITLE: Data Mining and Business Intelligence

Moodle MyFeedback update April 2017

Ansys Tutorial Random Vibration

Intel-powered Classmate PC. SMART Response* Training Foils. Version 2.0

Teaching Reproducible Research Inspiring New Researchers to Do More Robust and Reliable Science

The Moodle and joule 2 Teacher Toolkit

Spring 2015 IET4451 Systems Simulation Course Syllabus for Traditional, Hybrid, and Online Classes

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

CS Course Missive

Platform for the Development of Accessible Vocational Training

The Creation and Significance of Study Resources intheformofvideos

CS177 Python Programming

Appendix L: Online Testing Highlights and Script

Python Machine Learning

Web-based Learning Systems From HTML To MOODLE A Case Study

An Introduction to Simio for Beginners

CS4491/CS 7265 BIG DATA ANALYTICS INTRODUCTION TO THE COURSE. Mingon Kang, PhD Computer Science, Kennesaw State University

Android App Development for Beginners

Computer Science 1015F ~ 2016 ~ Notes to Students

Enhancing Customer Service through Learning Technology

Top US Tech Talent for the Top China Tech Company

Beginning to Flip/Enhance Your Classroom with Screencasting. Check out screencasting tools from (21 Things project)

Louisiana Free Materials List

Demography and Population Geography with GISc GEH 320/GEP 620 (H81) / PHE 718 / EES80500 Syllabus

SECTION 12 E-Learning (CBT) Delivery Module

A faculty approach -learning tools. Audio Tools Tutorial and Presentation software Video Tools Authoring tools

Computer Organization I (Tietokoneen toiminta)

Video Marketing Strategy

A 3D SIMULATION GAME TO PRESENT CURTAIN WALL SYSTEMS IN ARCHITECTURAL EDUCATION

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

Using Moodle in ESOL Writing Classes

GRADUATE STUDENT HANDBOOK Master of Science Programs in Biostatistics

Zotero: A Tool for Constructionist Learning in Critical Information Literacy

PRAAT ON THE WEB AN UPGRADE OF PRAAT FOR SEMI-AUTOMATIC SPEECH ANNOTATION

Research computing Results

Getting Started with Deliberate Practice

Three Strategies for Open Source Deployment: Substitution, Innovation, and Knowledge Reuse

Pod Assignment Guide

CX 105/205/305 Greek Language 2017/18

SYLLABUS. EC 322 Intermediate Macroeconomics Fall 2012

Research papers free download pdf >>>CLICK HERE<<<

Xinyu Tang. Education. Research Interests. Honors and Awards. Professional Experience

Introduction to Moodle

Tour. English Discoveries Online

CHANCERY SMS 5.0 STUDENT SCHEDULING

Examity - Adding Examity to your Moodle Course

Read&Write Gold is a software application and can be downloaded in Macintosh or PC version directly from

Project Management for Rapid e-learning Development Jennifer De Vries Blue Streak Learning

Computer Software Evaluation Form

Office of Planning and Budgets. Provost Market for Fiscal Year Resource Guide

Robot manipulations and development of spatial imagery

Module 9: Performing HIV Rapid Tests (Demo and Practice)

Vorlesung Mensch-Maschine-Interaktion

TIMSS ADVANCED 2015 USER GUIDE FOR THE INTERNATIONAL DATABASE. Pierre Foy

On-Line Data Analytics

GIS 5049: GIS for Non Majors Department of Environmental Science, Policy and Geography University of South Florida St. Petersburg Spring 2011

ACTL5103 Stochastic Modelling For Actuaries. Course Outline Semester 2, 2014

BBC Spark : Lean at the BBC

Vibration Tutorial. Vibration Tutorial Download or Read Online ebook vibration tutorial in PDF Format From The Best User Guide Database

The UNF Digital Commons

Essentials of Rapid elearning (REL) Design

From Virtual University to Mobile Learning on the Digital Campus: Experiences from Implementing a Notebook-University

CS 3516: Computer Networks

Lectora a Complete elearning Solution

CS 100: Principles of Computing

INTERMEDIATE ALGEBRA PRODUCT GUIDE

95723 Managing Disruptive Technologies

LOS ANGELES CITY COLLEGE (LACC) ALTERNATE MEDIA PRODUCTION POLICY EQUAL ACCESS TO INSTRUCTIONAL AND COLLEGE WIDE INFORMATION

Hongyan Ma. University of California, Los Angeles

PowerTeacher Gradebook User Guide PowerSchool Student Information System

Bayllocator: A proactive system to predict server utilization and dynamically allocate memory resources using Bayesian networks and ballooning

Student User s Guide to the Project Integration Management Simulation. Based on the PMBOK Guide - 5 th edition

LEARN TO PROGRAM, SECOND EDITION (THE FACETS OF RUBY SERIES) BY CHRIS PINE

Globalization and the Columbian Exchange

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS APPLIED MECHANICS MET 2025

AGENDA LEARNING THEORIES LEARNING THEORIES. Advanced Learning Theories 2/22/2016

MOODLE 2.0 GLOSSARY TUTORIALS

Mini Lesson Ideas for Expository Writing

Pre-AP Geometry Course Syllabus Page 1

Professional Learning Suite Framework Edition Domain 3 Course Index

Houghton Mifflin Online Assessment System Walkthrough Guide

Pragmatic Use Case Writing

EVALUATION OF WEB-BASED EDUCATIONAL SYSTEMS

1 Use complex features of a word processing application to a given brief. 2 Create a complex document. 3 Collaborate on a complex document.

Preferences...3 Basic Calculator...5 Math/Graphing Tools...5 Help...6 Run System Check...6 Sign Out...8

Course Prerequisite: CE 2407 Adobe Illustrator or equivalent experience

The influence of staff use of a virtual learning environment on student satisfaction

Achim Stein: Diachronic Corpora Aston Corpus Summer School 2011

Using SAM Central With iread

Getting Started Guide

THE WEB 2.0 AS A PLATFORM FOR THE ACQUISITION OF SKILLS, IMPROVE ACADEMIC PERFORMANCE AND DESIGNER CAREER PROMOTION IN THE UNIVERSITY

Communities in Networks. Peter J. Mucha, UNC Chapel Hill

Beyond PDF. Using Wordpress to create dynamic, multimedia library publications. Library Technology Conference, 2016 Kate McCready Shane Nackerud

Get with the Channel Partner Program

Interactive Whiteboard

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Guidelines for the Master s Thesis Project in Biomedicine BIMM60 (30 hp): planning, writing and presentation.

Mike Cohn - background

DOCTORAL SCHOOL TRAINING AND DEVELOPMENT PROGRAMME

Transcription:

THE POWER OF PYTHON IN SCIENCE AND EDUCATION Simon Funke (simon@simula.no)

About me Researcher @ Simula Research Laboratory: Numerical solution of PDEs PDE-constrained optimisation Applications Teaching intermediate-level Python-course @ UiO Scientific software

Why should we teach Python? TIOBE Index - very Long Term History

Python is (relatively) easy to learn

Python has extensive set of scientific libraries Python PyPy } Numpy Cython Numba py.test } Matplotlib Pandas Scipy xarray IPython Jupyter Notebook Pytables yt } FEniCS Scikit-learn PyMC3 SymPy networkx Sunpy... Python Package Index (pypi.python.org)

Python can be accelerated with mixed programming Performance study of a 1D diffusion process Time 1.28 s 27ms Python Python + Numpy 1.21 ms 1.04 ms Python + Cython Python + C

Python accelerates development by avoiding common low-level issues Test Development Development Test Development Final execution & Paper writing

Python accelerates development by avoiding common low-level issues Development Test Development Test Development Final execution & Paper writing

Teaching Python My experience - Higher-level programming bachelor/master course at University of Oslo - Initiated by Hans-Petter Langtangen - Students from CS/Physics/Maths/Chemistry Learning by doing and reviewing

The goal of the course is to teach tools that make computational science more effective Syllabus The Python language (3 week crash-course) Numerical Python with numpy/matplotlib Accelerating Python with mixed programming Pandas, flask, regular expressions Best practices: Git, documentation, testing Coding assignments are the core of the course

Assignments example: Fractal generator Task: Implement a fractal generator Accelerate and compare timings between different versions: Python Python + Numpy Cython Pure C Contest: best picture award

More assignments examples File syntax highlighter Core techniques taught: Regular Expressions Jupyter Notebook Clone Core techniques taught: Graphical user interface (web) Advanced Python Temperature/CO2 level analysis and predictions Core techniques taught: Data analysis with Pandas

Good coding practices are enforced through test assignments and points on documentation

virtual-classroom Students deliver assignments digitally Peer-review of assignments Learning by doing and reviewing > 300 students signed up for the course last year Lectures are available as Jupyter notebooks and on Youtube Guest lecturers Students help each other

The coding assignments form the core of the course Two type of assignments: Short (1 week) Long (2-3 weeks), peer-reviewed Each student has their own private github repository Points are given for correctness and quality of code and documentation

Non peer-reviewed assignment 1 week Students get assignment Students push solution to their github repository Teaching assistant corrects assignments

Peer-reviewed assignment 2-3 weeks Students!!! Carefullpush!!! solution to their repository Do notgithub ask students to grade each other. Students get assignment 1 week Teaching assistant corrects assignments and peer-review Each student gets read/write access to another (random) student s repository Student reviews other student s solution And pushes suggestions to the students repository

The peer-review is delivered as a Latex report or as a git pull-request

virtual-classroom manages the peer-review process Creates private repositories for every student in a course. Divides students into groups for exercise assessment. Openes up private repositories temporarily for assessment groups. Scripts are available at https://github.com/hplgit/virtual-classroom

Jupyter notebook allows students to experiment with the slides Students can download slides, run and change them Lecturer can test that slides still work Tipp: Use the RISE plugin to convert a Jupyter notebook to a slideshow

Guest lectures bring domain-experts into the classroom Benjamin Ragan-Kelley Core developer of Jupyter Notebook Introduction to Jupyter Notebooks Jonathan Feinberg Data scientist at Expert Analytics Introduction to Regular Expression

Piazza is a Q&A for classes that allows students to help each other Typically high-quality answers and fast response time Reduced load of teaching assistants Difficult topics become visible to teaching staff Allows students to suggest improvements/raise problems quickly

The Anaconda Python distribution is a good choice installation Works on Windows, Mac, Linux Can be installed locally or globally Provides a consistent Python installation across all students Anaconda: Surprisingly few problems - except Cython on Windows machines

Summary Python is easy-to-learn, flexible and can be made performant Teaching Python tips: Code peer-reviews allow to learn from others Best practices can be taught on the side Tools like github, virtual-classroom and piazza allow to scale the course Learning by doing and reviewing Course material (lecture slides, videos, assignments) are available on goo.gl/sefw1u Email me (simon@simula.no) if you have any questions.

Python is (relatively) easy to learn Crucial for student projects with students without a computer science background. Less time coding/fixing code means more time doing research

Python for high-performance computing Chris N. Richardson, Garth N. Wells, Parallel scaling of DOLFIN on ARCHER, 2015