175,667 research outputs found

    Learning to Reason About Code with Assertions: An Exploration with Two Student Populations

    Get PDF
    Code tracing is fundamental to students’ understanding of a program, and symbolic reasoning that entails learning to use assertions with abstract input and output values, as opposed to concrete values, enhances that understanding. Symbolic reasoning teaches students valuable abstraction and logic skills that will serve them well in all aspects of programming and their softwaredevelopment careers.We use lessons integrated into an online educational tool to supplement classroom instruction to help students learn symbolic reasoning. We explore two ways for students to learn about assertions: Writing assertions to capture the behavior of given code and solving Parsons-style problems in which statements are composed to produce behavior specified in assertions. A subsequent assessment tests students’ ability to select multiple assertions given code and to select the appropriate code fragment for given assertions.The same experiment was conducted with two different populations: a large public R1 research institution and a public R2 Hispanic-Serving Institution (HSI). Overall the impacts were more pronounced at the larger institution with a bigger sample size. Students’ assessment scores showed that they could reason symbolically at both institutions. They did better at Parsons-style problems of matching code to assertions at both institutions, though the difference varied by code type. The two populations had different trends in their performance for conditional code questions as they were asked to select from among increasingly formal assertions. Students from the R1 institution had a strong downward trend, while students from the HSI maintained or slightly increased their performance. The analysis also yielded insight into student misconceptions and suggested directions for further research

    A review of Australasian investigations into problem solving and the novice programmer

    Get PDF
    This Australasian focused review compares a number of recent studies that have identified difficulties encountered by novices while learning programming and problem solving. These studies have shown that novices are not performing at expected levels and many novices have only a fragile knowledge of programming, which may prevent them from learning and applying problem solving strategies. The review goes on to explore proposals for explicitly incorporating problem solving strategy instruction into introductory programming curricula and assessment, in an attempt to produce improved learning outcomes for novices. Finally, directions suggested by the reviewed studies are gathered and some unanswered questions are raised

    The abstraction transition taxonomy: developing desired learning outcomes through the lens of situated cognition

    Get PDF
    We report on a post-hoc analysis of introductory programming lecture materials. The purpose of this analysis is to identify what knowledge and skills we are asking students to acquire, as situated in the activity, tools, and culture of what programmers do and how they think. The specific materials analyzed are the 133 Peer Instruction questions used in lecture to support cognitive apprenticeship -- honoring the situated nature of knowledge. We propose an Abstraction Transition Taxonomy for classifying the kinds of knowing and practices we engage students in as we seek to apprentice them into the programming world. We find students are asked to answer questions expressed using three levels of abstraction: English, CS Speak, and Code. Moreover, many questions involve asking students to transition between levels of abstraction within the context of a computational problem. Finally, by applying our taxonomy in classifying a range of introductory programming exams, we find that summative assessments (including our own) tend to emphasize a small range of the skills fostered in students during the formative/apprenticeship phase

    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

    Dual Language and ENL Comprehension: A First Grade Study for Students at Risk for Delayed English Language Development

    Get PDF
    This research began by asking how dual language programming impacts English comprehension for ENL students. Research was conducted within one first grade dual language cohort with five bilingual students. The data was collected by interviewing teachers and students, utilizing historical comprehension data, observing read alouds, and assessing student comprehension. Findings revealed that comprehension in a participant’s first language was positively related to English comprehension. However, individual student differences impacted the extent of the correlation. Furthermore, dual language teachers implemented common instructional practices to scaffold ENL student comprehension. Therefore, the data implied that native language instruction is integral, student backgrounds and differences need to be analyzed, and dual language educators need adequate professional development to best aid ENL comprehension

    Intelligent and adaptive tutoring for active learning and training environments

    Get PDF
    Active learning facilitated through interactive and adaptive learning environments differs substantially from traditional instructor-oriented, classroom-based teaching. We present a Web-based e-learning environment that integrates knowledge learning and skills training. How these tools are used most effectively is still an open question. We propose knowledge-level interaction and adaptive feedback and guidance as central features. We discuss these features and evaluate the effectiveness of this Web-based environment, focusing on different aspects of learning behaviour and tool usage. Motivation, acceptance of the approach, learning organisation and actual tool usage are aspects of behaviour that require different evaluation techniques to be used

    Links between the personalities, styles and performance in computer programming

    Get PDF
    There are repetitive patterns in strategies of manipulating source code. For example, modifying source code before acquiring knowledge of how a code works is a depth-first style and reading and understanding before modifying source code is a breadth-first style. To the extent we know there is no study on the influence of personality on them. The objective of this study is to understand the influence of personality on programming styles. We did a correlational study with 65 programmers at the University of Stuttgart. Academic achievement, programming experience, attitude towards programming and five personality factors were measured via self-assessed survey. The programming styles were asked in the survey or mined from the software repositories. Performance in programming was composed of bug-proneness of programmers which was mined from software repositories, the grades they got in a software project course and their estimate of their own programming ability. We did statistical analysis and found that Openness to Experience has a positive association with breadth-first style and Conscientiousness has a positive association with depth-first style. We also found that in addition to having more programming experience and better academic achievement, the styles of working depth-first and saving coarse-grained revisions improve performance in programming.Comment: 27 pages, 6 figure

    Is comprehension or application the more important skill for first-year computer science students?

    Get PDF
    Time and performance data was collected on a class of 147 Computer Science 1B students, where students carried out a design and programming task based on one that had been seen in a previous examination. Given that students had previously worked through the task, we assessed their comprehension of that material in this assignment. We were then able to collect the performance data and correlate this with the examination marks for the student to determine if there was a relationship between performance in the examination and performance in this practical. We were also able to correlate the performance in this practical with the time taken to complete the practical, and with the student’s statement as to whether they remembered how they had solved it in their previous attempt. By doing this, we discovered that the students who remembered having solved it previously had a significantly higher mean examination mark than those students who claimed not to remember it. Unsurprisingly, students also performed better in this assignment if they had performed better in the examination. The mean time to complete the task was significantly less for those students who claimed to remember the task. In this task, the comprehension of the original material and the ability to recall it was of more importance than the ability to apply knowledge to an unseen problem.Nickolas J. G. Falkne
    • 

    corecore