237 research outputs found

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    An Intelligent Debugging Tutor For Novice Computer Science Students

    Get PDF
    Debugging is a necessary aspect of computer science that can be difficult for novices and experienced programmers alike. This skill is mainly self-taught and is generally gained through trial and error, perhaps with some assistance from a professor or other expert figure. Novices encountering their first software defects may have few avenues open to them depending on the environment in which they are learning to program. The evident problem here is that the potential for a student to become stuck, frustrated, and/or losing confidence in their ability to pursue computer science is great. For a student to be successful when working professionally or progressing through academia they need to be able to function independently; trusting their own knowledge on par or above that of others so that their productivity does not rely on the knowledge of someone else. In order to solve this problem an Intelligent Tutoring System for teaching debugging skills to the novice utilizing Case Based Reasoning, Static Program Slicing, and the student\u27s preferred learning style was proposed. Case acquisition and automatic Exercise Generation were also explored. The system built for this research program was evaluated using novice students at the College and High School levels. Results of this evaluation produced statistically significant results at the p\u3c.05 and p\u3c.01 levels, with generated exercises exhibiting significance at the p\u3c.01 level. These results prove that the methodology chosen is a valid approach for the problem described, that the system does in fact teach students how to debug programs, and that the system is capable of successfully generating exercises on the fly

    Providing Metacognitive Support Using Learning by Teaching Paradigm

    Get PDF
    This item is only available electronically.Learning by teaching technique is a powerful approach that enhances students to think deeply, orally and repeatedly. However, there are some obstacles to use this technique in school settings such as time-consuming, the anxiety of failing in front of the classmates and finding matching peers. In order to take advantage of this method for the student, there are several computer-based systems have been implemented to apply this approach where students teach the virtual agents to play the tutee role. All of these existing systems focus on various domains, and none of them have considered programming problem solving. In addition to that, the majority of the exiting systems did not provided meta-cognitive support. They only the focus on providing feedback about the content such as providing correct answers. This type of feedback called Knowledge of Correct Response: KCR). In our work, we build a computer-based learning environment that enables the novice programmers to teach problem solving to an animated agent. It combines learning by teaching technique and meta-cognitive support. That will help novice programmers to acquire deep learning on how to solve problems and prepare those programmers for future learning tasks. This project could provide a solution to novice programmers who usually tend to focus on writing the code rather than understanding the problem properly because that would lead them to be frustrated when they do not know how to deal with unfamiliar programming problems. We conducted an experiment in order to compare the e↔ect of providing guided meta-cognitive feedback and KCR feedback on the novice programmers’ skills in learning by teaching paradigm. We implemented two versions of our system. The first version which provides meta-cognitive feedback and the other version which provides KCR feedback. We analysed data from novice programmers, 18-25 years old, who at least studied and passed at least one programming course. They are from College of Computer at Al-lieth in Umm Al-Qura University. The place of the conducted experiment was in the college’s lab. We found that the meta-cognitive feedback e↔ect positively on the novice programmers’ skills comparing among the pre-test, post-test and delayed test. The performance of 82% of the participants in the experimental group (who received guided meta-cognitive feedback) has been improved after the post-test whereas the performance of only 30% of participants in the control group (who received KCR feedback) has been improved. Although the difficulty of the delayed test compared to the pre-test and the post-test, the performance of 70% of the participants in the experimental group has been improved whereas the performance of only 50% of the participants in the control group has been improved. We are not surprised about the improvement of the control group because learning by teaching technique can encourage ( but not to induce) the practice of meta-cognitive skills implicitly whereas the experimental group use learning teaching technique with meta-cognitive support in an explicit way.Thesis (MCompSc) -- University of Adelaide, School of Computer Science, 201

    Constructive Use of Errors in Teaching the UML Class Diagram in an IS Engineering Course

    Get PDF
    A class diagram is one of the most important diagrams of Unified Modeling Language (UML) and can be used for modeling the static structure of a software system. Learning from errors is a teaching approach based on the assumption that errors can promote learning. We applied a constructive approach of using errors in designing a UML class diagram in order to (a) categorize the students’ errors when they design a class diagram from a text scenario that describes a specific organization and (b) determine whether the learning-from-errors approach enables students to produce more accurate and correct diagrams. The research was conducted with college students (N = 45) studying for their bachelor’s degree in engineering. The approach is presented, and the learning-from-errors activity is illustrated. We present the students’ errors in designing the class diagram before and after the activity, together with the students’ opinions about applying the new approach in their course. Twenty errors in fundamental components of the class diagram design were observed. The students erred less after the activity of learning from errors. The displayed results show the relevance and potential of embedding our approach in teaching. Furthermore, the students viewed the learning-from-errors activity favorably. Thus, one of the benefits of our developed activity is increased student motivation. In light of the improved performance of the task, and the students’ responses to the learning-from-errors approach, we recommend that information systems teachers use similar activities in different fields and on various topics

    Using an e-learning tool to overcome difficulties in learning object-oriented programming

    Get PDF
    This study was motivated by the need to overcome the pedagogical hindrances experienced by introductory object-oriented programming students in order to address the high attrition rate evident among novice programmers in distance education. The initial phase of the research process involved exploring a variety of alternative visual programming environments for novices. Thereafter the selection process detailed several requirements that would define the ideal choice of the most appropriate tool. An educational tool Raptor was selected. Lastly, the core focus of this mixed method research was to evaluate undergraduate UNISA students’ perceptions of the Raptor e-learning tools with respect to the perceived effectiveness in enhancing novices’ learning experience, in an attempt to lower the barriers to object-oriented programming. Students’ perceptions collectively of the Raptor visual tool were positive and despite the fact that the sample size was too small to achieve statistical significance, these quantitative and qualitative results provide the practical basis for implementing Raptor in future. Thus providing learning opportunities suited to learner interests and needs, can lead to an enormous potential to stimulate individuals’ motivation and development in creating a more positive learning experience to overcome barriers in programming and enhance concept understanding to address the diverse needs of students in distance education that could lead to a reduced dropout rate.ComputingM. Sc. (Computing

    On the Syntactic, Semantic, and Pragmatic Quality of Students’ Conceptual Models

    Get PDF
    Visual notations and conceptual models, such as ER diagrams or UML diagrams aid in aligning stakeholder needs, defining and prioritizing processes and goals for the system under development, serve as a reference for requirements elicitation, negotiation, and enable validation as well as verification of artifacts. With such a ubiquitous presence and paramount importance, conceptual models have therefore been introduced in software engineering curricula far and wide. However, it is exceedingly difficult to teach and learn conceptual modeling. Not only does it require educators to instruct notation and syntax of the visual language, but also semantic intricacies. Similarly, students struggle with what differentiates a “good” conceptual model from an inadequate one, how to use conceptual models of different types in conjunction with one another in a meaningful way, or simply how to avoid ambiguity and vagueness. In this paper, we discuss the syntactic, semantic, and pragmatic quality of conceptual models in four courses from an undergraduate software engineering program. It is not our aim to present empirically rigorous results, but to contribute to the body of knowledge on the quality of typical novices’ conceptual models. We seek to foster discussion in the community and present observations and results for comparison

    A generic architecture for interactive intelligent tutoring systems

    Get PDF
    This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University, 07/06/2001.This research is focused on developing a generic intelligent architecture for an interactive tutoring system. A review of the literature in the areas of instructional theories, cognitive and social views of learning, intelligent tutoring systems development methodologies, and knowledge representation methods was conducted. As a result, a generic ITS development architecture (GeNisa) has been proposed, which combines the features of knowledge base systems (KBS) with object-oriented methodology. The GeNisa architecture consists of the following components: a tutorial events communication module, which encapsulates the interactive processes and other independent computations between different components; a software design toolkit; and an autonomous knowledge acquisition from a probabilistic knowledge base. A graphical application development environment includes tools to support application development, and learning environments and which use a case scenario as a basis for instruction. The generic architecture is designed to support client-side execution in a Web browser environment, and further testing will show that it can disseminate applications over the World Wide Web. Such an architecture can be adapted to different teaching styles and domains, and reusing instructional materials automatically can reduce the effort of the courseware developer (hence cost and time) in authoring new materials. GeNisa was implemented using Java scripts, and subsequently evaluated at various commercial and academic organisations. Parameters chosen for the evaluation include quality of courseware, relevancy of case scenarios, portability to other platforms, ease of use, content, user-friendliness, screen display, clarity, topic interest, and overall satisfaction with GeNisa. In general, the evaluation focused on the novel characteristics and performances of the GeNisa architecture in comparison with other ITS and the results obtained are discussed and analysed. On the basis of the experience gained during the literature research and GeNisa development and evaluation. a generic methodology for ITS development is proposed as well as the requirements for the further development of ITS tools. Finally, conclusions are drawn and areas for further research are identified

    Automated Feedback for Learning Code Refactoring

    Get PDF

    TRACING LEARNING ENVIRONMENT IN JAVA PROGRAMMING LANGUAGE

    Get PDF
    The visualisation approach is one of the programming learning styles that has been taken into account in programming education. A collection of visualisation tools has emerged with the aim of assisting novice programmers in learning how to program. Each tool has its own set of features that may or may not be helpful in gaining a better understanding. The methods that we used in this study are focused on using memory referencing and visualisation to clarify what happens during individual program statement executions. Understanding the efficacy of current instructional resources is a critical component of gathering students' requirements and needs for future improvement. The “Tracing Learning Environment” (TLE) is developed for novice programmers to help them trace the sequence of execution of a software program and the reserved place of data in the memory. The framework relies on using visualisation as the programs are run and to show the effect of each statement in the code. It provides an environment for learners to see what happens to the data while running the program. The specification of the TLE draws largely on research regarding the role of visualisation in teaching computer programming and associated literature on tools to support learning programming. The TLE framework has been evaluated by conducting an empirical study using a mixed-method approach with novice and expert participants. The study has included surveys, focus groups, and semi-structured interviews. Student performance was measured before and after using the visualisation tool and compared with a control group who participated in a standard teaching session only. Early findings highlighted the need to visualise the control of the execution of code, evaluation of expressions, represent the class hierarchy along with the importance of a good interface/usability of the tool and to consider the programming languages supported. The evaluation findings are in line with the literature surrounding the benefits of using visualisation in learning to program. The findings found visualisation increased the students’ performance and confidence. When compared to the regular lab activities, the visualisation contributed to better understanding and support for learning to program.Ministry of Education, Saudi Arabi

    Issues, opportunities and concepts in the teaching of programming to novice programmers at the University of Lincoln : three approaches.

    Get PDF
    This thesis describes three small-scale, computer-based approaches developed and used by the author in her teaching of programming concepts to novice programmers, using Pascal as a first language, within a higher education context. The first approach was the development of a piece of tutorial CAL, the second was the development of an on-line help system and the third the development of a pattern language. For the first two, the author created the product. For the pattern language, she designed the template. These three approaches are described and the results obtained outlined. The work also looks at the kind of research methodologies and tools available to the author and present a rationale for her choices of method and tools. This work also briefly reviews some learning theories that could be used to underpin the design, use and evaluation of CAL. The thesis looks at a range of topics associated with the teaching of programming and the use of CAL. It looks at issues around the psychology and human aspects of learning to program, such as confirmatory bias and vision. It looks at other research efforts aimed at developing software to support inexperienced programmers, including new programming languages specifically designed to teach programming concepts and sophisticated programming support environments. The work briefly reviews various types of CAL and their uses. It also examines some key projects in CAL development from the 1960s onwards, with particular emphasis on UK projects from the early 1970s to the late 1990s. It looks at what conclusions can be drawn from examining some of the many CAL projects in the past. Finally, the work reviews the various strands of the author's research efforts and presents a brief overview and some initial suggestions for the teaching of programming to novice programmers
    • 

    corecore