The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Presents the introductory welcome message from the conference proceedings. May include the conference officers' congratulations to all involved with the conference event and publication of the proceedings record.
We are currently developing PyBlocks, a blocks-based environment which allows novice programmers to construct and execute Python programs. In the initial design of PyBlocks [1], Python's basic data types and lists are represented using colors, every expression block is colored according to its type, and each unfilled slot contains color indicating all valid argument types. In this paper we extend...
Grasshopper is an Android application which teaches people JavaScript through a series of coding puzzles. As part of this application, we developed an AST-based JavaScript editor for the phone. The visual representation of the code is built using the AST as the source of truth, and user actions modify the AST rather than a code string, much like a block code editor. At the same time, we style this...
Block-based languages are a useful scaffold for novice programmers to create syntactically correct code. However, block environments that attempt to represent feature-rich languages, such as Python or Java, face serious usability and pedagogical challenges. How can the affordances and controls of a block be exposed, without over-complicating the block's interface and obscuring its meaning to the user?...
Blockly is an open source library that makes it easy to add block based visual programming to an app. It is designed to be flexible and supports a large set of features for different applications. It has been used for programming animated characters on a screen; creating story scripts; controlling robots; and even generating legal documents. But Blockly is not itself a language; developers who use...
There is wide consensus that most people should have some programming capability, whether to control the Internet of Things, or to analyse the world of data around them. While some people focus on teaching conventional text-based languages like Javascript or Python, there is evidence that visual programming languages are more accessible for naive programmers. Visual programming languages fall into...
The block-based approach to programming is an effective way to engage young learners in programming and the powerful ideas of computing. In this paper, we explore the potential of using this same approach in a very different programming context: industrial robotics. Using a customized language built with the Blockly library, we created a block-based interface for programming a one-armed industrial...
We present a block-based language for specifying feedback to novice learners about the programs they are constructing in a block-based programming language. In addition to feedback based on run-time and output checking, we are particularly interested in immediate feedback: corrective guidance given as the program is being constructed. Immediate feedback is a natural extension of the block-based language...
The current generation of block languages, with its focus on teaching programming to novices, has not been designed for professionals. In this paper, we argue that blocks-based languages aimed at professional end-user developers face requirements that present challenges to the user interface design of such languages. We discuss three aspects that set potential professional use of block interfaces...
Experience Sampling Method (ESM) studies repeatedly survey participants on their behaviours and experiences as they go about their everyday lives. Smartphones afford an ideal platform for ESM study applications as devices seldom leave their users, and can automatically sense surrounding context to augment subjective survey responses. ESM studies are employed in fields such as psychology and social...
While formal mathematical reasoning is the cornerstone of computer science, undergraduates often fail to appreciate the value of mathematical proof in their studies. To alleviate this problem, we propose a novel pedagogy uniting logical reasoning with proofs of program correctness along with a proof assistant, ORC2A, that helps students author proofs in this domain. One of the defining features of...
Block-based programming environments are a good way to teach beginners how to code, in part because they eliminate syntax errors and provide visual feedback. However, many of the existing environments do not explicitly support synchronous collaboration. Collaboration is a critical component of computer science practice and CS education. We therefore argue that features to support collaboration could...
Block-based programming environments are typically designed for desktop machines or mobile devices. Desktops and mobiles are generally designed for single users to interact with, which makes it hard for multiple users to collaborate effectively. In this paper we explore the possibilities of digital multi-touch tabletops to foster collaborative programming in a block-based paradigm. We note both the...
Block-oriented programming environments, such as Scratch and AppInventor, have become mainstream and have helped introduce non-programmers to algorithmic thinking; that is, to computational thinking (CT) skills. In various experiments, referenced in this paper, we observed how objects (tangibles) augmented with digital properties — that is, tangible user interface (TUI) objects — can help develop...
Block-based programming environments make learning to program easier by allowing learners to focus on concepts rather than syntax. However, these environments offer little support when learners encounter difficulty with programming concepts themselves, especially in the absence of instructors. Textual programming environments increasingly use AI and data mining to provide intelligent, adaptive support...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.