Conversational programmers represent a class of learners who come from non-CS backgrounds and try to learn programming mainly to improve their participation in technical conversations. We carried out interviews with 2...
详细信息
Conversational programmers represent a class of learners who come from non-CS backgrounds and try to learn programming mainly to improve their participation in technical conversations. We carried out interviews with 23 conversational programmers (e. g., advertising manager, psychologist, library archivist) to better understand the challenges they face in technical conversations and their perceptions of learning programming. Among our key findings, we found that learning programming and consulting modern learning resources that focus on programming syntax and logic was not helpful for these learners as their end-goal was not to build artifacts and needed to understand concepts well enough to participate in technical conversations. Based on our findings, we used a user-centered design process to develop JargonAid, a community- curated online dictionary that allows authors to add simple explanations and example conversations for technical concepts. For our evaluation, we compared community- curated explanations in JargonAid with formal explanations (e. g., from textbooks, online documentation). We found that conversational programmers perceived community- curated explanations to be easier to understand, allowed them to maintain focus, and made them more confident about participating in follow-up conversations. We discuss the potential of using community-curated explanations as a learning tool for conversational programmers and reflect on the advantages and disadvantages of our approach.
Teaching programming to beginners is a complex task. In this article, the effects of three factors-choice of programming language, problem-solving training, and the use of formative assessment-on learning to program w...
详细信息
Teaching programming to beginners is a complex task. In this article, the effects of three factors-choice of programming language, problem-solving training, and the use of formative assessment-on learning to program were investigated. The study adopted an iterative methodological approach carried out across 4 consecutive years. To evaluate the effects of each factor (implemented as a single change in each iteration) on students' learning performance, the study used quantitative, objective metrics. The findings revealed that using a syntactically simple language (Python) instead of a more complex one (Java) facilitated students' learning of programming concepts. Moreover, teaching problem solving before programming yielded significant improvements in student performance. These two factors were found to have variable effects on the acquisition of basic programming concepts. Finally, it was observed that effective formative feedback in the context of introductory programming depends on multiple parameters. The article discusses the implications of these findings, identifies avenues for further research, and argues for the importance of studies in computer science education anchored on sound research methodologies to produce generalizable results.
programming skills are an increasingly desirable asset across disciplines;however, learning to program continues to be difficult for many students. To improve pedagogy, we need to better understand the concepts that s...
详细信息
programming skills are an increasingly desirable asset across disciplines;however, learning to program continues to be difficult for many students. To improve pedagogy, we need to better understand the concepts that students find difficult and which have the biggest impact on their learning. Threshold-concept theory provides a potential lens on student learning, focusing on concepts that are troublesome and transformative. However, there is still a lack of consensus as to what the most relevant threshold concepts in programming are. The challenges involved are related to concept granularity and to evidencing some of the properties expected of threshold concepts. In this article, we report on a qualitative study aiming to address some of these concerns. The study involved focus groups with undergraduate students of different-year groups as well as professional software developers so as to gain insights into how perspectives on concepts change over time. Four concepts emerged from the data, where the majority of participants agreed on their troublesome nature- including abstract classes and data structures. Some of these concepts are considered transformative, too, but the evidence base is weaker. However, even though these concepts may not be considered transformative in the "big" sense of threshold concept theory, we argue the "soft" transformative effect of such concepts means they can provide important guidance for pedagogy and the design of programming courses. Further analysis of the data identified additional concepts that may hinder rather than help the learning of these threshold concepts, which we have called "accidental complexities." We conclude the article with a critique of the use of threshold concepts as a lens for studying students' learning of programming.
Student success in mastering basic programming skills is not as successful as would be expected and at the same time number of students enrolling in Computer Science is decreasing almost worldwide. The Codewitz projec...
详细信息
ISBN:
(纸本)9789549641387
Student success in mastering basic programming skills is not as successful as would be expected and at the same time number of students enrolling in Computer Science is decreasing almost worldwide. The Codewitz project is developing and producing interactive web-based learning objects in order to help students and teachers in entry level programming courses. The learning objects are made available via an online material bank (data base) on the Internet at ***. To prepare the projects a need analysis was conducted using an online questionnaire for data collection. The results from the survey will be used to guide Codewitz/Minerva partners in their work to develop the most needed learning objects. Teachers or their respective educational institutions can become partners in Codewitz and download learning objects. All partners can develop their own learning objects and place them in the database and thereby becoming part of the development process of Codewitz.
The computing and STEM industries face challenges in attracting people to fill expanding needs. The literature shows that computing preconceptions shape interest in and impact decisions of whether or not to enter comp...
详细信息
ISBN:
(纸本)9781450351034
The computing and STEM industries face challenges in attracting people to fill expanding needs. The literature shows that computing preconceptions shape interest in and impact decisions of whether or not to enter computing disciplines, especially for women and underrepresented minorities. In this study, our research questions focused on how perceptions of programming in elementary and middle school students varied based on prior programming experience. We examined the programming constructs they found challenging. Our study was in the context of a week-long summer camp dedicated to Scratch-based game development. We conducted semi-structured interviews at the beginning, middle, and end of the weeklong program with 28 students who agreed to participate. During the interviews, we asked students about their perceptions of programming in general and which programming constructs they found easy and/or hard. We found that all students perceived programming as a means of creating artifacts, but that students with prior programming experience went deeper by associating programming with process and function. We also characterize the specific Scratch programming constructs that beginning versus experienced children perceive as easy and/or hard. These findings will help experts and educators better understand how children think about programming and how experience changes these perceptions over time. These findings also have implications on the design of curricula and instructional resources to address difficulties children face while learning to program.
Automated grading has become crucial in supporting large introductory Computer Science courses by assisting instructors in reducing grading time and course costs. However, novice programmers are often frustrated by au...
详细信息
ISBN:
(纸本)9781450358903
Automated grading has become crucial in supporting large introductory Computer Science courses by assisting instructors in reducing grading time and course costs. However, novice programmers are often frustrated by auto-grading tools as they often provide minimal feedback or the questions are too complex. We propose using Bloom's Taxonomy to gradually increase the complexity of the programming question in an auto-grading tool. The easiest questions are based on Knowledge and Comprehension. Next are questions that require Application and Analysis. The most complex questions require Design and Creativity. We have developed programming questions that fit these categories. For example, for debugging the students have to understand and Analyze code. However, in order to write a program with more complex logic the students have to be Creative. The main goal is to lead novice programmers to learn more effectively and efficiently. In this poster, we present examples of the developed auto-graded programming problems based on Bloom's Taxonomy and the results of a pilot study in a CS-1 non-majors course
programming is difficult and requires a lot of work and dedication from the students and teachers. programming is part of the curriculum of many courses, but especially in computer science, and most teaching and learn...
详细信息
ISBN:
(纸本)9781450388504
programming is difficult and requires a lot of work and dedication from the students and teachers. programming is part of the curriculum of many courses, but especially in computer science, and most teaching and learning is problematic. Despite all the efforts of the researchers, it seems to be difficult to find an effective method of teaching that is suitable for all students. This paper describes a set of possible instructional strategies for teaching and learning and its application to an introductory programming course. The goal of utilizing a smart learning system was to increase student scores, pass rate, and increase efficiency for both students and teachers. The set of instructional strategies based on technology was implemented in an introductory programming course over several academic years. Data were collected and the results are analyzed. The results show that there are significant improvements in the grade distributions, the pass/fail rate, in the interest and participation of the students in the different activities developed throughout the course, greater motivation and passion in solving problems, and the more efficient use of teacher time and effort.
暂无评论