1 |
DataSnap: Enabling Domain Experts and Introductory Programmers to Process Big Data in a Block-Based Programming LanguageHellmann, Jonathon David 10 July 2015 (has links)
Block-based programming languages were originally designed for educational purposes. Due to their low requirements for a user's programming capability, such languages have great potential to serve both introductory programmers in educational settings as well as domain experts as a data processing tool. However, the current design of block-based languages fails to address critical factors for these two audiences: 1) domain experts do not have the ability to perform crucial steps: import data sources, perform efficient data processing, and visualize results; 2) the focus of online assignments towards introductory programmers on entertainment (e.g. games, animation) fails to convince students that computer science is important, relevant, and related to their day-to-day experiences.
In this thesis, we present the design and implementation of DataSnap, which is a block-based programming language extended from Snap!. Our work focuses on enhancing the state of the art in block-based programming languages for our two target audiences: domain experts and introductory programmers. Specifically, in this thesis we: 1) provide easy-to-use interfaces for big data import, processing, and visualization methods for domain experts; 2) integrate relevant social media, geographic, and business-related data sets into online educational platforms for introductory programmers and enable teachers to develop their own real-time and big-data access blocks; and 3) present DataSnap in the Open edX online courseware platform along with customized problem definition and a dynamic analysis grading system. Stemming from our research contributions, our work encourages the further development and utilization of block-based languages towards a broader audience range. / Master of Science
|
2 |
Helping Students with Upper Limb Motor Impairments Program in a Block-Based Programming Environment Using VoiceOkafor, Obianuju Chinonye 08 1900 (has links)
Students with upper body motor impairments, such as cerebral palsy, multiple sclerosis, ALS, etc., face challenges when learning to program in block-based programming environments, because these environments are highly dependent on the physical manipulation of a mouse or keyboard to drag and drop elements on the screen. In my dissertation, I make the block-based programming environment Blockly, accessible to students with upper body motor impairment by adding speech as an alternative form of input. This voice-enabled version of Blockly will reduce the need for the use of a mouse or keyboard, making it more accessible to students with upper body motor impairments. The voice-enabled Blockly system consists of the original Blockly application, a speech recognition API, predefined voice commands, and a custom function. Three user studies have been conducted, a preliminary study, a usability study, and an A/B test. These studies revealed a lot of information, such as the need for simpler, shorter, and more intuitive commands, the need to change the target audience, the shortcomings of speech recognition systems, etc. The feedback received from each study influenced design decisions at different phases. The findings also gave me insight into the direction I would like to go in the future. This work was started and finished in 2 years.
|
3 |
Understanding Common Scratch Programming Idioms and Their Impact on Project RemixingLong, Xingyu 24 May 2021 (has links)
As Scratch has become one of the most popular educational programming languages, understanding its common programming idioms can benefit both computing educators and learners. This understanding can fine-tune the curricular development to help learners master the fundamentals of writing idiomatic code in their programming pursuits. Unfortunately, the research community's understanding of what constitutes idiomatic Scratch code has been limited. To help bridge this knowledge gap, we systematically identified idioms as based on canonical source code, presented in widely available educational materials.
We implemented a tool that automatically detects these idioms to assess their prevalence within a large dataset of over 70K Scratch projects in different demographic and project categories. Since communal learning and the practice of remixing are one of the cornerstones of the Scratch programming community, we studied the relationship between common programming idioms and remixes.
Having analyzed the original projects and their remixes, we observed that different idioms may associate with dissimilar types of code changes. Code changes in remixes are desirable, as they require a meaningful programming effort that spurs the learning process. The ability to substantially change a project in its remixes hinges on the project's code being easy to understand and modify. Our findings suggest that the presence of certain common idioms can indeed positively impact the degree of code changes in remixes. Our findings can help form a foundation of what comprises common Scratch programming idioms, thus benefiting both introductory computing education and Scratch programming tools. / Master of Science / With over 68 million users and growing, Scratch has become one of the most popular programming languages for introductory computing learners. As with learning any programming language, understanding common programming idioms used in the language's application domain is important for both computing educators and learners. Educators need this understanding in order to fine-tune their curricular development, while learners can leverage this knowledge to effectively master the fundamentals by writing idiomatic code. Unfortunately, our understanding of what constitutes idiomatic Scratch code thus far has been limited. To address this knowledge gap, we systematically identified idioms based on source code with good code quality, as presented in widely available educational materials.
We implemented a tool that automatically detects these idioms to assess their prevalence within a large, diverse dataset of over 70K Scratch projects. Since communal learning and the practice of remixing are one of the cornerstones of the Scratch programming community, we studied the relationship between common programming idioms and remixes. Having analyzed the original projects and their remixes, we found that different idioms may associate with dissimilar types of code changes. The ability to change a project in its remixes hinges on the project's code being easy to understand and modify. Our findings suggest that the presence of certain common idioms can positively impact the degree of code changes in remixes. Our findings can help form a foundation of what comprises common Scratch programming idioms, thus benefiting both introductory computing education and Scratch programming tools.
|
4 |
Computational Thinking in Swedish high schools : A study investigating the impact of visual programmingLang, Annie, Eklind Wendel, Jonna January 2022 (has links)
This study aims to investigate CT in relation to students’ experience with visual programming - particularly visual programming language Scratch. The study looks at the level of CT among Swedish high school students. Two research questions are investigated; one related to students’ general programming experience, one related to their level of experience with programming language Scratch. The method used in the study is the Computational Thinking test (CTt). Data from 162 students is presented. The study finds that the students’ performance is relatively high, but not as high as expected given the fact that Swedish education has become heavily focused on teaching programming in recent years. The study also finds that the level of Scratch experience alone is not found to impact the performance, which implies that Scratch does not allow users to deepen their CT knowledge the more they use it. Visual programming is found to play an important role in the level of computational thinking, although the participants with the best results have additional experience of normal programming. The study concludes that visual programming needs to be combined with normal programming in order for students to achieve the best result within computational thinking
|
5 |
An Exploratory Study of the Remixing Practices in the Scratch Programming Community: Trends, Causalities, and InfluencesKhawas, Prapti Prakash 11 June 2019 (has links)
One of the greatest achievements of Scratch as an educational tool is the eager willingness of programmers to use existing projects as the starting point for their own projects, a practice known as remixing. Despite the importance of remixing as a foundation of collaborative and communal learning, the practice remains poorly understood. Without a clear picture of how and why Scratch programmers remix a project as a starting point of their own projects, this programming community would remain in the dark about which programming practices encourage and facilitate remixing. The designers of programming environments for blocks lack feedback on how the remixing facility is used in the wild. To gain a deeper insight into remixing, this thesis presents the results of a comprehensive study of this practice in Scratch that investigates the following heretofore unexplored dimensions of remixing: (1) the prevailing modifications that remixes perform on existing projects, (2) the impact of the original project's code quality on the granularity, extent, and development time of the modifications in the remixes, and (3) the propensity of the dominant programming practices in the original project to remain so in the remixes. Our findings can be used to promote those programming practices in the Scratch community that encourage remixing while also improving this practice's effectiveness, thus benefiting the educational and end-user programming communities. / Master of Science / The Scratch programming language has become an intrinsically important tool in introductory CS education. A visual, block-based language, Scratch is web-based, featuring an enormous online programming community, through which projects are eagerly shared. One of the unique learning provisions of Scratch is the ability to easily start a project by modifying someone else’s project, a practice referred to as remixing. Despite the central role that remixing plays in enabling the communal and collaborative learning styles in the Scratch community, the practice of remixing remains inadequately understood. This knowledge gap leaves the Scratch community in the dark about which programming practices encourage and facilitate remixing, as well as deprives Scratch environment designers from actionable feedback on how the remixing facility is used in the wild. To address this problem, this thesis reports on the results of an exploratory study of remixing in Scratch that investigates three heretofore unexplored dimensions of this practice. First, we study the general remixing trends in terms of how remixes modify the original projects. Second, we infer the impact of a project’s code quality on the modifications in its remixes and the development time. Finally, we investigate whether programmers adopt the techniques and practices of the remixed projects. Computing educators can apply our findings to enhance the educational effectiveness of Scratch by encouraging the practice and magnitude of remixing.
|
6 |
Automated Identification and Application of Code Refactoring in Scratch to Promote the Culture Quality from the Ground upTechapalokul, Peeratham 04 June 2020 (has links)
Much of software engineering research and practice is concerned with improving software quality. While enormous prior efforts have focused on improving the quality of programs, this dissertation instead provides the means to educate the next generation of programmers who care deeply about software quality. If they embrace the culture of quality, these programmers would be positioned to drastically improve the quality of the software ecosystem. This dissertation describes novel methodologies, techniques, and tools for introducing novice programmers to software quality and its systematic improvement. This research builds on the success of Scratch, a popular novice-oriented block-based programming language, to support the learning of code quality and its improvement. This dissertation improves the understanding of quality problems of novice programmers, creates analysis and quality improvement technologies, and develops instructional approaches for teaching quality improvement. The contributions of this dissertation are as follows. (1) We identify twelve code smells endemic to Scratch, show their prevalence in a large representative codebase, and demonstrate how they hinder project reuse and communal learning. (2) We introduce four new refactorings for Scratch, develop an infrastructure to support them in the Scratch programming environment, and evaluate their effectiveness for the target audience. (3) We study the impact of introducing code quality concepts alongside the fundamentals of programming with and without automated refactoring support. Our findings confirm that it is not only feasible but also advantageous to promote the culture of quality from the ground up. The contributions of this dissertation can benefit both novice programmers and introductory computing educators. / Doctor of Philosophy / Software remains one of the most defect-prone artifacts across all engineering disciplines. Much of software engineering research and practice is concerned with improving software quality. While enormous prior efforts have focused on improving the quality of programs, this dissertation instead provides the means to educate the next generation of programmers who care deeply about software quality. If they embrace the culture of quality, these programmers would be positioned to drastically improve the quality of the software ecosystem, akin to professionals in traditional engineering disciplines. This dissertation describes novel methodologies, techniques, and tools for introducing novice programmers to software quality and its systematic improvement. This research builds on the success of Scratch, a popular visual programming language for teaching introductory students, to support the learning of code quality and its improvement. This dissertation improves the understanding of quality problems of novice programmers, creates analysis and quality improvement technologies, and develops instructional approaches for teaching quality improvement. This dissertation contributes (1) a large-scale study of recurring quality problems in Scratch projects and how these problems hinder communal learning, (2) four new refactorings, quality improving behavior-preserving program transformations, as well as their implementation and evaluation, (3) a study of the impact of introducing code quality concepts alongside the fundamentals of programming with and without automated refactoring support. Our findings confirm that it is not only feasible but also advantageous to promote the culture of quality from the ground up. The contributions of this dissertation can benefit both novice programmers and introductory computing educators.
|
7 |
Understanding and Addressing Accessibility Barriers Faced by People with Visual Impairments on Block-Based Programming EnvironmentsMountapmbeme, Aboubakar 12 1900 (has links)
There is an increased use of block-based programming environments in K-12 education and computing outreach activities to introduce novices to programming and computational thinking skills. However, despite their appealing design that allows students to focus on concepts rather than syntax, block-based programming by design is inaccessible to people with visual impairments and people who cannot use the mouse. In addition to this inaccessibility, little is known about the instructional experiences of students with visual impairments on current block-based programming environments. This dissertation addresses this gap by (1) investigating the challenges that students with visual impairments face on current block-based programming environments and (2) exploring ways in which we can use the keyboard and the screen reader to create block-based code. Through formal survey and interview studies with teachers of students with visual impairments and students with visual impairments, we identify several challenges faced by students with visual impairments on block-based programming environments. Using the knowledge of these challenges and building on prior work, we explore how to leverage the keyboard and the screen reader to improve the accessibility of block-based programming environments through a prototype of an accessible block-based programming library. In this dissertation, our empirical evaluations demonstrate that people with visual impairments can effectively and efficiently create, edit, and navigate block-based code using the keyboard and screen reader alone. Addressing the inaccessibility of block-based programming environments would allow students with visual impairments to participate in programming and computing activities where these systems are used, thus fostering inclusion and promoting diversity.
|
8 |
Experience Programming: an exploration of hybrid tangible-virtual block based programming interactionDe Oliveira, Clarissa C. January 2018 (has links)
In less than a century, programming languages have assumed many forms in adapting to system’s needs and capacities, of which our cognitive systems are a part. One variation, tailored specifically for the cognitive processes in children’s education of computational concepts, and nowadays successful among novice adult learners too, is that of visual block based programming. From the pool of available block based programming environments, Scratch is the most popular for users, and therefore becomes a good topic for researchers interested in contemporary educational discussions, including that of coding as a curricular activity in schools. Although inspired by the educational philosophy of using abstract physical blocks in foundational learning, the mainly visual interface of Scratch is made for keyboard and mouse mediated interaction with the digital content on-screen, producing audio-visual feedback. This research is a case study of Scratch, where the shortcomings found in interactions with its environment motivate the investigation of a potential hybrid technology – tangible and visual – for enhanced learning of foundational concepts in block based programming. The investigation is characterized by progressive cycles of conceptual design, supported by prototyping and testing. The results from its design process present the benefits and challenges of this hybrid concept to inform and inspire the development of new technologies for learning, as well as it should inspire designers of Tangible User Interfaces (TUIs) for learning and the educational community of computing to challenge the current ways of learning. The work here presented is concerned with acknowledging and building onto strengths of existing technologies, rather than substituting them with disruptive ideas.
|
9 |
Text- kontra blockbaserad introduktion till programmering / Text- versus block-based introduction to programmingPersson, Joakim, Nilsson Sommermark, Edvin January 2023 (has links)
Blockbaserade utvecklingsmiljöer blir allt vanligare för att lära ut grunderna i programmering. Metoden har visat sig ha flera fördelar jämfört med textbaserad programmering, som historiskt sett varit den ledande metoden för undervisning. Då textbaserad programmering dominerar industrin i stort behöver övergången från block- till textbaserad programmering ske förr eller senare, för de som tänkt fortsätta inom området. Denna övergång har visat sig innebära flera utmaningar. Som en del av detta arbete togs en textbaserad utvecklingsmiljö fram, med inspiration från styrkorna i blockbaserade miljöer. Syftet med detta var att möjliggöra en jämförelse i läsbarhet av kod mellan de olika miljöerna, samt undersöka utfallet av att hämta inspiration från blockbaserade miljöer vid skapandet av en textbaserad miljö. Den nyutvecklade miljön är ett textbaserat alternativ till en befintlig blockbaserad utvecklingsmiljö, som används för att programmera en digital lekplats. Miljön utvärderas genom två tester. Det ena testet var ett läsbarhetstest som utfördes på en klass i årskurs sju, vars elever hade minimal tidigare erfarenhet av programmering. Det andra testet var ett användartest i utvecklingsmiljön, där åtta personer med tidigare erfarenhet av programmering fick utvärdera den textbaserade utvecklingsmiljön sett till hur nybörjarvänlig den var och hur väl designprinciperna var implementerade. Utvärderingarna visade att den utvecklade miljön ansågs vara nybörjarvänlig. Testerna visade även att miljön var mer läsbar än sin blockbaserade motsvarighet och överlag väl anpassad för nybörjare. Dessutom ansågs designprincipernas implementationer underlätta utveckling i miljön. / Block-based development environments are becoming increasingly common for teaching the basics of programming. This method has shown several advantages compared to text-based programming, which has historically been more popular for educational purposes. Since text-based programming dominates the industry, the transition from block-based to text-based programming is inevitable for those who plan to continue within the field. This transition implies several challenges. As a part of this study a text-based development environment was developed, taking inspiration from the advantages of block-based development environments. The purpose of this was to enable a comparison of code readability between the two development environments and to study the outcome of taking inspiration from the strengths of block-based programming environments. The developed text-based environment is an alternative to an existing block-based environment, used to program a digital playground. The environment was evaluated through two tests. One test was a readability test with a class of students in seventh grade, who had minimal previous programming experience. The other test was a user test, where eight people with previous experience of programming evaluated the text-based development environment in regard to how beginner-friendly it was and how well the design principles were implemented. The evaluations showed that the developed text-based environment was considered beginner-friendly. The tests also showed that the environment was more readable than its block-based counterpart and overall well-suited for beginners. In addition, the implementation of design principles was considered to facilitate development in the environment.
|
10 |
Easing the transition from block-based programming in education : Comparing two ways of transitioning from block-based to text-based programming and an alternative way to solve the transition problem / Att underlätta övergången från blockbaserad programmering inom utbildningAbdinur Iusuf, Joakim, Nordling, Edvin January 2023 (has links)
Many learners find the transition from block-based programming to text-based programming difficult. Consequently, research has investigated how block-based languages support learners when making the transition to text-based programming. It categorized the way in which block-based languages support the transition into one-way transition, dual-modality and hybrid environments. This research investigates how one-way transition environments compare to dual-modality environments with regards to learning a text-based language, and how the two modalities differ with regards to the motivational factors satisfaction, enjoyment and easiness. The results show that dual-modality environments could be a better alternative than one-way transition environment when learners make the transition from block-based to text-based programming. The results also show that solving a problem in dual-modality environments could be easier than solving them in one-way transition environments, which could potentially mean that learners experience more motivation when making the transition in a dual-modality environment. This study also investigated if there is an alternative to one-way transition, dual-modality and hybrid environments when helping learners transition from block-based to text-based programming, and what a learning activity in this alternative solution could look like. It found that Blockly Games is an alternative, and describes a learning activity built in Blockly Games. Future research should aim at gaining a deeper understanding of the differences between one-way transition, dual-modality and hybrid environments, and investigate if the approach taken by Blockly Games is a better alternative. / Många elever tycker att övergången från blockbaserad programmering till textbaserad programmering är svår. Följaktligen har forskning undersökt hur blockbaserade språk stödjer elever när de gör övergången till textbaserad programmering. En studie fann att blockbaserade språk stöder denna övergång med hjälp av one-way transition miljöer, dual-modality miljöer och hybrid miljöer. Denna forskning undersöker hur one-way transition miljöer jämför sig med dual-modality miljöer när det kommer till att lära sig ett textbaserat språk, och hur de två modaliteterna skiljer sig åt med avseende på motivationsfaktorerna tillfredsställelse, njutning och lätthet. Resultaten visar att dual-modality miljöer kan vara ett bättre alternativ än one-way transition miljöer när eleverna gör övergången från blockbaserad till textbaserad programmering. Resultaten visar också att det kan vara lättare att lösa ett problem i dual-modality miljöer än att lösa dem i one-way transition miljöer, vilket potentiellt kan innebära att eleverna upplever mer motivation när de gör övergången i en dual-modality miljö. Denna studie undersökte också om det finns ett alternativ till one-way transition miljöer, dual-modality miljöer och hybrid miljöer när elever ska övergå från blockbaserad till textbaserad programmering, och hur en inlärningsaktivitet i denna alternativa lösning skulle kunna se ut. Den fann att Blockly Games är ett alternativ och beskriver en inlärningsaktivitet byggd i Blockly Games. Framtida forskning borde försöka få en djupare förståelse för skillnaderna mellan one-way transition miljöer, dual-modality miljöer och hybrid miljöer, och undersöka om det tillvägagångssätt som Blockly Games använder är ett bättre alternativ.
|
Page generated in 0.1481 seconds