Pedagogy in Teaching Computer Science in Schools: a Literature Review. Royal Society
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Digital Flowchart Maker
Bachelor thesis Computing Science Radboud University Digital flowchart maker How do we aid the learning of programming? Author: First supervisor/assessor: Frank Gerlings J.E.W. (Sjaak) Smetsers s4384873 [email protected] Second supervisor/assessor: MSc T.J. (Tim) Steenvoorden [email protected] December 12, 2018 Abstract Learning the basics of programming can be hard. Worldwide efforts try to teach people programming but there still is an ongoing shortage of pro- grammers. This thesis tries to make it easier to understand the basic concept of control flow. We will start by identifying a way to separate programming into al- gorithmic thinking and coding by using flowcharts and argue that making flowcharts can be made easier by constructing them digitally. We will ask ourselves what a flowchart creating tool should look like, delve into three different designs for such tools and finally choose one and work out a tool around it. To see how well our tool supports the process of learning how to program, we will test our tool by observing and interviewing students while they use it. In the results we will see that adding and deleting nodes and choosing specific node types goes fairly well. However, we will see that editing content of nodes is hindering the students. These problems seem to originate from technical limitations, rather than design flaws. Acknowledgements First off, I would like to thank Sjaak Smetsers and Tim Steenvoorden, my research supervisors, for their ceaseless help throughout the project. Even though the project took longer than expected, they never hesitated to show me how to do research and write a thesis. -
Flow2code - from Hand-Drawn Flowchart to Code Execution
FLOW2CODE - FROM HAND-DRAWN FLOWCHART TO CODE EXECUTION A Thesis by JORGE IVAN HERRERA CAMARA Submitted to the Office of Graduate and Professional Studies of Texas A&M University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Chair of Committee, Tracy Hammond Committee Members, Thomas Ioerger Zenon Medina-Cetina Head of Department, Dilma Da Silva May 2017 Major Subject: Computer Science Copyright 2017 Jorge Ivan Herrera Camara ABSTRACT Flowcharts play an important role when learning to program by conveying algorithms graphically and making them easy to read and understand. When learning how to code with flowcharts and transitioning between the two, people often use computer based soft- ware to design and execute the algorithm conveyed by the flowchart. This requires the users to learn how to use the computer-based software first, which often leads to a steep learning curve. We claim that the learning curve can be decremented by using off-line sketch recog- nition and computer vision algorithms on a mobile device. This can be done by drawing the flowchart on a piece of paper and using a mobile device with a camera to capture an image of the flowchart. Flow2Code is a code flowchart recognizer that allows the users to code simple scripts on a piece of paper by drawing flowcharts. This approach attempts to be more intuitive since the user does not need to learn how to use a system to design the flowchart. Only a pencil, a notebook with white pages, and a mobile device are needed to achieve the same result. -
Computational Thinking Patterns
Computational Thinking Patterns Andri Ioannidou, Agentsheets Inc., Boulder, CO Vicki Bennett, Communication Department, University of Colorado at Boulder Alexander Repenning, Kyu Han Koh, Ashok Basawapatna, Computer Science Department, University of Colorado at Boulder Paper presented at the 2011 Annual Meeting of the American Educational Research Association (AERA) in the Division C - Learning and Instruction / Section 7: Technology Research symposium “Merging Human Creativity and the Power of Technology: Computational Thinking in the K-12 Classroom” Publication Date: April 8, 2011 Objectives The iDREAMS project aims to reinvent Computer Science education in K-12 schools, by using game design and computational science for motivating and educating students through an approach we call Scalable Game Design, starting at the middle school level. In this paper we discuss the use of Computational Thinking Patterns as the basis for our Scalable Game Design curriculum and professional development and present results from measuring student learning outcomes using our unique Computational Thinking Pattern Analysis. Background: Scalable Game Design project The iDREAMS project1 (Integrative Design-based Reform-oriented Educational Approach for Motivating Students), funded by the National Science Foundation under the ITEST program, investigates the potential impact on the IT workforce by stimulating interest in computer science at the middle school level through an approach called Scalable Game Design (Repenning & Ioannidou, 2008; Repenning, Ioannidou, et al., 2010; Repenning, Webb, & Ioannidou, 2010). The main goal of this project is to increase opportunities for computer science education in the regular curriculum and broaden participation, especially of women and underrepresented communities, by motivating and educating students about computer science through game design and computational science. -
Tools, Languages, and Environments Used in Primary and Secondary Computing Education
Session: Computing in Schools I ITiCSE ’20, June 15–19, 2020, Trondheim, Norway Tools, Languages, and Environments Used in Primary and Secondary Computing Education Monica M. McGill Adrienne Decker Knox College University at Buffalo CSEdResearch.org Buffalo, NY, USA Galesburg, IL, USA [email protected] [email protected] ABSTRACT an increased interest in the tools, languages, and environments 1 With the advent of teaching primary and secondary computing (TLEs) used to teach K-12 students and teachers [2, 7, 19]. These education, tools, languages, and environments (TLEs) are important pedagogical support systems are not unlike many other manipula- pedagogical support systems for students and teachers. While there tives and resources used throughout education and are recognized are a number of resources available for teaching K-12 students and by organizations as a critical part of learning and understanding teachers, there is little synthesis of the data with respect to usage computer science [2, 7]. and adoption rates for various TLEs. Using data extracted from TLEs at the post-secondary level have been of great interest 510 articles related to K-12 education, we conducted an analysis to the computing education research community, though prior to using descriptive statistics to determine what TLEs in K-12 are 2007, interest in computing education at the primary and secondary most frequently studied by researchers. We found 193 TLEs being levels did not appear frequently in documented discussions (via the used in research studies and experience reports, then differentiate ACM SIGCSE-Members listserv) [4]. Further, there are only limited between these two types of data and between students and teacher references in the literature to the broader context of TLEs at the professional development. -
Manuale Flowgorithm Versione 2.18
Manuale Flowgorithm Versione 2.18 Roberto Atzori « L'informatica non riguarda i computer più di quanto l'astronomia riguardi i telescopi. » (Edsger Wybe Dijkstra) Pag. 1 di 56 Sommario Flowgorithm ...................................................................................................................................................... 4 Caratteristiche e funzionalità ............................................................................................................................ 5 L’interfaccia ................................................................................................................................................... 5 Supporto Multilingua ..................................................................................................................................... 5 Barra del menù .............................................................................................................................................. 7 Voce di menù “File” ................................................................................................................................... 7 Stampa ................................................................................................................................................... 8 Voce di menù “Modifica” .......................................................................................................................... 9 Stile diagramma .................................................................................................................................... -
An Investigation and Usability Study of Novice
SIMBUILDER: AN INVESTIGATION AND USABILITY STUDY OF NOVICE PROGRAMMING TECHNIQUES Except where reference is made to the work of others, the work described in this thesis is my own or was done in collaboration with my advisory committee. This thesis does not include proprietary or classified information. _______________________________ Sumitha Kanakadoss Certificate of Approval: _______________________________ _______________________________ Juan E. Gilbert Cheryl D. Seals, Chair Assistant Professor Assistant Professor Computer Science and Software Computer Science and Software Engineering Engineering _______________________________ ______________________________ N. Hari Narayanan Stephen L. McFarland Associate Professor Dean Computer Science and Software Graduate School Engineering SIMBUILDER: AN INVESTIGATION AND USABILITY STUDY OF NOVICE PROGRAMMING TECHNIQUES Sumitha Kanakadoss A Thesis Submitted to the Graduate Faculty of Auburn University in Partial Fulfillment of the Requirements for the Degree of Master of Science Auburn, Alabama December 16, 2005 SIMBUILDER: AN INVESTIGATION AND USABILITY STUDY OF NOVICE PROGRAMMING TECHNIQUES Sumitha Kanakadoss Permission is granted to Auburn University to make copies of this thesis at its discretion, upon request of individuals or institutions and at their expense. The author reserves all publication rights. ______________________________ Signature of Author ______________________________ Date of Graduation iii THESIS ABSTRACT SIMBUILDER: AN INVESTIGATION AND USABILITY STUDY OF NOVICE PROGRAMMING TECHNIQUES Sumitha Kanakadoss Master of Science, December 16, 2005 (B.E., University of Madras, Madras, India, 2003) 125 Typed Pages Directed by Cheryl D. Seals In many existing programming languages, novices always find it difficult to transform their mental plan to terms compatible with the computer. By analyzing the ways users think to solve their daily problems and designing programming languages accordingly, would help novices to overcome this transformation barrier. -
Flowgorithm: Principles for Teaching Introductory Programming Using Flowcharts
158 Flowgorithm: Principles for Teaching Introductory Programming Using Flowcharts Devin D. Cook California State University, Sacramento, CA Abstract For students, the task of learning their first programming language can be compounded by the challenges of syntax, semantics and superfluous code. Historically, programming languages had a gentle learning curve requiring little syntactic or semantic overhead. Modern object-oriented languages, however, create a conceptual hurdle. Even the trivial Hello World program contains syntactic and semantic complexity far beyond the level of a beginning student. This paper introduces Flowgorithm – a programming environment which allows students, with little to no programming experience, create programs using the visual metaphor of flowcharts. These flowcharts can be executed directly by the built-in interpreter allowing students to learn programming concepts before being confronted with language-specific syntax and semantics. Flowgorithm provides an integrated learning path so students can apply their knowledge to a "real" programming language. The flowcharts can be interactively translated to over 10 programming languages. These include: C#, C++, Delphi/Pascal, Java, JavaScript, Lua, Python, Ruby, Visual Basic .NET, and Visual Basic for Applications. This allows a natural transition from the simple procedural logic of flowcharts to the more common object oriented languages used by universities today. Beginning Programmers Even the most gifted computer programmer, at one point, was a beginner. And as beginners, they have to struggle with the inherit challenges of their first language. Whether the language was BASIC, Pascal, C, Java, etc… they had to first handle the issue of syntax. Many languages have a syntax closely related to natural pseudocode while others can be either obtuse or symbolic. -
Um Ambiente Baseado Em Blocos Para Programaç ˜Ao Paralela Com Opencl
Um Ambiente Baseado em Blocos para Programac¸ao˜ Paralela com OpenCL Josue´ da Silva Gomes Junior´ 1, Alisson Vasconcelos de Brito2 1Centro de Cienciasˆ Aplicadas e Educac¸ao˜ – Universidade Federal da Para´ıba (UFPB) Av. Santa Elizabete, 160 – CEP 58297–000 – Rio Tinto – PB – Brazil 2Centro de Informatica´ – Universidade Federal da Para´ıba (UFPB) CEP 58055–000 – Joao˜ Pessoa – PB – Brazil [email protected], [email protected] Abstract. This paper presents the educational software Blockly OpenCL. Its use is intended to help the teaching-learning parallel programming paradigm with OpenCL. It was used visual programming paradigm, through a block-based de- velopment environment made with Google Blockly API, which allows the user to create applications manipulating blocks and export them to the OpenCL C. The Blockly OpenCL language is also composed for a web page containing contextu- alizing Blockly OpenCL, material support for OpenCL API and the development environment with blocks. Resumo. Este trabalho apresenta o software educativo Blockly OpenCL. Sua utilizac¸ao˜ tem por objetivo auxiliar o ensino-aprendizagem do paradigma de programac¸ao˜ paralela com OpenCL. Nele foi utilizado o paradigma de programac¸ao˜ visual, atraves´ de um ambiente de desenvolvimento baseado em blocos feito com a API do Google Blockly, que permite ao usuario´ criar aplicac¸oes˜ manipulando blocos e exporta-los´ para a linguagem OpenCL C. O Blockly OpenCL tambem´ e´ composto por uma pagina´ web contendo uma contextualizac¸ao˜ do Blockly OpenCL, materiais apoio sobre a API OpenCL e sobre o ambiente de desenvolvimento com Blocos. 1. Introduc¸ao˜ Utilizados principalmente na industria´ de entretenimento, os processadores multicore e manycore trazem em si recursos de processamento distintos como CPU (central Pro- cessing Unit) e GPU (Graphical Processing Unit) respectivamente, promovendo o au- mento de desempenho dos sistemas atuais. -
Comparison of Flow-Based Versus Block-Based Programming for Naive Programmers
COMPARISON OF FLOW-BASED VERSUS BLOCK-BASED PROGRAMMING FOR NAIVE PROGRAMMERS by Kruti Dave Bachelor of Engineering in Information Technology, Mumbai University, 2012 A thesis presented to Ryerson University in partial fulfillment of the requirements for the degree of Master of Science in the program of Computer Science Toronto, Ontario, Canada, 2018 c Kruti Dave 2018 Author’s Declaration I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I authorize Ryerson University to lend this thesis to other institutions or individuals for the purpose of scholarly research. I further authorize Ryerson University to reproduce this thesis by photocopying or by other means, in total or in part, at the request of other institutions or individuals for the purpose of scholarly research. I understand that my thesis may be made electronically available to the public for the purpose of scholarly research only. ii Abstract Comparison of Flow-based versus Block-based Programming for Naive Programmers Kruti Dave Master of Science, Computer Science Ryerson University, 2018 There is general agreement that most people should have some programming ability, whether to investigate the vast amount of data around them or for professional purposes. Visual Programming Languages comprise two broad categories: Flow-based, functional programming or Block-based, imperative programming. However, there has been a lack of empirical studies in the visual programming domain to evaluate the relative benefits of the two categories. This research provides an empirical study to analyze the effects of the comparison between Flow- based and Block-based paradigm, to determine which of the two representations is easier for non-programmers or novice programmers. -
The Anatomy and Aptness of Learners Programming Language
The Anatomy and Aptness of Learners Programming Language Muhammad Shumail Naveed Dissertation submitted for the partial fulfillment of the Degree of Doctor of Philosophy Department of Computer Science Faculty of Science Federal Urdu University of Arts, Science and Technology Karachi, Sindh, Pakistan. December 2015 © Muhammad Shumail Naveed 2015 CERTIFICATE OF ORIGINAL AUTHORSHIP I, Muhammad Shumail Naveed S/O Muhammad Khurshid Zahid, certify that the work in this dissertation has not previously been submitted for a de- gree nor has it been submitted as part of requirements for a degree except as fully acknowledged with the text. I also certify that the dissertation has been written by myself and any help that I have received in my research work or in the preparation of the dissertation itself has been acknowledged. In addition, I also certify that all the information sources and literature used are indicated in the dissertation. ||||||||{ |||||||{ Signature Date APPROVED BY Supervisor Name: Dr. Muhammad Sarim Assistant Professor Department of Computer Science Federal Urdu University of Arts, Sci- ence and Technology ||||||| ||||||| ||||||| Signature Seal Date Co-supervisor Name: Dr. Kamran Ahsan Assistant Professor Department of Computer Science Federal Urdu University of Arts, Sci- ence and Technology ||||||| ||||||| ||||||| Signature Seal Date Dedicated to my parents Abstract Computer programming is a core area in computer science education. However, learning the programming is notoriously difficult and introductory programming courses -
Programming by Analogous Examples
Color profile: Generic CMYK printer profile Composite Default screen Chapter Eighteen Programming by Analogous Examples Alexander Repenning and Corrina Perrone Agent Sheets, Inc., Center of LifeLong Learning & Design, University of Colorado, Boulder S R L V:\002564\002564.VP Thursday, December 21, 2000 2:12:45 PM TNT JobNumber: [002564] • Author: [Lieberman] • Page: 351 Color profile: Generic CMYK printer profile Composite Default screen 352 Abtract Analogies are powerful cognitive mechanisms that people use to construct new knowledge from knowledge already acquired and understood. When analogies are used with programming by example (PBE), the result is a new end-user programming paradigm combining the elegance of PBE to create programs with the power of analogies to reuse programs. The combina- tion of PBE with analogies is called Programming by Analogous Examples (PBAE). 18.1 Introduction Why do end users need to program? In a world with an ever-increasing flood of information, people become overwhelmed trying to cope with it. With the ubiquity of computer networks, the information challenge is no longer about accessing information but processing it. The direct manipula- tion paradigm, popularized in the 1980s, begins to break down when it is no longer feasible to directly manipulate the sources of information such as the location of all the files on your hard disk or all the emails in your in box. End-user programming (Nardi 1993) is becoming a crucial instrument in the daily information-processing struggle. End-user programming is a form of programming done by the end user to customize information processing. Most computer end users do not have the background, motivation, or time to use traditional programming approaches, nor do they typically have the means to hire professional programmers to create their programs. -
Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in Agentsheets
Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets Alexander Repenning University of Colorado Boulder, Colorado 80309 [email protected] School of Education University of Applied Sciences and Arts Northwestern Switzerland (PH FHNW) Brugg-Windisch, Switzerland [email protected] Abstract The blocks programming community has been preoccupied the “compute prime numbers” using C++ and Emacs activity with identifying syntactic obstacles that keep novices from learning which, by the vast majority of kids, is considered to be hard to program. Unfortunately, this focus is now holding back research and boring. In the upper right corner is the elusive holy grail of from systematically investigating various technological affordances Computer Science education providing activities that are easy, that can make programming more accessible. Employing approaches or at least accessible, and exciting. This journey started in the from program analysis, program visualization, and real-time lower left corner and is gradually moving towards the upper interfaces can push blocks programming beyond syntax towards the support of semantics and even pragmatics. Syntactic support could right corner. The path of this journey is not straight. It includes be compared to checking spelling and grammar in word processing. setbacks and detours. Also, while progress has been made, the Spell checking is relatively simple to implement and immediately journey is far from over. useful, but provides essentially no support to create meaningful text. Over the last 25 years, I have worked to empower students to create their own games, simulations, and robots. In this time I have explored, combined, and evaluated a number of programming paradigms.