818 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

    Visual and Textual Programming Languages: A Systematic Review of the Literature

    Get PDF
    It is well documented, and has been the topic of much research, that Computer Science courses tend to have higher than average drop out rates at third level. This is a problem that needs to be addressed with urgency but also caution. The required number of Computer Science graduates is growing every year but the number of graduates is not meeting this demand and one way that this problem can be alleviated is to encourage students at an early age towards studying Computer Science courses. This paper presents a systematic literature review on the role of visual and textual programming languages when learning to program, particularly as a first programming language. The approach is systematic, in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will give insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.Comment: 18 pages (including 2 bibliography pages), 3 figure

    Students' perceptions of paper-based vs. computer-based testing in an introductory programming course

    Get PDF
    This paper examines the preferences of students regarding computer-based versus paper-based assessment, in an introductory computer programming course. Two groups of students were surveyed about their preference between paper-based and computer-based tests and respective rationale. All students had already been assessed: one group using two paper-based tests and the other group using two computer-based tests. Both groups expressed an overwhelming preference for computer-based tests independently of their previous pro- gramming experience. We conclude that, from the students’ point of view, computer-based tests should be the used over paper-based ones for introductory programming courses. This adds to existing literature about computer-based testing of programming skills

    Code Complexity in Introductory Programming Courses

    Get PDF
    Instructors of introductory programming courses would benefit from having a metric for evaluating the sophistication of student code. Since introductory programming courses pack a wide spectrum of topics in a short timeframe, student code changes quickly, raising questions of whether existing software complexity metrics effectively reflect student growth as reflected in their code. We investigate code produced by over 800 students in two different Python-based CS1 courses to determine if frequently used code quality and complexity metrics (e.g., cyclomatic and Halstead complexities) or metrics based on length and syntactic complexity are more effective as a heuristic for gauging students' progress through a course. We conclude that the traditional metrics do not correlate well with time passed in the course. In contrast, metrics based on syntactic complexity and solution size correlate strongly with time in the course, suggesting that they may be more appropriate for evaluating how student code evolves in a course context.Instructors of introductory programming courses would benefit from having a metric for evaluating the sophistication of student code. Since introductory programming courses pack a wide spectrum of topics in a short timeframe, student code changes quickly, raising questions of whether existing software complexity metrics effectively reflect student growth as reflected in their code. We investigate code produced by over 800 students in two different Python-based CS1 courses to determine if frequently used code quality and complexity metrics (e.g., cyclomatic and Halstead complexities) or metrics based on length and syntactic complexity are more effective as a heuristic for gauging students' progress through a course. We conclude that the traditional metrics do not correlate well with time passed in the course. In contrast, metrics based on syntactic complexity and solution size correlate strongly with time in the course, suggesting that they may be more appropriate for evaluating how student code evolves in a course context.Peer reviewe

    Jutge.org

    Get PDF
    Jutge.org is an open access educational online programming judge where students can try to solve more than 800 problems using 22 programming languages. The verdict of their solutions is computed using exhaustive test sets run under time, memory and security restrictions. By contrast to many popular online judges, Jutge.org is designed for students and instructors: On one hand, the problem repository is mainly aimed to beginners, with a clear organization and gradding. On the other hand, the system is designed as a virtual learning environment where instructors can administer their own courses, manage their roster of students and tutors, add problems, attach documents, create lists of problems, assignments, contests and exams. This paper presents Jutge.org and offers some case studies of courses using it.Postprint (published version

    Development and Application of a Rasch Model Measure of Student Competency in University Introductory Computer Programming

    Get PDF
    University computer programming instruction nomenclature commonly uses the term Computer Science 1 (CS1) to describe introductory units of study. Success in CS1 is important as a pre-requisite for further study in programming and related disciplines. It is important to measure student progress and the antecedent influences. This study applied the Rasch Model and Messick’s Unified Theory of Validity to construct an interval level measure of CS1 competency with demonstrable suitability for this purpose

    An Investigation of the Role Programming Support Services Have for Mature Students

    Get PDF
    [ES] Programming support services for introductory programmers have seen a rise in popularity in recent years with third level institutions around the world providing “safe spaces” for students to practice their programming skills and get supports without the risk of being judged by anyone. These services appear in many different structures including Support Centres, Software Studios and help desks. The common trend however is that all the users of these services, in general, report that the service has helped them in their studies and garnered them with more confidence in their ability. This paper examines the role which our Computer Science Centre played for students who attended the support service during an intensive higher diploma course. The intensive course is a 3-week course tailored to students who have previously completed a degree in a field not related to CS, and covers CS1 and CS2 material. The structure and design of the support service is outlined in this paper along with the supports offered. A high-level survey was conducted to investigate the effect of the service on students programming self-efficacy. Study design and methodology are described in detail. Early findings suggest that the support services offered to these students improved their belief in their own programming ability which in turn improved their exam grade outcome. The findings provide valuable evidence to justify future research into the functions of support services with the computer science domain.Nolan, K.; Thompson, A.; Noone, M.; Mooney, A. (2020). An Investigation of the Role Programming Support Services Have for Mature Students. En 6th International Conference on Higher Education Advances (HEAd'20). Editorial Universitat Politècnica de València. (30-05-2020):625-633. https://doi.org/10.4995/HEAd20.2020.11118OCS62563330-05-202

    Prompt Problems: A New Programming Exercise for the Generative AI Era

    Full text link
    Large Language Models (LLMs) are revolutionizing the field of computing education with their powerful code-generating capabilities. Traditional pedagogical practices have focused on code writing tasks, but there is now a shift in importance towards code reading, comprehension and evaluation of LLM-generated code. Alongside this shift, an important new skill is emerging -- the ability to solve programming tasks by constructing good prompts for code-generating models. In this work we introduce a new type of programming exercise to hone this nascent skill: 'Prompt Problems'. Prompt Problems are designed to help students learn how to write effective prompts for AI code generators. A student solves a Prompt Problem by crafting a natural language prompt which, when provided as input to an LLM, outputs code that successfully solves a specified programming task. We also present a new web-based tool called Promptly which hosts a repository of Prompt Problems and supports the automated evaluation of prompt-generated code. We deploy Promptly for the first time in one CS1 and one CS2 course and describe our experiences, which include student perceptions of this new type of activity and their interactions with the tool. We find that students are enthusiastic about Prompt Problems, and appreciate how the problems engage their computational thinking skills and expose them to new programming constructs. We discuss ideas for the future development of new variations of Prompt Problems, and the need to carefully study their integration into classroom practice.Comment: Accepted to SIGCSE'24. arXiv admin note: substantial text overlap with arXiv:2307.1636
    corecore