programming is a core skill that all computer science students should adopt, but mastering that skill is a demanding task. Educational institutions must find a way to alleviate problems associated with learning progra...
详细信息
ISBN:
(纸本)9783319938820;9783319938813
programming is a core skill that all computer science students should adopt, but mastering that skill is a demanding task. Educational institutions must find a way to alleviate problems associated with learning programming and to offer a service to an increased number of applicants. Part of these efforts is the use of Web tools in acquiring programming skills. The Web is a social platform and is designed to promote communication, collaboration, and sharing. Use of these tools in teaching programming prepares students for work in a distributed work environment but also opens up a possibility of improving learning process through new forms of interaction between students and lecturers. The aim of this paper is to provide an overview of Web programming tools with an emphasis on collaborative editors and discuss challenges they are addressing as well as possibilities of their application in the learning environment. As a follow up, a new taxonomy of programminglearning tools is proposed to facilitate the comparison of these tools and selection of a suitable one for the particular learning activity.
One of the most challenging tasks in computer science and similar courses consists of both teaching and learning computer programming. Usually this requires a great deal of work, dedication, and motivation from both t...
详细信息
ISBN:
(纸本)9781450371919
One of the most challenging tasks in computer science and similar courses consists of both teaching and learning computer programming. Usually this requires a great deal of work, dedication, and motivation from both teachers and students. Accordingly, ever since the first programming languages emerged, the problems inherent to programming teaching and learning have been studied and investigated. The theme is very serious, not only for the important concepts underlying computer science courses but also for reducing the lack of motivation, failure, and abandonment that result from students frustration. Therefore, early identification of potential problems and immediate response is a fundamental aspect to avoid student's failure and reduce dropout rates. In this paper, we propose a machine-learning (neural network) predictive model of student failure based on the student profile, which is built throughout programming classes by continuously monitoring and evaluating student activities. The resulting model allows teachers to early identify students that are more likely to fail, allowing them to devote more time to those students and try novel strategies to improve their programming skills.
Since the beginning of learning programming, the first-year student felt intimidated when learning to programme. Coding ability is a basic competency as a programmer, especially for Computer Science students. The limi...
详细信息
ISBN:
(纸本)9781450372107
Since the beginning of learning programming, the first-year student felt intimidated when learning to programme. Coding ability is a basic competency as a programmer, especially for Computer Science students. The limitation of class study time requires a self-learning. This study will identify students' Mental Model to help define the design of tailored e-learning in programming subject. This study was exploratory research involving 100 students that were purposively sampling from five departments. They answered an online questionnaire containing 16 questions about motivation to learn, competency levels, reasons/constraints in learning, efforts to learn, and expectations about the proposed systems. In the second session data collection, 20 students were selected who had detailed answers, and they represented each department. These twenty students were involved in the Focus Group Discussion to produce a mutually agreed mental model. The results are students believe that the programming logic is difficult to understand;the syntax is hard to remember, the logic is difficult to implement into coding, the students feel overwhelmed and the unsupported environment. The solution was found through a mental model in the form of the grouping of features that consider cognitive, behavioral, and student competency levels in programming subject, especially in Java programming The future work of this research is the simplification of learning material to provide the right portion for students by applying the three levels of mental models, so that proposed e-learning can accommodate learning needs of various user needs.
e-ECLiP aims to establish a learning environment which promotes students' active involvement, contributes to the knowledge construction and the development of skills in programming through students' engagement...
详细信息
e-ECLiP aims to establish a learning environment which promotes students' active involvement, contributes to the knowledge construction and the development of skills in programming through students' engagement in exploratory and collaborative activities. The collaboration is facilitated through the ACT tool, a synchronous communication tool that supports mechanisms for adaptation and personalization of the communication as well as for students' self-regulation. In the study presented, students of secondary education worked with e-ECLiP and collaborated through ACT in the context of a programming course. The results revealed that the educational setting used, the proposed didactical approach, and the context of the activities contributed positively in the comprehension of the loop construct and its application in solving simple problems. Also, the students admitted positively the supported synchronous communication tool and appreciated the provided facilities. It seems that the ACT tool can serve the context of the activities and the supported self-regulation mechanism can help students in improving their collaborative behaviour.
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.
Writing programs is essential to learning programming. Most programming courses encourage students to practice with lab and homework assignments. By analyzing solutions to these exercises teachers can discover mistake...
详细信息
ISBN:
(数字)9783319938462
ISBN:
(纸本)9783319938462;9783319938455
Writing programs is essential to learning programming. Most programming courses encourage students to practice with lab and homework assignments. By analyzing solutions to these exercises teachers can discover mistakes and concepts students are struggling with, and use that knowledge to improve the course. Students however tend to submit many different programs even for simple exercises, making such analysis difficult. We propose using tree regular expressions to encode common patterns in programs. Based on these patterns we induce rules describing common approaches and mistakes for a given assignment. In this paper we present a case study of rule-based analysis for an introductory Python exercise. We show that our rules are easy to interpret, and can be learned from a relatively small set of programs.
Within the field of on-line tutoring systems for learning programming, such as ***'s Hour of code, there is a trend to use previous student data to give hints. This paper shows that it is better to use expert know...
详细信息
ISBN:
(纸本)9781450358866
Within the field of on-line tutoring systems for learning programming, such as ***'s Hour of code, there is a trend to use previous student data to give hints. This paper shows that it is better to use expert knowledge to provide hints in environments such as ***'s Hour of code. We present a heuristic-based approach to generating next-step hints. We use pattern matching algorithms to identify heuristics and apply each identified heuristic to an input program. We generate a next-step hint by selecting the highest scoring heuristic using a scoring function. By comparing our results with results of a previous experiment on Hour of code we show that a heuristics-based approach to providing hints gives results that are impossible to further improve. These basic heuristics are sufficient to efficiently mimic experts' next-step hints.
learning to program is difficult and requires a lot of work, dedication, and training. The difficulties of teaching and learning programming are a cause for concern for everyone where this subject is needed. It is a u...
详细信息
ISBN:
(纸本)9781450365185
learning to program is difficult and requires a lot of work, dedication, and training. The difficulties of teaching and learning programming are a cause for concern for everyone where this subject is needed. It is a universal problem. The theme of teaching and learning programming difficulties is a serious problem not only for the important concepts underlying and structuring the course, but also for the lack of motivation, the failure, and abandonment that such frustration may imply for the student. It is important to act quickly. The follow-up of each student must be immediate and personalized. It is not possible to follow a traditional system of exposing the syntax and semantics of a language, with demonstrative examples of the concept, something more is needed. It is important to make an individual and constant evaluation of all the concepts that are part of the programming course. With this constant and personalized evaluation, it is possible to build a profile of each student's competences - building skills in introductory programming. Giving each student the opportunity to improve particular skills. This concept is very similar to the skills of a character in a computer game, which can be acquired through training, performing tasks or practicing a certain ability. The paper goal is to describe a system that allows us to suggest exercises and to evaluate the results automatically. That will allow to construct the profile of the student in programming, according to the different phases of learning. This set of skills allow the teacher to have complete and updated information of the students' knowledge at all times, and thus minimizes the students' demotivation and failure.
Background. programming is widely known to be a cognitively demanding field. learning programming can be a strenuous task without the proper guidance and methodology. Students often face difficulties in understanding ...
详细信息
Background. programming is widely known to be a cognitively demanding field. learning programming can be a strenuous task without the proper guidance and methodology. Students often face difficulties in understanding even the most basic and fundamental concepts of programming, leading to their confusion and disappointment. Serious games for programming have the potential to alleviate students' difficulties with programming. Aim. This article introduces a new serious game named jAVANT-GARDE which aims to educate the player on the basic concepts of programming and object-oriented programming through Java. By design, the game is suitable for everyone, even for players with no previous knowledge of programming. This article aims to present important information regarding the design, implementation and pilot evaluation of jAVANT-GARDE. Method. The game was evaluated by 42 high school students (age 16-17) in terms of perceived player experience and short-term learning. The participants played the game for one hour in the school lab and then answered a questionnaire based on the MEEGA+ framework. Results. Students evaluated positively the game in terms of its usability, confidence in playing the game, challenge, satisfaction, fun, focused attention and relevance. Moreover, the majority of students stated that would prefer learning programming with this game to learning through other teaching methods. Conclusions. The results of the pilot study and students' replies in the questionnaire are rather positive. This gives us the initiative to proceed with studying the effect of the game in long-term learning of programming concepts.
暂无评论