2 research outputs found

    Assessing CS1 design skills with a string manipulation task

    No full text
    Session: Introductory ProgrammingThis study explores novice programmers’ abilities to design and code a string manipulation task in C after one semester of tertiary instruction. String manipulation is an important skill for novice programmers to master as most applications deal with text and/or interact with the user. The analysis shows most novice programmers (88%) were able to sketch their own programming plan to print a word in pyramid style. 53% of students chose to control the printing letter by letter (character level) and 32% updated and printed the word as a whole (string level). However only 6% used string functions, apart from strlen() and strcmp(), to implement their plan. This indicated a low level of transfer from their most recent class activity which focused on the C string library. As expected, not all succeeded to correctly implement their plan: 56% were correct at character level and 63% at string level, resulting in 49% of the whole cohort completing the task. Their code has been thoroughly analysed to identify implementation issues, and logical, syntax and plan errors are reported and discussed.Cruz Izu, Amali Weerasignh

    The Design and Evaluation of an Educational Software Development Process for First Year Computing Undergraduates

    Get PDF
    First year, undergraduate computing students experience a series of well-known challenges when learning how to design and develop software solutions. These challenges, which include a failure to engage effectively with planning solutions prior to implementation ultimately impact upon the students’ competency and their retention beyond the first year of their studies. In the software industry, software development processes systematically guide the development of software solutions through iterations of analysis, design, implementation and testing. Industry-standard processes are, however, unsuitable for novice programmers as they require prior programming knowledge. This study investigates how a researcher-designed educational software development process could be created for novice undergraduate learners, and the impact of this process on their competence in learning how to develop software solutions. Based on an Action Research methodology that ran over three cycles, this research demonstrates how an educational software development methodology (termed FRESH) and its operationalised process (termed CADET which is a concrete implementation of the FRESH methodology), was designed and implemented as an educational tool for enhancing student engagement and competency in software development. Through CADET, students were reframed as software developers who understand the value in planning and developing software solutions, and not as programmers who prematurely try to implement solutions. While there remain opportunities to further enhance the technical sophistication of the process as it is implemented in practice, CADET enabled the software development steps of analysis and design to be explicit elements of developing software solutions, rather than their more typically implicit inclusion in introductory CS courses. The research contributes to the field of computing education by exploring the possibilities of – and by concretely generating – an appropriate scaffolded methodology and process; by illustrating the use of computational thinking and threshold concepts in software development; and by providing a novel evaluation framework (termed AKM-SOLO) to aid in the continuous improvement of educational processes and courses by measuring student learning experiences and competencies
    corecore