A Python-Based Simulation Code Repository for Complex Systems Education. Hiroki Sayama sayama@binghamton.edu http://pycx.sf.net/



Similar documents
PyCX: a Python-based simulation code repository for complex systems education

Availability of the Program A free version is available of each (see individual programs for links).

Scientific Programming, Analysis, and Visualization with Python. Mteor 227 Fall 2015

Comprehensive Course Syllabus

The Importance of Systems Engineering

Analysis and Design of Software Systems Practical Session 01. System Layering

ANSA and μeta as a CAE Software Development Platform

DATA SCIENCE CURRICULUM WEEK 1 ONLINE PRE-WORK INSTALLING PACKAGES COMMAND LINE CODE EDITOR PYTHON STATISTICS PROJECT O5 PROJECT O3 PROJECT O2

Programming Using Python

COMPUTER SCIENCE. FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa

Chapter 2 Simulation as a method

Predicting outcome of soccer matches using machine learning

Madrid, April PyData Madrid 2016, Call for Sponsors

Metrics: (1) Poorly (2) Adequately (3) Well (4) Very Well (5) With Distinction

Getting your Game On! Tips and tools for easy web site navigation

SUNPY: PYTHON FOR SOLAR PHYSICS. AN IMPLEMENTATION FOR LOCAL CORRELATION TRACKING

ADVANCED VISUALIZATION

Faculty Innovator Grant 2011 Center for Learning Technologies. Final Report Form

CS Matters in Maryland CS Principles Course

Setting up Python 3.4 and numpy and matplotlib on your own Windows PC or laptop

Multi-Agent Systems Simulation An Introduction

M.A. Programme in Mass Communication Improved Programme for 2007

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

PyCompArch: Python-Based Modules for Exploring Computer Architecture Concepts

What is a programming language?

Prospectus for the Essential Physics package.

MS TASKS TO BUILD PROFICIENCY IN PROBABILITY AND STATISTICS

Modeling an Agent-Based Decentralized File Sharing Network

Astronomical Instruments Software System Design

A Framework towards the Verication of Emergent Properties in Spatial Multi-Agent Systems

Computing, technology & Data Analysis in the Graduate Curriculum. Duncan Temple Lang UC Davis Dept. of Statistics

MACHINE LEARNING IN HIGH ENERGY PHYSICS

Data management plan?

The Design Document. Videogame Design and Programming. Prof. Pier Luca Lanzi

Biomedical Engineering Medical Faculty Mannheim, Heidelberg University

Problem of the Month Pick a Pocket

Instructional Design Framework CSE: Unit 1 Lesson 1

Python for Data Analysis and Visualiza4on. Fang (Cherry) Liu, Ph.D PACE Gatech July 2013

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University

Postprocessing with Python

Note: The modules provided and their timing is subject to availability of faculty and may be subject to change.

HOSA 106 HOSA STRATEGIES FOR EMERGENCY PREPAREDNESS: COMPETITIVE EVENTS

Scientific Programming in Python

Technical and Management Issues in Collaborative Software Construction

USING STARLOGO TO INTRODUCE DIFFERENTIAL EQUATIONS

How To Teach Writing Skills

TEST AUTOMATION FRAMEWORK

Tellurium and libroadrunner in a Nutshell

Online Exams: History. Online Exams: Formative. Modes of Delivery. Online Exams: Design & Delivery. Online Exams: Build your own 4/6/2012

The Ultra-scale Visualization Climate Data Analysis Tools (UV-CDAT): A Vision for Large-Scale Climate Data

PyRy3D: a software tool for modeling of large macromolecular complexes MODELING OF STRUCTURES FOR LARGE MACROMOLECULAR COMPLEXES

An Analysis of how Proctoring Exams in Online Mathematics Offerings Affects Student Learning and Course Integrity

Introduction to Netlogo: A Newton s Law of Gravity Simulation

WebSphere Business Modeler

Stephen M. Fiore, Ph.D. University of Central Florida Cognitive Sciences, Department of Philosophy and Institute for Simulation & Training

Getting Started with EServer Courses Using EServer.org for Open-Source, Open-Access Teaching

AGENT-BASED CONCEPTUAL MODEL REPRESENTATION USING BPMN

An Introduction to Online Teaching and Learning. Good teaching is good teaching, no matter how it s done.

IBM Operational Decision Management v8

Indiana Statewide Transfer General Education Core

Session Title: Teaching Computational Thinking through Mobilize and the New Big Data Explosion

Claudio J. Tessone. Pau Amengual. Maxi San Miguel. Raúl Toral. Horacio Wio. Eur. Phys. J. B 39, 535 (2004)

Strategic Plan Proposal: Learning science by experiencing science: A proposal for new active learning courses in Psychology

Putting It All Together

Fall 2012 Q530. Programming for Cognitive Science

Big Data Paradigms in Python

one Introduction chapter OVERVIEW CHAPTER

Electronic Portfolio Implementation in the Metro Academies Program at San Francisco State University and City College of San Francisco

Usability of Visualization Libraries for Web Browsers for Use in Scientific Analysis

AN INNOVATIVE INTEGRATED MATHEMATICS, SCIENCE, AND TECHNOLOGY EDUCATION TEACHER CERTIFICATION PROGRAM: CHARACTERISTICS AND FORMATIVE EVALUATION

ns-3 development overview ns-3 GENI Eng. Conf., Nov

HEALTHCARE MOBILE APP DEVELOPMENT WITH APP INVENTOR IN

CURRICULUM OF THE BACHELOR S PROGRAM IN ARCHITECTURE AT THE ACADEMY OF FINE ARTS VIENNA (BArch)

Application Details Manage Application: Textbook Transformation Grant

Modeling Complex Systems for Public Policies

Findings from the Survey on Open Educational Resources Aggregate Findings, April 21, 2008

GStreamer for Engineering Video. Night Vision. Joshua M. Doe, Stephen D. Burks

MERLOT: 28 th November 2006

Assessment of Student Learning Outcomes Annual Report (Due May 20 to and ).

PDF File: Python: Programming, Master's Handbook: A TRUE Beginner's Guide! Problem Solving, Code, Data 1Science,

Data Science and Business Analytics Certificate Data Science and Business Intelligence Certificate

MEAP Edition Manning Early Access Program Hello! ios Development version 14

The iteach Laptop Learning Program Integrating educational technology into teacher education at Nipissing University

The Computer Experiment in Computational Social Science

Niagara College of Applied Arts and Technology. Program Quality Assurance Process Audit. 18 Month Follow-up Report. Submitted by: Niagara College

Introduction to Python

ECSA EXIT LEVEL OUTCOMES Extract from ECSA Document PE-61/E-02-PE Rev-2 26 July 2004

Roles, Responsibilities and Expectations for Developing and Teaching Online Courses in Continuing and Distance Studies

IC05 Introduction on Networks &Visualization Nov

What is a life cycle model?

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

Digital Production Art 3-D AET Bringing ones imagination to life has never been easier. Fall 2015 CBA TTH 9:30-11:00 AM

Car Insurance. Prvák, Tomi, Havri

The CS Principles Project 1

Web Mining using Artificial Ant Colonies : A Survey

Science Gateways in the US. Nancy Wilkins-Diehr

Technical document. Group 3 Mate Tomin Pieter van Ede Raymond Weijermars Daniel Faustino Stefan Hospes

Program Respiratory Therapy. Department Analytical and Diagnostic Sciences. College Allied Health Sciences. Year 2014

Transcription:

A Python-Based Simulation Code Repository for Complex Systems Education Hiroki Sayama sayama@binghamton.edu http://pycx.sf.net/

Educators who teach complex systemsrelated courses and thus need simple, easyto-understand examples of complex systems simulations Students and researchers who want to learn basics of writing complex systems simulations themselves

Python-based CompleX systems simulations Online repository (http://pycx.sf.net/) of sample codes of complex systems simulations written in plain Python Iterative maps Cellular automata Dynamical networks Agent-based models

NetLogo RePast MASON Golly Gephi DDLab

PyCX is nothing more than a collection of very simple Python sample codes It can run on plain Python

Students would not advance general technical skills Choice of software varies greatly from discipline to discipline Students would not have access to details of model implementation Use of existing software puts unrecognized limitations to creativity in modeling

Students can learn generalizable technical skills (i.e., programming in Python) Python has become very popular in a number of scientific domains Students will be able to see every detail of their model by coding it themselves Using a programming language itself as a modeling tool allows open-ended modeling

Emphasized: Simplicity Readability Generalizability Pedagogical values Not emphasized: Computational speed Efficiency Maintainability

One simulation model, one.py file Same three-part structure for all dynamic simulations Initialization, visualization, updating No object-oriented programming Frequent use of global variables

1. Install Python 2.7, NumPy, SciPy, matplotlib and NetworkX 2. Download a PyCX sample code of your interest 3. Run it 4. Read it 5. Change it as you like

If you don t have Python on your laptop, get installers online or from the flash drives circulated in the room and install it now

Dynamical systems Cellular automata Dynamical networks Agent-based models

Logistic map Cobweb plot Bifurcation diagram Lotka-Volterra equations

Use pycxsimulator.py to produce simple interactive GUI New GUI by Przemyslaw Szufel & Bogumil Kaminski at the Warsaw School of Economics!! The file should exist in the same folder where your simulator code is located See realtime-simulation-template.py for how to use it

Local majority rule Droplet rule Game of Life Turing pattern formation Excitable media Host-pathogen interaction Forest fire Spread of rumor Schelling s segregation model (technically ABM, but )

Basic network construction and analysis Network growth by preferential attachment Local majority rule on a network Synchronization on a network Random walk on a network Cascade of failures on a network Voter model of opinion formation on a network Epidemics on a network Epidemics on a network with adaptive link cutting

Random walk of particles Diffusion-limited aggregation Predator-prey ecosystem Garbage collection by ants Aggregation of ants via pheromone-based communication

Binghamton University Graduate Courses BME-510: Modeling Complex Biological Systems (2009, 2010) SSIE-518X/523: Collective Dynamics of Complex Systems (2011-) BME-523X/523: Dynamics of Complex Networks (2012-) New England Complex Systems Institute Summer/ Winter Schools CX 202: Complex Systems Modeling and Networks (2008-) CX 102: Computer Programming and Complex Systems (2010-) NWO (Netherlands Organisation for Scientific Research) Complexity Winter School (2011) NetSci High Summer Workshop (2012-)

BYOL course First 3~6 hours: Python installation and basics Rest: Modular instructions, using each sample code as a curricular module

1. Describe the key concepts of the phenomenon being modeled, as well as the basic model assumptions 2. Run the simulation sample code, show the results and have a brief discussion on the observations 3. Open the code in an editor and give a line-byline walk-through, explaining how the model is implemented in detail and addressing any technical questions as needed

4. Have a couple of in-class exercises that require students to understand and then modify the code to implement some model variations 5. Summarize the learning experience of the curricular unit and have open Q&A s and/or try further model extensions

100% thumbs-up user rating scores on SF Very positive comments from those who took courses with PyCX or who used PyCX Several publications of papers on Pythonbased computer simulation by students and faculty who took courses with PyCX

WPyCX a Warsaw School of Economics version of PyCX written in Python 3.3 has been released just last night!! Thanks to Przemyslaw Szufel and Bogumil Kaminski at Warsaw School of Economics

http://pycx.sf.net/ Sayama, H. (2013) PyCX: A Python-based simulation code repository for complex systems education, Complex Adaptive Systems Modeling, 1:2, 2013. (open access) http://www.casmodeling.com/content/1/1/2