Exploratory programming for the arts and humanities:
Gespeichert in:
Beteilige Person: | |
---|---|
Format: | Buch |
Sprache: | Englisch |
Veröffentlicht: |
Cambridge, MA ; London, England
The MIT Press
[2016]
|
Schlagwörter: | |
Links: | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
Beschreibung: | Includes bibliographical references and index |
Umfang: | xiv, 314 Seiten |
ISBN: | 9780262034203 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV043475739 | ||
003 | DE-604 | ||
005 | 20210723 | ||
007 | t| | ||
008 | 160322s2016 xxu |||| 00||| eng d | ||
010 | |a 015038397 | ||
020 | |a 9780262034203 |c hardcover |9 978-0-262-03420-3 | ||
035 | |a (OCoLC)951261185 | ||
035 | |a (DE-599)BVBBV043475739 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-739 |a DE-11 |a DE-355 |a DE-20 |a DE-29 | ||
050 | 0 | |a QA76.6 | |
082 | 0 | |a 005.1 |2 23 | |
084 | |a AK 39950 |0 (DE-625)2627: |2 rvk | ||
084 | |a AP 15840 |0 (DE-625)6942: |2 rvk | ||
084 | |a ST 205 |0 (DE-625)143613: |2 rvk | ||
084 | |a ST 680 |0 (DE-625)143690: |2 rvk | ||
100 | 1 | |a Montfort, Nick |e Verfasser |4 aut | |
245 | 1 | 0 | |a Exploratory programming for the arts and humanities |c Nick Montfort |
264 | 1 | |a Cambridge, MA ; London, England |b The MIT Press |c [2016] | |
264 | 4 | |c © 2016 | |
300 | |a xiv, 314 Seiten | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Includes bibliographical references and index | ||
650 | 4 | |a Datenverarbeitung | |
650 | 4 | |a Computer programming | |
650 | 4 | |a Humanities |x Data processing | |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Digital Humanities |0 (DE-588)1038714850 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4151278-9 |a Einführung |2 gnd-content | |
689 | 0 | 0 | |a Digital Humanities |0 (DE-588)1038714850 |D s |
689 | 0 | 1 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Regensburg - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
856 | 4 | 2 | |m Digitalisierung UB Regensburg - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |3 Klappentext |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-028892622 |
Datensatz im Suchindex
_version_ | 1819348083300892672 |
---|---|
adam_text | Contents
Acknowledgments xiii
Introduction 1
Exploration vs. Exploitation 3
A Justification for Learning to Program? 5
Creative Computing and Programming as Inquiry 6
Programming Breakthroughs 8
Programming Languages Used 9
Free Software and No-Cost Software 10
How to Program and Explore 13
Programming as You Co 15
Essential Concepts 16
Creative Computing and Programming as Inquiry 1 7
Programming Is a Practice and Requires Practice 17
Installation and Setup 19
Text Editor 19
Python 20
GNU/Linux 22
Mac OS X and Windows 22
Checking the Installation 23
Python Libraries: Pillow/PIL 23
Python Libraries: TextBlob 24
Processing 25
The Command Line 25
1 Modifying a Program 27
1.1 Appropriating a Page
28
vi
Contents
1.2 Quick and Easy Modifications 30
Free Project: Modifying a Simple Text Machine 32
Share and Discuss Your Project 32
Essential Concepts 33
Programming Is Editing Text 33
Code and Data 33
2 Calculating 35
2.1 Encountering an Error 38
2.2 Syntax and Semantics 40
2.3 A Curious Counterexample of the Valid and Intentional 42
Essential Concepts 44
Arithmetic Expressions 44
Syntax, Syntax Errors, and Formal Validity 44
Valid Programs vs. Intentional Programs 44
3 Double, Double 45
3.1 Trying out the Function 48
3.2 Describing the Function 50
Free Project: A Modified Double, Double 54
Essential Concepts 55
Interface 55
Patterns in Code 55
4 Programming Fundamentals 57
4.1 Abstracting Related Code: Functions 58
One Complexity: Scope 62
4.2 Abstracting along Sequences: Iteration 64
4.3 Abstracting across Types: Polymorphism 68
4.4 Revisiting double() 70
4.5 Another Fundamental: The Conditional 72
4.6 Division and Types 74
Exercise: Positive Numbers 77
Free Project: Another Modified Double, Double 77
Essential Concepts 77
Functions Bundle Code 77
Arithmetic Expressions Can Be Made into Functions 77
Iteration 78
Contents
Types 78
The Conditional 78
5 Standard Starting Points 79
5.1 Hello World 79
Alternate Strings and String Theories 84
Exercise: Rewriting the Greeting 86
5.2 Temperature Conversion 86
5.3 Object-Oriented Temperature 89
5.4 Converting a Number to Its Sign 94
Exercise: A Conversion Experience 98
Exercise: Categorical, Imperative 98
5.5 Factorial 99
Exercise: Negative Factorial Fix 102
Exercise: Factorial Mash-up 103
5.6 Double, Double Again 103
Free Project: Modify and Improve a Starter Program 104
Free Project: A Starter Program 104
Exercise: Critique My Starter Programs 105
Essential Concepts 106
Computing Is Cultural 106
Classes, Objects, Methods, Attributes 106
Categorizing with the Conditional 106
Iteration and Recursion 106
6 Text I 107
6.1 Strings, Their Characters, and Their Slices 107
Selecting a Slice 109
Detecting Double Letters 112
6.2 Splitting Strings, Joining and Sorting Lists of Strings 115
Splitting a Text into Words (First Attempt) 116
Working across Strings: Joining, Sorting 117
Existence without joining 120
Exercise: Same Last Character 121
Exercise: Counting Spaces 121
Exercise: Counting Nonspaces 121
Exercise: Determining Initials 122
Exercise: Removing Vowels 122
Contents
Exercise: Tautonyms 123
Essential Concepts 123
Examining and Manipulating Strings 123
Iterating over Strings, Accepting Strings, Returning Strings 123
7 Text 11 125
7.1 Verifying Palindromes by Reversing 125
7.2 Verifying Palindromes with Iteration and Recursion 128
7.3 Introducing Regular Expressions 133
A Simple Python Program with Regular Expressions 138
Counting Words Again, with Regular Expressions 142
7.4 Verifying Palindromes—This Time, with Feeling 144
Exercise: Match within Text 145
Free Project: A Poetry vs. Prose Shootout 145
Essential Concepts 145
Solving Problems with Recursion and Iteration 145
Regular Expressions 145
8 Image I 147
8.1 A New Data Type: Tuples 148
8.2 Generating Very Simple images 150
8.3 Pixel-by-Pixel Image Manipulation 155
Generalizing to Images of Any Size 158
Loading an Existing Image 160
Lightening and Darkening an Image 161
Increasing the Contrast of an Image 164
8.4 Flipping an Image 165
Exercise: Flipping along the Other Axis 167
Free Project: Cell-by-Cell Generator 167
Essential Concepts 168
Using a Library 168
Image Basics 168
Two-Dimensional, Nested Iteration 168
Swapping Values 168
9 Image If 169
9.1 Blurring an Image 169
Visiting Every Pixel 177
Contents
9.2 Manipulating Many Images 178
Inverting Images 179
Exercise: Old Skool Filter 180
Practical Python and Imagemagick Manipulations 181
Free Project: Image Manipulation as You Like It 184
Essential Concepts 184
Checking the Neighborhood 184
Generalizing to Many Files in a Directory 184
10 Text III 185
10.1 Words and Sentences 185
Adjective Counting (with Part-of-Speech Tagging) 188
Sentence Counting 190
Comparing the Number of Adjectives 190
10.2 Text Classification: Verse or Prose? 192
10.3 Text Classification: Sentiment Analysis 196
Training on Positive Words and Negative Words 197
A Thought Experiment 200
Using the Included Sentiment System 201
Approaches to Classification 204
10.4 Word Lists and Beyond 205
Accessing WordNet in a Program 208
Free Project: Creative Conflation 212
Free Project: Your Very Own Classifier 213
Essential Concepts 213
Words, Sentences, and Parts of Speech 213
Classification 213
Lexical Resources 213
11 Statistics and Visualization 215
11.1 The Mean in Processing 216
11.2 A First Visualization in Processing 220
11.3 Statistics, Descriptive and Inferential 226
11.4 The Centers and Spread of a Distribution 227
Exercise: Median 228
Exercise: Mode 228
Exercise: Variance and Standard Deviation 229
The Meaning of the Mean 230
X
Contents
11.5 Gathering and Preparing Data 231
11.6 Probability and Generating Numbers 232
Free Project: Reweighting Your Text Generator 235
11.7 Correlations and Causality 235
11.8 More with Statistics, Visualization, and Processing 238
Free Project: An End-to-End Statistical Exploration 239
Essential Concepts 240
Programming Fundamentals Span Languages 240
Different Averages Have Different Meanings 240
Probability and Statistics: Two Sides of the Same Coin 240
Principled Visualization 240
12 Animation 241
12.1 Drawing in Frames 241
Exercise: The Bounce Test 244
12.2 Changing Intensity 245
Exercise: Multiple Rectangles with Color 246
Exercise: Fifty Rectangles 246
12.3 Exploring Animation Further 247
Free Project: A Novel Clock 247
Essential Concepts 248
Functions as Part of a Framework 248
Drawing in Time 248
13 Sound 249
13.1 Bytebeat from Zero 250
Sidebar: The Math |oke 251
13.2 Exploring Bytebeat, Bit by Bit 252
Free Project: Two Bytebeat Songs 255
13.3 Further Exploration of Sound 255
Essential Concepts 255
Bitwise Operations 255
Sound as a Stream of Bytes 256
14 Interaction 257
14.1 Typed input in Python 257
Free Project: Word to You 258
14.2 Key Presses in Processing 258
Free Project: Create a Virtual, Navigable Space 260
Contents
Essential Concepts 261
Accepting Input 261
Controlling a Window 261
15 Onward 263
Appendix A: Why Program? 267
How People Benefit from Learning to Program 267
Cognitively: Programming Helps Us Think 269
Modeling Humanistic and Artistic Processes Is a Way of Thinking
Programming Could Improve Our Thinking Generally 272
Culturally: Programming Gives Insight into Cultural Systems 273
Programming Allows Better Analysis of Cultural Systems 273
Programming Enables the Development of Cultural Systems 274
Socially: Computation Can Help to Build a Better World 275
Programming Is Creative and Fun 277
Appendix B: Contexts for Learning 279
Semester-Long (Fourteen-Week) Course 280
Quarter-Long (Ten-Week) Course 280
One-Day Workshop 281
Individual and Informal Learning 281
A Final Suggestion for Everyone 281
Glossary 283
References 289
Index 293
computer science/digital humanities
Exploratory Programming for the Arts and Humanities
Nick Montfort
This book introduces programming to readers with a background in the arts and humanities; there are no prereq-
uisites, and no knowledge of computation is assumed. In it, Nick Montfort reveals programming to be not merely
a technical exercise within given constraints but a tool for sketching, brainstorming, and inquiring about important
topics. He emphasizes programming’s exploratory potential—its facility to create new kinds of artworks and to
probe data for new ideas.
The book is designed to be read alongside the computer, allowing readers to program while making their
way through the chapters. It offers practical exercises in writing and modifying code, beginning on a small scale
and increasing in substance. In some cases, a specification is given for a program, but the core activities are a
series of “free projects, intentionally underspecified exercises that leave room for readers to determine their own
direction and write different sorts of programs. Throughout the book, Montfort also considers how computation
and programming are culturally situated—how programming relates to the methods and questions of the arts and
humanities. The book uses Python and Processing, both of which are free software, as the primary programming
languages.
Nick Montfort is Associate Professor of Digital Media at MIT. He is the coauthor of Racing the Beam: The Atari Video
Computer System and 10 PRItJT CHRS(205.5+RND(1));: GOT010, the coeditor of The New Media Reader, and the
author of Twisty Little Passages: An Approach to Interactive Fiction, all published by the MIT Press.
|
any_adam_object | 1 |
author | Montfort, Nick |
author_facet | Montfort, Nick |
author_role | aut |
author_sort | Montfort, Nick |
author_variant | n m nm |
building | Verbundindex |
bvnumber | BV043475739 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.6 |
callnumber-search | QA76.6 |
callnumber-sort | QA 276.6 |
callnumber-subject | QA - Mathematics |
classification_rvk | AK 39950 AP 15840 ST 205 ST 680 |
ctrlnum | (OCoLC)951261185 (DE-599)BVBBV043475739 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Allgemeines Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02150nam a2200505 c 4500</leader><controlfield tag="001">BV043475739</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20210723 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">160322s2016 xxu |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">015038397</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780262034203</subfield><subfield code="c">hardcover</subfield><subfield code="9">978-0-262-03420-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)951261185</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV043475739</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-739</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-29</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.6</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">23</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">AK 39950</subfield><subfield code="0">(DE-625)2627:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">AP 15840</subfield><subfield code="0">(DE-625)6942:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 205</subfield><subfield code="0">(DE-625)143613:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 680</subfield><subfield code="0">(DE-625)143690:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Montfort, Nick</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Exploratory programming for the arts and humanities</subfield><subfield code="c">Nick Montfort</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge, MA ; London, England</subfield><subfield code="b">The MIT Press</subfield><subfield code="c">[2016]</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2016</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xiv, 314 Seiten</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references and index</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Datenverarbeitung</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer programming</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Humanities</subfield><subfield code="x">Data processing</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Digital Humanities</subfield><subfield code="0">(DE-588)1038714850</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4151278-9</subfield><subfield code="a">Einführung</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Digital Humanities</subfield><subfield code="0">(DE-588)1038714850</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Klappentext</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-028892622</subfield></datafield></record></collection> |
genre | (DE-588)4151278-9 Einführung gnd-content |
genre_facet | Einführung |
id | DE-604.BV043475739 |
illustrated | Not Illustrated |
indexdate | 2024-12-20T17:37:19Z |
institution | BVB |
isbn | 9780262034203 |
language | English |
lccn | 015038397 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-028892622 |
oclc_num | 951261185 |
open_access_boolean | |
owner | DE-739 DE-11 DE-355 DE-BY-UBR DE-20 DE-29 |
owner_facet | DE-739 DE-11 DE-355 DE-BY-UBR DE-20 DE-29 |
physical | xiv, 314 Seiten |
publishDate | 2016 |
publishDateSearch | 2016 |
publishDateSort | 2016 |
publisher | The MIT Press |
record_format | marc |
spellingShingle | Montfort, Nick Exploratory programming for the arts and humanities Datenverarbeitung Computer programming Humanities Data processing Programmierung (DE-588)4076370-5 gnd Digital Humanities (DE-588)1038714850 gnd |
subject_GND | (DE-588)4076370-5 (DE-588)1038714850 (DE-588)4151278-9 |
title | Exploratory programming for the arts and humanities |
title_auth | Exploratory programming for the arts and humanities |
title_exact_search | Exploratory programming for the arts and humanities |
title_full | Exploratory programming for the arts and humanities Nick Montfort |
title_fullStr | Exploratory programming for the arts and humanities Nick Montfort |
title_full_unstemmed | Exploratory programming for the arts and humanities Nick Montfort |
title_short | Exploratory programming for the arts and humanities |
title_sort | exploratory programming for the arts and humanities |
topic | Datenverarbeitung Computer programming Humanities Data processing Programmierung (DE-588)4076370-5 gnd Digital Humanities (DE-588)1038714850 gnd |
topic_facet | Datenverarbeitung Computer programming Humanities Data processing Programmierung Digital Humanities Einführung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=028892622&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT montfortnick exploratoryprogrammingfortheartsandhumanities |