<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Structure_and_Interpretation_of_Computer_Programs</id>
	<title>Structure and Interpretation of Computer Programs - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Structure_and_Interpretation_of_Computer_Programs"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Structure_and_Interpretation_of_Computer_Programs&amp;action=history"/>
	<updated>2026-05-01T16:42:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Structure_and_Interpretation_of_Computer_Programs&amp;diff=3239610&amp;oldid=prev</id>
		<title>imported&gt;Headbomb: Altered journal. Add: authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | Use this tool. Report bugs. | #UCB_Gadget</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Structure_and_Interpretation_of_Computer_Programs&amp;diff=3239610&amp;oldid=prev"/>
		<updated>2025-08-09T20:14:36Z</updated>

		<summary type="html">&lt;p&gt;Altered journal. Add: authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | &lt;a href=&quot;/wiki143/index.php?title=En:WP:UCB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:UCB (page does not exist)&quot;&gt;Use this tool&lt;/a&gt;. &lt;a href=&quot;/wiki143/index.php?title=En:WP:DBUG&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:DBUG (page does not exist)&quot;&gt;Report bugs&lt;/a&gt;. | #UCB_Gadget&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:14, 9 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l24&quot;&gt;Line 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&#039;&#039;Structure and Interpretation of Computer Programs&#039;&#039;&#039;&#039;&#039; (&#039;&#039;&#039;&#039;&#039;SICP&#039;&#039;&#039;&#039;&#039;) is a [[computer science]] textbook by [[Massachusetts Institute of Technology]] professors [[Harold Abelson]] and [[Gerald Jay Sussman]] with Julie Sussman. It is known as the &quot;Wizard Book&quot; in [[hacker culture]].&amp;lt;ref&amp;gt;{{Cite book |&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last&lt;/del&gt;=Raymond |&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first&lt;/del&gt;=Eric S. |url=http://archive.org/details/newhackersdictio00raym |title=The New hacker&#039;s dictionary |last2=Steele |first2=Guy |date=1991 |location=Cambridge, Massachusetts| publisher = MIT Press |others=Internet Archive |isbn=978-0-262-68069-1}}&amp;lt;/ref&amp;gt; It teaches fundamental principles of [[computer programming]], including [[recursion]], [[Abstraction (computer science)|abstraction]], [[Modular programming|modularity]], and [[programming language]] [[Metalinguistic abstraction|design]] and [[Programming language implementation|implementation]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&#039;&#039;Structure and Interpretation of Computer Programs&#039;&#039;&#039;&#039;&#039; (&#039;&#039;&#039;&#039;&#039;SICP&#039;&#039;&#039;&#039;&#039;) is a [[computer science]] textbook by [[Massachusetts Institute of Technology]] professors [[Harold Abelson]] and [[Gerald Jay Sussman]] with Julie Sussman. It is known as the &quot;Wizard Book&quot; in [[hacker culture]].&amp;lt;ref&amp;gt;{{Cite book |&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last1&lt;/ins&gt;=Raymond |&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first1&lt;/ins&gt;=Eric S. |url=http://archive.org/details/newhackersdictio00raym |title=The New hacker&#039;s dictionary |last2=Steele |first2=Guy |date=1991 |location=Cambridge, Massachusetts| publisher = MIT Press |others=Internet Archive |isbn=978-0-262-68069-1}}&amp;lt;/ref&amp;gt; It teaches fundamental principles of [[computer programming]], including [[recursion]], [[Abstraction (computer science)|abstraction]], [[Modular programming|modularity]], and [[programming language]] [[Metalinguistic abstraction|design]] and [[Programming language implementation|implementation]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[MIT Press]] published the first edition in 1984, and the second edition in 1996. It was used as the textbook for MIT&amp;#039;s introductory course in [[computer science]] from 1984 to 2007. SICP focuses on discovering general [[Pattern|patterns]] for solving specific problems, and building [[Software system|software systems]] that make use of those patterns.&amp;lt;ref&amp;gt;{{Citation |last=Harvey |first=B |year=2011 |contribution-url=http://www.eecs.berkeley.edu/~bh/sicp.html |contribution=Why SICP matters? |title=The 150th anniversary of MIT |publisher=[[Boston Globe]]}}.&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[MIT Press]] published the first edition in 1984, and the second edition in 1996. It was used as the textbook for MIT&amp;#039;s introductory course in [[computer science]] from 1984 to 2007. SICP focuses on discovering general [[Pattern|patterns]] for solving specific problems, and building [[Software system|software systems]] that make use of those patterns.&amp;lt;ref&amp;gt;{{Citation |last=Harvey |first=B |year=2011 |contribution-url=http://www.eecs.berkeley.edu/~bh/sicp.html |contribution=Why SICP matters? |title=The 150th anniversary of MIT |publisher=[[Boston Globe]]}}.&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l85&quot;&gt;Line 85:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 85:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;[[Byte (magazine)|Byte]]&amp;#039;&amp;#039; recommended SICP in 1986 &amp;quot;for professional programmers who are really interested in their profession&amp;quot;. The magazine said that the book was not easy to read, but that it would expose experienced programmers to both old and new topics.&amp;lt;ref name=&amp;quot;kilov198611&amp;quot;&amp;gt;{{cite book|url=https://archive.org/details/byte-magazine-1986-11/page/n83/mode/1up|title=Byte Magazine Volume 11 Number 12: Knowledge Representation|date=November 1986|language=English |page=70 |last=Kilov |first=Haim}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;[[Byte (magazine)|Byte]]&amp;#039;&amp;#039; recommended SICP in 1986 &amp;quot;for professional programmers who are really interested in their profession&amp;quot;. The magazine said that the book was not easy to read, but that it would expose experienced programmers to both old and new topics.&amp;lt;ref name=&amp;quot;kilov198611&amp;quot;&amp;gt;{{cite book|url=https://archive.org/details/byte-magazine-1986-11/page/n83/mode/1up|title=Byte Magazine Volume 11 Number 12: Knowledge Representation|date=November 1986|language=English |page=70 |last=Kilov |first=Haim}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A review of SICP as an undergraduate textbook by [[Philip Wadler]] noted the weaknesses of the Scheme language as an introductory language for a computer science course.&amp;lt;ref&amp;gt;{{Cite journal |last=Wadler |first=P |date=1987-03-01 |title=A critique of Abelson and Sussman or why calculating is better than scheming |url=https://dl.acm.org/doi/10.1145/24697.24706 |journal=SIGPLAN &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Not. &lt;/del&gt;|volume=22 |issue=3 |pages=83–94 |doi=10.1145/24697.24706 |issn=0362-1340}}&amp;lt;/ref&amp;gt; Wadler criticized in particular the lack of [[pattern matching]], obscuring [[equational reasoning]] and making the teaching of proofs harder; the lack of [[Algebraic data type|algebraic data types]] in Scheme and the over-reliance on [[cons]] pairs for both code and data representation, which can confuse beginning students; and the choice of [[Strict evaluation|strict]] instead of [[lazy evaluation]] as the standard evaluation strategy.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A review of SICP as an undergraduate textbook by [[Philip Wadler]] noted the weaknesses of the Scheme language as an introductory language for a computer science course.&amp;lt;ref&amp;gt;{{Cite journal |last=Wadler |first=P |date=1987-03-01 |title=A critique of Abelson and Sussman or why calculating is better than scheming |url=https://dl.acm.org/doi/10.1145/24697.24706 |journal= &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ACM &lt;/ins&gt;SIGPLAN &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Notices&lt;/ins&gt;|volume=22 |issue=3 |pages=83–94 |doi=10.1145/24697.24706 |issn=0362-1340}}&amp;lt;/ref&amp;gt; Wadler criticized in particular the lack of [[pattern matching]], obscuring [[equational reasoning]] and making the teaching of proofs harder; the lack of [[Algebraic data type|algebraic data types]] in Scheme and the over-reliance on [[cons]] pairs for both code and data representation, which can confuse beginning students; and the choice of [[Strict evaluation|strict]] instead of [[lazy evaluation]] as the standard evaluation strategy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Influence ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Influence ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Headbomb</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Structure_and_Interpretation_of_Computer_Programs&amp;diff=54508&amp;oldid=prev</id>
		<title>imported&gt;Drummingman: Reverted edits by 2603:7000:7D00:6B70:F88:344E:9C5E:BF13 (talk) to last version by Reify-tech: nonconstructive edits</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Structure_and_Interpretation_of_Computer_Programs&amp;diff=54508&amp;oldid=prev"/>
		<updated>2025-03-10T21:16:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki143/index.php?title=WP:ROLLBACK&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:ROLLBACK (page does not exist)&quot;&gt;Reverted&lt;/a&gt; edits by &lt;a href=&quot;/wiki143/index.php?title=Special:Contributions/2603:7000:7D00:6B70:F88:344E:9C5E:BF13&quot; title=&quot;Special:Contributions/2603:7000:7D00:6B70:F88:344E:9C5E:BF13&quot;&gt;2603:7000:7D00:6B70:F88:344E:9C5E:BF13&lt;/a&gt; (&lt;a href=&quot;/wiki143/index.php?title=User_talk:2603:7000:7D00:6B70:F88:344E:9C5E:BF13&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:2603:7000:7D00:6B70:F88:344E:9C5E:BF13 (page does not exist)&quot;&gt;talk&lt;/a&gt;) to last version by Reify-tech: nonconstructive edits&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Computer science textbook}}&lt;br /&gt;
{{Redirect|SICP}}&lt;br /&gt;
{{Infobox book&lt;br /&gt;
| italic title = force&lt;br /&gt;
| name = Structure and Interpretation of Computer Programs (SICP)&lt;br /&gt;
| image = SICP cover.jpg&lt;br /&gt;
| caption = Cover of the second edition&lt;br /&gt;
| author = [[Harold Abelson]], [[Gerald Jay Sussman]], Julie Sussman&lt;br /&gt;
| cover_artist =&lt;br /&gt;
| country =&lt;br /&gt;
| series =&lt;br /&gt;
| subject = [[Computer science]]&lt;br /&gt;
| genre = [[Textbook]]&lt;br /&gt;
| publisher = [[MIT Press]]&lt;br /&gt;
| pub_date = 1984 (1st ed.), 1996 (2nd ed.), 2022 ([[Structure and Interpretation of Computer Programs, JavaScript Edition|JavaScript ed.]])&lt;br /&gt;
| media_type =&lt;br /&gt;
| pages = 657&lt;br /&gt;
| isbn = 0-262-51087-1&lt;br /&gt;
| isbn_note = (2nd ed.)&lt;br /&gt;
| oclc =&lt;br /&gt;
| dewey =&lt;br /&gt;
| congress = QA76.6 .A255 1996&lt;br /&gt;
| website = {{URL|mitpress.mit.edu/sicp}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Structure and Interpretation of Computer Programs&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;SICP&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) is a [[computer science]] textbook by [[Massachusetts Institute of Technology]] professors [[Harold Abelson]] and [[Gerald Jay Sussman]] with Julie Sussman. It is known as the &amp;quot;Wizard Book&amp;quot; in [[hacker culture]].&amp;lt;ref&amp;gt;{{Cite book |last=Raymond |first=Eric S. |url=http://archive.org/details/newhackersdictio00raym |title=The New hacker&amp;#039;s dictionary |last2=Steele |first2=Guy |date=1991 |location=Cambridge, Massachusetts| publisher = MIT Press |others=Internet Archive |isbn=978-0-262-68069-1}}&amp;lt;/ref&amp;gt; It teaches fundamental principles of [[computer programming]], including [[recursion]], [[Abstraction (computer science)|abstraction]], [[Modular programming|modularity]], and [[programming language]] [[Metalinguistic abstraction|design]] and [[Programming language implementation|implementation]].&lt;br /&gt;
&lt;br /&gt;
[[MIT Press]] published the first edition in 1984, and the second edition in 1996. It was used as the textbook for MIT&amp;#039;s introductory course in [[computer science]] from 1984 to 2007. SICP focuses on discovering general [[Pattern|patterns]] for solving specific problems, and building [[Software system|software systems]] that make use of those patterns.&amp;lt;ref&amp;gt;{{Citation |last=Harvey |first=B |year=2011 |contribution-url=http://www.eecs.berkeley.edu/~bh/sicp.html |contribution=Why SICP matters? |title=The 150th anniversary of MIT |publisher=[[Boston Globe]]}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIT Press published a [[JavaScript]] version of the book in 2022.&amp;lt;ref&amp;gt;{{Cite book |publisher=MIT Press |year=2022 |url=https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-1 |title=Structure and Interpretation of Computer Programs: JavaScript Edition |isbn=9780262543231}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
The book describes computer science concepts using [[Scheme (programming language)|Scheme]], a dialect of [[Lisp (programming language)|Lisp]]. It also uses a [[virtual machine|virtual]] [[register machine]] and [[Assembly language#Assembler|assembler]] to implement Lisp [[Interpreter (computing)|interpreters]] and [[compiler]]s.&lt;br /&gt;
&lt;br /&gt;
Topics in the books are:&lt;br /&gt;
&lt;br /&gt;
=== Chapter 1: Building [[Abstraction (computer science)|Abstractions]] with [[Function (computer programming)|Procedures]] ===&lt;br /&gt;
# The Elements of Programming&lt;br /&gt;
# Procedures and the [[Process (computing)|Processes]] They Generate&lt;br /&gt;
# Formulating Abstractions with Higher-Order Procedures&lt;br /&gt;
&lt;br /&gt;
=== Chapter 2: Building Abstractions with [[Data]] ===&lt;br /&gt;
# Introduction to Data Abstraction&lt;br /&gt;
# Hierarchical Data and the [[Closure (mathematics)|Closure Property]]&lt;br /&gt;
# Symbolic Data&lt;br /&gt;
# Multiple Representations for Abstract Data&lt;br /&gt;
# Systems with Generic Operations&lt;br /&gt;
&lt;br /&gt;
=== Chapter 3: Modularity, [[Object (computer science)|Objects]], and [[State (computer science)|State]] ===&lt;br /&gt;
# [[Assignment (computer science)|Assignment]] and [[Local variable|Local State]]&lt;br /&gt;
# The Environment Model of Evaluation&lt;br /&gt;
# Modeling with Mutable Data&lt;br /&gt;
# [[Concurrency (computer science)|Concurrency]]: Time Is of the Essence&lt;br /&gt;
# Streams&lt;br /&gt;
&lt;br /&gt;
=== Chapter 4: [[Metalinguistics|Metalinguistic]] Abstraction ===&lt;br /&gt;
# The [[Meta-circular evaluator|Metacircular Evaluator]]&lt;br /&gt;
# Variations on a Scheme – [[Lazy evaluation|Lazy Evaluation]]&lt;br /&gt;
# Variations on a Scheme – [[Nondeterministic algorithm|Nondeterministic Computing]]&lt;br /&gt;
# [[Logic programming|Logic Programming]]&lt;br /&gt;
&lt;br /&gt;
=== Chapter 5: Computing with [[Register machine|Register Machines]] ===&lt;br /&gt;
# Designing [[Register machine|Register Machines]]&lt;br /&gt;
# A Register-Machine Simulator&lt;br /&gt;
# [[Register allocation|Storage Allocation]] and [[Garbage collection (computer science)|Garbage Collection]]&lt;br /&gt;
# The Explicit-Control Evaluator&lt;br /&gt;
# Compilation&lt;br /&gt;
&lt;br /&gt;
== Characters ==&lt;br /&gt;
Several humorously-named fictional characters appear in the book:&lt;br /&gt;
* Alyssa P. Hacker, a Lisp [[hacker]]&lt;br /&gt;
* Ben Bitdiddle&lt;br /&gt;
* [[Side effect (computer science)|Cy D. Fect]], a &amp;quot;reformed C programmer&amp;quot;&lt;br /&gt;
* [[Evaluator|Eva Lu Ator]]&lt;br /&gt;
* Lem E. Tweakit&lt;br /&gt;
* Louis Reasoner, a &amp;quot;loose reasoner&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
The book is licensed under a [[Creative Commons]] Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.&amp;lt;ref&amp;gt;{{Cite web |url=http://mitpress.mit.edu/sicp/ |title=SICP |publisher=MIT Press |access-date=2007-11-11 |archive-date=2017-12-26 |archive-url=https://web.archive.org/web/20171226134539/http://mitpress.mit.edu/sicp/ |url-status=dead }}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Coursework ==&lt;br /&gt;
The book was used as the textbook for MIT&amp;#039;s former introductory programming course, 6.001,&amp;lt;ref&amp;gt;{{cite web |url=https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/ |title=Electrical Engineering and Computer Science; 6.001 Structure and Interpretation of Computer Programs |date=Spring 2005 |website=OpenCourseWare |publisher=MIT |access-date=2020-06-21}}&amp;lt;/ref&amp;gt; from fall 1984 through its last semester, in fall 2007.&amp;lt;ref&amp;gt;{{Citation |first=Donald |last=Guy |quote=I talked to Professor Sussman on the phone... He said that he&amp;#039;d actually been trying to have 6.001 replaced for the last ten years (and I read somewhere that Professor Abelson was behind the move too). Understanding the principles is not essential for an introduction to the subject matter anymore. He sees 6.001 as obsolete. |url=http://mitadmissions.org/blogs/entry/the_end_of_an_era_1 |archive-url=https://web.archive.org/web/20180821202714/http://mitadmissions.org/blogs/entry/the_end_of_an_era_1 |url-status=dead |archive-date=2018-08-21 |title=MIT Admissions |type=blog comment |contribution=The End of an Era |access-date=2008-08-05}}&amp;lt;/ref&amp;gt; Other schools also made use of the book as a course textbook.&amp;lt;ref&amp;gt;{{cite web |url=https://mitpress.mit.edu/sites/default/files/sicp/adopt-list.html |title=Universities and Colleges Using SICP |publisher=MIT Press |access-date=2022-03-30 |archive-date=2022-04-23 |archive-url=https://web.archive.org/web/20220423072605/https://mitpress.mit.edu/sites/default/files/sicp/adopt-list.html |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reception ==&lt;br /&gt;
&amp;#039;&amp;#039;[[Byte (magazine)|Byte]]&amp;#039;&amp;#039; recommended SICP in 1986 &amp;quot;for professional programmers who are really interested in their profession&amp;quot;. The magazine said that the book was not easy to read, but that it would expose experienced programmers to both old and new topics.&amp;lt;ref name=&amp;quot;kilov198611&amp;quot;&amp;gt;{{cite book|url=https://archive.org/details/byte-magazine-1986-11/page/n83/mode/1up|title=Byte Magazine Volume 11 Number 12: Knowledge Representation|date=November 1986|language=English |page=70 |last=Kilov |first=Haim}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A review of SICP as an undergraduate textbook by [[Philip Wadler]] noted the weaknesses of the Scheme language as an introductory language for a computer science course.&amp;lt;ref&amp;gt;{{Cite journal |last=Wadler |first=P |date=1987-03-01 |title=A critique of Abelson and Sussman or why calculating is better than scheming |url=https://dl.acm.org/doi/10.1145/24697.24706 |journal=SIGPLAN Not. |volume=22 |issue=3 |pages=83–94 |doi=10.1145/24697.24706 |issn=0362-1340}}&amp;lt;/ref&amp;gt; Wadler criticized in particular the lack of [[pattern matching]], obscuring [[equational reasoning]] and making the teaching of proofs harder; the lack of [[Algebraic data type|algebraic data types]] in Scheme and the over-reliance on [[cons]] pairs for both code and data representation, which can confuse beginning students; and the choice of [[Strict evaluation|strict]] instead of [[lazy evaluation]] as the standard evaluation strategy.&lt;br /&gt;
&lt;br /&gt;
== Influence ==&lt;br /&gt;
SICP has been influential in computer science education, and several later books have been inspired by its style.&lt;br /&gt;
* &amp;#039;&amp;#039;[[Structure and Interpretation of Classical Mechanics]] (SICM)&amp;#039;&amp;#039;, another book that uses Scheme as an instructional element, by Gerald Jay Sussman and Jack Wisdom&lt;br /&gt;
* &amp;#039;&amp;#039;[[Software Design for Flexibility]]&amp;#039;&amp;#039;, by Chris Hanson and Gerald Jay Sussman&lt;br /&gt;
* &amp;#039;&amp;#039;[[How to Design Programs]] (HtDP)&amp;#039;&amp;#039;, which intends to be a more accessible book for introductory Computer Science, and to address perceived deficiencies in SICP&lt;br /&gt;
* &amp;#039;&amp;#039;[[Essentials of Programming Languages]] (EoPL)&amp;#039;&amp;#039;, a book for Programming Languages courses&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* &amp;#039;&amp;#039;[[Compilers: Principles, Techniques, and Tools]]&amp;#039;&amp;#039;{{snd}} also known as &amp;#039;&amp;#039;The Dragon Book&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{Official website|mitpress.mit.edu/sicp}}&lt;br /&gt;
* [https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video_galleries/video-lectures/ Video lectures]&lt;br /&gt;
* [https://media.githubusercontent.com/media/sarabander/sicp-pdf/master/sicp.pdf Book compiled from TeX source]&lt;br /&gt;
* [https://xuanji.appspot.com/isicp/ Structure and Interpretation of Computer Programs. Interactive Version]&lt;br /&gt;
&lt;br /&gt;
{{Lisp programming language}}&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
[[Category:1984 non-fiction books]]&lt;br /&gt;
[[Category:1996 non-fiction books]]&lt;br /&gt;
[[Category:Computer science books]]&lt;br /&gt;
[[Category:Computer programming books]]&lt;br /&gt;
[[Category:Creative Commons-licensed books]]&lt;br /&gt;
[[Category:Massachusetts Institute of Technology]]&lt;br /&gt;
[[Category:Scheme (programming language)]]&lt;br /&gt;
[[Category:Lisp (programming language)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Drummingman</name></author>
	</entry>
</feed>