Structure and Interpretation of Computer Programs, JavaScript Adaptation

Structure and Interpretation of Computer Programs, JavaScript Adaptation (SICP JS) is an adaptation of the computer science textbook Structure and Interpretation of Computer Programs (SICP). It teaches fundamental principles of computer programming, including recursion, abstraction, modularity, and programming language design and implementation. While the original version of SICP uses the programming language Scheme, this adaptation uses the programming language JavaScript.

Structure and Interpretation of Computer Programs, JavaScript Adaptation
cover of the online edition
AuthorMartin Henz and Tobias Wrigstad with Chan Ger Hean, Feng Piaopiao, Jolyn Tan, and Liu Hang
SubjectComputer science
GenreTextbook
PublisherNational University of Singapore
Publication date
2012 (1st ed.), 2019 (current public release)
Pages718
Websitesicp.comp.nus.edu.sg

The National University of Singapore published draft editions online since 2012, and a first public release on December 13 2019. As of 2019, the book is continuously updated and improved by the community of its readers.[1] It has been used in NUS's introductory course in computer science. As its original, SICP JS focuses on discovering general patterns for solving specific problems, and building software systems that make use of those patterns.[2]

Content

The book describes computer science concepts using Source, a series of sublanguages of JavaScript. It also uses a virtual register machine and assembler to implement JavaScript interpreters and compilers.

License

The text of the book is licensed under a Creative Commons Attribution NonCommercial ShareAlike 4.0 License, while the programs are licensed under the GNU Public Licence 3.0.

Origin

SICP JS has been used in the course CS1101S[3] at the National University of Singapore (NUS) since 2012.[4]

Differences to the original textbook

While the book focuses on principles, models and abstractions for programming rather than specific programming languages, all examples in the original version are written in the programming language Scheme. SICP JS uses the language JavaScript instead of Scheme. Since JavaScript shares its functional core with Scheme, the adaptation is straightforward and literal in most places. Scheme's homoiconicity is replaced by references to an explicit parser in Chapters 4 and 5.

Source

Source is a series of sublanguages of JavaScript, originally inspired by JavaScript: The Good Parts., Douglas Crockford. It comprises the languages Source §1, Source §2, Source §3 and Source §4, corresponding to the respective chapters of SICP JS. Each language is a sublanguage of the next, and designed to contain only features needed by the respective chapter. These languages are implemented by the Source Academy[5], a web-based programming environment that features various tools to support the readers of SICP JS.

See also

References

  1. "SICP JS on github". NUS. 2019. Retrieved 2019-12-23.
  2. Harvey, B (2011), "Why SICP matters?", The 150th anniversary of MIT, Boston Globe.
  3. "Department of Computer Science; CS1101S Programming Methodology". NUS. Fall 2019. Retrieved 2019-12-23.
  4. "Structure and Interpretation of Computer Programs, JavaScript Adaptation". NUS. 2019. Retrieved 2019-12-23.
  5. "Source Academy". NUS. 2019. Retrieved 2019-12-23.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.