In teaching and learning programming at first-year-university level, simple languages with small feature sets are preferable over industry-strength languages with extensive feature sets, to reduce the learners’ cognitive load. At the same time, there is increasing pressure to familiarise students with mainstream languages early in their learning journey, and these languages accumulate features as years go by. In response to these competing requirements, we developed Source, a collection of JavaScript sublanguages with feature sets just expressive enough to introduce first-year computer science students to the elements of computation. These languages are supported by a web-based programming environment custom-built for learning at beginner’s level, which provides transpiler, interpreter, virtual machine, and algebraic-stepper-based implementations of the languages, and includes tracing, debugging, visualization, type-inference, and smart-editor features. This paper motivates the choice of JavaScript as starting point and describes the syntax and semantics of the Source languages compared to their parent language, and their implementations in the system. We report our experiences in developing and improving the languages and implementations over a period of three years, teaching a total of 1561 computer science first-year students at a university.
Wed 20 OctDisplayed time zone: Central Time (US & Canada) change
13:50 - 15:10 | |||
13:50 20mTalk | PaCon: A Symbolic Analysis Approach for Tactic-Oriented Clustering of Programming Submissions SPLASH-E Yingjie Fu Peking University, Jonathan Osei-Owusu University of Illinois at Urbana-Champaign, Angello Astorga University of Illinois at Urbana-Champaign, Zirui Neil Zhao University of Illinois at Urbana-Champaign, Wei Zhang Peking University, Tao Xie Peking University DOI | ||
14:10 20mTalk | Shrinking JavaScript for CS1 SPLASH-E Boyd Anderson National University of Singapore, Martin Henz National University of Singapore, Kok-Lim Low National University of Singapore, Daryl Tan National University of Singapore DOI | ||
14:30 20mTalk | A Stepper for a Functional JavaScript Sublanguage SPLASH-E Martin Henz National University of Singapore, Thomas Tan National University of Singapore, Zachary Chua National University of Singapore, Peter Jung National University of Singapore, Yee-Jian Tan National University of Singapore, Xinyi Zhang National University of Singapore, Jingjing Zhao National University of Singapore DOI | ||
14:50 15mTalk | Course Experience Report: Full-Class Compiler Collaboration SPLASH-E Joe Gibbs Politz University of California at San Diego, Yousef Alhessi University of California at San Diego DOI |