4 research outputs found

    A Software Development Process for Freshman Undergraduate Students

    Get PDF
    This conceptual paper presents work which is part of an ongoing research project into the design of a software development process aimed at freshman, undergraduate computing students. The process of how to plan and develop a solution is a topic that is addressed very lightly in many freshman, undergraduate courses which can leave novices open to developing habit-forming, maladaptive cognitive practices. The conceptual software development process described in this paper has a learning process at its core which centres on declarative knowledge (in the form of threshold concepts) and procedural knowledge (in the form of computational thinking skills) scaffolding freshman software development from initial planning through to final solution. The process - known as Computational Analysis and Design Engineered Thinking (CADET) - aims to support the structured development of both software and student self-efficacy

    A Conceptual Framework for a Software Development Process based on Computational Thinking

    Get PDF
    A software development process is a mechanism for problem solving to help software developers plan, design and structure the development of software to solve a problem. Without a process to guide the structured evolution of a solution, it is extremely likely that at least some aspect of the resulting software will be omitted or incorrectly implemented. Even though the importance of utilising a software process for solving problems is accepted in the business and academic communities, it is a topic that is addressed very lightly (if at all) in most freshman undergraduate computing courses with most courses focussing on programming procedures rather than the process of how to develop a solution. A consequence of this is that some students go on to develop maladaptive cognitive practices where they rush to implement solutions to problems with little planning. Typically these maladaptive practices involve surface practices such as coding by rote learning and cutting and pasting code from existing projects. Such practices can be very difficult to unlearn and can result in students lacking skills in planning and designing solutions to problems which can persist to graduation. Despite these issues, little active research has been found on the development of software processes aimed at freshman third level learners and consequently there are few approaches available to help freshman students through all stages of the software process. However, there is a wealth of current research into computational thinking (CT) as a mechanism to help solve computational problems. Even though CT is seen as a key practice of computer science, most of the research into CT (as a named area) is aimed at 1st and 2nd level education with CT being a more implicit part of third level computing courses. This suggests that there is an exciting opportunity to explicitly exploit the affordances and skills of CT into a software process aimed at freshman third level learners. This paper presents work which has been carried out as part of an ongoing research project into this issue in which the key skills associated with computational thinking are incorporated into a conceptual framework which will provide a structure for a software process aimed at freshman undergraduate computing students. This research is not tied to any particular programming paradigm but its use is assumed to be in the context of imperative, commercial programming languages. The framework is centred on declarative knowledge (in the form of threshold concepts) and procedural knowledge (in the form of CT skills) scaffolding freshman software development from initial planning through to final solution. The framework known as Computational Analysis and Design Engineered Thinking (CADET) – once operationalised as a software process with an accompanying support tool - aims to support the structured development of both software and student self-efficacy in the topic

    A Study of First Year Undergraduate Computing Students\u27 Experience of Learning Software Development in the Absence of a Software Development Process

    Get PDF
    Despite the ever-growing demand for software development graduates, it is recognised that a significant barrier for increasing graduate numbers lies in the inherent difficulty in learning how to develop software. This paper presents a study that is part of a larger research project aimed at addressing the gap in the provision of educational software development processes for freshman, novice undergraduate learners, to improve proficiency levels. As a means of understanding how such learners problem solve in software development in the absence of a formal process, this study examines the experiences and depth of learning acquired by a sample set of novice, freshman university learners. The study finds that without the scaffolding of an appropriate structured development process tailored to novices, students are in danger of failing to engage with the problem solving skills necessary for software development, particularly the skill of designing solutions prior to coding

    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