Texts in Computational Science and Engineering

Size: px
Start display at page:

Download "Texts in Computational Science and Engineering"

Transcription

1 Texts in Computational Science and Engineering 3 Editors Timothy J. Barth, Moffett Field, CA Michael Griebel, Bonn David E. Keyes, Norfolk Risto M. Nieminen, Espoo Dirk Roose, Leuven Tamar Schlick, New York

2 Hans Petter Langtangen Python Scripting tor Computational Science With 62 Figures ~ Springer

3 Hans Petter Langtangen Simula Research Laboratory Martin Linges vei 17, Fornebu P.O. Box Lysaker, Norway On leave from: Department of Informatics University of Os10 P.O. Box 1080 Blindern 0316 Oslo, Norway The author of this book has received financial support from the NFF - Norsk faglitterrer forfatter- og oversetterforening. Library of Congress Control Number: Mathematics Subject Classification (2000): 65Y 99, 68NOl, 68N15, 68N19, 68N30, 97U50, 97U70 ISSN ISBN ISBN (ebook) DOI / This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfllm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer-Verlag Berlin Heidelberg GmbH. Violations are liable for prosecution under the German Copyright Law. springeronline.com Springer-Verlag Berlin Heidelberg 2004 Originally published by Springer-Verlag Berlin Heidelberg New Y ork in 2004 Softcover reprint ofthe hardcover 1st edition 2004 The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. Cover Design: Friedhelm Steinen-Broo, Estudio Calamar, Spain Cover production: design & production GmbH, Heidelberg Production: LE-TEX Jelonek, Schmidt &V6ckler GbR, Leipzig Typeset by the author. Printed on acid-free paper 46/31421YL

4 Preface The primary purpose of this book is to help scientists and engineers working intensively with computers to become more productive, have more fun, and increase the reliability of their investigations. Scripting in the Python programming language can be a key tool for reaching these goals [27,29]. The term scripting means different things to different people. By scripting I mean developing programs of an administering nature, mostly to organize your work, using languages where the abstraction level is higher and programming is more convenient than in Fortran, C, C++, or Java. Perl, Python, Ruby, Scheme, and Tel are examples of languages supporting such high-level programming or scripting. To some extent Matlab and similar scientific computing environments also fall into this category, but these environments are mainly used for computing and visualization with built-in tools, while scripting aims at gluing a range of different tools for computing, visualization, data analysis, file/directory management, user interfaces, and Internet communication. So, although Matlab is perhaps the scripting language of choiee in computational science today, my use of the term scripting goes beyond typical Matlab scripts. Python stands out as the language of choice for scripting in computational science because of its very elean syntax, rieh modularization features, good support for numerical computing, and rapidly growing popularity. What Scripting is About. The simplest application of scripting is to write short programs (scripts) that automate manual interaction with the computer. That is, scripts often glue stand-alone applications and operating system commands. A primary example is automating simulation and visualization: from an effective user interface the script extracts information and generates input files for a simulation program, runs the program, archive data files, prepares input for a visualization program, creates plots and animations, and perhaps performs some data analysis. More advanced use of scripting ineludes rapid construction of graphical user interfaces (GUIs), searching and manipulating text (data) files, managing files and directories, tailoring visualization and image processing environments to your own needs, administering large sets of computer experiments, and managing your existing Fortran, C, or C++ libraries and applications directly from scripts. Scripts are often considerably fast er to develop than the corresponding programs in a traditionallanguage like Fortran, C, C++, or Java, and the code is normally much shorter. In fact, the high-level programming style and tools used in scripts open up new possibilities you would hardly consider as a Fortran or C programmer. Furthermore, scripts are for the most part truly cross-platform, so what you write on Windows runs without modifications

5 VI Preface on Unix and Macintosh, also when graphical user interfaces and operating system interactions are involved. The interest in scripting with Python has exploded among Internet service developers and computer system administrators. However, Python scripting has a significant potential in computational science and engineering (CSE) as weil. Software systems such as Maple, Mathematica, Matlab, and S-Plus/R are primary examples of very popular, widespread tools because of their simple and effective user interface. Python resembles the nature of these interfaces, but is a fuil-fledged, advanced, and very powerful programming language. With Python and the techniques explained in this book, you can actually create your own easy-to-use computational environment, which mirrors the working style of Matlab-like tools, but tailored to your own number crunching codes and favorite visualization systems. Scripting enables you to develop scientific software that combines "the best of all worlds", i.e., highly different tools and programming styles for accomplishing a task. As a simple example, one can think of using a C++ library for creating a computational grid, a Fortran 77 library for solving partial differential equations on the grid, a C code for visualizing the solution, and Python for gluing the tools together in a high-level program, perhaps with an easy-to-use graphical interface. Special Features of This Book. The current book addresses applications of scripting in CSE and is tailored to professionals and students in this field. The book differs from other scripting books on the market in that it has a different pedagogical strategy, a different composition of topics, and a different target audience. Practitioners in computational science and engineering seldom have the interest and time to sit down with a pure computer language book and figure out how to apply the new tools to their problem areas. Instead, they want to get quickly started with examples from their own world of applications and learn the tools while using them. The present book is written in this spirit - we dive into simple yet useful examples and learn about syntax and programming techniques during dissection of the examples. The idea is to get the reader started such that further development of the examples towards real-life applications can be done with the aid of online manuals or Python reference books. Contents. The contents of the book can be briefly sketched as follows. Chapter 1 gives an introduction to what scripting is and what it can be good for in a computational science context. A quick introduction to scripting with Python, using examples of relevance to computational scientists and engineers, is provided in Chapter 2. Chapter 3 presents an overview of basic Python functionality, including file handling, data structures, functions, and operating system interaction. Numerical computing in Python, with particular focus on efficient array processing, is the subject of Chapter 4. Python can easily call up Fortran, C, and C++ code, which is demonstrated in Chapter 5.

6 Preface VII A quiek tutorial on building graphie al user interfaces appears in Chapter 6, while Chapter 7 builds the same user interfaces as interactive Web pages. Chapters 8-12 concern more advanced features of Python. In Chapter 8 we discuss regular expressions, persistent data, elass programming, and efficiency issues. Migrating slow loops over large array structures to Fortran, C, and C++ is the topic of Chapters 9 and 10. More advanced GUI programming, involving plot widgets, event bindings, animated graphics, and automatie generation of GUIs are treated in Chapter 11. More advanced tools and examples of relevance for problem solving environments in science and engineering, tying together many techniques from previous chapters, are presented in Chapter 12. Readers of this book need to have a considerable amount of software installed in order to be able to run all examples successfully. Appendix A explains how to install Python and many of its modules as well as other software packages. All the software needed for this book is available for free over the Internet. Good software engineering practice is outlined in a scripting context in Appendix B. This ineludes building modules and packages, documentation techniques and tools, co ding styles, verification of programs through automated regression tests, and application of version control systems. Required Background. This book is aimed at readers with programming experience. Many of the comments throughout the text address Fortran or C programmers and try to show how much fast er and more convenient Python code development turns out to be. Other comments, especially in the parts of the book that deal with elass programming, are meant for C++ and Java programmers. No previous experience with scripting languages like Perl or Tel is assumed, but there are scattered remarks on technical differences between Python and other scripting languages (Perl in particular). I hope to convince computational scientists having experience with Perl that Python is a preferable alternative, especially for large long-term projects. Matlab programmers constitute an important target audience. These will pick up simple Python programming quite easily, but to take advantage of elass programming at the level of Chapter 12 they probably need another source for introducing object-oriented programming and get experience with the dominating languages in that field, C++ or Java. Most of the examples are relevant for computational science. This means that the examples have a root in mathematical subjects, but the amount of mathematieal details is kept as low as possible to enlarge the audience and allow focusing on software and not mathematics. To appreciate and see the relevance of the examples, it is advantageous to be familiar with basie mathematical modeling and numerical computations. The usefulness of the book is meant to scale with the reader's amount of experience with numerical simulations.

7 VIII Preface Acknowledgements. The author appreciates the constructive comments from Arild Burud, Roger Hansen, and Tom Thorvaldsen on an earlier version of the manuscript. I will in particular thank the anonymous Springer referees of an even earlier version who made very useful suggestions, which led to a major revision and improvement of the book. Sylfest Glimsdal is thanked for his careful reading and detection of many errors in the present version of the book. I will also acknowledge all the input I have received from our enthusiastic team of scripters at Simula Research Laboratory: Are Magnus Bruaset, Xing Cai, Kent-Andre Mardal, Halvard Moe, Ola Skavhaug, Gunnar Staff, Magne Westlie, and Asmund 0degiird. As always, the prompt support and advice from Martin Peters, Frank Holzwarth, Leonie Kunz, Peggy Glauch, and Thanh-Ha Le Thi at Springer have been essential to complete the book project. Software, updates, and an errata list associated with this book can be found on the Web page From this page you can also download a PDF version of the book. The PDF version is searchable, and references are hyperlinks, thus making it convenient to navigate in the text during software development. Oslo, April 2004 Hans Petter Langtangen

8 Table of Contents 1 Introduction Scripting versus Ttaditional Programming Why Scripting is Useful in Computational Science Classification of Programming Languages Productive Pairs of Programming Languages Gluing Existing Applications Scripting Yields Shorter Code Efficiency Type-Specification (Declaration) of Variables Flexible Function Interfaces Interactive Computing Creating Code at Run Time Nested Heterogeneous Data Structures GUI Programming Mixed Language Programming When to Choose a Dynamically Typed Language Why Python? Script or Program? Preparations for Working with This Book Getting Started with Python Scripting A Scientific Hello World Script Executing Python Scripts Dissection of the Scientific Hello World Script Reading and Writing Data Files Problem Specification The Complete Code Dissection Working with Files in Memory Efficiency Measurements Exercises Automating Simulation and Visualization The Simulation Code Using Gnuplot to Visualize Curves Functionality of the Script The Complete Code Dissection Exercises Conducting Numerical Experiments Wrapping a Loop Around Another Script

9 X Table of Contents Generating an HTML Report Making Animations Varying Any Parameter Exercises File Format Conversion The First Version of the Script The Second Version of the Script Basic Python Introductory Topics Recommended Python Documentation Testing Statements in the Interactive Shell Control Statements Running an Application File Reading and Writing Output Formatting Variables of Different Types Boolean Types The None Variable Numbers and Numerical Expressions Lists and TupIes Dictionaries Splitting and Joining Text String Operations Text Processing The Basics of a Python Class Determining a Variable's Type Exercises Functions Keyword Arguments Doc Strings Variable Number of Arguments Call by Reference Treatment of Input and Output Arguments Function Objects Working with Files and Directories Listing Files in a Directory Testing File Types Removing Files and Directories Copying and Renaming Files Splitting Pathnames Creating and Moving to Directories Traversing Directory Trees Exercises

10 Table of Contents XI 4 N umerical Computing in Python A Quick NumPy Primer Creating Arrays Array Indexing Array Computations Type Testing Hidden Temporary Arrays Exercises Vectorized Algorithms From Scalar to Array Function Arguments Slicing Remark on Efficiency Exercises More Advanced Array Computing Random Numbers Linear Algebra The Gnuplot Module Example: Curve Fitting Arrays on Structured Grids File 1/0 with NumPy Arrays Reading and Writing Tables with NumPy Arrays Functionality in the Numpytools Module Exercises Other Tools for Numerical Computations The ScientificPython Package The SciPy Package The Python-Matlab Interface Some Useful Python Modules Combining Python with Fortran, C, and C About Mixed Language Programming Applications of Mixed Language Programming Calling C from Python Automatie Generation of Wrapper Code Scientific Hello World Examples Combining Python and Fortran Combining Python and C Combining Python and C++ Functions Combining Python and C++ Classes Exercises A Simple Computational Steering Example Modified Time Loop for Repeated Simulations Creating a Python Interface The Steering Python Script Equipping the Steering Script with a GUI Scripting Interfaces to Large Libraries

11 XII Table of Contents 6 Introduction to GUI Programming Scientific Hello World GUI Introductory Topics The First Python/Tkinter Encounter Binding Events Changing the Layout The Final Scientific Hello World GUI An Alternative to Tkinter Variables About the Pack Command An Introduction to the Grid Geometry Manager Implementing a GUI as a Class A Simple Graphical Function Evaluator Exercises Adding GUIs to Scripts A Simulation and Visualization Script with a GUI Improving the Layout Exercises A List of Common Widget Operations Frame Label Button Text Entry Balloon Help Option Menu Slider Check Button Making a Simple Megawidget Menu Bar List Data Listbox Radio Button Combo Box Message Box User-Defined Dialogs Color-Picker Dialogs File Selection Dialogs Toplevel Some Other Types of Widgets Adapting Widgets to the User's Resize Actions Customizing Fonts and Colors Widget Overview Exercises

12 Table of Contents XIII 7 Web Interfaces and CGI Programming Introductory CGI Scripts Web Forms and CGI Scripts Generating Forms in CGI Scripts Debugging CGI Scripts A General Shell Script Wrapper for CGI Scripts Security Issues Adding Web Interfaces to Scripts A Class for Form Parameters Calling Other Programs Running Simulations Getting a CGI Script to Work Using Web Applications from Scripts Exercises Advanced Python Miscellaneous Topics Parsing Command-Line Arguments Platform-Dependent Operations Run-Time Generation of Code Exercises Regular Expressions and Text Processing Motivation Special Characters Regular Expressions for Real Numbers Using Groups to Extract Parts of a Text Extracting Interval Limits Extracting Multiple Matches Splitting Text Pattern-Matching Modifiers Substitution and Backreferences Example: Swapping Arguments in Function Calls A General Substitution Script Debugging Regular Expressions Exercises Tools for Handling Data in Files Writing and Reading Python Data Structures Pickling Objects Shelving Objects Writing and Reading Zip Archive Files Downloading Internet Files Binary Input/Output Exercises A Database for NumPy Arrays The Structure of the Database Pickling

13 XIV Table of Contents Formatted ASCII Storage Shelving Comparing the Various Techniques Scripts Involving Local and Remote Hosts Sec ure Shell Commands Distributed Simulation and Visualization ClientjServer Programming Threads Classes Class Programming Checking the Class Type Private Data Static Data Special Attributes Special Methods Multiple Inheritance Using a Class as a C-like Structure Attribute Access via String Names Example: Turning String Formulas into Functions Example: Class for Structured Grids New-Style Classes Implementing GetjSet Functions via Properties Subclassing Built-in Types Copy and Assignment Building Class Interfaces at Run Time Building Flexible Class Interfaces Exercises Scope of Variables Global, Local, and Class Variables Nested Functions Dictionaries of Variables in Namespaces Exceptions Handling Exceptions Raising Exceptions Iterators Constructing an Iterator A Pointwise Grid Iterator A Vectorized Grid Iterator Generators Some Aspects of Generic Programming Exercises Investigating Efficiency CPU-Time Measurements Profiling Python Scripts Optimization of Python Code

14 Table of Contents XV 9 Fortran Programming with N umpy Arrays Problem Definition Filling an Array in Fortran The Fortran Subroutine Building and Inspecting the Extension Module Array Storage Issues Generating an Erroneous Interface Array Storage in C and Fortran Input and Output Arrays as Function Arguments F2PY Interface Files Hiding Work Arrays Increasing Callback Efficiency Callbacks to Vectorized Python Functions Avoiding Callbacks to Python Compiled Inline Callback Functions Summary Exercises C and C++ Programming with NumPy Arrays C Programming with NumPy Arrays The Basics of the NumPy C API The Handwritten Extension Code Sending Arguments from Python to C Consistency Checks Computing Array Values Returning an Output Array Convenient Macros Module Initialization Extension Module Template Compiling, Linking, and Debugging the Module Writing a Wrapper for a C Function C++ Programming with NumPy Arrays Wrapping a NumPy Array in a C++ Object Using SCXX NumPy-C++ Class Conversion Comparison of the Implementations Efficiency Error Handling Summary Exercises More Advanced GUI Programming Adding Plot Areas in GUIs The BLT Graph Widget Animation of Functions in BLT Graph Widgets Other Tools for Making GUIs with Plots

15 XVI Table of Contents Exercises Event Bindings Binding Events to Functions with Arguments A Text Widget with Tailored Keyboard Bindings A Fancy List Widget Animated Graphics with Canvas Widgets The First Canvas Encounter Co ordinate Systems The Mathematical Model Class The Planet Class Drawing and Moving Planets Dragging Planets to New Positions Using Pmw's SerolIed Canvas Widget Simulation and Visualization Scripts Restructuring the Script Representing a Parameter by a Class Improved Command-Line Script Improved GU! Script Improved CGI Script Parameters with Physical Dimensions Adding a Curve Plot Area Automatie Generation of Scripts Applications of the Tools Allowing Physical Units in Input Files Converting Input Files to GUIs Tools and Examples Running Series of Computer Experiments Multiple Values of Input Parameters Implementation Details Further Applications Tools for Representing Functions Functions Defined by String Formulas A Unified Interface to Functions Interactive Drawing of Functions A Notebook for Selecting Functions Solving Partial Differential Equations Numerical Methods for ID Wave Equations Implementations of ID Wave Equations Classes for Solving ID Wave Equations A Problem Solving Environment Numerical Methods for 2D Wave Equations Implementations of 2D Wave Equations Exercises

16 Table of Contents XVII A Setting up the Required Software Environment A.1 Installation on Unix Systems A.l.1 A Suggested Direetory Strueture A.l.2 Setting Some Environment Variables A.l.3 Installing Tcl/Tk and Additional Modules A.l.4 Installing Python A.l.5 Installing Python Modules A.l.6 Installing Gnuplot A.l.7 Installing SWIG A.l.8 Summary of Environment Variables A.l.9 Testing the Installation of Seripting Utilities A.2 Installation on Windows Systems B Elements of Software Engineering B.1 Building and Using Modules B.l.1 Single-File Modules B.l.2 Multi-File Modules B.l.3 Debugging and Troubleshooting B.2 Tools for Doeumenting Python Software B.2.1 Doe Strings B.2.2 Tools for Automatie Doeumentation B.3 Coding Standards B.3.1 Style Guide B.3.2 Pythonie Programming B.4 Verifieation of Seripts BA.1 Automating Regression Tests BA.2 Implementing a Tool for Regression Tests BA.3 Writing a Test Seript BAA Verifying Output from Numerieal Computations BA.5 Automatie Doe String Testing BA.6 Unit Testing B.5 Version Control Management B.5.1 Getting Started with CVS B.5.2 Building Seripts to Simplify the Use of CVS B.6 Exereises Bibliography Index

17 List of Exercises Exercise 2.1 Exercise 2.2 Exercise 2.3 Exercise 2.4 Exercise 2.5 Exercise 2.6 Exercise 2.7 Exercise 2.8 Exercise 2.9 Exercise 2.10 Exercise 2.11 Exercise 2.12 Exercise 2.13 Exercise 2.14 Exercise 2.15 Exercise 2.16 Exercise 2.17 Exercise 3.1 Exercise 3.2 Exercise 3.3 Exercise 3.4 Exercise 3.5 Exercise 3.6 Exercise 3.7 Exercise 3.8 Exercise 3.9 Exercise 3.10 Exercise 3.11 Exercise 3.12 Exercise 3.13 Exercise 3.14 Exercise 3.15 Exercise 3.16 Exercise 3.17 Exercise 3.18 Exercise 3.19 Exercise 3.20 Exercise 4.1 Exercise 4.2 Exercise 4.3 Become familiar with the electronie documentation Extend Exercise 2.1 with a loop Find five errors in a script Basie use of control structures Replace exception handling by an if-test Use standard input/output instead of files Read streams of (x, y) pairs from the command line Estimate the chance of an event in a diee game Determine if you win or loose a hazard game Generate an HTML report from the simviz1.py script.. 50 Generate a Jb.'IE;X report from the simvizl. py script Compute time step values in the simviz1.py script Use Matlab for curve plotting in the simvizl. py script.. 51 Combine curves from two simulations in one plot Make an animated oscillating system figure Improve an automatieally generated HTML report Combine two-column data files to a multi-column file Write format specifications in printf-style Write your own function for joining strings Write an improved function for joining strings Never modify a list you are iterating on Pack a collection of files Make a specialized sort function Check if your system has a specific program Find the paths to a collection of programs Use Exercise 3.8 to improve the simviz1.py script Use Exercise 3.8 to improve the loop4simviz2.py script. 99 Find the version number of a utility Automate execution of a family of similar commands Remove temporary files in a directory tree Find old and large files in a directory tree Remove redundant files in a directory tree Annotate a filename with the current date Automatie backup of recently modified files Search for a text in files with certain extensions Search directories for plots and make HTML report Fix Unix/Windows Line Ends Matrix-vector multiply with NumPy arrays Replace lists by NumPy arrays Assignment and in-place NumPy array modifications

18 XX List of Exercises Exercise 4.4 Exercise 4.5 Exercise 4.6 Exercise 4.7 Exercise 4.8 Exercise 4.9 Exercise 4.10 Exercise 4.11 Exercise 4.12 Exercise 4.13 Exercise 4.14 Exercise 4.15 Exercise 4.16 Exercise 4.17 Exercise 5.1 Exercise 5.2 Exercise 5.3 Exercise 6.1 Exercise 6.2 Exercise 6.3 Exercise 6.4 Exercise 6.5 Exercise 6.6 Exercise 6.7 Exercise 6.8 Exercise 6.9 Exercise 6.10 Exercise 6.11 Exercise 6.12 Exercise 6.13 Exercise 6.14 Exercise 6.15 Exercise 6.16 Exercise 6.17 Exercise 6.18 Exercise 6.19 Exercise 7.1 Exercise 7.2 Exercise 7.3 Exercise 7.4 Exercise 7.5 Exercise 8.1 Exercise 8.2 Exercise 8.3 Exercise 8.4 Process comma-separated numbers in a file Vectorized constant function Vectorize a numerical integration rule Vectorize a formula containing an if condition Vectorized Box-Müller method for normal variates Implement Exercise 2.8 using NumPy arrays Implement Exercise 2.9 using NumPy arrays Use the Gnuplot module in the simviz1.py script NumPy arrays and binary files One-dimensional Monte Carlo integration Higher-dimensional Monte Carlo integration Load data file into NumPy array and visualize Analyze trends in the data from Exercise Computing a function over a 3D grid Implement a numerical integration rule in F Implement a numerical integration rule in C Implement a numerical integration rule in C Modify the Scientific Hello World Gur Change the layout of the GUI in Exercise Control a layout with the grid geometry manager Make a demo of Newton's method Program with Pmw. EntryField in hwgui10. py Program with Pmw. EntryField in simvizgui2. py Replace Tkinter variables by set / get-like functions Use simviz1.py as a module in simvizgui2.py Apply Matlab for visualization in simvizgui2. py Program with Pmw. OptionMenu in simvizgui2. py Study the nonlinear motion of a pendulum Add error handling with an associated message box Add a message bar to a balloon help Select a file from a list and perform an action Make a GUI for finding and selecting font names Launch a GUI when command-line options are missing. 271 Write a GUI for Exercise Write a GUI for selecting files to be plotted Write an easy-to-use GUI generator Write a CGI debugging tool Make a Web calculator Make a Web application for registering participants Make a Web application for numerical experiments Become a "nobody" user on a Web server Use the getopt/optparse module in simviz1.py Store command-line options in a dictionary TUrn files with commands into Python variables A grep script

19 List of Exercises XXI Exercise 8.5 Exercise 8.6 Exercise 8.7 Exercise 8.8 Exercise 8.9 Exercise 8.10 Exercise 8.11 Exercise 8.12 Exercise 8.13 Exercise 8.14 Exercise 8.15 Exercise 8.16 Exercise 8.17 Exercise 8.18 Exercise 8.19 Exercise 8.20 Exercise 8.21 Exercise 8.22 Exercise 8.23 Exercise 8.24 Exercise 8.25 Exercise 8.26 Exercise 8.27 Exercise 8.28 Exercise 8.29 Experiment with a regex for real numbers Find errors in regular expressions Generate data from a user-supplied formula Explain the behavior of regular expressions Edit extensions in filenames Extract info from a program code Regex for splitting a pathname Rename a collection of files according to a pattern Reimplement the re. findall function Interpret a regex code and find programming errors Automatie fine tuning of PostScript figures Prefix name of digital image files with date and time Transform a list of lines to a list of paragraphs Copy computer codes into documents A very useful script for all writers Read Fortran 90 files with namelists Regex for matching fb.'ie;x commands Automatie update of function calls in C++ files Read/write (x, y) pairs from/to binary files Use the XDR format in the script from Exercise Archive all files needed in a fb.'ie;x document Using a Web site for distributed simulation Convert data structures to/from strings Implement a dass for vectors in 3D Extend the dass from Exericse Exercise 8.30 Make a dictionary type with ordered keys Exercise 8.31 Make a smarter integration function Exercise 8.32 Extend the Grid2D dass Exercise 8.33 Exercise 8.34 Exercise 8.35 Exercise 8.36 Exercise 9.1 Exercise 9.2 Exercise 9.3 Exercise 9.4 Exercise 9.5 Exercise 9.6 Exercise 10.1 Exercise 10.2 Exercise 10.3 Exercise 10.4 Exercise 10.5 Exercise 10.6 Exercise 10.7 Extend the functionality of dass Grid2D at run time Make a boundary iterator in a 2D grid Make a generator for odd numbers Make a dass for sparse vectors Extend Exercise 5.1 with a callback to Python Compile callback functions in Exercise Smoothing of time series Smoothing of 3D data Type incompatibility between Python and Fortran Problematic callbacks to Python from Fortran Extend Exercise 5.2 or 5.3 with a callback to Python Apply C/C++ function pointers in Exercise Debug a C extension module Investigate the efficiency of vector operations Make callbacks to vectorized Python functions Avoid Python callbacks in extension modules Extend Exercise 9.4 with C and C++ code

20 XXII List of Exercises Exercise 10.8 Apply SWIG to an array dass in C Exercisc 10.9 Build a dictionary in C Exercise Make a C module for computing random numbers Exercise Almost automatie generation of C extension modules Exercise Introduce C++ array objects in Exercise Exercise Introduce SCXX in Exercise Exercise ncorporate a BLT graph widget in simvizl.py Exercise 11.2 Plot a two-column datafile in a Pmw.Blt widget Exercise 11.3 Use a BLT graph widget in simvizgui2.py Exercise 11.4 Extend Exercise 11.3 to handle multiple curves Exercise 11.5 Use a BLT graph widget in Exercise Exercise nteractive dump of snapshot plots in an animation Exercise 11.7 Extend the animate.py GU Exercise 11.8 Animate a curve in a BLT graph widget Exercise 11.9 Add animations to the GU1 in Exercise Exercise Extend the GU1 in Exercise 6.17 with a fancy list Exercise Remove canvas items Exercise ntroduce properties in dass Parameters Exercise 12.1 Allow multiple values of parameters in input files Exercise 12.2 Turn mathematical formulas into Fortran functions Exercise 12.3 Exercise 12.4 Exercise 12.5 Exercise 12.6 Exercise B.1 Exercise B. 2 Exercise B.3 Exercise B.4 Exercise B. 5 Exercise B.6 Exercise B. 7 Exercise B. 8 Exercise B. 9 Exercise B.lO Exercise B.11 Exercise B.12 Move a wave source during simulation ndude damping in a 1D wave simulator Add a NumPy database to a PDE simulator Use iterators in finite difference schemes Pack modules and packages using Distutils Distribute mixed-ianguage code using Distutils Make a Python module of simviz1.py Use tools to document the script in Exercise Make a regression test for a trivial script Repeat Exercise B.5 using the test script tools Make a regression test for a script with 1/ Make a regression test for the script in Exercise Approximate fioats in Exercise B Make tests for grid iterators Make a tar/zip archive of files associated with a script Semi-automatic evaluation of a student project

Python Scripting for Computational Science

Python Scripting for Computational Science Hans Petter Langtangen Python Scripting for Computational Science Third Edition With 62 Figures 43 Springer Table of Contents 1 Introduction... 1 1.1 Scripting versus Traditional Programming... 1 1.1.1

More information

Python Scripting for Computational Science

Python Scripting for Computational Science Hans Petter Langtangen Python Scripting for Computational Science Third Edition With 62 Figures Sprin ger Table of Contents 1 Introduction 1 1.1 Scripting versus Traditional Programming 1 1.1.1 Why Scripting

More information

Interfacing with C++

Interfacing with C++ Interfacing with C++ Jayantha Katupitiya Kim Bentley Interfacing with C++ Programming Real-World Applications ABC Dr. Jayantha Katupitiya Senior Lecturer School of Mechanical and Manufacturing Engineering

More information

Contents Computing with Formulas

Contents Computing with Formulas Contents 1 Computing with Formulas... 1 1.1 The First Programming Encounter: a Formula... 1 1.1.1 Using a Program as a Calculator... 2 1.1.2 About Programs and Programming... 2 1.1.3 Tools for Writing

More information

PROBLEM SOLVING WITH FORTRAN 90

PROBLEM SOLVING WITH FORTRAN 90 David R. Brooks PROBLEM SOLVING WITH FORTRAN 90 FOR SCIENTISTS AND ENGINEERS Springer Contents Preface v 1.1 Overview for Instructors v 1.1.1 The Case for Fortran 90 vi 1.1.2 Structure of the Text vii

More information

PYTHON TRAINING COURSE CONTENT

PYTHON TRAINING COURSE CONTENT SECTION 1: INTRODUCTION What s python? Why do people use python? Some quotable quotes A python history lesson Advocacy news What s python good for? What s python not good for? The compulsory features list

More information

Gengsheng Lawrence Zeng. Medical Image Reconstruction. A Conceptual Tutorial

Gengsheng Lawrence Zeng. Medical Image Reconstruction. A Conceptual Tutorial Gengsheng Lawrence Zeng Medical Image Reconstruction A Conceptual Tutorial Gengsheng Lawrence Zeng Medical Image Reconstruction A Conceptual Tutorial With 163 Figures Author Prof. Dr. Gengsheng Lawrence

More information

PTN-202: Advanced Python Programming Course Description. Course Outline

PTN-202: Advanced Python Programming Course Description. Course Outline PTN-202: Advanced Python Programming Course Description This 4-day course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.

More information

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch c-xsc A C++ Class Library for Extended Scientific Computing Translated by G. F. Corliss C. Lawo R. Klatte A. Wiethoff C. Wolff Springer-Verlag Berlin Heidelberg

More information

Software Development for SAP R/3

Software Development for SAP R/3 Software Development for SAP R/3 Springer-Verlag Berlin Heidelberg GmbH Ulrich Mende Software Development for SAP R/3 Data Dictionary, ABAP/4, Interfaces With Diskette With 124 Figures and Many Example

More information

David J. Pine. Introduction to Python for Science & Engineering

David J. Pine. Introduction to Python for Science & Engineering David J. Pine Introduction to Python for Science & Engineering To Alex Pine who introduced me to Python Contents Preface About the Author xi xv 1 Introduction 1 1.1 Introduction to Python for Science and

More information

On a Future Software Platform for Demanding Multi-Scale and Multi-Physics Problems

On a Future Software Platform for Demanding Multi-Scale and Multi-Physics Problems On a Future Software Platform for Demanding Multi-Scale and Multi-Physics Problems H. P. Langtangen X. Cai Simula Research Laboratory, Oslo Department of Informatics, Univ. of Oslo SIAM-CSE07, February

More information

Jinkun Liu Xinhua Wang. Advanced Sliding Mode Control for Mechanical Systems. Design, Analysis and MATLAB Simulation

Jinkun Liu Xinhua Wang. Advanced Sliding Mode Control for Mechanical Systems. Design, Analysis and MATLAB Simulation Jinkun Liu Xinhua Wang Advanced Sliding Mode Control for Mechanical Systems Design, Analysis and MATLAB Simulation Jinkun Liu Xinhua Wang Advanced Sliding Mode Control for Mechanical Systems Design, Analysis

More information

[CHAPTER] 1 INTRODUCTION 1

[CHAPTER] 1 INTRODUCTION 1 FM_TOC C7817 47493 1/28/11 9:29 AM Page iii Table of Contents [CHAPTER] 1 INTRODUCTION 1 1.1 Two Fundamental Ideas of Computer Science: Algorithms and Information Processing...2 1.1.1 Algorithms...2 1.1.2

More information

Graphics Programming in c++

Graphics Programming in c++ Graphics Programming in c++ Springer London Berlin Heidelberg New York Barcelona Budapest Hong Kong Milan Paris Santa Clara Singapore Tokyo Mark Walmsley Graphics Programming in c++ Writing Graphics Applications

More information

Real-Time Graphics Rendering Engine

Real-Time Graphics Rendering Engine Hujun Bao Wei Hua Real-Time Graphics Rendering Engine With 66 figures, 11 of them in color ADVANCED TOPICS IN SCIENCE AND TECHNOLOGY IN CHINA ADVANCED TOPICS IN SCIENCE AND TECHNOLOGY IN CHINA Zhejiang

More information

Geometric Modeling and Algebraic Geometry

Geometric Modeling and Algebraic Geometry Geometric Modeling and Algebraic Geometry Bert Jüttler Ragni Piene Editors Geometric Modeling and Algebraic Geometry 123 Bert Jüttler Institute of Applied Geometry Johannes Kepler University Altenberger

More information

George Grätzer. Practical L A TEX

George Grätzer. Practical L A TEX Practical L A TEX George Grätzer Practical L A TEX 123 George Grätzer Toronto, ON, Canada Additional material to this book can be downloaded from http://extras.springer.com ISBN 978-3-319-06424-6 ISBN

More information

Slides from INF Course intro

Slides from INF Course intro Slides from INF3331- Course intro p. 1/38 Slides from INF3331 - Course intro Ola Skavhaug, Joakim Sundnes and Hans Petter Langtangen Dept. of Informatics, Univ. of Oslo & Simula Research Laboratory August

More information

High Availability and Disaster Recovery

High Availability and Disaster Recovery High Availability and Disaster Recovery Klaus Schmidt High Availability and Disaster Recovery Concepts, Design, Implementation With 83 Figures and 26 Tables 123 Klaus Schmidt Stockheimer Str. 20 60385

More information

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS STEPHEN WOLFRAM MATHEMATICADO OO Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS Table of Contents XXI a section new for Version 3 a section new for Version 4 a section substantially modified for

More information

Advanced Data Mining Techniques

Advanced Data Mining Techniques Advanced Data Mining Techniques David L. Olson Dursun Delen Advanced Data Mining Techniques Dr. David L. Olson Department of Management Science University of Nebraska Lincoln, NE 68588-0491 USA dolson3@unl.edu

More information

This course is designed for anyone who needs to learn how to write programs in Python.

This course is designed for anyone who needs to learn how to write programs in Python. Python Programming COURSE OVERVIEW: This course introduces the student to the Python language. Upon completion of the course, the student will be able to write non-trivial Python programs dealing with

More information

Computer Architecture

Computer Architecture Computer Architecture Springer-Verlag Berlin Heidelberg GmbH Silvia M. Mueller Wolfgang J. Paul Computer Architecture Complexity and Correctness With 214 Figures and 185 Tables Springer Silvia Melitta

More information

Introduction p. 1 Basic Programming Introduction p. 7 Introduction to Python p. 7 Why Use Python? p. 10 Main Technical Features p.

Introduction p. 1 Basic Programming Introduction p. 7 Introduction to Python p. 7 Why Use Python? p. 10 Main Technical Features p. Introduction p. 1 Basic Programming Introduction p. 7 Introduction to Python p. 7 Why Use Python? p. 10 Main Technical Features p. 13 Python Distribution p. 16 Installing and Configuring Python p. 18 Python

More information

Python for Data Analysis

Python for Data Analysis Python for Data Analysis Wes McKinney O'REILLY 8 Beijing Cambridge Farnham Kb'ln Sebastopol Tokyo Table of Contents Preface xi 1. Preliminaries " 1 What Is This Book About? 1 Why Python for Data Analysis?

More information

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery. HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets

More information

"Charting the Course... Java Programming Language. Course Summary

Charting the Course... Java Programming Language. Course Summary Course Summary Description This course emphasizes becoming productive quickly as a Java application developer. This course quickly covers the Java language syntax and then moves into the object-oriented

More information

SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming

SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming Springer-Verlag London Ltd. Tan Kiat Shi, Willi-Hans Steeb and Yorick Hardy SymbolicC ++: An Introdurtion to Computer

More information

Table of Contents EVALUATION COPY

Table of Contents EVALUATION COPY Table of Contents Introduction... 1-2 A Brief History of Python... 1-3 Python Versions... 1-4 Installing Python... 1-5 Environment Variables... 1-6 Executing Python from the Command Line... 1-7 IDLE...

More information

Mixed language programming

Mixed language programming Mixed language programming Simon Funke 1,2 Ola Skavhaug 3 Joakim Sundnes 1,2 Hans Petter Langtangen 1,2 Center for Biomedical Computing, Simula Research Laboratory 1 Dept. of Informatics, University of

More information

Jim Jackson II Ian Gilman

Jim Jackson II Ian Gilman Single page web apps, JavaScript, and semantic markup Jim Jackson II Ian Gilman FOREWORD BY Scott Hanselman MANNING contents 1 HTML5 foreword xv preface xvii acknowledgments xx about this book xxii about

More information

Getting Started p. 1 Obtaining Tcl/Tk p. 1 Interactive Execution p. 1 Direct Execution p. 4 Reading this Book p. 6 Requirements for Networking

Getting Started p. 1 Obtaining Tcl/Tk p. 1 Interactive Execution p. 1 Direct Execution p. 4 Reading this Book p. 6 Requirements for Networking Foreword p. xi Acknowledgments p. xiii Getting Started p. 1 Obtaining Tcl/Tk p. 1 Interactive Execution p. 1 Direct Execution p. 4 Reading this Book p. 6 Requirements for Networking Examples p. 7 Requirements

More information

Table of Contents. Preface... xxi

Table of Contents. Preface... xxi Table of Contents Preface... xxi Chapter 1: Introduction to Python... 1 Python... 2 Features of Python... 3 Execution of a Python Program... 7 Viewing the Byte Code... 9 Flavors of Python... 10 Python

More information

Contributions to Economics

Contributions to Economics Contributions to Economics Kesra Nermend Vector Calculus in Regional Development Analysis Comparative Regional Analysis Using the Example of Poland Physica Verlag A Springer Company Dr. inž. Kesra Nermend

More information

Scientific Computing Using. Atriya Sen

Scientific Computing Using. Atriya Sen Scientific Computing Using Atriya Sen Broad Outline Part I, in which I discuss several aspects of the Python programming language Part II, in which I talk about some Python modules for scientific computing

More information

Lecture Notes in Mathematics Editors: J.--M. Morel, Cachan F. Takens, Groningen B. Teissier, Paris

Lecture Notes in Mathematics Editors: J.--M. Morel, Cachan F. Takens, Groningen B. Teissier, Paris Lecture Notes in Mathematics 1842 Editors: J.--M. Morel, Cachan F. Takens, Groningen B. Teissier, Paris 3 Berlin Heidelberg New York Hong Kong London Milan Paris Tokyo Trygve Johnsen Andreas Leopold Knutsen

More information

Preliminaries. Chapter The FEniCS Project

Preliminaries. Chapter The FEniCS Project Chapter 1 Preliminaries 1.1 The FEniCS Project The FEniCS Project is a research and software project aimed at creating mathematical methods and software for automated computational mathematical modeling.

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department 0901212 Python Programming 1 st Semester 2014/2015 Course Catalog This course introduces

More information

Foundations of 3D Graphics Programming

Foundations of 3D Graphics Programming Foundations of 3D Graphics Programming Jim X. Chen Edward J. Wegman Foundations of 3D Graphics Programming Using JOGL and Java3D With 139 Figures Jim X. Chen, PhD Computer Science Department George Mason

More information

PYTHON. p ykos vtawynivis. Second eciitiovl. CO Ve, WESLEY J. CHUN

PYTHON. p ykos vtawynivis. Second eciitiovl. CO Ve, WESLEY J. CHUN CO Ve, PYTHON p ykos vtawynivis Second eciitiovl WESLEY J. CHUN. PRENTICE HALL Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney

More information

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV Contents Preface Chapter 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19

More information

Intermediate Python 3.x

Intermediate Python 3.x Intermediate Python 3.x This 4 day course picks up where Introduction to Python 3 leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development. This

More information

The Information Retrieval Series. Series Editor W. Bruce Croft

The Information Retrieval Series. Series Editor W. Bruce Croft The Information Retrieval Series Series Editor W. Bruce Croft Sándor Dominich The Modern Algebra of Information Retrieval 123 Sándor Dominich Computer Science Department University of Pannonia Egyetem

More information

Mixed language programming with NumPy arrays

Mixed language programming with NumPy arrays Mixed language programming with NumPy arrays Simon Funke 1,2 Ola Skavhaug 3 Joakim Sundnes 1,2 Hans Petter Langtangen 1,2 Center for Biomedical Computing, Simula Research Laboratory 1 Dept. of Informatics,

More information

Programming in Scala Second Edition

Programming in Scala Second Edition Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword

More information

CHAPTER 1: INTRODUCING C# 3

CHAPTER 1: INTRODUCING C# 3 INTRODUCTION xix PART I: THE OOP LANGUAGE CHAPTER 1: INTRODUCING C# 3 What Is the.net Framework? 4 What s in the.net Framework? 4 Writing Applications Using the.net Framework 5 What Is C#? 8 Applications

More information

Programming in Python

Programming in Python COURSE DESCRIPTION This course presents both the programming interface and the techniques that can be used to write procedures in Python on Unix / Linux systems. COURSE OBJECTIVES Each participant will

More information

Basic Python 3 Programming (Theory & Practical)

Basic Python 3 Programming (Theory & Practical) Basic Python 3 Programming (Theory & Practical) Length Delivery Method : 5 Days : Instructor-led (Classroom) Course Overview This Python 3 Programming training leads the student from the basics of writing

More information

Scientific Computing: Lecture 1

Scientific Computing: Lecture 1 Scientific Computing: Lecture 1 Introduction to course, syllabus, software Getting started Enthought Canopy, TextWrangler editor, python environment, ipython, unix shell Data structures in Python Integers,

More information

Webgurukul Programming Language Course

Webgurukul Programming Language Course Webgurukul Programming Language Course Take One step towards IT profession with us Python Syllabus Python Training Overview > What are the Python Course Pre-requisites > Objectives of the Course > Who

More information

Julien Masanès. Web Archiving. With 28 Figures and 6 Tables ABC

Julien Masanès. Web Archiving. With 28 Figures and 6 Tables ABC Web Archiving Julien Masanès Web Archiving With 28 Figures and 6 Tables ABC Author Julien Masanès European Web Archive 25 rue des envierges 75020 Paris, France julien.masanes@bnf.fr ACM Computing Classification

More information

Data Science with Python Course Catalog

Data Science with Python Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com Table of Contents Syllabus Overview

More information

Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4

Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Stephen L. Campbell, Jean-Philippe Chancelier and Ramine Nikoukhah Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Second Edition

More information

Mathematica for Scientists and Engineers

Mathematica for Scientists and Engineers Mathematica for Scientists and Engineers Thomas B. Bahder Addison-Wesley Publishing Company Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario Wokingham, England Amsterdam Bonn Paris

More information

Scenario Manager User Guide. Release September 2013

Scenario Manager User Guide. Release September 2013 Scenario Manager User Guide Release 6.2.1 September 2013 Scenario Manager User Guide Release 6.2.1 September 2013 Document Control Number: 9MN12-62110017 Document Number: SMUG-13-FCCM-0017-6.2.1-01 Oracle

More information

Objects First with Java

Objects First with Java ^ Objects First with Java A Practical Introduction using BlueJ David J. Barnes and Michael Kolling Second edition PEARSON Prentice Hall Harlow, England London New York Boston San Francisco Toronto Sydney

More information

Data Structures in C++ Using the Standard Template Library

Data Structures in C++ Using the Standard Template Library Data Structures in C++ Using the Standard Template Library Timothy Budd Oregon State University ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Reading, Massachusetts Harlow, England Menlo

More information

Acknowledgments Introduction. Part I: Programming Access Applications 1. Chapter 1: Overview of Programming for Access 3

Acknowledgments Introduction. Part I: Programming Access Applications 1. Chapter 1: Overview of Programming for Access 3 74029ftoc.qxd:WroxPro 9/27/07 1:40 PM Page xiii Acknowledgments Introduction x xxv Part I: Programming Access Applications 1 Chapter 1: Overview of Programming for Access 3 Writing Code for Access 3 The

More information

Inside Relational Databases with Examples in Access

Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Mark Whitehorn and Bill Marklyn 123 Mark Whitehorn Applied Computing Division, University of Dundee,

More information

WORKSHOP ON EASY JAVA SIMULATIONS AND THE COMPADRE DIGITAL LIBRARY

WORKSHOP ON EASY JAVA SIMULATIONS AND THE COMPADRE DIGITAL LIBRARY MPTL14 2009 Udine 23-27 September 2009 WORKSHOP ON EASY JAVA SIMULATIONS AND THE COMPADRE DIGITAL LIBRARY Francisco Esquembre, Universidad de Murcia Wolfgang Christian, Davidson College Bruce Mason, University

More information

1 OBJECT-ORIENTED PROGRAMMING 1

1 OBJECT-ORIENTED PROGRAMMING 1 PREFACE xvii 1 OBJECT-ORIENTED PROGRAMMING 1 1.1 Object-Oriented and Procedural Programming 2 Top-Down Design and Procedural Programming, 3 Problems with Top-Down Design, 3 Classes and Objects, 4 Fields

More information

Research on Industrial Security Theory

Research on Industrial Security Theory Research on Industrial Security Theory Menggang Li Research on Industrial Security Theory Menggang Li China Centre for Industrial Security Research Beijing, People s Republic of China ISBN 978-3-642-36951-3

More information

Beginning Microsoft Office 2010

Beginning Microsoft Office 2010 Beginning Microsoft Office 2010 IB I IP TECHNISCHI= ^\ 'NFORMATIONSBIBLIOTHEK UNIVERSITATSBIBLIOTHEK HANNOVER Guy Hart-Davis Apress* TIB/UB Hannover 89 133 299 783 ill! IWIlilltllw i ttis f0k^fsll^»m*r~

More information

Python Training. Complete Practical & Real-time Trainings. A Unit of SequelGate Innovative Technologies Pvt. Ltd.

Python Training. Complete Practical & Real-time Trainings. A Unit of SequelGate Innovative Technologies Pvt. Ltd. Python Training Complete Practical & Real-time Trainings A Unit of. ISO Certified Training Institute Microsoft Certified Partner Training Highlights : Complete Practical and Real-time Scenarios Session

More information

Murach s Beginning Java with Eclipse

Murach s Beginning Java with Eclipse Murach s Beginning Java with Eclipse Introduction xv Section 1 Get started right Chapter 1 An introduction to Java programming 3 Chapter 2 How to start writing Java code 33 Chapter 3 How to use classes

More information

Web Development with Java

Web Development with Java Web Development with Java Tim Downey Web Development with Java Using Hibernate, JSPs and Servlets Tim Downey, BS, MS Florida International University Miami, FL 33199, USA British Library Cataloguing in

More information

TH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo

TH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo TH IRD EDITION Python Cookbook David Beazley and Brian K. Jones O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface xi 1. Data Structures and Algorithms 1 1.1. Unpacking

More information

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1 Acknowledgments xvii Introduction Who Is This Book For?... xix What s in This Book?... xx Part I: Warming Up.... xx Part II: Simulating Life... xx Part III: Fun with Images... xx Part IV: Enter 3D... xx

More information

PROGRAMMING AND ENGINEERING COMPUTING WITH MATLAB Huei-Huang Lee SDC. Better Textbooks. Lower Prices.

PROGRAMMING AND ENGINEERING COMPUTING WITH MATLAB Huei-Huang Lee SDC. Better Textbooks. Lower Prices. PROGRAMMING AND ENGINEERING COMPUTING WITH MATLAB 2018 Huei-Huang Lee SDC P U B L I C AT I O N S Better Textbooks. Lower Prices. www.sdcpublications.com Powered by TCPDF (www.tcpdf.org) Visit the following

More information

The MPI API s baseline requirements

The MPI API s baseline requirements LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990086-00- E 09/14/1999 The MPI API s baseline

More information

Springer Books on Professional Computing. Edited by Henry Ledgard

Springer Books on Professional Computing. Edited by Henry Ledgard Springer Books on Professional Computing Edited by Henry Ledgard Springer Books on Professional Computing Computer Confidence: A Human Approach to Computers Bruce D. Sanders. viii, 90 pages. 23 figures.

More information

Programming Graphical

Programming Graphical Programming Graphical User Interfaces in R Michael F. Lawrence John Verzani CRC Press Taylorfii Francis Group Boca Raton London NewYork CRC Press Is an imprint of the Taylor & Francis Group an informs

More information

Object-Oriented Programming and Data Structures

Object-Oriented Programming and Data Structures Java Methods A & AB Object-Oriented Programming and Data Structures Maria Litvin Phillips Academy, Andover, Massachusetts Gary Litvin Skylight Software, Inc. Skylight Publishing Andover, Massachusetts

More information

COMPUTATIONAL DYNAMICS

COMPUTATIONAL DYNAMICS COMPUTATIONAL DYNAMICS THIRD EDITION AHMED A. SHABANA Richard and Loan Hill Professor of Engineering University of Illinois at Chicago A John Wiley and Sons, Ltd., Publication COMPUTATIONAL DYNAMICS COMPUTATIONAL

More information

System Design S.CS301

System Design S.CS301 System Design S.CS301 (Autumn 2015/16) Page 1 Agenda Contents: Course overview Reading materials What is the MATLAB? MATLAB system History of MATLAB License of MATLAB Release history Syntax of MATLAB (Autumn

More information

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition FPGA Design Philip Andrew Simpson FPGA Design Best Practices for Team-based Reuse Second Edition Philip Andrew Simpson San Jose, CA, USA ISBN 978-3-319-17923-0 DOI 10.1007/978-3-319-17924-7 ISBN 978-3-319-17924-7

More information

MATLAB 7. The Language of Technical Computing KEY FEATURES

MATLAB 7. The Language of Technical Computing KEY FEATURES MATLAB 7 The Language of Technical Computing MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numerical

More information

The MPI API s baseline requirements

The MPI API s baseline requirements LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990086-01- E 01/26/2000 The MPI API s baseline

More information

Textadept Quick Reference

Textadept Quick Reference FOURTH EDITION Textadept Quick Reference Mitchell Textadept Quick Reference by Mitchell Copyright 2013, 2015, 2016, 2018 Mitchell. All rights reserved. Contact the author at mitchell@foicica.com. Although

More information

ADMINISTRATIVE MANAGEMENT COLLEGE

ADMINISTRATIVE MANAGEMENT COLLEGE First Semester ADMINISTRATIVE MANAGEMENT COLLEGE BACHELOR OF COMPUTER APPLICATION COURSE OUTCOME (CO) Problem solving techniques Using C CO 1: Understand the basic concepts of programming, software and

More information

Fundamentals of Operating Systems. Fifth Edition

Fundamentals of Operating Systems. Fifth Edition Fundamentals of Operating Systems Fifth Edition Fundamentals of Operating Systems A.M. Lister University of Queensland R. D. Eager University of Kent at Canterbury Fifth Edition Springer Science+Business

More information

SCRIPTO. A New Tool for Customizing LS-PREPOST

SCRIPTO. A New Tool for Customizing LS-PREPOST 5. LS-DYNA Anwenderforum, Ulm 2006 LS - PREPOST SCRIPTO Workshop SCRIPTO A New Tool for Customizing LS-PREPOST R. Chen LSTC M - I - 1 LS - PREPOST SCRIPTO Workshop 5. LS-DYNA Anwenderforum, Ulm 2006 Why

More information

Philipp von Weitershausen. Web Component Development with Zope 3

Philipp von Weitershausen. Web Component Development with Zope 3 Philipp von Weitershausen Web Component Development with Zope 3 Philipp von Weitershausen Web Component Development with Zope 3 With 39 Figures and 10 Tables 123 Philipp von Weitershausen Goebenstraße

More information

Slides from INF3331 lectures optimizing Python code

Slides from INF3331 lectures optimizing Python code Slides from INF3331 lectures optimizing Python code p. 1/20 Slides from INF3331 lectures optimizing Python code Ola Skavhaug, Joakim Sundnes and Hans Petter Langtangen Dept. of Informatics, Univ. of Oslo

More information

Introduction to Scientific Computing

Introduction to Scientific Computing University of Tartu, Institute of Computer Science Introduction to Scientific Computing MTAT.08.025 eero.vainikko@ut.ee Spring 2017 2 Practical information Lectures: Liivi 2-122 MON 10:15 Computer classes:

More information

Excel for Chemists. Second Edition

Excel for Chemists. Second Edition Excel for Chemists Second Edition This page intentionally left blank ExceL for Chemists A Comprehensive Guide Second Edition E. Joseph Billo Department of Chemistry Boston College Chestnut Hill, Massachusetts

More information

A Web-Based Introduction

A Web-Based Introduction A Web-Based Introduction to Programming Essential Algorithms, Syntax, and Control Structures Using PHP, HTML, and MySQL Third Edition Mike O'Kane Carolina Academic Press Durham, North Carolina Contents

More information

Oracle Cloud. Using Oracle Social Network Release E

Oracle Cloud. Using Oracle Social Network Release E Oracle Cloud Using Oracle Social Network Release 11.1.11.0 E61996-01 November 2015 Oracle Cloud Using Oracle Social Network, Release 11.1.11.0 E61996-01 Copyright 2012, 2015 Oracle and/or its affiliates.

More information

Fall 2018 Updates. Materials and Energy Balances. Fundamental Programming Concepts. Data Structure Essentials (Available now) Circuits (Algebra)

Fall 2018 Updates. Materials and Energy Balances. Fundamental Programming Concepts. Data Structure Essentials (Available now) Circuits (Algebra) Fall 2018 Updates Materials and Energy Balances New Sections Solver and least squares fits Error and statistics Interpolation 9.9 Integration and numerical integration 9.10 Math functions 9.11 Logical

More information

Introduction to Python Part 2

Introduction to Python Part 2 Introduction to Python Part 2 v0.2 Brian Gregor Research Computing Services Information Services & Technology Tutorial Outline Part 2 Functions Tuples and dictionaries Modules numpy and matplotlib modules

More information

ENGINEERING PROBLEM SOLVING WITH C++

ENGINEERING PROBLEM SOLVING WITH C++ ENGINEERING PROBLEM SOLVING WITH C++ Second Edition Delores M. Etter Electrical Engineering Department United States Naval Academy Jeanine A. Ingber Training Consultant Sandia National Laboratories Upper

More information

The Frame API s baseline requirements

The Frame API s baseline requirements LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T980117-00- E 12/4/1998 The Frame API s baseline

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Mastering Linux. Paul S. Wang. CRC Press. Taylor & Francis Group. Taylor & Francis Croup an informa business. A CHAPMAN St HALL BOOK

Mastering Linux. Paul S. Wang. CRC Press. Taylor & Francis Group. Taylor & Francis Croup an informa business. A CHAPMAN St HALL BOOK Mastering Linux Paul S. Wang CRC Press Taylor & Francis Group Boca Raton London New York CRC Press is an Imprint of the Taylor & Francis Croup an informa business A CHAPMAN St HALL BOOK Contents Preface

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

Table of Contents COPYRIGHTED MATERIAL. Introduction Book I: Excel Basics Chapter 1: The Excel 2013 User Experience...

Table of Contents COPYRIGHTED MATERIAL. Introduction Book I: Excel Basics Chapter 1: The Excel 2013 User Experience... Table of Contents Introduction... 1 About This Book...1 Foolish Assumptions...2 How This Book Is Organized...3 Book I: Excel Basics...3 Book II: Worksheet Design...3 Book III: Formulas and Functions...4

More information

TxWindows, a multi platform text mode windowing library

TxWindows, a multi platform text mode windowing library TxWindows, a multi platform text mode windowing library Jan van Wijk The TxWindows library for development of text mode applications using a windowing system including menus, dialogs and more... Presentation

More information

SpringerBriefs in Computer Science

SpringerBriefs in Computer Science SpringerBriefs in Computer Science Series Editors Stan Zdonik Peng Ning Shashi Shekhar Jonathan Katz Xindong Wu Lakhmi C. Jain David Padua Xuemin (Sherman) Shen Borko Furht V.S. Subrahmanian Martial Hebert

More information