Name | Last modified | Size | Description | |
---|---|---|---|---|
Parent Directory | - | |||
code/ | 2023-03-01 22:30 | - | ||
online-lesen.link | 2023-08-07 09:06 | 716 | Redirection | |
poster.pdf | 2023-08-07 12:43 | 2.9M | ||
Das Buch Structure and Interpretation of Computer Programs gilt als
eines der klassischen Büchern der Informatik. Es benutzt die
Programmiersprache Scheme um verschiedene Themen um und herum
dem Themengebiet Programmieren
zu diskutieren.
[SICP] is by far the best programming book I have ever laid my hands on [...]. Reading SICP will enlighten you as a programmer, and make you a better one. I can’t imagine one programmer who won’t gain something important by reading SICP. (Eli Bendersky)
↪ Siehe auch: Why Structure and Interpretation of Computer Programs matters
Ich würde gerne eine Lesegruppe starten, um mit Interessierten die zentralen Konzepte, Übungsaufgaben und verwandte Themen zu besprechen. Meine Idee wäre es sich mehr-oder-weniger regelmäßig zu treffen und Kapitel aus dem Buch nachzubesprechen, so wie Lösungen für verschiedene Aufgaben zu vergleichen.
Exemplare von dem Buch sind in der Uni-Bibliothek verfügbar, in dem Mathe/Informatik Zweigbibliothek (im Felix-Klein Gebäude).
Alternativ/zusätzlich könnte man auch die etwas fortgeschrittenere
Nachfolgebucher Functional Differential Geometry
oder Software
Design for Flexibility
lesen.
Die Programmiersprache Scheme ist klein und einfach, aber mächtig mit viel Ausdruckskraft. Es ist ein Dialekt der Lisp-Familie hat aber einen stärker ausgeprägten funktionalen Beigeschmack.
Scheme ist eine standardisierte Sprache, und hat daher verschiedene Implementierungen die man für SICP benutzen kann:
offizielle Implementierungfür SICP
Hier ein Beispiel wie Scheme aussieht (aus Kapitel 1):
(define (expmod base exp m)
(cond ((= exp 0) 1)
((even? exp)
(remainder (square (expmod base (/ exp 2) m))
m))
(else
(remainder (* base (expmod base (- exp 1) m))
m))))
(define (fermat-test n)
(define (try-it a)
(= (expmod a n n) a))
(try-it (+ 1 (random (- n 1)))))
(define (fast-prime? n times)
(cond ((= times 0) true)
((fermat-test n) (fast-prime? n (- times 1)))
(else false)))
Da das Buch zum größten Teil keine exotischen
Eigenschaften benutzt (Makros, Continuations (
), Hash-Tabellen, Multiple-Value-Zeug, Numerical tower , ...), sollte es im wesentlichen egal sein für welche Implementierung man sich entscheidet.
call/cc
Weitere Links sammele ich hier.
Je nach Interesse können auch Themen die nicht direkt mit SICP zusammenhängen auch diskutiert werden. Bspw. könnte die Lambda Papers oder das Paper An Incremental Approach to Compiler Construction
interessant sein.
Ich hoffe diese Gruppe nur aus Eigeninteresse zu organisieren und hoffentlich dem Interesse anderer sich an der reichen Kultur vom Scheme und Lisp zu beschäftigen.
Im FSI Forum wurde ein Kommentar erstellt, zur Planung des vierten Treffens über Kapitel 4.
Wir treffen uns fuer Kapitel 2 und 3 am 10.10. um 2 Uhr im Blauen Hochhaus.
Das zweite Treffen findet am 2023-08-15 statt, um 13:00 Uhr. Es werden Übungsaufgaben aus dem Kapitel 1 diskutiert.
Das erste Treffen findet am 2023-08-07 statt. Wir stellen die Programmiersprache Scheme vor und planen den weiteren Verlauf der Lesegruppe.
Um Anfang August Triffst sich die Lesegruppe doch, Teilname ist Flexibel. Wir haben eine Signal Gruppe, bei Interesse melden.
Weil sich bisher noch niemand gemeldet hat, wird die Lesegruppe erstmal verlegt.
Siehe Beitrag.
Es ist noch nichts konkretes geplant, also würde ich mich über Rückmeldungen interessieren sollte es Interesse geben. Ich hätte eine erste Sitzung am Anfang vom Sommer Semester 2023 angesetzt gehabt.
Don't panic: Tipps zum Aufsetzen einer Arbeitsumgebung für Scheme.