Computational Thinking with the Web Crowd Using Codemapper∗
Total Page:16
File Type:pdf, Size:1020Kb
Computational Thinking with the Web Crowd using CodeMapper∗ Patrick Vanvorce Hasan M. Jamil Department of Computer Science Department of Computer Science University of Idaho, USA University of Idaho, USA ([email protected] [email protected] ABSTRACT ACM Reference format: It has been argued that computational thinking should precede com- Patrick Vanvorce and Hasan M. Jamil. 2019. Computational inking with the Web Crowd using CodeMapper. In Proceedings of Conference, Date, Year, puter programming in the course of a career in computing. is Location., , 8 pages. argument is the basis for the slogan “logic rst, syntax later” and DOI: hp://dx.doi.org/DOI the development of many cryptic syntax removed programming languages such as Scratch!, Blockly and Visual Logic. e goal is to focus on the structuring of the semantic relationships among the logical building blocks to yield solutions to computational prob- 1 INTRODUCTION lems. While this approach is helping novice programmers and e dierences between computing and computational thinking are early learners, the gap between computational thinking and pro- signicant and can be explained in a number of ways. According to fessional programming using high level languages such as C++, Jeannee Wing [30], ”computational thinking confronts the riddle Python and Java is quite wide. It is wide enough for about one of machine intelligence: What can humans do beer than comput- third students in rst college computer science classes to drop out ers, and what can computers do beer than humans? Most funda- or fail. In this paper, we introduce a new programming platform, mentally, it addresses the question: What is computable? Today, called the CodeMapper, in which learners are able to build com- we know only parts of the answers to such questions.” In particular, putational logic in independent modules and aggregate them to computational thinking is 1) conceptualizing, not programming, create complex modules. CodeMapper is an abstract development 2) a way that humans, not computers, think, 3) complements and environment in which rapid visual prototyping of small to substan- combines mathematical and engineering thinking, and 4) it is ideas, tially large systems is possible by combining already developed not artifacts. Our MindReader project [11] aims at implementing independent modules in logical steps. e challenge we address these ideas into a system for online autonomous learning. involves supporting a visual development environment in which Millions of K-12 students by now are conversant in the graphical “annotated code snippets” authored by the masses in social com- language Scratch (developed at MIT). However, the language is puting sites such as SourceForge, StackOverow or GitHub can incredibly clunky if one wants to go beyond what it is designed to also be used as is into prototypes and mapped to real executable do (make simple games). A derivative language, Snap! (developed programs. CodeMapper thus facilitates so transition from visual at UC Berkeley), expands its horizons, making functions practical, programming to syntax driven programming without having to enabling object oriented programming, and xing other deciencies practice syntax too heavily. in Scratch. Yet, many educators believe that it is a fantasy to expect the masses to transition from Scratch (or Snap!) to what we now CCS CONCEPTS think of as conventional programming languages such as C++, •eory of computation →Semantics and reasoning; Design Python or Java. A more plausible future is for specialized languages and analysis of algorithms; •Human-centered computing →Social to spring up that make use of the conventions of Scratch/Snap! content sharing; Collaborative content creation; Blogs; but incorporate the knowledge and concepts of a eld of interest arXiv:1811.04162v1 [cs.CY] 9 Nov 2018 to a target audience. It isn’t dicult to see a world where almost KEYWORDS everyone speaks Scratch (like almost everyone knows algebra), and Computational thinking; imperative programming; rapid prototyp- when we go into, for example, molecular biology, we naturally ing; crowd-computing; conceptual programming adopt Scratch/Genome, or if one wants to go into accounting, she adopts Scratch/Accounting. In other words, a discipline specic ∗Research was supported in part by National Science Foundation Grant DRL 1515550. toolbox or plug-in will tailor how the programming environment would interface with its users. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed While comparative student-learning behaviors in dierent STEM for prot or commercial advantage and that copies bear this notice and the full citation (Science, Technology, Engineering and Mathematics) areas is un- on the rst page. Copyrights for components of this work owned by others than the known, anecdotally it is believed that biologists usually prefer author(s) must be honored. Abstracting with credit is permied. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specic permission abstract graphical tools more than physicists or mathematicians and/or a fee. Request permissions from [email protected]. who prefer details. So, it is not surprising that computational physi- Conference, Date, Year, Location. cists insist on a more hands on computer programming experience © 2019 Copyright held by the owner/author(s). Publication rights licensed to ACM. ISBN ISBN...$15.00 than computational biologists advocating visual or NLP based pro- DOI: hp://dx.doi.org/DOI gramming. We believe that students in dierent disciplines from dierent background have unique learning trait and learn dier- SoureForge or GitHub. e origin of the concept of crowd comput- ently. us, contrary to the idea that one language with discipline ing [1] as a distinct discipline can be traced back to its informal specic toolboxes or plugins is the way forward, we assemble a roots to sites such as these. While crowd computing and debug- constellation of programming environments in MindReader that ging [5, 28] opened up new ways learners and practitioners can is discipline agnostic, but learning style specic, that will allow a improve and sharpen their skills, they do not directly contribute to learner to move between the environments based on her comfort the learners’ own program development processes. In CodeMapper, zone. We believe by keeping in view what computational thinking we aim to leverage the crowd to aid eortless abstract program is about, and learners’ individuality, we are able to design a truly development to support the goal of reducing transitional cost from impactful system to support the vision of the educational standards block-based to text-based coding for budding programmers. such as “Common Core State Standards Initiative” (CCSS) [2] and “Next Generation Science Standard” (NGSS) [23]. 2.1 e Main Idea Behind CodeMapper CodeMapper’s visual interface allows learners to stay in their con- 2 SOCIAL PROGRAMMING USING ceptual world similar to a block-based programming environment CROWD-SOURCED MODULES and yet write computer programs in a text-based imperative lan- guage such as Java, C++ or Python. In this world, solutions to prob- Programming can be challenging for young programmers and lems are still a series of logical steps with well dened meanings, STEM learners due to a host of reasons with abstract thinking, and any arbitrary implementation of these steps in any program- complex syntax, mapping seemingly simple steps into algorithms, ming language will eventually amount to an executable program. etc. being the leading ones. For K-12 and early college STEM CodeMapper consists of a database D of concepts C, a concept learners, a substantial number of online teaching, tutoring and hierarchy H, a concept to program mapper µ, and a program ag- assessment systems are emerging with various degrees of impact. gregator α. A concept c 2 C is an arbitrary code fragment in an In most part, these systems and tools have done lile to reduce imperative language in the concept hierarchy H which is organized high drop-out rates [27], or to aid learning, and resource strapped into a generalization-specialization hierarchy DAG, e.g., merge sort institutions continue to struggle to nd beer ways to train new and insertion sort are sorts. But merge sort itself can be broken century workforce conversant in computing [26]. down to the following steps, and thus is an aggregation of three One of the critical decisions educators have been grappling with concepts – divide list, merge sort a list, and merge two sorted lists. is how much exposure to programming is enough to make stu- dents interested and ultimately procient in professional system (1) Divide the list in half building [25], and what languages to choose for this purpose [18]. (2) If the rst half has only one element, return element, oth- While computational thinking is not specic about any language, erwise merge sort the rst half it is imperative that one or a set of programming platforms, e.g., (3) If the second half has only one element, return element, block based (e.g., Scratch, Snap!, Alice), declarative (e.g., Prolog, otherwise merge sort the second half Clasp), imperative (e.g., C++, Java, Python), visual (e.g., Visual (4) Merge both halves back together Logic, Cameleon, Snap!), programming by example (e.g., Foofah, Each concept c is either harvested from social computing sites BlinkFill) or natural language (e.g., AppleScript, Metafor, Flip) such as StackOverow, SoureForge or GitHub, or are wrien by among many other possible alternatives, need to be chosen. While learners themselves, and are independent code segments. ey the answers to these questions are still outstanding, most programs are wrien in modular forms such as formal procedures or func- use an imperative language as the main platform even if they start tions and not necessarily wrien keeping variable name or type o with a language such as Scratch.