Teaching programming to school children is a challenging task. This report summarizes the research problem, and outlines the research questions around the issues with block based languages and suitability of elementar...
详细信息
ISBN:
(纸本)9781728117461
Teaching programming to school children is a challenging task. This report summarizes the research problem, and outlines the research questions around the issues with block based languages and suitability of elementary patterns as a possible solution. Results to date show a little use of important programming elements even after many years of use, and there is no clear sign of progression in skills with or without remixing.
programming patterns are stereotypic fragments of code that accomplish common programming goals. The ability to recall, apply and evaluate patterns are important outcomes for learning to program. However, monitoring s...
详细信息
ISBN:
(纸本)9780769549958
programming patterns are stereotypic fragments of code that accomplish common programming goals. The ability to recall, apply and evaluate patterns are important outcomes for learning to program. However, monitoring students use of patterns is currently difficult and time-consuming, requiring expert analysis and code walk-throughs. This paper introduces a method and automated tool for labelling the application (or not) of patterns in Java programs that enables instructors to specify and then analyse the programming patterns used by students. An empirical study is used to identify what patterns variations occur, how frequently, and why. The what and how questions are answered using automatic analysis with our tool, and the why question is answered from student explanations of their code.
This Nifty Assignment submission outlines a programming in which students implement a simulator for the German Enigma machine from World War II-an encryption standard successfully broken by a team of mathematicians an...
详细信息
ISBN:
(纸本)9781450394338
This Nifty Assignment submission outlines a programming in which students implement a simulator for the German Enigma machine from World War II-an encryption standard successfully broken by a team of mathematicians and engineers at Bletchley Park, England. The project is organized into six milestones, each of which requires only a small amount of code, making it easily accessible to an audience familiar with defining classes and using standard dictionary and list structures. The assignment uses the Model-View-Controller pattern as its underlying structure, thereby giving students a sense of how programming patterns work. Students are responsible only for implementing the model; the graphics code for the view and controller are provided in starter files available in both Python and Java. Through this project, students gain a greater understanding of object-oriented design in the context of an important event in the early history of computing.
Ease of programming and optimal parallel performance have historically been on the opposite side of a trade-off, forcing the user to choose. With the advent of the Big Data era and the rapid evolution of sequential al...
详细信息
Ease of programming and optimal parallel performance have historically been on the opposite side of a trade-off, forcing the user to choose. With the advent of the Big Data era and the rapid evolution of sequential algorithms, the data analytics community can no longer afford the trade-off. We observed that several clustering algorithms often share common traits-particularly, algorithms belonging to the same class of clustering exhibit significant overlap in processing steps. Here, we present our observation on domain patterns in representative-based clustering algorithms and how they manifest as clearly identifiable programming patterns when mapped to a Domain Specific Language (DSL). We have integrated the signatures of these patterns in the DSL compiler for parallelism identification and automatic parallel code generation. The compiler either generates MPI C++ code for distributed memory parallel processing or MPI-OpenMP C++ code for hybrid memory parallel processing, depending upon the target architecture. Our experiments on different state-of-the-art parallelization frameworks show that our system can achieve near-optimal speedup while requiring a fraction of the programming effort, making it an ideal choice for the data analytics community. Results are presented for both distributed and hybrid memory systems.
Online cooperative or collaborative work have become common nowadays, because this helps to do any job without require meet together physically in one place. On the other hand, due to out current reality, inherent to ...
详细信息
ISBN:
(纸本)9783030608156;9783030608163
Online cooperative or collaborative work have become common nowadays, because this helps to do any job without require meet together physically in one place. On the other hand, due to out current reality, inherent to many health conditions, traffic difficulties, and social insecurity;virtual or distance education is increasingly being promoted. In that sense, the main goal of this research work is develop a web based collaborative tool for rapid designing paints. This could be useful in many different areas, like as replacing the classical whiteboard, or express ideas to a workgroup, or even to design any realistic picture. This application allows to work together with a group of around ten connected users to collaborate virtually designing drawings in real time. The interaction experience depends on the internet bandwidth of all the users. For the implementation, many open source popular frameworks and programming utilities have been used. The presented results demonstrate the high scalability and versatility of our system being capable of managing hundreds of objects in real time.
This Full Paper in the Research Category identifies and evaluates teaching resources suitable for teaching younger students using the Scratch and Python programming languages. Choosing suitable resources to introduce ...
详细信息
ISBN:
(纸本)9781728189611
This Full Paper in the Research Category identifies and evaluates teaching resources suitable for teaching younger students using the Scratch and Python programming languages. Choosing suitable resources to introduce programming to children is a balance between making sure they are appropriate to their skills such as literacy and numeracy, and are motivating in their social context. Resources need to strike a balance between allow early success, but also introduce genuine programming skills, so that students can progress their programming skills rather than repeating simple tasks over and over. An important element is the choice of teaching resources used to support students' learning. We propose using elementary programming patterns as a measure of how comprehensive a teaching resource for programming is. Note that this doesn't mean advocating that students should be pressed to learn advanced patterns quickly, but it does provide a measure of how deeply a particular resource covers general programming concepts. We identify a set of patterns that are relevant to basic programming practice, and have analyzed some recommended online teaching resources and a small sample of introductory programming books for Scratch and Python against this set of patterns. The use of given set of patterns was relatively low, but some resources did introduce a range of patterns, and some new patterns emerged from the analysis that seemed to be used frequently in Scratch.
This document describes an online tool, which supports different synchronized views onto the same algorithm in parallel, e.g. structograms (Nassi-Shneiderman diagrams), Java code and the state of used variables. It ca...
详细信息
ISBN:
(纸本)9783030114343;9783030114336
This document describes an online tool, which supports different synchronized views onto the same algorithm in parallel, e.g. structograms (Nassi-Shneiderman diagrams), Java code and the state of used variables. It can also animate the program and data flow. This is essential for self-controlled learning especially for novice programmers. Students can focus on the view they prefer and explore the relationship to the other views at their own speed, e.g. by stepping through the program and visualize the current state of the variables as well as the console output. The tool gives the possibility to modify the structure as well as the texts in the structograms. It supports exports into different file formats, i.e. for the creation of teaching material or solutions for exercises. The HTML5 implementation allows easy access to the tool on different platforms as well as its integration into web-based learning environments.
Big Data has significantly increased the dependence of data analytics community on High Performance Computing (HPC) systems. However, efficiently programming an HPC system is still a tedious task requiring specialized...
详细信息
ISBN:
(纸本)9781728144931
Big Data has significantly increased the dependence of data analytics community on High Performance Computing (HPC) systems. However, efficiently programming an HPC system is still a tedious task requiring specialized skills in parallelization and the use of platform-specific languages as well as mechanisms. We present a framework for quickly prototyping new/existing density-based clustering algorithms while obtaining low running times and high speedups via automatic parallelization. The user is required only to specify the sequential algorithm in a Domain Specific Language (DSL) for clustering at a very high level of abstraction. The parallelizing compiler for the DSL does the rest to leverage distributed systems in particular, typical scale-out clusters made of commodity hardware. Our approach is based on recurring, parallelizable programming patterns known as Kernels, which are identified and parallelized by the compiler. We demonstrate the ease of programming and scalable performance for DBSCAN, SNN, and RECOME algorithms. We also establish that the proposed approach can achieve performance comparable to state-of-the-art manually parallelized implementations while requiring minimal programming effort that is several orders of magnitude smaller than those required on other parallel platforms like MPI/Spark.
This Full Paper in the Research Category evaluates the use of remixing in Scratch. A feature of the Scratch programming environment is that it supports students to share their code and "remix" (modify) other...
详细信息
ISBN:
(纸本)9781728117461
This Full Paper in the Research Category evaluates the use of remixing in Scratch. A feature of the Scratch programming environment is that it supports students to share their code and "remix" (modify) other students' code. Remixing in Scratch has garnered much attention by the research community as use of collaboration for learning was one of the main ideas behind Scratch. It can provide opportunities to read others' code, learn how features can be implemented using the Scratch language, and contribute to the program. It can also prevent students from engaging with the code if they copy an existing program that does what they are trying to do without needing modification. The literature shows mixed results regarding use of remixes in Scratch. We have investigated at a large scale what happens in practice by analysing thousands of student programs shared through the Scratch online repository. As well as replicating prior work on a larger scale to show the impact of remixing on learning programming skills through Lines of Code (LOC) and repertoire of block usage, we also measure the use of elementary patterns (common combinations of commands). We track the progress of each project through its remixes and compare the results between the root version and the final version.
Nowadays, block-based programming environments are often used to offer a gentle introduction to learning a programming language. However, an assessment of students' programming skills based on the results of a pro...
详细信息
ISBN:
(纸本)9781450377041
Nowadays, block-based programming environments are often used to offer a gentle introduction to learning a programming language. However, an assessment of students' programming skills based on the results of a programming task is not sufficient to determine all areas students are struggling with. We therefore introduce a learning analytics approach of measuring and evaluating the programming sequences of students that program with Scratch 3. With our measurement framework, it is possible to record, store and analyze programming sequences done on a publicly-available, instrumented Scratch 3 environment. Changes in the programming sequence are categorized regarding the used block types and types of program change. We conducted an exploratory programming trial with lower and upper secondary school students to investigate small-scale programming strategies in the recorded programming sequences. Our goals are to identify students in need of support and to identify recurring patterns used by students successful in the trial. Clustering with k-means makes it possible to identify struggling students based on both interacted block types and types of program changes. Recurring patterns in the programming sequences of successful students show that small-scale programming strategies are very diverse.
暂无评论