You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Source Academy

From EverybodyWiki Bios & Wiki



Script error: No such module "Draft topics". Script error: No such module "AfC topic".

Source Academy
Screenshot of Source Academy, factorial example
Screenshot of Source Academy, factorial example
Developer(s)Source Academy Organization
Initial releaseCadet / 31 July 2018; 5 years ago (2018-07-31)
Stable release
Rook / 31 December 2021; 2 years ago (2021-12-31)
Written inTypeScript
Engine
    Operating systemweb_application
    PlatformChrome, Firefox
    Available inEnglish
    TypeProgramming tool, integrated development environment (IDE)
    LicenseApache

    Search Source Academy on Amazon.

    Source Academy is a web-based open-source integrated development environment (IDE) used for teaching computer programming in the programming languages JavaScript and Source, developed for the textbook Structure and Interpretation of Computer Programs, JavaScript Edition (SICP JS). In addition to JavaScript, it implements the JavaScript sublanguages Source §1, Source §2, Source §3, and Source §4, which are designed to be just expressive enough to support all examples of the respective chapter of the textbook. The IDE supports the main mental models for program evaluation of SICP JS with custom-built debugging tools: the substitution model with a stepper tool,[1] and the environment model with an environment model visualizer.[2]

    Licensing[edit]

    Source Academy is released by the Source Academy Organization under an Apache license.[3] The SICP JS textbook (integrated in Source Academy) is released under a Creative Commons license, and the programs in SICP JS are covered by the GNU General Public License Version 3.

    Releases[edit]

    Since 2018, Source Academy saw a major release every two years.

    Version name Date Main changes
    Cadet July 2018 -
    Knight January 2020 Advanced editing features, stepper, environment model visualizer
    Rook December 2021 Modules, full-JavaScript support, SICP JS integration

    Architecture[edit]

    Source Academy is a web application developed in TypeScript using React JS. The programming language implementations are factored out into a separate Node.js package called js-slang.[4] The sections of the interactive edition of SICP JS are dynamically loaded from the textbook repository.[5]

    Robotics[edit]

    Source Academy provides extensive support for robotics programming, using a compiler to a virtual machine language SVML and an automated workflow for running compiled robot control software on a virtual machine deployed on the robot.[6] The virtual machine for SVML is ported to the Android and EV3 operating systems.[7][8]

    Modules[edit]

    Source Academy supports the dynamic loading of JavaScript modules from trusted modules repositories[9] using JavaScript's import syntax. For example, the sound module allows the programming of additive functional audio processing,[10] and the modules rune, curve, and pix_n_flix support online graphics and video stream processing.[11]

    Extension[edit]

    Source Academy @ NUS is an extension of Source Academy designed for teaching courses based on SICP JS.[12] It features an Elixir-based backend for keeping track of student submissions of exercise assignments, and for manual and automated grading of submissions. A system for storing and visualizing student achievements and an optional graphic-novel-style game enhance student motivation. Instructors can create new courses, manage students and staff for their courses, and upload exercise assignments.

    References[edit]

    1. Henz, Martin; Tan, Thomas; Chua, Zachary; Jung, Peter; Tan, Yee-Jian; Zhang, Xinyi; Zhao, Jingjing (20 October 2021). "A Stepper for a Functional JavaScript Sublanguage". International Symposium on SPLASH-E. Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2021). New York, NY: ACM SIGPLAN. pp. 65–70. doi:10.1145/3484272.3484968.
    2. Anderson, Boyd; Henz, Martin; Low, Kok-Lim; Tan, Daryl (20 October 2021). "Shrinking JavaScript for CS1". International Symposium on SPLASH-E. Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2021). New York, NY: ACM SIGPLAN. pp. 65–70. doi:10.1145/3484272.3484970.
    3. "Source Academy Organization". Github organization. 2020. Retrieved 2022-03-22.
    4. "NPM package js-slang". Source Academy. 2020. Retrieved 2022-03-22.
    5. "SICP on Github". Source Academy. 2020. Retrieved 2022-03-22.
    6. Anderson, Boyd; Henz, Martin; Tee, Hao-Wei (20 October 2021). "Ruggedizing CS1 Robotics: Tools and Approaches for Online Teaching". International Symposium on SPLASH-E. Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2021). New York, NY: ACM SIGPLAN. pp. 65–70. doi:10.1145/3484272.3484969.
    7. "SVML Specification". Source Academy. 2021. Retrieved 2022-03-22.
    8. "Sinter virtual machine on Github". Source Academy. 2021. Retrieved 2022-03-22.
    9. "Source Academy modules on github". Source Academy. 2020. Retrieved 2022-03-22.
    10. Henz, Martin; Koh, Shang-Hui; Sounderraman, Samyukta (20 October 2021). "Teachable Moments in Functional Audio Processing". International Symposium on SPLASH-E. Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2021). New York, NY: ACM SIGPLAN. pp. 65–70. doi:10.1145/3484272.3484967.
    11. "Source Academy modules documentation". Source Academy. 2020. Retrieved 2022-03-22.
    12. "Source Academy @ NUS". Retrieved 24 March 2022.

    Sources[edit]

    External links[edit]



    This article "Source Academy" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Source Academy. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.