Programmieren als Kulturtechnik

Seminar, Master of Arts Medienwissenschaft

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

Sommersemester 2019, Donnerstag 12:15–13: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. und 4. Sitzung) und die Entstehung und Ausdifferenzierung von höheren Programmiersprachen und -systemen (5. bis 9. Sitzung) bis zur Free und Open Source Software-Idee (10. Sitzung) und zu aktuellen Entwicklungen im Bereich des maschinellen Lernens (11. Sitzung).

Semesterplan
Sitzung Datum Thema
1 04.04.2019 Einführung
2 11.04.2019 Programmieren als Vision
3 18.04.2019 Programmieren mit Kabeln
4 25.04.2019 Programmieren mit Arbeitsspeicher
5 02.05.2019 Programmieren mit Sprachen
6 09.05.2019 Programmieren als Hacken
7 16.05.2019 Programmieren für Laien
8 23.05.2019 Programmieren für Kinder
30.05.2019 fällt aus (Christi Himmelfahrt)
9 06.06.2019 Programmieren als Kunst
13.06.2019 fällt aus (Pfingsten)
20.06.2019 fällt aus (Fronleichnam)
10 28.06.2019* Programmieren als Befreiung
11 04.07.2019 Programmieren als Training
12 11.07.2019 Schluss

* ACHTUNG: Abweichend am Freitag von 10:15–11:45 Uhr in Raum 1.001, Lennéstraße 1.

Sitzungen

1 | Einführung

Inhalte

Ziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

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

Zur Vertiefung

Programmierpraxis

2 | Programmieren als Vision

Inhalte

Ziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

3 | Programmieren mit Kabeln

Inhalte

Ziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

4 | Programmieren mit Arbeitsspeicher

Inhalte

Ziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

5 | Programmieren mit Sprachen

Inhalte

Ziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

6 | Programmieren als Hacken

Inhalte

Lernziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

7 | Programmieren für Laien

Inhalte

Lernziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

8 | Programmieren für Kinder

Inhalte

Lernziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

* In modernen Logo-Interpretern wie QLogo werden Programme etwas anders strukturiert als bei Papert (1980) dargestellt, nämlich mit geraden Klammern. Der ›Programmbefehl‹ square auf S. 59 etwa muss wie folgt Zeile für Zeile eingegeben werden:

to square :size
repeat 4 [forward :size right 90]
end

Eine aktuelle deutschsprachige Einführung in Logo bietet z. B. Gebauer u. a. (2016): Programmieren mit Logo.

Zur Vertiefung

Programmierpraxis

09 | Programmieren als Kunst

Inhalte

Lernziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

10 | Programmieren als Befreiung

Inhalte

Lernziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Zur Vertiefung

Programmierpraxis

11 | Programmieren als Training

Inhalte

Lernziele

Zur Einführung ins Thema

Zur Vorbereitung der Sitzung

Programmierpraxis

12 | Schluss

Inhalte

Lernziele

Zur Vorbereitung der Sitzung

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 können folgende Titel gelesen werden:

Wer das Funktionieren von Computern und Computerprogrammen von Grund auf verstehen möchte, lese Hillis (1999) oder Petzold (1999).

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

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, Bde. 1, Nr. 1, Menlo Park: Dymax, https://purl.stanford.edu/ht121fv8052.

Allen, Ben (2018): »Common Language: Business Programming Languages and the Legibility of Programming«, in: IEEE Annals of the History of Computing 40/2, S. 17–31.

Backus, John W. u. a. (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.

Benkler, Yochai (2006): The Wealth of Networks: How Social Production Transforms Markets and Freedom, New Haven, Conn.: Yale University Press, http://www.benkler.org/Benkler_Wealth_Of_Networks.pdf.

Bense, Max und Elisabeth Walter (Hrsg.) (1968): rot, Bde. 19: computer-grafik, Stuttgart: edition rot.

Berry, David M. (2008): Copy, Rip, Burn: The Politics of Copyleft and Open Source, London: Pluto Press.

Brand, Stewart (1972): »Spacewar. Fanatic Life and Symbolic Death Among the Computer Bums«, in: Rolling Stone, 7. Dez., S. 50–58.

Braun, Ludwig und Marian Visich (1971): Huntington Computer Project: A Teacher’s Manual (Computer-Related Materials), Brooklyn, N. Y.: Polytechnic Institute of Brooklyn, https://files.eric.ed.gov/fulltext/ED174467.pdf.

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

Bromley, Allan G. (1998): »Charles Babbage’s Analytical Engine, 1838«, in: IEEE Annals of the History of Computing 20/4, S. 29–45.

Campbell-Kelly, Martin (1980): »Programming the Edsac: Early Programming Activity at the University of Cambridge«, in: IEEE Annals of the History of Computing 2/1, S. 7–36.

--- (1985): »Christopher Strachey, 1916-1975: A Biographical Note«, in: IEEE Annals of the History of Computing 7/1, S. 19–42.

--- (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.

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

Daston, Lorraine (1994): »Enlightenment Calculations«, in: Critical Inquiry 21/1, S. 182–202.

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

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.

Dotzler, Bernhard J. (Hrsg.) (1996): Babbages Rechen-Automate: Ausgewählte Schriften, Wien–New York: Springer.

Ensmenger, Nathan (2009): »Making Programming Masculine«, http://homes.soic.indiana.edu/nensmeng/files/ensmenger-gender.pdf.

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

Feller, Joseph (Hrsg.) (2005): Perspectives on Free and Open Source Software, Cambridge, Mass.: MIT Press.

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.

Fleishman, Glenn (2018): »It’s Cobol All the Way down«, in: Increment 5, https://increment.com/programming-languages/cobol-all-the-way-down/.

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

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 (2001): »Human Computers: The First Pioneers of the Information Age«, in: Endeavour 25/1, S. 28–32.

--- (2007): When Computers Were Human, Princeton, NJ: Princeton University Press.

Haigh, Thomas und Mark Priestley (2016): »Where Code Comes from: Architectures of Automatic Control from Babbage to Algol«, in: Communications of the ACM 59/1, S. 39–44.

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

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.

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.

Hillis, Daniel (1999): The Pattern on the Stone: The Simple Ideas That Make Computers Work, New York: Basic Books.

Hodges, Andrew (1989): Alan Turing. Enigma, Berlin: Kammerer & Unverzagt.

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

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.

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

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.

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.

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.

Martineau, Kim (2019): »Toward Artificial Intelligence That Learns to Write Code«, MIT, http://news.mit.edu/2019/toward-artificial-intelligence-that-learns-to-write-code-0614.

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.

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

McGrath, Shawn (2016): »The Exceptional Beauty of Doom 3’s Source Code«, https://kotaku.com/the-exceptional-beauty-of-doom-3s-source-code-5975610.

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.

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.

Neumann, John von (1945): »First Draft of a Report on the Edvac«, http://www.archive.org/details/firstdraftofrepo00vonn.

Nissenbaum, Helen (2004): »Hackers and the Contested Ontology of Cyberspace«, in: New Media and Society 6/2, S. 195–217.

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.

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.

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.

Quach, Katyanna (2017): »Wanna Get Started with Practical Ai? Check Out This Chap’s Rubik’s Cube Solving Neural-Net Code«, in: The Register, 25. Sep., https://www.theregister.co.uk/2017/09/25/rubiks_cube_neural_network/.

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

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

Roberts, Siobhan (2017): »Christopher Strachey’s Nineteen-Fifties Love Machine«, in: The New Yorker, 14. Feb., https://www.newyorker.com/tech/annals-of-technology/christopher-stracheys-nineteen-fifties-love-machine.

Rojas, Raúl (2016): »Versuch, Ada Lovelace auf die Füße zu stellen«, in: Telepolis, 9. Jan., https://www.heise.de/tp/features/Versuch-Ada-Lovelace-auf-die-Fuesse-zu-stellen-3377535.html.

Siegert, Bernhard (2011): »Kulturtechnik«, in: Harun Maye und Leander Scholz (Hrsg.): Einführung in die Kulturwissenschaft, München: Wilhelm Fink, S. 95–118.

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

Strachey, Christopher (1954): »The ’Thinking’ Machine«, in: Encounter 3/4, S. 25–31.

Swade, Doron (2011): »Inventing the User: EDSAC in Context«, in: The Computer Journal 54/1, S. 143–147.

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

Turing, Alan M. (1950): »Computing Machinery and Intelligence«, in: Mind. A Quarterly Review of Psychology and Philosophy 59/236, S. 433–460.

Wardrip-Fruin, Noah (2005): »Christopher Strachey: The First Digital Artist?«, https://grandtextauto.soe.ucsc.edu/2005/08/01/christopher-strachey-first-digital-artist/.

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/.