Programmieren als Kulturtechnik

Seminar, Master of Arts Medienwissenschaft

Till A. Heilmann, Rheinische Friedrich-Wilhelms-Universität Bonn

Sommersemester 2017, Freitag 10:15–11:45 Uhr (wöchentlich)

Beschreibung

»Software has become our interface to the world« (Lev Manovich) – Wenn digitale Medien unsere Lage bestimmen, und wenn Computer (die diesen Medien zugrundeliegende Technologie) als diejenigen Maschinen definiert werden können, die sich universell programmieren lassen, dann bestimmen Programmierungen unsere Lage. Die Kultur, in der wir leben, ist mittlerweile zu großen Teilen eine programmierte Software-Kultur. Was aber ist Programmierung? Was heißt es, Computer zu programmieren? So unterschiedliche Gestalten Computer in der Geschichte angenommen haben (von der Elektronenröhren-basierten Datenverarbeitungsanlage bis zum Mikrochip-gesteuerten Smartphone), so unterschiedlich kann auch ihre Programmierung ausfallen. Im Seminar werden wir uns anhand ausgewählter Beispiele mit der Kulturtechnik des Programmierens auseinandersetzen – nicht aus der Perspektive eines Ingenieurs oder einer Informatikerin, sondern mit dem kulturwissenschaftlichen Interesse der Medientheorie und -geschichte. Programmierkenntnisse werden nicht vorausgesetzt.

Lernziele

Aufbau

Das Seminar behandelt in beispielhaften Ausschnitten einige der wichtigsten Episoden einer Technik- und Kulturgeschichte der Computerprogrammierung. Dabei folgt der Aufbau in groben Zügen der Chronologie der historischen Ereignisse: von der Idee programmierbarer Rechenmaschinen im 19. Jahrhundert (2. Sitzung) über das Programmieren der ersten elektronischen Computer (3. Sitzung) und die Entstehung und Ausdifferenzierung von höheren Programmiersprachen und -systemen (4. bis 10. Sitzung) bis zur Free und Open Source Software-Idee (11. Sitzung) und zu aktuellen Entwicklungen im Bereich des maschinellen Lernens (12. Sitzung).

Semesterplan
Sitzung Datum Titel
1 21.04.2017 Einführung
2 28.04.2017 Programmieren vor Digitalcomputern
3 05.05.2017 Programmieren an den ersten Maschinen
4 12.05.2017 Programmieren als Hacken
5 19.05.2017 Programmieren in höheren Sprachen
6 26.05.2017 Programmieren für Laien
7 02.06.2017 Programmieren für Kinder
09.06.2017 fällt aus (Pfingsten)
16.06.2017 fällt aus
8 23.06.2017 Programmieren als System
9 30.06.2017 Programmieren in Objekten
10 07.07.2017* Programmieren als Kunst
11 14.07.2017* Programmieren als Mission
12 21.07.2017* Programmieren als Trainieren
13 28.07.2017* Schluss

* abweichend 08:15–10:00 Uhr

Sitzungen

1 | Einführung

Inhalte

Ziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

* Auf Computern mit Mac OS- oder Linux-Betriebssystem ist Python in der Regel vorinstalliert.

Zur Vertiefung (fakultativ)

Programmierpraxis

Populärkultur

2 | Programmieren vor Digitalcomputern

Inhalte

Ziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

Populärkultur

3 | Programmieren an den ersten Maschinen

Inhalte

Ziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

Populärkultur

4 | Programmieren als Hacken

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

Populärkultur

5 | Programmieren in höheren Sprachen

Inhalte

Ziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

6 | Programmieren für Laien

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

7 | Programmieren für Kinder

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

8 | Programmieren als System

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

9 | Programmieren in Objekten

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

10 | Programmieren als Kunst

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

11 | Programmieren als Mission

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Programmierpraxis

Populärkultur

12 | Programmieren als Trainieren

Inhalte

Lernziele

Zur Orientierung (fakultativ)

Zur Vorbereitung (obligatorisch)

Zur Vertiefung (fakultativ)

Programmierpraxis

Populärkultur

13 | Schluss

Inhalte

Lernziele

Zur Vorbereitung (obligatorisch)

Programmierpraxis

Formales

Studienleistung

keine

Modulabschluss / Hausarbeit

Hausarbeit

Vorbesprechungen zu Hausarbeiten finden in der Regel während der Vorlesungszeit statt (im oder am Rande des Seminars oder in Sprechstunden). Außerhalb der Vorlesungszeit können keine Sprechstundentermine zur Vorbesprechung von Hausarbeiten garantiert werden!

Siehe zu Hausarbeiten auch den Leitfaden der Abteilung für Medienwissenschaft.

Seminar-Etikette

Es gilt die Seminar-Etikette des Lehrstuhls für Medienkulturwissenschaft.

In den praktischen Teilen der Sitzungen kommen Laptops oder Tablets zum Einsatz.

Literatur

Die Texte, die zur Vorbereitung der Sitzungen zu lesen sind, stehen in digitalisierter Form auf eCampus zum Herunterladen bereit.

Begleitend zum Seminar wird die Lektüre folgender Titel empfohlen:

Die in der Literaturliste genannten Titel sind inzwischen möglicherweise in neuer Auflage erschienen oder (wo es sich um ältere Texte handelt) in Textsammlungen wiederabgedruckt worden.

Literaturliste

Abelson, Harold, Gerald Jay Sussman und Julie Sussman (1996): Structure and Interpretation of Computer Programs, 2. Aufl., Cambridge, Mass.: MIT Press.

Agalianos, Angelos, Geoff Whitty und Richard Noss (2006): »The Social Shaping of Logo«, in: Social Studies of Science 36/2, S. 241–267.

Ahl, David H. (1978): BASIC Computer Games: Microcomputer Edition, New York: Workman Publishing, https://annarchive.com/files/Basic_Computer_Games_Microcomputer_Edition.pdf.

Albrecht, Bob u. a. (1972): People’s Computer Company, Bd. 1, Nr. 1, Menlo Park: Dymax, https://purl.stanford.edu/ht121fv8052.

Alt, Casey (2011): »Objects of Our Affection: How Object Orientation Made Computers a Medium«, in: Erkki Huhtamo und Jussi Parikka (Hrsg.): Media Archaeology: Approaches, Applications, and Implications, Berkeley–Los Angeles–London: University of California Press, S. 278–301.

Backus, John W. (1980): »Programming in America in the 1950s. Some Personal Impressions«, in: Nicholas Metropolis, Jack Howlett und Gian-Carlo Rota (Hrsg.): A History of Computing in the Twentieth Century, New York: Academic Press, S. 125–135.

Backus, John W. und others (1957): »The Fortran Automatic Coding System«, in: Proceedings of the Joint Ire-Aiee-Acm Western Computer Conference (Los Angeles), New York: ACM, S. 188–198.

Bostrom, Nick (2014): Superintelligence: Paths, Dangers, Strategies, Oxford: Oxford University Press.

Bradford, Laurence (2016): »Why Every Millennial Should Learn Some Code«, in: Forbes, 20. Juni, https://www.forbes.com/sites/laurencebradford/2016/06/20/why-every-millennial-should-learn-some-code/#48a081970f24.

Brin, David (2006): »Why Johnny Can’t Code«, in: Salon, 14. Sep., http://www.salon.com/2006/09/14/basic_2/.

Campbell-Kelly, Martin (2003): From Airline Reservations to Sonic the Hedgehog. a History of the Software Industry, Cambridge, Mass.–London: MIT Press.

Campbell-Kelly, Martin u. a. (2013): Computer: A History of the Information Machine, 3. Aufl., Boulder: Westview Press.

Chun, Wendy Hui Kyong (2008): »On ›Sourcery‹, or Code as Fetish«, in: Configurations 16/3, S. 299–324.

Coleman, E. Gabriella (2013): Coding Freedom: The Ethics and Aesthetics of Hacking, Princeton: Princeton University Press.

Dahl, Ole-Johan (2004): »The Birth of Object Orientation: The Simula Languages«, in: Olaf Owe, Stein Krogdahl und Tom Lyche (Hrsg.): From Object-Orientation to Formal Methods: Essays in Memory of Ole-Johan Dahl, Berlin–Heidelberg: Springer, S. 15–25.

Denning, Peter J. (2009): »Beyond Computational Thinking«, in: Communications of the ACM 52/6, S. 28–30.

--- (2010): »The Great Principles of Computing«, in: American Scientist 98/5, S. 369–372.

Department of Defense (1960): »COBOL. Initial Specifications for a Common Business Oriented Language«, Washington, D.C.: U.S. Government Printing Office #1960 0-552133, http://bitsavers.org/pdf/codasyl/COBOL_Report_Apr60.pdf.

Deutsch, Robert (2017): Turing, Berlin: avant-verlag.

Ensmenger, Nathan (2010): The Computer Boys Take over: Computers, Programmers, and the Politics of Technical Expertise, Cambridge, Mass.–London: MIT Press.

--- (2015): »›Beards, Sandals, and Other Signs of Rugged Individualism‹: Masculine Culture Within the Computing Professions«, in: Osiris 30/1, S. 38–65.

Feurzeig, Wallace (2010): »Toward a Culture of Creativity: A Personal Perspective on Logo’s Early Years and Ongoing Potential«, in: International Journal of Computers for Mathematical Learning 15, S. 257–265.

Ford, Paul (2015): »What Is Code?«, in: Bloomberg Businessweek, The Code Issue, https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/.

Geitgey, Adam (2014): »Machine Learnin Is Fun! The World’s Easiest Introduction to Machine Learning«, https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471.

Gibson, William und Bruce Sterling (1990): The Difference Engine, London: Victor Gollancz.

Greelish, David (2013): »An Interview with Computing Pioneer Alan Kay«, in: TIME, 2. Apr., http://techland.time.com/2013/04/02/an-interview-with-computing-pioneer-alan-kay/.

Grier, David Alan (2007): When Computers Were Human, Princeton, NJ: Princeton University Press.

Haigh, Thomas, Mark Priestley und Crispin Rope (2016): ENIAC in Action: Making and Remaking the Modern Computer, Cambridge, Mass.: MIT Press.

Heilmann, Till A. (2012): Textverarbeitung. Eine Mediengeschichte des Computers als Schreibmaschine, Bielefeld: Transcript.

Hellige, Hans Dieter (2003): »Zur Genese des informatischen Programmbegriffs. Begriffsbildung, metaphorische Prozesse, Leitbilder und professionelle Kulturen«, in: Karl-Heinz Rödiger (Hrsg.): Algorithmik – Kunst – Semiotik. Hommage für Frieder Nake, Heidelberg: Synchron Wissenschaftsverlag der Autoren, S. 42–73.

Hern, Alex (2016): »Google Says Machine Learning Is the Future. so I Tried It Myself«, in: The Guardian, 28. Juni, https://www.theguardian.com/technology/2016/jun/28/google-says-machine-learning-is-the-future-so-i-tried-it-myself.

Hill, Robin K. (2016): »What Makes a Program Elegant?«, BLOG@CACM, https://cacm.acm.org/blogs/blog-cacm/208547-what-makes-a-program-elegant/fulltext.

Hoffman, Chris (2012): »What Is Open Source Software, and Why Does It Matter?«, https://www.howtogeek.com/129967/htg-explains-what-is-open-source-software-and-why-you-should-care/.

Hopper, Grace (1952): »The Education of a Computer«, in: Proceedings of the Acm National Conference (Pittsburgh), New York: ACM, S. 243–249.

Joque, Justin (2016): »The Invention of the Object: Object Orientation and the Philosophical Development of Programming Languages«, in: Philosophy and Technology 29/4, S. 335–356.

Kay, Alan (1972): »A Personal Computer for Children of All Ages«, in: Proceedings of the Acm National Conference (Boston), http://www.vpri.org/pdf/hc_pers_comp_for_children.pdf.

Kay, Alan C. (1993): »The Early History of Smalltalk«, in: ACM SIGPLAN Notices 28/3, S. 1–54.

Kelty, Christopher M. (2008): Two Bits: The Cultural Significance of Free Software, Durham, N. C.: Duke University Press.

Kernighan, Brian W. und John R. Mashey (1981): »The Unix Programming Environment«, in: Computer 14/4, S. 12–24.

Knight, Will (2017): »The Dark Secret at the Heart of Ai«, in: MIT Technology Review, 11. Apr., https://www.technologyreview.com/s/604087/the-dark-secret-at-the-heart-of-ai/.

Knuth, Donald E. (1970): »Von Neumann’s First Computer Program«, in: ACM Computing Surveys 2/4, S. 247–260.

--- (1974): »Computer Programming as an Art«, in: Communications of the ACM 17/12, S. 667–673.

--- (1984): »Literate Programming«, in: The Computer Journal 27/2, S. 97–111.

Koerner, Brendan I. (2014): »How the World’s First Computer Was Rescued from the Scrap Heap«, in: Wired, 25. Nov., https://www.wired.com/2014/11/eniac-unearthed/.

Krämer, Sybille (2015): »Wieso gilt Ada Lovelace als die ›erste Programmiererin‹ und was bedeutet überhaupt ›programmieren‹?«, in: Sybille Krämer (Hrsg.): Ada Lovelace. Die Pionierin der Computertechnik und ihre Nachfolgerinnen, Paderborn: Wilhelm Fink, S. 75–90.

Levy, Steven (1984): Hackers: Heroes of the Computer Revolution, Garden City: Doubleday.

Lévy, Pierre (1994): »Die Erfindung des Computers«, in: Michel Serres (Hrsg.): Elemente einer Geschichte der Wissenschaften, Frankfurt am Main: Suhrkamp, S. 905–944.

Light, Jennifer S. (1999): »When Computers Were Women«, in: Technology and Culture 40/3, S. 455–483.

Lobo, Sascha (2017): »Programmieren lernen hilft nicht«, in: Der Spiegel, 29. März, http://www.spiegel.de/netzwelt/web/programmieren-in-der-schule-sollen-kinder-programmieren-lernen-kolumne-a-1140928.html.

Mackenzie, Adrian (2006): Cutting Code: Software and Sociality, New York: Peter Lang.

Mateas, Michael und Nick Montfort (2005): »A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics«, in: Proceedings of the 6th Digital Arts and Culture Conference, S. 144–153.

Matsumoto, Yukihiro (2007): »Treating Code as an Essay«, in: Andy Oram und Greg Wilson (Hrsg.): Beautiful Code, Cambridge et al.: O’Reilly, S. 477–481.

McPherson, Tara (2012): »U.S. Operating Systems at Mid-Century: The Intertwiningof Race and Unix«, in: Lisa Nakamura und Peter A. Chow-White (Hrsg.): Race After the Internet, New York–London: Routledge, S. 21–37.

Mol, Liesbeth De und Maarten Bullynck (2008): »A Week-End Off: The First Extensive Number-Theoretical Computation on the Eniac«, in: Lecture Notes in Computer Science, 5028, Springer, S. 158–167.

Montfort, Nick (2016): Exploratory Programming for the Arts and Humanities, Cambridge, Mass.: MIT Press.

Montfort, Nick u. a. (2012): 10 PRINT CHR$(205.5+RND(1)); : GOTO 10, Cambridge, Mass.: MIT Press, http://10print.org.

Munroe, Randall (2010): Xkcd: Volume 0, Breadpig.

Naur, Peter (1975): »Programming Languages, Natural Languages, and Mathematics«, in: Communications of the ACM 18/12, S. 676–683.

Nelson, Theodor H. (1974): Computer Lib / Dream Machines, Chicago: Hugo’s Book Service.

Nofre, David, Mark Priestley und Gerard Alberts (2014): »When Technology Became Language: The Origins of the Linguistic Conception of Computer Programming, 1950–1960«, in: Technology and Culture 55/1, S. 40–75.

Noll, A. Michael (1967): »The digital computer as a creative medium«, in: IEEE Spectrum 10, S. 89–95.

o. V. (1964): »BASIC (Beginner’s All-Purpose Symbolic Instruction Code) Instruction Manual«, Dartmouth College Computation Center, http://www.dartmouth.edu/basicfifty/basicmanual_1964.pdf.

o. V. (2015): »Fifty Years of Basic, the Programming Language That Made Computers Personal«, in: TIME, 29. Apr., http://time.com/69316/basic/.

Obama, Barack H. (2013): »President Obama Asks America to Learn Computer Science«, https://www.youtube.com/watch?v=6XvmhE1J9PY.

Padua, Syndey (2015): The Thrilling Adventures of Lovelace and Babbage: The (Mostly) True Story of the First Computer, New York: Pantheon.

Papert, Seymour (1980): Mindstorms: Children, Computers, and Powerful Ideas, Brighton: Harvester Press.

Papert, Seymour und Cynthia Solomon (1971): »Twenty Things to Do With a Computer«, Artificial Intelligence Memo Number 248, Massachusetts Institute of Technology, https://dspace.mit.edu/bitstream/handle/1721.1/5836/AIM-248.pdf.

Perlis, Alan J. und Klaus Samelson (1958): »Preliminary Report. International Algebraic Language«, in: Communications of the ACM 1/12, S. 8–22.

Peterson, T. F. (2011): Nightwork: A History of Hacks and Pranks at Mit, Cambridge, Mass.: MIT Press.

Petzold, Charles (1999): Code. The Hidden Language of Computer Hardware and Software, Redmond: Microsoft Press.

Pflüger, Jörg (2004): »Writing, Building, Growing: Leitvorstellungen der Programmiergeschichte«, in: Hans Dieter Hellige (Hrsg.): Geschichten der Informatik. Visionen, Paradigmen, Leitmotive, Berlin u. a.: Springer, S. 275–320.

Pias, Claus (2002): »Der Hacker«, in: Eva Horn und Ulrich Bröckling (Hrsg.): Grenzverletzer. Figuren politischer Subversion, Kadmos, S. 248–270.

Piskor, Ed (2012): Wizzywig: Portrait of a Serial Hacker, Marietta: Top Shelf Productions.

Plant, Sadie (1997): Zeroes and Ones: Digital Women and the New Technoculture, London: Fourth Estate.

Priestley, Mark (2011): A Science of Operations: Machines, Logic and the Invention of Programming, London: Springer.

Randell, Brian (1994): »The Origins of Computer Programming«, in: IEEE Annals of the History of Computing 16/4, S. 6–14.

Raymond, Eric S. (2000): »The Cathedral and the Bazaar«, http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/.

--- (2003): »The Art of Unix Programming«, http://www.catb.org/~esr/writings/taoup/html/index.html.

--- (2015): »How to Become a Hacker«, http://catb.org/~esr/faqs/hacker-howto.html.

Reynolds, Matt (2017): »Computers Are Learning to Code for Themselves«, in: New Scientist, 25. Feb. 3114, https://www.newscientist.com/article/mg23331144-500-ai-learns-to-write-its-own-code-by-stealing-from-other-programs/.

Salus, Peter H. (1994): A Quarter Century of Unix, Reading, Mass.: Addison-Wesley.

Sammet, Jean E. (1969): Programming Languages. History and Fundamentals, Englewood Cliffs: Prentice-Hall.

Schaffer, Simon (1994): »Babbage’s Intelligence: Calculating Engines and the Factory System«, in: Critical Inquiry 21, S. 203–227.

Seibel, Peter (2009): Coders at Work: Reflections on the Craft of Programming, New York: Apress.

Stallman, Richard M. (2015): »The GNU Manifesto«, https://www.gnu.org/gnu/manifesto.en.html.

Stephenson, Neal (1999): Cryptonomicon, New York: Avon.

Tanz, Jason (2016): »The End of Code«, in: Wired 24/6, S. 72–79, https://www.wired.com/2016/05/the-end-of-code/.

Toomey, Warren (2011): »The Strange Birth and Long Life of Unix«, in: IEEE Spectrum 48/12, S. 34–55, http://spectrum.ieee.org/computing/software/the-strange-birth-and-long-life-of-unix/.

Ullman, Ellen (2004): The Bug, New York: Anchor.

Vinge, Vernor (1993): »Technological Singularity«, Department of Mathematical Sciences, San Diego State University, http://mindstalk.net/vinge/vinge-sing.html.

Vonnegut, Kurt (1952): Player Piano, New York: Charles Scribner’s Sons.

Wark, McKenzie (2004): A Hacker Manifesto, Cambridge, Mass.: Harvard University Press.

White, Graham (2004): »The Philosophy of Computer Languages«, in: Luciano Floridi (Hrsg.): The Blackwell Guide to the Philosophy of Computing and Information, Oxford: Blackwell Publishing, S. 237–247.

Wing, Jeannette M. (2006): »Computational Thinking«, in: Communications of the ACM 49/3, S. 33–35.

Wolfram, Stephen (2015): »Untangling the Tale of Ada Lovelace«, http://blog.stephenwolfram.com/2015/12/untangling-the-tale-of-ada-lovelace/.


2017 | Impressum