Showing posts with label Cambridge University Press. Show all posts

General Editor
David Matsumoto
San Francisco State University
Purchase Now !
Just with Paypal

Book Details
 606 p
 File Size 
 7,910 KB
 File Type
 PDF format
 978-0-511-63157-3 eBook (Dawsonera) 
 978-0-521-85470-2 Hardback
 978-0-521-67100-2 Paperback
 Cambridge University Press 2009 

dictionary n. A book containing a selection of the
words of a language, usually arranged alphabetically,
giving information about their meanings,
pronunciations, etymologies, and the like.
psychology n. The study of the mind including
consciousness, perception, motivation, behavior,
the biology of the nervous system in its
relation to mind, scientifi c methods of studying
the mind, cognition, social interactions in relation
to mind, individual differences, and the
application of these approaches to practical
problems in organization and commerce and
especially to the alleviation of suffering.
It is perhaps most fi tting that a dictionary
of psychology begins with defi nitions of the
terms dictionary and psychology. This is the
defi nition of psychology presented in this
work, and it highlights several important
points concerning this dictionary. First,
psychology is broad. Its contents range from
the microlevel neural processes that form
the building blocks of thought, feeling, and
action to the macrolevel social and cultural
processes that bind us with our primate relatives
in our evolutionary history and defi ne
our collectives. For that reason, a dictionary
of psychology needs to include terms and concepts
related to neural structures, chemicals,
transmitters, genes, and anatomy, as much as
it needs to include social processes, network
analysis, and cultural norms and artifacts.
It also needs to include concepts related to
the array of abnormal behaviors and methods
related to their treatment.
Second, psychology is a science. Knowledge
in psychology is generated through empirical
research, a conglomeration of methods that
allow for the generation of theories of human
behavior and the testing of hypotheses
derived from those theories. This set of
methods includes both qualitative and
quantitative approaches, case studies as
well as carefully controlled experiments, and
rigorous statistical procedures and inferential
decision making. All knowledge in psychology
is based on such research. Thus, understanding
the meaning, boundaries, and limitations of
psychological knowledge requires students to
have a working knowledge of psychological
research methods, statistics, probability, and inference.
Third, because the discipline of psychology
is broad, and because it is based on science,
it is a living discipline. That means that the
theories, concepts, and terminology used in
psychology are never static but often are in
fl ux, changing across time as theories, methodologies,
and knowledge change. Terms
that had a certain meaning in previous years,
such as borderline personality, homosexuality, and
self, have different meanings today and will
likely mean different things in the future.
Additionally, new terms and concepts are
continually being invented (e.g., psychoneuroimmunology),
in keeping with the contemporary
and evolving nature of psychology as a science.
This dictionary captures these characteristics
of psychology as a living, scientifi c
discipline by focusing on several defi ning
characteristics. It is comprehensive, capturing
the major terms and concepts that frame the
discipline of psychology, from the level of
neurons to social structures and as a science.
It is interdisciplinary, highlighting psychological
concepts that cut behavior at its joints,
whether the joints refer to social cognitive
neuroscience (a term defi ned in this dictionary)
or the interactions among culture, personality,
and genes. And it is international and
cross-cultural, owing to the growth of psychology
around the world, the interaction between
American and international approaches and
perspectives, and the education of American
psychology by the study and practice of
psychology in other countries and cultures.
In this digital age, when information concerning
psychology and many other disciplines
is already readily available online and
in various reference texts, a relevant question
is, Why produce another? The answer is very
simple: because no other reference work on
the fi eld of psychology captures the characteristics
described previously. Many, for
example, do not do justice to psychology
as a science and therefore do not include references
to research methodologies and statistics.
This work does. Many reference works
present psychology from a more clinical orientation
and do not present psychology as
an interdisciplinary science. This work does.
And many other works present psychology
mainly from an American perspective and
do not present it as the global, international
discipline that it is. This work does.
These characteristics were accomplished
in several ways, the most important of which
were the recruitment and active participation
of a stellar Editorial Advisory Board (EAB).
Each of these individuals is an accomplished
scholar in his or her own right, and we were
very fortunate indeed to gain their participation
in the project. They guided me in every
single aspect of the production, and I was
fortunate to gain many insights their wisdom
and guidance provided.
Next, the entire work was reviewed not only
by the EAB but also by an equally stellar cast
of Managing Editors. Like the EAB, all of
these individuals are accomplished scholars
in their own right, and indeed are some of
the leading researchers in the world in their
respective areas of expertise. Equally important,
they are from many different countries,
cultures, and perspectives and have been able
to create the interdisciplinary, international,
and cross-cultural fl avor in the book, not only
in the selection of the keyword entries but
also in their writing.
Finally, we were very fortunate to have
so many authors contribute their time and
expertise to the project (see pages ix–xiii).
All of them are excellent researchers, teachers,
and scholars in psychology, and all
brought their expertise to bear in making
the discipline of psychology come to life in
their entries. They also made their entries
relevant to a global perspective, not just an
American one, and accessible to the educated lay reader.
These three groups of individuals worked
seamlessly as a team to deliver the product you
see today. The work started with the creation
of the keyword list. For any reference work of
this type, the selection of the keyword entries
is crucial to the success of the fi nal product,
and I believe that the process by which
they were selected for inclusion in this work
was exemplary. First, the Editorial Advisory
Board and I reviewed all of the keyword
entries in the various psychology dictionaries
that currently exist, as well as a number of
the leading textbooks used in introductory
psychology. This accomplished two goals.
While of course it led to an identifi cation of
keywords that we could deem “standard” in
the fi eld of psychology – by being cross-listed
in multiple sources – it also allowed us to identify
what was not included elsewhere, or that
which was idiosyncratic to its source. It was at
this point that the EAB and I were able to add
keyword terms that we felt could accomplish
the goal of making this work comprehensive
and timely, terms that specifi cally addressed
our goal of being international, crosscultural,
and interdisciplinary.
In addition, many contemporary dictionaries
do not focus on the scientifi c aspects
of psychology and consequently do not
include terms concerning research methods
or statistics. In this dictionary, however,
we have made a point of including many
of the terms that students of psychological
science will encounter, especially concerning
the numerous types of reliability and
validity, various types of statistics and probability,
and various experimental designs.
Finally, after the EAB and I had completed
our initial selection of keywords, our distinguished
group of Managing Editors and
authors provided us with yet additional levels
of expertise, proposing new keywords within
their areas of interests. For example, these
are a sampling of the keywords included
in the Cambridge Dictionary that are not
included in many of the other dictionaries
on the market:
Behavioral endocrinology
Collective self
Confi gurative culture
Culture assimilator training
Dialectical reasoning
Differential item functioning
Distributive justice
Ecological fallacy
Ecological-level analysis
Effect size
Emotion theory
Eta squared
Face (concept of)
False uniqueness effect
Filial piety
Fourfold point correlation
Front horizontal foreshortening theory
Gene expression
Hierarchical linear modeling
Implicit communication
Indigenous healing
Individual-level analysis
Intercultural adaptation
Intercultural adjustment
Intercultural communication
Intercultural communication competence
Intercultural sensitivity
Item reliability
Lay theories of behavioral causality
Naikan therapy
National character
Need for cognition
Neural imaging
Norm group
Omega squared
Omnibus test
Outgroup homogeneity bias
Ranked distribution
Regression weight
Response sets
Retributive justice
Social axiom
Social network analysis
Standardization sample
Statistical artifact
Statistical inference
Tacit communication
Terror management theory
Tetrachoric correlation
Ultimatum game
A quick perusal of the list makes it clear
that all of these terms are widely used in contemporary
psychology today, owing to its
interdisciplinary and cross-cultural ties and
its existence as a scientifi c discipline. These
entries, along with the way they were written,
make this text unique and timely in the fi eld.

Icek Aizen
University of Massachusetts
Dolores Albarracin
University of Florida
Jeanette Altarriba
SUNY – Albany
Bob Altemeyer
University of Manitoba
Drew A. Anderson
SUNY – Albany
Alfredo Ardila
Florida International University
Evelyn W. M. Au
University of Illinois – Urbana-Champaign
Ozlem N. Ayduk
University of California, Berkeley
Amy Badura-Brack
Creighton University
Mahzarin R. Banaji
Harvard University
Albert Bandura
Stanford University
Lisa M. Bauer
Pepperdine University
Veronica Benet-Martinez
University of California, Riverside
Kathy R. Berenson
Columbia University
Peter Borkenau
Martin-Luther University
Marc A. Brackett
Yale University
Laura A. Brannon
Kansas State University
Linda Brannon
McNeese State University
Jonathan Brown
University of Washington
Jennifer Bruce
Purdue University
Susan Burns
Morning Side College
Gustavo Carlo
University of Nebraska, Lincoln
Dana R. Carney
Harvard University
David W. Carroll
University of Wisconsin – Superior
Jose Centeno
St. John’s University
Edward C. Chang
University of Michigan
Rita Chang
University of Michigan
Shirley Y. Y. Cheng
University of Illinois – Urbana-Champaign
Chi Yue Chiu
University of Illinois – Urbana-Champaign
Andrew Christopher
Albion College
Austin Timothy Church
Washington State University
Mark Costanzo
Claremont McKenna College
Thomas S. Critchfi eld
Illinois State University
Frances Daniel
University of Illinois, Chicago
Sharon Danoff-Burg
SUNY – Albany
Mark Dechesne
University of Maryland
Filip De Fruyt
Ghent University
Ken DeMarree
Texas Tech University
Nicholas DiFonzo
Rochester Institute of Technology
Kristen A. Diliberto-Macaluso
Berry College
Dale Dinnel
Western Washington University
Stephen Dollinger
Southern Illinois University
G. William Domhoff
University of California, Santa Cruz
Christina A. Downey
University of Michigan
Geraldine Downey
Columbia University
Andrew Elliot
University of Rochester
Robert A. Emmons
University of California, Davis
Erica Fanning
CUNY Graduate Center
Eva M. Fernandez
City University of New York
Steve Franconeri
University of British Columbia
David Gard
San Francisco State University
Michele Gelfand
University of Maryland
Jennifer L. Gianico
SUNY – Albany
Howard Giles
University of California, Santa Barbara
Anna Gladkova
Australian National University
Normaris Gonzalez-Miller
New York Medical College
Donald Graves
SUNY – Albany
William Graziano
Purdue University
Jeffrey Greenberg
University of Arizona
Maria Rosario T. De Guzman
University of Nebraska, Lincoln
Curtis Hardin
Brooklyn College
Sam A. Hardy
University of Virginia
Trevor A. Harley
Dundee University
Rachel Hayes
University of Nebraska, Lincoln
Marlone D. Henderson
University of Chicago
E. Tory Higgins
Columbia University
Allyson L. Holbrook
University of Illinois – Chicago
Ying-yi Hong
University of Illinois – Urbana-Champaign
Tim Johnson
University of Illinois – Chicago
John T. Jost
New York University
Janice M. Juraska
University of Illinois – Urbana-Champaign
Lee Jussim
Rutgers University
Todd Kahan
Bates College
Yoshi Kashima
University of Melbourne
Anatoliy V. Kharkhurin
American University of Sharjah
John F. Kihlstrom
University of California, Berkeley
Young-Hoon Kim
University of Illinois – Urbana-Champaign
Suzanne Kirschner
College of the Holy Cross
Jason W. Kisling
Sun Lake Shimane Prefecture Youth Center, Japan
Arie Kruglanski
University of Maryland
John Kurtz
Villanova University
Nicole Landi
Haskins Laboratories
Ellen Langer
Harvard University
Jennifer Langhinrichsen-Rohling
University of South Alabama
Heidi Lary
Stony Brook University
Patrick R. Laughlin
University of Illinois – Urbana-Champaign
Greg Lehne
Johns Hopkins Medical Center
Hong Li
University of Florida
Elizabeth F. Loftus
University of California, Irvine
Kevin MacDonald
California State University, Long Beach
David MacKinnon
Arizona State University
B. Jean Mandernach
Park University
Viorica Marian
Northwestern University
Todd Jason McCallum
Case Western Reserve University
Michael McCaslin
Ohio State University
Robert R. McCrae
National Institute on Aging
Kathleen C. McCulloch
Idaho State University
Rodolfo Mendoza-Denton
University of California, Berkeley
Tanya Menon
University of Chicago
Felicity Miao
University of Virginia
Joshua Miller
University of Georgia
Arlen C. Moller
University of Rochester
Sik-hung Ng
City University of Hong Kong
Kim Noels
University of Alberta
J. Farley Norman
University of Western Kentucky
Shigehiro Oishi
University of Virginia
Sumie Okazaki
University of Illinois – Urbana-Champaign
Margaret R. Ortmann
University of Nebraska, Lincoln
Nansook Park
University of Rhode Island
Marc Patry
St. Mary’s University
Sam Paunonen
University of Western Ontario
Chris Peterson
University of Michigan
Tiamoyo Peterson
University of California, Irvine
Richard Petty
Ohio State University
Cynthia L. Pickett
University of California, Davis
Valerie K. Pilling
Kansas State University
Jason Plaks
University of Washington
Gary E. Raney
University of Illinois – Chicago
Neal Roese
University of Illinois – Urbana-Champaign
Glenn Roisman
University of Illinois – Urbana-Champaign
Jerome Rossier
University of Lausanne
Kelly A. Sauerwein
University of California, Davis
Virginia Saunders
San Francisco State University
Anne R. Schutte
University of Nebraska, Lincoln
William G. Shadel
RAND Corporation
Dikla Shmueli
University of California, San Francisco
Jessica Sim
University of Chicago
Peter Smith
University of Sussex
Emily G. Soltano
Worcester State College
Amy Summerville
University of Illinois – Urbana-Champaign
William B. Swann
University of Texas
Carmit Tamar Tadmor
University of California, Berkeley
Howard Tennen
University of Connecticut Health Center
Philip E. Tetlock
University of California, Berkeley
Abraham Tresser
University of Georgia
Harry Triandis
University of Illinois – Urbana-Champaign
Yaacov Trope
New York University
Chi-Shing Tse
SUNY – Albany
Jim Uleman
New York University
Johanneke van der Toorn
New York University
Joseph A. Vandello
University of South Florida
Patrick Vargas
University of Illinois – Urbana-Champaign
Brendan Weekes
University of Sussex
Neil D. Weinstein
Rutgers University
Kipling D. Williams
Purdue University
Jessie Wilson
San Francisco State University
Katie M. Wood
University of South Alabama
Robert S. Wyer
Hong Kong University of Science and Technology


Cambridge, New York, Melbourne, Madrid, Cape Town, Singapore,
São Paulo, Delhi, Dubai, Tokyo

Cambridge University Press
The Edinburgh Building, Cambridge CB2 8RU, UK

Published in the United States of America by Cambridge University Press, New York


Purchase Now !
Just with Paypal

Book Details
 407 p 
 File Size 
 3,333 KB
 File Type
 PDF format
 978-0-511-06314-5 (NetLibrary)
  0-511-06314-8 (NetLibrary)
 Cambridge University Press 2003  


Miriam Bassok
University of Washington
Magda Campillo
Graduate School and University Center,
City University of New York
JanetE. Davidson
Lewis & Clark College
Randall W. Engle
Georgia Institute of Technology
K. Anders Ericsson
Florida State University
Peter A. Frensch
Humboldt-University at Berlin
Arthur C. Graesser
The University of Memphis
David Z. Hambrick
Michigan State University
Kenneth Kotovsky
Carnegie Mellon University
Todd I. Lubart
Universit´e Ren´e Descartes, Paris
Christophe Mouchiroud
Universit´e Ren´e Descartes, Paris
Adam J. Naples
Yale University
Jean E. Pretz
Yale University
University of Michigan
Ian Skurnik
University of Michigan
Keith E. Stanovich
University of Toronto
RobertJ. Sternberg
Yale University
DoritW enke
Humboldt-University at Berlin
Shannon Whitten
The University of Memphis
Barry J. Zimmerman
Graduate School and University Center,
City University of New York

The Psychology of Problem Solving
Problems are a central part of human life. The Psychology of Problem
Solving organizes in one volume much of what psychologists know
about problem solving and the factors that contribute to its success
or failure. There are chapters by leading experts in this field, including
Miriam Bassok, Randall Engle, Anders Ericsson, Arthur Graesser,
Norbert Schwarz, Keith Stanovich, and Barry Zimmerman.
The Psychology of Problem Solving is divided into four parts. Following
an introduction that reviews the nature of problems and the
history and methods of the field, Part II focuses on individual differences
in, and the influence of, the abilities and skills that humans bring
to problem situations. Part III examines motivational and emotional
states and cognitive strategies that influence problem-solving performance,
while Part IV summarizes and integrates the various views of
problem solving proposed in the preceding chapters.

Janet E. Davidson is Associate Professor of Psychology at Lewis &
Clark College. She conducts research on several aspects of problem
solving, including the roles that insight and metacognitive skills play
in problem solving.
Robert J. Sternberg is IBM Professor of Psychology and Education at
Yale University and Director of the Yale Center for the Psychology
of Abilities, Competencies and Expertise (PACE Center). Professor
Sternberg is Editor of Contemporary Psychology and past Editor of
Psychological Bulletin.
Together, Professors Davidson and Sternberg have edited two previous
books, Conceptions of Giftedness (Cambridge, 1986) and The Nature
of Insight (1995).

Table of Contents
Contributors page vii
Preface ix
part 1 introduction
1 Recognizing, Defining, and Representing Problems 3
Jean E. Pretz, Adam J. Naples, and Robert J. Sternberg
2 The Acquisition of Expert Performance as Problem
Solving: Construction and Modification of Mediating
Mechanisms through Deliberate Practice 31
K. Anders Ericsson
part 2 relevant abilities and skills
3 Is Success or Failure at Solving Complex Problems Related
to Intellectual Ability? 87
Dorit Wenke and Peter A. Frensch
4 Creativity: A Source of Difficulty in Problem Solving 127
Todd I. Lubart and Christophe Mouchiroud
5 Insights about Insightful Problem Solving 149
Janet E. Davidson
6 The Role ofWorking Memory in Problem Solving 176
David Z. Hambrickand Randall W. Engle
7 Comprehension of Text in Problem Solving 207
Shannon Whitten and Arthur C. Graesser
part 3  states and strategies
8 Motivating Self-Regulated Problem Solvers 233
Barry J. Zimmerman and Magda Campillo
9 Feeling and Thinking: Implications for Problem Solving 263
Norbert Schwarz and Ian Skurnik
10 The Fundamental Computational Biases of Human
Cognition: Heuristics That (Sometimes) Impair Decision
Making and Problem Solving 291
Keith E. Stanovich
11 Analogical Transfer in Problem Solving 343
Miriam Bassok
part 4 conclusions and integration
12 Problem Solving – Large/Small, Hard/Easy,
Conscious/Nonconscious, Problem-Space/Problem-Solver:
The Issue of Dichotomization 373
Kenneth Kotovsky
Index 385


This book is in copyright. Subject to statutory exception and to the provision of
relevant collective licensing agreements, no reproduction of any part may take place
without the written permission of Cambridge University Press.

Doctors and Philosophers on Nature, Soul, Health and Disease


e-books shop
e-books shop
Purchase Now !
Just with Paypal

Book Details
 419 p
 File Size 
 4,330 KB
 File Type
 PDF format
 978-0-511-11329-1 (MyiLibrary) 
 0-511-11329-3 (MyiLibrary)
 Philip van der Eijk 2005 

This work makes available for the first time in one dedicated volume
Philip van der Eijk’s selected papers on the close connections that existed
between medicine and philosophy throughout antiquity.Medical
authors such as the Hippocratic writers, Diocles, Galen, Soranus and
CaeliusAurelianus elaborated on philosophical methods such as causal
explanation, definition and division, applying concepts such as the notion
of nature to their understanding of the human body. Similarly,
philosophers such as Plato and Aristotle were highly valued for their
contributions to medicine. This interaction was particularly striking
in the study of the human soul in relation to the body, as illustrated by
approaches to topics such as intellect, sleep and dreams, and diet and
drugs. With a detailed introduction surveying the subject as a whole
and a new chapter on Aristotle’s treatment of sleep and dreams, this
wide-ranging collection is essential reading for students and scholars
of ancient philosophy and science.

PHILIP J. VAN DER EIJK is Professor of Greek at the University
of Newcastle upon Tyne. He has published widely on ancient
philosophy, medicine and science, comparative literature and
patristics. He is the author of Aristoteles. De insomniis. De divinatione
per somnum (Berlin: Akademie Verlag, 1994) and of Diocles of Carystus.
A Collection of the Fragments with Translation and Commentary
(2 vols., Leiden: Brill, 2000–1).He has edited and co-authored Ancient
Histories of Medicine. Essays in Medical Doxography and Historiography
in Classical Antiquity (Leiden: Brill, 1999) and co-edited Ancient
Medicine in its Socio-Cultural Context (2 vols., Amsterdam and Atlanta: Rodopi, 1995).

Few areas in classical scholarship have seen such rapid growth as the study
of ancient medicine. Over the last three decades, the subject has gained
broad appeal, not only among scholars and students of Greek and Roman
antiquity but also in other disciplines such as the history of medicine
and science, the history of philosophy and ideas, (bio-)archaeology and
environmental history, and the study of the linguistic, literary, rhetorical
and cultural aspects of intellectual ‘discourse’. The popularity of the subject
even extends beyond the confines of academic communities, and ancient
medicine has proved to be an effective tool in the promotion of the public
understanding of medicine and its history.
The reasons for these changes are varied and complex, and to do justice
to all would require a much fuller discussion than I can offer here.1 In this
introductory chapter, I will concentrate on what I perceive to be the most
important developments and in so doing set out the rationale of the present
collection of papers. Evidently, ancient medicine possesses remarkable flexibility
in attracting interest from a large variety of people approaching the
field from a broad range of disciplines, directions and backgrounds, for a
number of different reasons and with a wide variety of expectations. The
purpose of publishing these papers in the present form is to make them
more easily accessible to this growing audience.

Table of Contents
Acknowledgements page ix
Note on translations xiii
Note on abbreviations xiv
Introduction 1
hippocratic corpus and diocles of carystus
1 The ‘theology’ of the Hippocratic treatise On the Sacred Disease 45
2 Diocles and the Hippocratic writings on the method of
dietetics and the limits of causal explanation 74
3 To help, or to do no harm. Principles and practices of
therapeutics in the Hippocratic Corpus and in the work
of Diocles of Carystus 101
4 The heart, the brain, the blood and the pneuma:Hippocrates,
Diocles and Aristotle on the location of cognitive processes 119
5 Aristotle on melancholy 139
6 Theoretical and empirical elements in Aristotle’s treatment of
sleep, dreams and divination in sleep 169
7 The matter of mind: Aristotle on the biology of ‘psychic’
processes and the bodily aspects of thinking 206
8 Divine movement and human nature in Eudemian Ethics 8.2 238
9 On Sterility (‘Hist. an. 10’), a medical work by Aristotle? 259
10 Galen’s use of the concept of ‘qualified experience’ in his
dietetic and pharmacological works 279
11 TheMethodism of Caelius Aurelianus: some epistemological issues 299
Bibliography 328
Index of passages cited 379
General index 396

e-books shop

Note on translations
All translations of Greek and Latin texts are my own, except in those cases
where I have used the following:
the translations of the Hippocratic writings by W. H. S. Jones and P.
Potter (quoted in the introduction and throughout part one), published
by Harvard University Press in the Loeb Classical Library as Hippocrates,
volumes 2/148 (1923), 4/ 150 (1931), 5/472 (1988) and 6/473 (1988);
the translation of Theophrastus’ On the Causes of Plants by B. Einarson
and G. K. K. Link (quoted in chapter 2), published by Harvard University
Press in the Loeb Classical Library as Theophrastus, De causis plantarum,
volumes 1/471 (1976) and 3/475 (1990);
the translation of Aristotle’sHistory of Animals, Book 10, by D. M. Balme
(quoted in chapter 9), published by Harvard University Press in the Loeb
Classical Library as Aristotle,History of Animals, Books VII-X, volume 11/439
the translation of Theophrastus’ fragments byW.W. Fortenbaugh et al.
(quoted in chapter 2), published by Brill in 1992;
the translation of Theophrastus’ Metaphysics by M. van Raalte (quoted
in chapter 2), published by Brill in 1993;
the translation of Galen’s On Medical Experience by R. Walzer (quoted
in chapter 2), published by Oxford University Press in 1944 and reprinted
by Hackett in 1985;
the translation of Caelius Aurelianus’ On Acute Affections by I. Drabkin
(quoted in chapter 4), published by theUniversity of Chicago Press in 1950;
and the translation of Plato’s Republic by G.Grube and D. Reeve (quoted
in chapter 6), published by Hackett in 1997.

 - How to Think Like a Computer Scientist -

Allen B. Downey

e-books shop
e-books shop
Purchase Now !
Just with Paypal

Book Details
 271 p
 File Size 
 1,147 KB
 File Type
 PDF format
 978-0-511-50155-5 eBook (Adobe Reader) 
 978-0-521-89811-9 hardback
 978-0-521-72596-5 paperback

 Allen B. Downey 2009  

In January 1999, I was preparing to teach an introductory programming class in Java.
I had taught it three times and I was getting frustrated. The failure rate in the class
was too high, and, even for students who succeeded, the overall level of achievement
was too low.

One of the problems I saw was the books. I had tried three different books (and had
read a dozen more), and they all had the same problems. They were too big, with
too much unnecessary detail about Java and not enough high-level guidance about
how to program. And they all suffered from the trap door effect: they would start out
easy, proceed gradually, and then somewhere around Chapter 4 the bottom would
fall out. The students would get too much new material, too fast, and I would spend
the rest of the semester picking up the pieces.

Two weeks before the first day of classes, I decided to write my own book. I wrote
one 10-page chapter a day for 13 days. I made some revisions on Day 14 and then
sent it out to be photocopied.
My goals were:
■ Keep it short. It is better for students to read 10 pages than not read 50 pages.
■ Be careful with vocabulary. I tried to minimize the jargon and define each term at first use.
■ Build gradually. To avoid trap doors, I took the most difficult topics and split
them into a series of small steps.
■ Focus on programming, not the programming language. I included the minimum
useful subset of Java and left out the rest.

I needed a title, so on a whim I chose How to Think Like a Computer Scientist.
My first version was rough, but it worked. Students did the reading, and they understood
enough that I could spend class time on the hard topics, the interesting topics,
and (most important) letting the students practice.

I released the book under theGNUFree Documentation License, which allows users
to copy, modify, and distribute the book.
What happened next is the cool part. Jeff Elkner, a high school teacher in Virginia,
adopted my book and translated it into Python. He sent me a copy of his
translation, and I had the unusual experience of learning Python by reading my own book.

Jeff and I revised the book, incorporated a case study by Chris Meyers, and in 2001
we released How to Think Like a Computer Scientist: Learning with Python, also
under the GNU Free Documentation License. As Green Tea Press, I published the
book and started selling hard copies through and college book stores.
Other books from Green Tea Press are available at

In 2003, I started teaching at Olin College, and I got to teach Python for the first time.
The contrast with Java was striking. Students struggled less, learned more, worked
on more interesting projects, and generally had a lot more fun.

Over the last five years I have continued to develop the book, correcting errors,
improving some of the examples, and adding material, especially exercises. In 2008,
I started work on a major revision of the book – at the same time, I was contacted by
an editor at Cambridge University Press who was interested in publishing the next
edition. Good timing!
The result is this book, now with the less grandiose title Python for Software Design.
Some of the changes are:
■ I added a section about debugging at the end of each chapter. These sections
present general techniques for finding and avoiding bugs, and warnings about Python pitfalls.
■ I removed the material in the last few chapters about the implementation of lists
and trees. I still love those topics, but I thought they were incongruent with the rest of the book.
■ I added more exercises, ranging from short tests of understanding to a few substantial projects.
■ I added a series of case studies – longer examples with exercises, solutions, and
discussion. Some of them are based on Swampy, a suite of Python programs I
wrote for use in my classes. Swampy, code examples, 
and some solutions are available from
■ I expanded the discussion of program development plans and basic design patterns.
■ The use of Python is more idiomatic. The book is still about programming, not
Python, but now I think the book gets more leverage from the language.
I hope you enjoy working with this book, and that it helps you learn to program and
think, at least a little bit, like a computer scientist.

Table of Contents
Preface page xi
1 The Way of the Program 1
1.1 The Python Programming Language 1
1.2 What Is a Program? 3
1.3 What Is Debugging? 3
1.3.1 Syntax Errors 3
1.3.2 Runtime Errors 4
1.3.3 Semantic Errors 4
1.3.4 Experimental Debugging 4
1.4 Formal and Natural Languages 5
1.5 The First Program 6
1.6 Debugging 7
1.7 Glossary 8
1.8 Exercises 9
2 Variables, Expressions, and Statements 10
2.1 Values and Types 10
2.2 Variables 11
2.3 Variable Names and Keywords 13
2.4 Statements 13
2.5 Operators and Operands 14
2.6 Expressions 15
2.7 Order of Operations 15
2.8 String Operations 16
2.9 Comments 17
2.10 Debugging 17
2.11 Glossary 18
2.12 Exercises 19
3 Functions 21
3.1 Function Calls 21
3.2 Type Conversion Functions 21
3.3 Math Functions 22
3.4 Composition 23
3.5 Adding New Functions 24
3.6 Definitions and Uses 26
3.7 Flow of Execution 26
3.8 Parameters and Arguments 27
3.9 Variables and Parameters Are Local 28
3.10 Stack Diagrams 29
3.11 Fruitful Functions and Void Functions 30
3.12 Why Functions? 31
3.13 Debugging 31
3.14 Glossary 32
3.15 Exercises 33
4 Case Study: Interface Design 35
4.1 TurtleWorld 35
4.2 Simple Repetition 36
4.3 Exercises 37
4.4 Encapsulation 38
4.5 Generalization 39
4.6 Interface Design 40
4.7 Refactoring 41
4.8 A Development Plan 42
4.9 Docstring 43
4.10 Debugging 43
4.11 Glossary 44
4.12 Exercises 44
5 Conditionals and Recursion 46
5.1 Modulus Operator 46
5.2 Boolean Expressions 46
5.3 Logical Operators 47
5.4 Conditional Execution 48
5.5 Alternative Execution 48
5.6 Chained Conditionals 49
5.7 Nested Conditionals 49
5.8 Recursion 50
5.9 Stack Diagrams for Recursive Functions 52
5.10 Infinite Recursion 52
5.11 Keyboard Input 53
5.12 Debugging 54
5.13 Glossary 55
5.14 Exercises 56
6 Fruitful Functions 59
6.1 Return Values 59
6.2 Incremental Development 60
6.3 Composition 63
6.4 Boolean Functions 64
6.5 More Recursion 65
6.6 Leap of Faith 67
6.7 One More Example 67
6.8 Checking Types 68
6.9 Debugging 69
6.10 Glossary 70
6.11 Exercises 71
7 Iteration 73
7.1 Multiple Assignment 73
7.2 Updating Variables 74
7.3 The while Statement 75
7.4 break 76
7.5 Square Roots 77
7.6 Algorithms 79
7.7 Debugging 79
7.8 Glossary 80
7.9 Exercises 80
8 Strings 82
8.1 A String Is a Sequence 82
8.2 len 83
8.3 Traversal with a for Loop 83
8.4 String Slices 85
8.5 Strings Are Immutable 86
8.6 Searching 86
8.7 Looping and Counting 87
8.8 string Methods 87
8.9 The in Operator 89
8.10 String Comparison 89
8.11 Debugging 90
8.12 Glossary 92
8.13 Exercises 92
9 Case Study: Word Play 95
9.1 Reading Word Lists 95
9.2 Exercises 96
9.3 Search 97
9.4 Looping with Indices 99
9.5 Debugging 100
9.6 Glossary 101
9.7 Exercises 101
10 Lists 103
10.1 A List Is a Sequence 103
10.2 Lists Are Mutable 104
10.3 Traversing a List 105
10.4 List Operations 106
10.5 List Slices 106
10.6 List Methods 107
10.7 Map, Filter, and Reduce 108
10.8 Deleting Elements 109
10.9 Lists and Strings 110
10.10 Objects and Values 111
10.11 Aliasing 113
10.12 List Arguments 113
10.13 Debugging 115
10.14 Glossary 116
10.15 Exercises 117
11 Dictionaries 119
11.1 Dictionary as a Set of Counters 121
11.2 Looping and Dictionaries 123
11.3 Reverse Lookup 123
11.4 Dictionaries and Lists 124
11.5 Memos 126
11.6 Global Variables 128
11.7 Long Integers 129
11.8 Debugging 130
11.9 Glossary 131
11.10 Exercises 131
12 Tuples 133
12.1 Tuples Are Immutable 133
12.2 Tuple Assignment 135
12.3 Tuples as Return Values 136
12.4 Variable-Length Argument Tuples 136
12.5 Lists and Tuples 138
12.6 Dictionaries and Tuples 139
12.7 Comparing Tuples 141
12.8 Sequences of Sequences 142
12.9 Debugging 143
12.10 Glossary 144
12.11 Exercises 145
13 Case Study: Data Structure Selection 147
13.1 Word Frequency Analysis 147
13.2 Random Numbers 148
13.3 Word Histogram 149
13.4 Most Common Words 151
13.5 Optional Parameters 152
13.6 Dictionary Subtraction 152
13.7 Random Words 153
13.8 Markov Analysis 154
13.9 Data Structures 155
13.10 Debugging 157
13.11 Glossary 158
13.12 Exercises 158
14 Files 159
14.1 Persistence 159
14.2 Reading and Writing 159
14.3 Format Operator 160
14.4 Filenames and Paths 161
14.5 Catching Exceptions 163
14.6 Databases 164
14.7 Pickling 165
14.8 Pipes 166
14.9 Writing Modules 167
14.10 Debugging 168
14.11 Glossary 169
14.12 Exercises 169
15 Classes and Objects 172
15.1 User-Defined Types 172
15.2 Attributes 173
15.3 Rectangles 174
15.4 Instances as Return Values 176
15.5 Objects Are Mutable 176
15.6 Copying 177
15.7 Debugging 179
15.8 Glossary 179
15.9 Exercises 180
16 Classes and Functions 182
16.1 Time 182
16.2 Pure Functions 183
16.3 Modifiers 184
16.4 Prototyping versus Planning 185
16.5 Debugging 187
16.6 Glossary 188
16.7 Exercises 188
17 Classes and Methods 189
17.1 Object-Oriented Features 189
17.2 Printing Objects 190
17.3 Another Example 192
17.4 A More Complicated Example 192
17.5 The Init Method 193
17.6 The __str__ method 194
17.7 Operator Overloading 195
17.8 Type-Based Dispatch 195
17.9 Polymorphism 197
17.10 Debugging 198
17.11 Glossary 199
17.12 Exercises 199
18 Inheritance 201
18.1 Card Objects 201
18.2 Class Attributes 202
18.3 Comparing Cards 204
18.4 Decks 205
18.5 Printing the Deck 205
18.6 Add, Remove, Shuffle, and Sort 206
18.7 Inheritance 207
18.8 Class Diagrams 209
18.9 Debugging 210
18.10 Glossary 211
18.11 Exercises 212
19 Case Study: Tkinter 214
19.1 GUI 214
19.2 Buttons and Callbacks 215
19.3 Canvas Widgets 216
19.4 Coordinate Sequences 217
19.5 More Widgets 218
19.6 Packing Widgets 220
19.7 Menus and Callables 223
19.8 Binding 223
19.9 Debugging 226
19.10 Glossary 227
19.11 Exercises 228
Appendix 231
Index 241

e-books shop

Python for Software Design
Python for Software Design is a concise introduction to software design
using the Python programming language. Intended for people with no
programming experience, this book starts with the most basic concepts
and gradually adds new material. Some of the ideas students find most
challenging, like recursion and object-oriented programming, are divided
into a sequence of smaller steps and introduced over the course of several
chapters. The focus is on the programming process, with special emphasis
on debugging. The book includes a wide range of exercises, from short
examples to substantial projects, so that students have ample opportunity
to practice each new concept.
Exercise solutions and code examples along with Swampy, a suite of
Python programs that is used in some of the exercises, are available from

Allen B. Downey, Ph.D., is an Associate Professor of Computer Science
at the Olin College of Engineering in Needham, Massachusetts. He
has taught at Wellesley College, Colby College, and UC Berkeley. He
has a doctorate in computer science from UC Berkeley and a master’s
degree from MIT. Professor Downey is the author of a previous version
of this book, titled How to Think Like a Computer Scientist: Learning with
Python, which he self-published in 2001.
Loading... Protection Status