12 research outputs found
The Extraction of Knowledge Factors of Teachers for Physical Computing Education
In informatics, physical computing focuses on interactions to realize the real world as a computing system. From 2018, how to teach the physical computing in informatics as a mandatory subject is important. The purpose of this study is to analyze the problems in the physical computing education recognized by secondary school informatics teachers and to provide implications for effective programming education. First, we extracted related keywords of physical computing in the 2015 revised informatics curriculum and science curriculum. Second, extracted keywords are classified into hardware and programming. Third, we developed a questionnaire item suitable for classification keywords. Finally, web surveys were conducted and analyzed for in-service and pre-service secondary school informatics teachers. As a result of the research, it was confirmed that the informatics teachers recognized that physical computing education was helpful for programming education. However, a large proportion of the member's lack of training time and receive appropriate education and training programs, hardware, reduced the level of knowledge about the physical computing element content
NOVICE PROGRAMMING STRATEGIES
This paper identifies novice programmer activities and their implications for the programming outcome. We investigate strategies, cognitive processes and behavior within interacting phases of programming: 1) understanding and design, 2) coding, and 3) debugging and testing. We envision that stronger novice programmers behave differently from weaker novice programmers during the programming process. We develop a questionnaire-based tool, the programming strategy questionnaire (PSQ), which we use to identify the activities novices employ during their development of a program, and we link the strategies to learning outcomes. Finally, we discuss how educators can use our findings to improve the education of novice programmers
Do Current Online Coding Tutorial Systems Address Novice Programmer Difficulties?
Mastering programming skills is a multifaceted challenge, particularly for novice learners. While abundant existing literature examines students’ learning obstacles and proposes potential resolutions—predominantly through questionnaire-based methodologies—this study presents a fresh perspective. This paper focuses on identifying programming learning impediments as presented in the literature, paired with an exploration of the supportive features intrinsic to online coding platforms that could potentially mitigate these difficulties. The findings reveal that several of these online coding systems lack crucial features that could effectively address the learning difficulties experienced by novice programmers. This lack stresses an urgent call to create more robust and learner-centric environments that better facilitate the acquisition of programming skills for beginners, thus bridging the identified gap in the existing pedagogical tools
How Do Web-Active End-User Programmers Forage?
Web-active end-user programmers spend substantial time and cognitive effort seeking information while debugging web mashups, which are platforms for creating web applications by combining data and functionality from two or more different sources. The debugging on these platforms is challenging as end user programmers need to forage within the mashup environment to find bugs and on the web to forage for the solution to those bugs. To understand the foraging behavior of end-user programmers when debugging, we used information forging theory. Information foraging theory helps understand how users forage for information and has been successfully used to understand and model user behavior when foraging through documents, the web, user interfaces, and programming environments. Through the lens of information foraging theory, we analyzed the data from a controlled lab study of eight web-active end-user programmers. The programmers completed two debugging tasks using the Yahoo! Pipes web mashup environment. On analyzing the data, we identified three types of cues: clear, fuzzy, and elusive. Clear cues helped participants to find and fix bugs with ease while fuzzy and elusive cues led to useless foraging. We also identified the strategies used by the participants when finding and fixing bugs. Our results give us a better understanding of the programming behavior of web-active end-users and can inform researchers and professionals how to create better support for the debugging process. Further, this study methodology can be adapted by researchers to understand other aspects of programming such as implementing, reusing, and maintaining code
Recommended from our members
Exploring How Novice Programmers Pick Debugging Tactics When Debugging: A Student’s Perspective
Novice developers use a variety of debugging tactics to debug. However, how they select a tactic still remains unclear. Many studies in Software Engineering describe programmers using tactics like adding print statements, but only a few studies hint at factors such as knowledge and habits, social environment, and experience that may influence these decisions. To help us understand how novice programmers select debugging tactics, we turned to Information Foraging Theory (IFT) to analyze this decision-making process through the lens of a cost-benefit analysis. We conducted a qualitative study that explored how novice programmers describe their decision-making process when deciding which debugging tactics to use when debugging. We found that novice programmers use a variety of debugging tactics including testing code, searching for help, and taking notes on paper. Furthermore, we reported activities where novices leverage their past experiences, adapt to their task environments, and anticipate future risks and rewards to decide among a variety of tactics to pursue. From our results, we offer suggestions to educators to explicitly teach the value and costs of using certain tactics so that novice programmers may select the optimal tactic in any debugging situation. Furthermore, we suggest future research to explore novice debugging behaviors within non-computing environments to gain a holistic understanding of the debugging process
Coding Theory
This book explores the latest developments, methods, approaches, and applications of coding theory in a wide variety of fields and endeavors. It consists of seven chapters that address such topics as applications of coding theory in networking and cryptography, wireless sensor nodes in wireless body area networks, the construction of linear codes, and more
RoboBUG: a game-based approach to learning debugging techniques
Debugging is the systematic process of finding and fixing errors in a computer program, and it is considered a critical skill that should be acquired early in a programmer's career. As an alternative to traditional approaches for learning debugging, we propose the use of a game-based approach for introducing debugging techniques. Specifically, we designed a game called RoboBUG in which a player assumes the role of a futuristic programmer trying to find ???bugs" in a mechanical suit. We then conducted an evaluation to assess novice programmers playing the RoboBUG game and novices who instead completed a traditional written assignment. Our results found that study participants reported a positive attitude towards using games for learning, and those who played the RoboBUG game believed it to be more fun and engaging than written assignments
Adaptive serious games for computer science education
Serious games have the potential to effectively engage students to learn, however, these games tend to struggle accommodating learners with diverse abilities and needs. Furthermore, customizing a serious game to the individual learner has historically required a great deal of effort on the part of subject matter experts, and is not always feasible for increasingly complex games. This thesis proposes the use of automatic methods to adapt serious programming games to learners' abilities. To understand the context of the problem, a survey was conducted of the serious programming game literature, which found that while many games exist, there has been very little consideration for the use of adaptation. Given the breadth of the existing serious programming game literature, a methodology was developed to support adaptation of existing games. To demonstrate the efficacy of this adaptive methodology in serious programming games, two case studies were conducted: 1) a study comparing adaptive and non-adaptive gameplay in the Gidget game, and 2) a study assessing non-adaptive gameplay, adaptive gameplay, and adaptive hints in the RoboBug game. The results from both case studies provide evidence to the need for adaptation in serious programming games, and illustrate how the adaptive methodology can be utilized to positively affect the engagement of learners and their ability to achieve learning outcomes