legally free pyhton books post image books on shelf near railing
books

Legally Free Python Books List

Here is my personal free Python books list. Warning: Packt free books are highly unreliable, what can be free today can no longer be free tomorrow They were included as they are free at the time of writing this post. Similarly is Oreilly’s case. The two publishing houses have been annotated as necessary. In case of no longer free or broken links please mail me at <arj dot python at gmail dot com> to update article. I have to thank the internet who took the pain to point these resources to me. I have skimmed through the contents to producs a list of legally free Python books of value. Here’s how i evaluated books (you might not agree, but that’s my personal take on it):

Some popular listed books like Python Module of the Week is not a book and Tango with Django 1.7 is outdated. Materials which provide only some free chapters are not free books. Docs manuals are docs manuals, you’d have to include a quarter of pypi’s packages manuals then. github projects are gihub projects unless it’s a book. Mark pilgrim ran away so should we from his book. We don’t want some illegal 100+ free list (Mark Lutz books are not free mind you), you could include all Python books hosted on drive then. Python2 is past, we passed over. Fullstackpython’s list is a collection of various sites’ articles, not a book. Really short books more qualified as leaflets did not make it. Such materials have been deliberately left out. What remains are books that you’ll enjoy!

Let’s start! Click on the book titles to view the book.

INTRODUCTORY MATERIALS

Think Python

Allen Downey

One of the most celebrated Python books. And, it’s free. If you follow it, it assures you solid programming foundations. Highly recommended once again. On a side note, this site has the pleasure of hosting the official french version here: pythonmembers.club/ThinkPythonFr

Python Practice Book

Anand Chitipothu

This book is prepared from the training notes of Anand Chitipothu.

Learn Python Programming – Second Edition

Fabrizio Romano – Packt

Learn Python Programming is a quick, thorough, and practical introduction to Python – an extremely flexible and powerful programming language that can be applied to many disciplines. You will begin by learning the fundamentals of Python so that you have a rock-solid foundation to build upon. Covers some data science, GUI and web (Django).

Python For Everybody

Charles R. Severance

The goal of this book is to provide an Informatics-oriented introduction to programming. The primary approach taken in this book is using Python to solve data analysis problems common in the world of Informatics.

Non-Programmer’s Tutorial for Python 3

Josh Cogliati

The Non-Programmers’ Tutorial For Python 3 is a tutorial designed to be an introduction to the Python programming language. This guide is for someone with no programming experience.

The Coder’s Apprentice

Pieter Spronck

“The Coder’s Apprentice” aims at teaching Python 3 to students and teenagers who are completely new to programming. Contrary to many of the other books that teach Python programming, this book assumes no previous knowledge of programming on the part of the students, and contains numerous exercises that allow students to train their programming skills.

A Byte of Python

Swaroop C H

“A Byte of Python” is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you.

Intermediate Python

Muhammad Yasoob Ullah Khalid

Python is an amazing language with a strong and friendly community of programmers. However, there is a lack of documentation on what to learn after getting the basics of Python down your throat. Through this book I aim to solve this problem. I would give you bits of information about some interesting topics which you can further explore. The topics which are discussed in this book open up your mind towards some nice corners of Python language. This book is an outcome of my desire to have something like this when I was beginning to learn Python. If you are a beginner, intermediate or even an advanced programmer there is something for you in this book. Please note that this book is not a tutorial and does not teach you Python. The topics are not explained in depth, instead only the minimum required information is given. A true example of legally free Python books.

Boxes: Your Second Python Book

Roberto Alcina

This book tries to achieve only one thing: Show you a project go from nothing to OK. By nothing I mean, no code at all. Not even a fleshed idea of what it does. No goals, no commitments. Just a vague interest. And by OK I mean it will work, it will have tests, it will be available to use, it will be useful and be a real thing. Think of it as a sort of documentary on the beginnings of a rock band, only instead of rockers there is a single overweight Argentinian dev, and instead of a band there is a piece of software. So, not much like a documentary on the beginnings of a rock band.

Learn Python, Break Python

Scott Grant

Learn Python, Break Python is a hands-on introduction to the Python programming language, written for people who have no experience with programming whatsoever. Hey, we all have to start somewhere. As such, the examples and teaching style used in this text make absolutely no expectations about your prior programming experience. Anyone can pick up the art of programming with a little time and a bit of patience. However, when learning something new, I try to break things. In fact, in many cases, I go out of my way to break stuff. When picking up a new concept like computer programming, you can actually increase your comfort level by figuring out the type of cases that are likely to break. You’ll see what data can be used and where, and when you inevitably run into errors later (like everyone does), you won’t be surprised.

Algorithmic Problem Solving with Python

John B. Schneider, Shira Lynn Broschat, Jess Dahmen

(Not an algo book) Python’s syntax and idioms are much easier to learn than those of most other full-featured languages. This book uses programming language Python to introduce folks to programming and algorithmic thinking.

The Hitchhiker’s Guide to Python.

Kenneth Reitz

This opinionated guide exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis.

Slither Into Python

Slither into Python is an introduction to Python for complete beginners. No prior programming experience or computer science background is necessary. Unlike any other Python resources I have found (not that they’re not out there), they don’t explain important computer science concepts such as memory or “how computers work”. In this book I will cover the fundamentals of the Python language and also introduce these important concepts. Put simply, coding or computer programming is about making computers do what you want, Computer Science is about how computers do it. Each go hand-in-hand, help you learn faster and improve your overall understanding of a language! This book aims to do exactly that through Python.

A Whirlwind Tour of Python

Jake VanderPlas – Oreilly

The book provides a whirlwind tour of some of Python’s essential syntax and semantics, built-in data types and structures, function definitions, control flow statements, and other aspects of the language. My aim is that readers will walk away with a solid foundation from which to explore the data science stack just outlined.

Python For You and Me

Kushal Das (Core Dev)

A book for the total new comers into Python world. Was started as book for students before they read Python tutorial. Given it’s from a core dev, even up to chapter choice order is insightful.

Python for Astronomers

Imad Pasha, Christopher Agostino

This text is designed to be an introduction to the Python programming language — which is now used nearly ubiquitously in astronomy — with applications to the types of tasks an undergraduate (or beginning graduate student) might have to tackle. It is not, in any way, meant to be comprehensive; my focus is on bringing you up to speed as efficiently and quickly as possible. This text might have useful information for those with a working knowledge of Python outside of a research setting, but is primarily designed for those with no prior programming experience. By the end of this text, I hope to have shared enough to make you feel comfortable taking the first steps into research-type problems (of which this book will contain several examples), whether in an astronomy course, a research internship, or on-campus research.

OBI Intermediate Python

Obi Ike-Nwosu

The python ecosystem is awash with books for beginners but few books target readers that are past the beginning stages but are not yet advanced users. The book aims to bridge that gap. The content of this book looks primarily at the various means for code organization in Python and provides user with a rigorous grounding in these. it dives into topics such as python object system, functions, decorators, metaprogramming and generators providing the reader with an in-depth knowledge of these topics that is essential for writing idiomatic and robust python code. It aims to  provide a reader with not only a how-to but also a why for Python concepts. Concepts are well explained with abundance of code snippets. If you are looking for a book to take you beyond the beginner level in python, this is definitely the right book for you.

A Python Book: Beginning Python, Advanced Python, and Python Exercises

Dave Kuhlman

This document is a self-learning document for a course in Python programming. This course contains (1) a part for beginners, (2) a discussion of several advanced topics that are of interest to Python programmers, and (3) a Python workbook with lots of exercises. This book is a collection of materials that I’ve used when conducting Python training and also materials from my Web site that are intended for self-instruction.

PROJECTS-BASED

Automate the Boring Stuff with Python

Al Sweigart – No Starch Press

If you’ve ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you? In Automate the Boring Stuff with Python, you’ll learn how to use Python to write programs that do in minutes what would take you hours to do by hand-no prior programming experience required. Once you’ve mastered the basics of programming, you’ll create Python programs that effortlessly perform useful and impressive feats of automation.Don’t spend your time doing work a well-trained monkey could do. Even if you’ve never written a line of code, you can make your computer do the grunt work. Learn how in Automate the Boring Stuff with Python. A true example of legally free Python books.

Python for Scientists and Engineers

Shantnu Tiwari

Video processing DSP, machine learning and Rpi, this book is the next book Python beginners should maybe jump to to consolidate their knowledge.

Python For Fun

Chris Meyers

Python for Fun turns 16 this year. From the first project “Lisp in Python” to the current latest “Binary Trees and Functional Programming”, the site is and remains a collection of fairly small projects created mostly for fun. They are aimed at the intermediate programmer; people who know Python and are fairly comfortable with OOP and perhaps a bit of basic recursion. Most programs are quite short, generally a few pages of code and all of the projects are accompanied with a write-up.

CORRECT WAY

How to Make Mistakes in Python

Mike Pirnat

Even the best programmers make mistakes, and experienced programmer Mike Pirnat has made his share during 15+ years with Python. Some have been simple and silly; others were embarrassing and downright costly. In this O’Reilly report, he dissects some of his most memorable blunders, peeling them back layer-by-layer to reveal just what went wrong.

SOFTWARE ENGINEERING

Clean Architectures in Python

Leonardo Giordani – LeanPub

What is a good software architecture? Why should we bother structuring the code and spending time testing it? If you like spending hours debugging your programs or staying late at the office to recover from a buggy deploy in production this book is definitely NOT for you!

The Little Book of Python Anti-Patterns

QuantifiedCode

Welcome, fellow Pythoneer! This is a small book of Python anti-patterns and worst practices. Learning about these anti-patterns will help you to avoid them in your own code and make you a better programmer (hopefully). Each pattern comes with a small description, examples and possible solutions. A true example of legally free python books.

TDD

Test-Driven Web Development with Python

Harry Percival

“Test-Driven Web Development with Python” aims to teach TDD for web programming. It uses a concrete example — the development of a website, from scratch — to explain the TDD metholology and how it applies to building web applications. It covers the Selenium browser-automation tool, unit testing, mocking, and interacting with Web technologies from the basics of static content, database integration, throught the inescapable JavaScript, and onto more advanced (and trendy) topics like NoSQL, websockets and Async programming. A true example of legally free Python books.

OOP

Building Skills in Object-Oriented Design

Steve F. Lot

How do you move from OO programming to OO design? This 301-page book has 49 chapters that will help you build OO design skills through the creation of a moderately complex family of application programs.

Object Oriented Programming with Python

Ashwin Pajankar, Sushant Garg – LeanPub

This book is the simple and definitive guide to the Python 3 Object Oriented Programming. Other book of the similar genres make use of complicated writing style and examples to introduce the readers to the OOP in Python 3. However, this book uses Simple language to explain concepts. It is aimed at intermediate learners who already know Python.

FUNCTIONAL PROGRAMMING

Functional Programming in Python

David Mertz

Python is not a functional programming language, but it is a multi-paradigm language that makes functional programming easy to perform, and easy to mix with other programming styles. In this paper, David Mertz, a director of Python Software Foundation, examines the functional aspects of the language and points out which options work well and which ones you should generally decline.

TEXT PROCESSING

Text Processing in Python

David Mertz

This is an example-driven, hands on tutorial that carefully teaches programmers how to accomplish numerous text processing tasks using Python.

CRYPTOGRAPHY

Cracking Codes with Python

Al Sweigart – No Starch Press

Cracking Codes with Python teaches complete beginners how to program in the Python programming language. The book features the source code to several ciphers and hacking programs for these ciphers. The programs include the Caesar cipher, transposition cipher, simple substitution cipher, multiplicative & affine ciphers, Vigenere cipher, and hacking programs for each of these ciphers. The final chapters cover the modern RSA cipher and public key cryptography.

WEB

Explore Flask

Robert Picard

This book is a collection of the best practices for using Flask. There are a lot of pieces to the average Flask application. You’ll often need to interact with a database and authenticate users, for example. In the coming pages I’ll do my best to explain the “right way” to do this sort of stuff. My recommendations aren’t always going to apply, but I’m hoping that they’ll be a good option most of the time. It might be the Flask book you need! A true example of legally free Python books.

Django Girls Intro

A simple, step by step straight-forward introduction to Django designed to be hands-on and so breaks it down for your to really understand. Tested with Python 3.8, Django 3.0, still works. An amazing first material for beginners. It even assumes you don’t know Python at all!

Django Girls Beyond The Basics

This tutorial picks up where the previous tutorial left. It includes draft, delete and commenting systems. A graceful roundup.

Django RESTful Web Services

Gaston C. Hillar – Packt

Django is a Python web framework that makes the web development process very easy. It reduces the amount of trivial code that simplifies the creation of web applications and results in faster development. It is a very powerful and a great choice for creating RESTful web services. Includes API auth, pagination and test automation.

Build websites with Web2Py

Massimo Di Pierro

I believe that the ability to easily build high quality web applications is of critical importance for the growth of a free and open society. This prevents the biggest players from monopolizing the flow of information. As you will learn in the following pages, web2py tries to lower the barrier of entry to web development by focusing on three main goals: ease of use, rapid development and security.

The Flask Mega-Tutorial

Miguel Grinberg

Introduction to web development with Flask. A Flask classic!

Web App with Redis And Streaming

Allen Downey

Same as Think Data Structures

Create a Simple Flask Application with Cloud9, Heroku and MongoDB

Douglas Starnes

One of the biggest hurdles to learning a new framework, language or tool is the prerequisite setup and configuration that needs to take place.  This can be a frustrating and discouraging experience.  Also, the cost associated with doing often makes experimentation prohibitive or at least restricted.  That is why in this short book, I have chosen tools and services that require little or no setup, and are all free.  In fact, none of them require any installation because they all run in the browser.  Throughout the enitire book, you’ll never have to leave the web browser.

GAMES

Invent Your Own Computer Games with Python

Al Sweigart – No Starch Press

Invent Your Own Computer Games with Python teaches you how to program in the Python language. Each chapter gives you the complete source code for a new game, and then teaches the programming concepts from the examples. Games include Guess the Number, Hangman, Tic Tac Toe, and Reversi. This book also has an introduction to making games with 2D graphics using the Pygame framework. A true example of legally free Python books.

Make Games with Graphics

Al Sweigart – No Starch Press

Making Games with Python & Pygame covers the Pygame library with the source code for 11 games. Making Games was written as a sequel for the same age range as Invent with Python. Once you have an understanding of the basics of Python programming, you can now expand your abilities using the Pygame library to make games with graphics, animation, and sound.

Make Games With Python

Sean M. Tracey – The mag Pi

Python basics, sounds, physics and alien game, A simple mix.

Program Arcade Games With Python And Pygame

Paul Vincent Craven

A cheerful guide to Python. Gleeful content. Demos of what students created make you feel part of a cool class.

DATA STRUCTURES AND ALGORITHMS

Problem Solving with Algorithms and Data Structures using Python

Brad Miller and David Ranum

Probably the best data and algo book out there. It goes in depth about data structures and algorithms. It covers basic Python which makes it a suitable introductory material for undergrad university students. Beginning from stacks, the coverage goes in details and solves common problems such as the Hanoi tower. You’ve got it all, searching, sorting, trees, graphs … They deserve massive respect for releasing it under a creative common license.

Think Complexity

Allen Downey

Complexity Science is an interdisciplinary
field—at the intersection of mathematics, computer science, and natural science—that focuses on discrete models of physical and
social systems. In particular, it focuses on complex systems, which are systems with many interacting components. Complex systems include networks and graphs, cellular automatons, agent-based models and swarms, fractals and self-organizing systems, chaotic systems and cybernetic systems. This book is primarily about complexity science, but studying complexity science gives you a chance to explore topics and ideas you might not encounter otherwise, practice programming in Python, and learn about data structures and algorithms. This book picks up where Think Python leaves off.

Think Data Structures

Allen Downey

Data structures and algorithms are among the most important inventions of the last 50 years, and they are fundamental tools software engineers need to know. But in my opinion, most of the books on these topics are too theoretical, too big, and too bottom-up. I try to alleviate the boredom by organizing the topics around an application—web search—that uses data structures extensively, and is an interesting and important topic in its own right.This application also motivates some topics that are not usually covered in an introductory data structures class, including persistent data structures, with Redis, and streaming algorithms.

Annotated Algorithms (including numerical) in Python With Applications in Physics, Biology And Finance

Massimo Di Pierro

This book is assembled from lectures given by the author over a period of 10 years at the School of Computing of DePaul University. The lectures cover multiple classes, including Analysis and Design of Algorithms, Scientific Computing, Monte Carlo Simulations, and Parallel Algorithms.

COMPUTER VISION

Programming Computer Vision with Python

Jan Erik Solem – O’Reilly

Cameras are everywhere. Computer vision powers applications like image search, robot navigation, medical image analysis, photo management and many more. This books provides easy hands-on computer vision with enough understanding of the underlying theory and algorithms to be a foundation for students, researchers and enthusiasts. Python comes with many freely available powerful modules for handling images, mathematical computing and data mining. In short this book aims to act as a source of inspiration for those interested in programming computer vision applications

DATA SCIENCE

Effective Pandas

Tom Augspurger

This series is about how to make effective use of pandas, a data analysis library for the Python programming language. It’s targeted at an intermediate level: people who have some experince with pandas, but are looking to improve.

Think Stats

Allen Downey

Think Stats is an introduction to Probability and Statistics for Python programmers. Think Stats emphasizes simple techniques you can use to explore real data sets and answer interesting questions. The book presents a case study using data from the National Institutes of Health. Readers are encouraged to work on a project with real datasets.

Probabilistic Programming & Bayesian Methods for Hackers

Cam Davidson-Pilon

The Bayesian method is the natural approach to inference, yet it is hidden from readers behind chapters of slow, mathematical analysis. The typical text on Bayesian inference involves two to three chapters on probability theory, then enters what Bayesian inference is. Unfortunately, due to mathematical intractability of most Bayesian models, the reader is only shown simple, artificial examples. This can leave the user with a so-what feeling about Bayesian inference. Bayesian Methods for Hackers is designed as a introduction to Bayesian inference from a computational/understanding-first, and mathematics-second, point of view. For the mathematically trained, they may cure the curiosity this text generates with other texts designed with mathematical analysis in mind. For the enthusiast with less mathematical-background, or one who is not interested in the mathematics but simply the practice of Bayesian methods, this text should be sufficient and entertaining. A true example of legally free python books.

Think Bayes

Allen Downey

Think Bayes is an introduction to Bayesian statistics using computational methods. Most books on Bayesian statistics use mathematical notation and present ideas in terms of mathematical concepts like calculus. This book uses Python code instead of math, and discrete approximations instead of continuous mathematics. As a result, what would be an integral in a math book becomes a summation, and most operations on probability distributions are simple loops. I think this presentation is easier to understand, at least for people with programming skills. It is also more general, because when we make modeling decisions, we can choose the most appropriate model without worrying too much about whether the model lends itself to conventional analysis. Also, it provides a smooth development path from simple examples to real-world problems.

Digital Signal Processing in Python (Think DSP)

Allen Downey

Think DSP is an introduction to Digital Signal Processing in Python. The premise of this book (and the other books in the Think X series) is that if you know how to program, you can use that skill to learn other things. I am writing this book because I think the conventional approach to digital signal processing is backward: most books (and the classes that use them) present the material bottom-up, starting with mathematical abstractions like phasors. With a programming-based approach, I can go top-down, which means I can present the most important ideas right away. By the end of the first chapter, you can decompose a sound into its harmonics, modify the harmonics, and generate new sounds.

A Programmer’s Guide to Data Mining

Ron Zacharski

Highly recommended book that takes your hand and explains the maths side of data with lots of illustrations.

Python Data Science Handbook

Jake VanderPlas

This is a book about doing data science with Python. The book is not meant to be an introduction to Python or to programming in general; I assume the reader has familiarity with the Python language, including defining functions, assigning variables, calling methods of objects, controlling the flow of a program, and other basic tasks. Instead it is meant to help Python users learn to use Python’s data science stack–libraries such as IPython, NumPy, Pandas, Matplotlib, Scikit-Learn, and related tools–to effectively store, manipulate, and gain insight from data. A true example of legally free Python books.

VISUALISATIONS-FOCUSED

Python & OpenGL for Scientific Visualization

Nicolas Rougier

Python and OpenGL have a long but complicated story. It used to be really easy to program something using the fixed-pipeline and libraries such as Pyglet. But, things have became more difficult with the introduction of the dynamic graphic pipeline in 2004. Therefore this book is reconciles Python programmers with OpenGL, providing both an introduction to modern OpenGL and a set of basic and advanced techniques in order to achieve both fast, scalable & beautiful scientific visualizations. The book uses the GLES 2.0 API. Though it does not cover up-to-date OpenGL techniques, it is sufficient to achieve great visualisation. Modern OpenGL allows to control much in the pipeline and this book explains several techniques such as isolines, markers, colormaps, arbitrary transformations but there are actually many more techniques to be discovered. And of course, everything will be fast and beautiful. A true example of legally free python books.

DISTRIBUTED SYSTEMS

Hadoop With Python

Zachary Radtka, Donald Miner – Oreilly

About hadoop with Python. Map reduce and PySpark included

MACHINE LEARNING

Python Machine Learning By Example

Yuxi (Hayden) Liu – Packt

This book is your entry point to machine learning. Through this book, you will learn to apply the concepts of machine learning to deal with data-related problems and solve them using the powerful yet simple language, Python. Interesting and easy-to-follow examples will keep you glued till you learn what machine learning is and how to implement it. Includes spam detection and stock price prediction.

Neural Networks and Deep Learning

Michael Nielsen

The book will teach you about: Neural networks, a beautiful biologically-inspired programming paradigm which enables a computer to learn from observational data, Deep learning: a powerful set of techniques for learning in neural networks Neural networks and deep learning currently provide the best solutions to many problems in image recognition, speech recognition, and natural language processing. This book will teach you many of the core concepts behind neural networks and deep learning.

NATURAL LANGUAGE PROCESSING

Hands-On Natural Language Processing with Python

Rajesh Arumugam and Rajalingappaa Shanmugamani – Packt

This book teaches you to leverage deep learning models in performing various NLP tasks along with showcasing the best practices in dealing with the NLP challenges. The book equips you with practical knowledge to implement deep learning in your linguistic applications using NLTk and Python’s popular deep learning library, TensorFlow. Includes GRUs, Tacotron and Deepspeech

Natural Language Processing with Python

Steven Bird, Ewan Klein, Edward Loper

This is a book about Natural Language Processing. By “natural language” we mean a language that is used for everyday communication by humans; languages like English, Hindi or Portuguese. In contrast to artificial languages such as programming languages and mathematical notations, natural languages have evolved as they pass from generation to generation, and are hard to pin down with explicit rules. We will take Natural Language Processing — or NLP for short — in a wide sense to cover any kind of computer manipulation of natural language. At one extreme, it could be as simple as counting word frequencies to compare different writing styles. At the other extreme, NLP involves “understanding” complete human utterances, at least to the extent of being able to give useful responses to them. A true example of legally free python books.

PORTING TO PYTHON3

Supporting Python3

Lennart Regebro

This book guides you through the process of porting your Python 2 code to Python 3, from choosing a porting strategy to solving your distribution issues. Using plenty of code examples is takes you cross the hurdles and shows you the new Python features.

MISCELLANEOUS

Python in Hydrology

Sat Kumar Tomer

This book teaches you how to compute rainfall, precipitation, evaporation, River Routing–Muskingum method and a host of things in Hydrology. Moreover it also has a chapter devoted to statistics and plotting.

Bioinformatics in Python

Jeff Chang, Brad Chapman, Iddo Friedberg, Thomas Hamelryck, Michiel de Hoon, Peter Cock, Tiago Antao, Eric Talevich, Bartek Wilczy´nski

A BioPython tutorial and cookbook which teaches computational molecular biology using free Python tools. A true example of legally free python books.

Modeling and Simulation in Python

Allen Downey

Modeling and Simulation in Python is an introduction to physical modeling using a computational approach.  It is organized in three parts: The first part presents discrete models, including a bikeshare system and world population growth. The second part introduces first-order systems, including models of infectious disease, thermal systems, and pharmacokinetics. The third part is about second-order systems, including mechanical systems like projectiles, celestial mechanics, and rotating rigid bodies. Taking a computational approach makes it possible to work with more realistic models than what you typically see in a first-year physics class, with the option to include features like friction and drag. A true example of legally free python books.

Modelling Creativity

Tom D. De Smedt

A blend of generative art, machine learning, NLP, algorithms and sentiment analysis. A true example of legally free python books.

Introduction to Scientific Computing in Python

Robert Johansson

Science has traditionally been divided into experimental and theoretical disciplines, but during the last several decades computing has emerged as a very important part of science. Scientific computing is often closely related to theory, but it also has many characteristics in common with experimental work. It is therefore often viewed as a new third branch of science. In most fields of science, computational work is an important complement to both experiments and theory, and nowadays a vast majority of both experimental and theoretical papers involve some numerical calculations, simulations or computer modeling.