3,507 research outputs found

    Masters Students' Experiences of Learning to Program: An Empirical Model

    Get PDF
    The investigation reported here examined how Masters students experience learning to program. The phenomenographic research approach adopted permitted the analysis of 1) how students go about learning to program, that is the ‘Act’ of learning to program, and 2) what students understand by ‘programming’, that is the ‘Object’ of learning to program. Analysis of data from twenty-three participants identified five different experiences of the Act of learning to program and five different experiences of the Object of learning to program. Together the findings comprise an empirical model of the learning to program experience amongst the participating students. We suggest how our findings are significant for programming teachers and offer tools to explore students’ views

    Learning to Program with Natural Language

    Full text link
    Large Language Models (LLMs) have shown remarkable performance in various basic natural language tasks, which raises hope for achieving Artificial General Intelligence. For completing the complex task, we still need a program for the task first and then ask LLMs to follow the program to generate the specific solution. We propose using natural language as a new programming language to describe task procedures, making them easily understandable to both humans and LLMs. ~The LLM is capable of directly generating natural language programs, but these programs may still contain factual errors or incomplete steps. Therefore, we further propose the Learning to Program (\text{LP}) method to ask LLMs themselves to learn the natural language program based on the training dataset of the complex task first and then use the learned program to guide the inference. Our experiments on the reasoning tasks of five different reasoning types (8 datasets) demonstrate the effectiveness of our approach. Further, our analysis experiment shows that the learned program can be directly used to guide another LLM to improve its performance, which reveals a new transfer learning paradigm.Comment: Work in progres

    Performance and Consistency in Learning to Program

    Get PDF
    Performance and consistency play a large role in learning. Decreasing the effort that one invests into course work may have short-term benefits such as reduced stress. However, as courses progress, neglected work accumulates and may cause challenges with learning the course content at hand. In this work, we analyze students' performance and consistency with programming assignments in an introductory programming course. We study how performance, when measured through progress in course assignments, evolves throughout the course, study weekly fluctuations in students' work consistency, and contrast this with students' performance in the course final exam. Our results indicate that whilst fluctuations in students' weekly performance do not distinguish poor performing students from well performing students with a high accuracy, more accurate results can be achieved when focusing on the performance of students on individual assignments which could be used for identifying struggling students who are at risk of dropping out of their studies.Peer reviewe

    Pauses and spacing in learning to program

    Get PDF
    Conventional wisdom holds that time is an integral part of the learning process. Spacing out learning over multiple study sessions seems to be better for learning than having a single longer study session. Learners should also take pauses from the learning process to absorb, assimilate, and analyze what they have just learned. At the same time, pausing too often can be harmful for learning. Participants of two subsequent introductory programming courses completed programming tasks in an integrated development environment that saved detailed logs of their actions, including time stamps of all the participants' keypresses in said environment. Using this data with background variables and a self-regulation metric questionnaire, we study how the students space out their work, identify trends in between the kinds of pauses the participants took and the course outcomes, and their connection to background variables. Based on our research, students tend to space out their work, working on multiple days each week. In addition, a high relative amount of pauses of only a few seconds correlated positively with exam scores, while a high relative amount of pauses of a few minutes correlated negatively with exam scores. Student pausing behaviors are poorly explained by traditional self-regulation measures such as the Motivated Strategies for Learning Questionnaire and other background variables.Peer reviewe

    Learning to program: from problems to code

    Get PDF
    This paper introduces the approach to teaching problem-solving and text-based programming that has been adopted in a large, post-18, undergraduate, key introductory module (L4 FHEQ) on Computing and Information Technology at the Open University (UK). We describe how students are equipped with programming, but foremost problem-solving skills. Key ingredients of the approach are interleaving of skills, explicit worked examples of decomposition, formulation of algorithms (with the help of patterns for recurring problems) and translation to code. Preliminary results are encouraging: students’ average course work scores increase as they progress through the course

    Learning to Program in Python – by Teaching It!

    Get PDF
    The US Bureau of Labor Statistics predicts over 8 million job openings in IT and computing, including 1 million cybersecurity postings, over the current five-year period. This paper presents lessons learned in preparing middle-school students in rural Georgia for future careers in computer science/ IT by teaching computer programming in the free, open-source programming language Python using Turtle graphics, and discusses exercises and activities with low-cost drones, bots, and 3D printers to get students interested and keep them engaged in coding. Described herein is one pair of instructors’ (one middle-school, one university) multi-year, multi-stage approach to providing engineering and technology courses, including: how to code Turtle graphics in Python; how to engage children by using short, interactive, visual programs for every age level; building cross-curricular bridges toward technology careers using 3D printing, robotics, and low-cost drones; and, how to build more advanced programming skills in Python

    Ways of experiencing the act of learning to program: a phenomenographic study of introductory programming students at university

    Get PDF
    The research reported here investigates variation in first year university students’ early experiences of learning to program, with a particular focus on revealing differences in how they go about learning to program. A phenomenographic research approach was used to reveal variation in how the act of learning to program may be constituted amongst first year university students. Semi-structured interviews were conducted with students who had either recently completed, or were enrolled in, a university-level introductory programming subject. Analysis revealed that students might go about learning to program in any of five different ways; by: (1) Following – where learning to program is experienced as ‘getting through’ the unit; (2) Coding – where learning to program is experienced as learning to code; (3) Understanding and integrating – where learning to program is experienced as learning to write a program through understanding and integrating concepts; (4) Problem solving – where learning to program is experienced as learning to do what it takes to solve a problem, and; (5) Participating or enculturation – where learning to program is experienced as discovering what it means to become a programmer. The relationships between these different approaches to learning are represented diagrammatically. The mapping of the variation constitutes a framework within which one aspect of the teaching and learning of introductory programming, how students go about it, may be understood. Implications for teaching and learning in introductory university curricula are discussed
    • …
    corecore