176,977 research outputs found

    A systematic literature review of capstone courses in software engineering

    Get PDF
    Context: Tertiary education institutions aim to prepare their computer science and software engineering students for working life. While much of the technical principles are covered in lower-level courses, team-based capstone courses are a common way to provide students with hands-on experience and teach soft skills. Objective: This paper explores the characteristics of project-based software engineering capstone courses presented in the literature. The goal of this work is to understand the pros and cons of different approaches by synthesising the various aspects of software engineering capstone courses and related experiences. Method: In a systematic literature review for 2007–2022, we identified 127 articles describing real-world capstone courses. These articles were analysed based on their presented course characteristics and the reported course outcomes. Results: The characteristics were synthesised into a taxonomy consisting of duration, team sizes, client and project sources, project implementation, and student assessment. We found out that capstone courses generally last one semester and divide students into groups of 4–5 where they work on a project for a client. For a slight majority of courses, the clients are external to the course staff and students are often expected to produce a proof-of-concept level software product as the main end deliverable. The courses generally include various forms of student assessment both during and at the end of the course. Conclusions: This paper provides researchers and educators with a classification of characteristics of software engineering capstone courses based on previous research. We also further synthesise insights on the reported course outcomes. Our review study aims to help educators to identify various ways of organising capstones and effectively plan and deliver their own capstone courses. The characterisation also helps researchers to conduct further studies on software engineering capstones.Context: Tertiary education institutions aim to prepare their computer science and software engineering students for working life. While much of the technical principles are covered in lower-level courses, team-based capstone courses are a common way to provide students with hands-on experience and teach soft skills. Objective: This paper explores the characteristics of project-based software engineering capstone courses presented in the literature. The goal of this work is to understand the pros and cons of different approaches by synthesising the various aspects of software engineering capstone courses and related experiences. Method: In a systematic literature review for 2007–2022, we identified 127 articles describing real-world capstone courses. These articles were analysed based on their presented course characteristics and the reported course outcomes. Results: The characteristics were synthesised into a taxonomy consisting of duration, team sizes, client and project sources, project implementation, and student assessment. We found out that capstone courses generally last one semester and divide students into groups of 4–5 where they work on a project for a client. For a slight majority of courses, the clients are external to the course staff and students are often expected to produce a proof-of-concept level software product as the main end deliverable. The courses generally include various forms of student assessment both during and at the end of the course. Conclusions: This paper provides researchers and educators with a classification of characteristics of software engineering capstone courses based on previous research. We also further synthesise insights on the reported course outcomes. Our review study aims to help educators to identify various ways of organising capstones and effectively plan and deliver their own capstone courses. The characterisation also helps researchers to conduct further studies on software engineering capstones.Peer reviewe

    LEARNING THROUGH PLAYING: DEVELOPMENT OF SOFTWARE ARCHITECT’S SKILLS WITH BUILDING BLOCKS

    Get PDF
    Software Architecture and Design is a course introduced in the curriculum of Computer Science Bachelor Degree. It is a part of the software engineering body of knowledge to instill good practice in software development. The teaching and learning method of delivering competence in a high level abstraction is challenging in way to obtain knowledge appreciation among students. The experience of deploying learning through playing in a tutorial session encourages students’ engagement, focus and appreciation of the teaching and learning process. The knowledge is delivered, experienced and actively discussed among students to discover more. This paper presents the design and implementation of the learning through playing building blocks for the purpose of understanding software architect’s roles and responsibilities. The analysis based on the observation of the conduct is discussed and lessons learnt are elaborated

    A Tool For Teaching Spline Methods In A Computer Graphics Course

    Get PDF
    The specialized mathematics knowledge covered in a computer graphics course is usually presented to students in an abstract way. Albeit, computer graphics is an application of this (abstract) mathematics, students may find it hard to link them together. In particular one of the most difficult topics to present in a pedagogical manner to junior students in a computer graphics course is spline methods (mathematical method for data smoothing) used for curve/surface modelling. This topic involves mainly the mathematics of parametric functions, piecewise functions, derivatives, matrices, and parametric/geometric continuities. Usually a student has a vague picture of the actual output of the application of this mathematics. Many educators have experienced that students may fully understand splines application, if and when they are assigned a software project to implement splines, and this understanding could still remain vague until the very last stages of the implementation. As an alternative, static pictures may be presented in class to provide an intuitive understanding of splines. This approach is, in effect, similar to viewing a picture in a textbook. A better alternative is for the educator to demonstrate real-time spline generation, since a picture is worth ten thousand words but a moving picture (animation) is worth ten thousand static ones. This paper presents an interactive software program which is used as a tool to introduce important concepts and algorithms of spline methods to computer science and computer engineering students. The software is specially developed for educational purposes, and generates spline curves

    Software metrics for monitoring software engineering projects

    Get PDF
    As part of the undergraduate course offered by Edith Cowan University, the Department of Computer Science has (as part of a year\u27s study) a software engineering group project. The structure of this project was divided into two units, Software Engineering l and Software Engineering 2. ln Software Engineering 1, students were given the group project where they had to complete and submit the Functional Requirement and Detail System Design documentation. In Software Engineering 2, students commenced with the implementation of the software, testing and documentation. The software was then submitted for assessment and presented to the client. To aid the students with the development of the software, the department had adopted EXECOM\u27s APT methodology as its standard guideline. Furthermore, the students were divided into groups of 4 to 5, each group working on the same problem. A staff adviser was assigned to each project group. The purpose of this research exercise was to fulfil two objectives. The first objective was to ascertain whether there is a need to improve the final year software engineering project for future students by enhancing any aspect that may be regarded as deficient. The second objective was to ascertain the factors that have the most impact on the quality of the delivered software. The quality of the delivered software was measured using a variety of software metrics. Measurement of software has mostly been ignored until recently or used without true understanding of its purpose. A subsidiary objective was to gain an understanding of the worth of software measurement in the student environment One of the conclusions derived from the study suggests that teams who spent more time on software design and testing, tended to produce better quality software with less defects. The study also showed that adherence to the APT methodology led to the project being on schedule and general team satisfaction with the project management. One of the recommendations made to the project co-ordinator was that staff advisers should have sufficient knowledge of the software engineering process

    CoCalc as a Learning Tool for Neural Network Simulation in the Special Course "Foundations of Mathematic Informatics"

    Full text link
    The role of neural network modeling in the learning content of the special course "Foundations of Mathematical Informatics" was discussed. The course was developed for the students of technical universities - future IT-specialists and directed to breaking the gap between theoretic computer science and it's applied applications: software, system and computing engineering. CoCalc was justified as a learning tool of mathematical informatics in general and neural network modeling in particular. The elements of technique of using CoCalc at studying topic "Neural network and pattern recognition" of the special course "Foundations of Mathematic Informatics" are shown. The program code was presented in a CoffeeScript language, which implements the basic components of artificial neural network: neurons, synaptic connections, functions of activations (tangential, sigmoid, stepped) and their derivatives, methods of calculating the network's weights, etc. The features of the Kolmogorov-Arnold representation theorem application were discussed for determination the architecture of multilayer neural networks. The implementation of the disjunctive logical element and approximation of an arbitrary function using a three-layer neural network were given as an examples. According to the simulation results, a conclusion was made as for the limits of the use of constructed networks, in which they retain their adequacy. The framework topics of individual research of the artificial neural networks is proposed.Comment: 16 pages, 3 figures, Proceedings of the 13th International Conference on ICT in Education, Research and Industrial Applications. Integration, Harmonization and Knowledge Transfer (ICTERI, 2018

    Intelligent Tutoring System: Experience of Linking Software Engineering and Programming Teaching

    Full text link
    The increasing number of computer science students pushes lecturers and tutors of first-year programming courses to their limits to provide high-quality feedback to the students. Existing systems that handle automated grading primarily focus on the automation of test case executions in the context of programming assignments. However, they cannot provide customized feedback about the students' errors, and hence, cannot replace the help of tutors. While recent research works in the area of automated grading and feedback generation address this issue by using automated repair techniques, so far, to the best of our knowledge, there has been no real-world deployment of such techniques. Based on the research advances in recent years, we have built an intelligent tutoring system that has the capability of providing automated feedback and grading. Furthermore, we designed a Software Engineering course that guides third-year undergraduate students in incrementally developing such a system over the coming years. Each year, students will make contributions that improve the current implementation, while at the same time, we can deploy the current system for usage by first year students. This paper describes our teaching concept, the intelligent tutoring system architecture, and our experience with the stakeholders. This software engineering project for the students has the key advantage that the users of the system are available in-house (i.e., students, tutors, and lecturers from the first-year programming courses). This helps organize requirements engineering sessions and builds awareness about their contribution to a "to be deployed" software project. In this multi-year teaching effort, we have incrementally built a tutoring system that can be used in first-year programming courses. Further, it represents a platform that can integrate the latest research results in APR for education

    Performance Prediction of Computer Science Students in Capstone Software Engineering Course Through Educational Data Mining

    Get PDF
    Educational data mining has been extensively used to predict students’ performance in university courses to plan improvements in teaching and learning processes, achieve academic goals, and timely support interventions. Computer Science (CS) courses focus on promoting problem solving skills through writing of software code and developing solutions using computing technologies. Within a four-year CS curriculum, the sequencing of courses is deliberately designed so that knowledge gained in a prerequisite lower level course is critical for success in upper-level courses. Overall, the CS curriculum prepares the students for a capstone experience in a final year Software Engineering (SE) course. The student success in SE course is dependent on skills such as requirement analysis, design, implementation, and testing gained in lower-level prerequisite courses. In this paper, we analyze grades data of 531 students in all under-graduate CS courses at a public university in the United States over a period of 8 years (2010 to 2018). Statistical analysis techniques including multiple linear regression, Pearson product-moment correlation coefficient, and paired samples t-test are used to analyze the data. The performance of students in SE course is investigated based on their grades in sequence of prerequisite courses including CS I, CS II, Data Structures and Object-oriented Programming. These prerequisite courses teach and test fundamental and advanced programming skills essential for success in SE course. The analysis shows CS II is a significant predictor of students’ success in the SE course. We also investigate the relationship between study of theoretical concepts and their application by examining the correlation between CS II (theory) and Data Structures (application) courses. Results shows a strong and positive correlation between students’ academic performance in the Data Structures course and CS I. We also observe the correlation between CS I and CS II. CS I builds fundamental concepts such as syntax, data types, control structures, selection statements, functions, and recursion while CS II focuses on advanced tools to use the concepts studied in CS I for problem solving. The results indicate a significant difference in mean grades in both courses. Conclusion, interpretations, and implications of these findings for the CS students will be discussed in detail in the full paper

    Improving the Quality of Learning Through Project Based Learning (PjBL) With the STEAM Approach in CAD Courses in the Department of Automotive Engineering Universitas Negeri Padang

    Get PDF
    The application of the Project Based Learning (PjBL) learning model in CAD courses has so far not been satisfactory. the results of the design drawings produced by students could not be implemented because the size, component layout, beauty did not meet the criteria. As a result, the students failure rate in CAD courses from 2019 to 2022 is quite high. PjBL with the STEAM approach is a solution because with STEAM the design of the images produced by students is based on criteria Science, Technology, Engineering, Art and Mathematics. This type of research uses Classroom Action Research, which is an examination of activities that are deliberately raised and occur in a class, and have 3 Cycle. The process of implementing the research consists of four components, namely planning, action, observation, and reflection. The population is Diploma 3 Automotive Engineering Students in Faculty of Engineering, Universitas Negeri Padang (FT UNP) who are enrolled in the CAD course for the Semester January - June 2022 and totaling 46 students. The data collection techniques through observation sheets and students performance in designing drawings using CAD software. The results of the study show that the implementation of PjBL with the STEAM approach can improve the quality of learning. The quality of learning observed is the activity of lecturers and students and learning outcomes. The percentage of lecturer activity in the learning process is 77% and increases in cycles 2 and 3 with percentages of 85.90% and 89.6%. While students activity in the learning process cycle 1 obtained a percentage of 62.4%, increased in cycles 2 and 3 of 73.20% and 87.70%.  courses computer aided design using a project-based learning approach STEAM can increase the average value of students. This is based on the average grade of students drawing projects in cycle 1 of 33.04, Whereas in cycle 2 it was 69.80 and the average students score in cycle 3 was 76.42.The application of the Project Based Learning (PjBL) learning model in CAD courses has so far not been satisfactory. the results of the design drawings produced by students could not be implemented because the size, component layout, beauty did not meet the criteria. As a result, the students failure rate in CAD courses from 2019 to 2022 is quite high. PjBL with the STEAM approach is a solution because with STEAM the design of the images produced by students is based on criteria Science, Technology, Engineering, Art and Mathematics. This type of research uses Classroom Action Research, which is an examination of activities that are deliberately raised and occur in a class, and have 3 Cycle. The process of implementing the research consists of four components, namely planning, action, observation, and reflection. The population is Diploma 3 Automotive Engineering Students in Faculty of Engineering, Universitas Negeri Padang (FT UNP) who are enrolled in the CAD course for the Semester January - June 2022 and totaling 46 students. The data collection techniques through observation sheets and students performance in designing drawings using CAD software. The results of the study show that the implementation of PjBL with the STEAM approach can improve the quality of learning. The quality of learning observed is the activity of lecturers and students and learning outcomes. The percentage of lecturer activity in the learning process is 77% and increases in cycles 2 and 3 with percentages of 85.90% and 89.6%. While students activity in the learning process cycle 1 obtained a percentage of 62.4%, increased in cycles 2 and 3 of 73.20% and 87.70%.  courses computer aided design using a project-based learning approach STEAM can increase the average value of students. This is based on the average grade of students drawing projects in cycle 1 of 33.04, Whereas in cycle 2 it was 69.80 and the average students score in cycle 3 was 76.42

    Teaching compiler development to undergraduates using a template based approach

    Get PDF
    Includes bibliographical references (page 6-7).Compiler Design remains one of the most dreaded courses in any undergraduate Computer Science curriculum, due in part to the complexity and the breadth of the material covered in a typical 14-15 week semester time frame. The situation is further complicated by the fact that most undergraduates have never implemented a large enough software package that is needed for a working compiler, and to do so in such a short time span is a challenge indeed. This necessitates changes in the way we teach compilers, and specifically in ways we set up the project for the Compiler Design course at the undergraduate level. We describe a template based method for teaching compiler design and implementation to the undergraduates, where the students fill in the blanks in a set of templates for each phase of the compiler, starting from the lexical scanner to the code generator. Compilers for new languages can be implemented by modifying only the parts necessary to implement the syntax and the semantics of the language, leaving much of the remaining environment as is. The students not only learn how to design the various phases of the compiler, but also learn the software design and engineering techniques for implementing large software systems. In this paper, we describe a compiler teaching methodology that implements a full working compiler for an imperative C-like programming language with backend code generators for MIPS, Java Virtual Machine (JVM) and Microsoft’s .NET Common Language Runtime (CLR).Md. Zahurul IslamMumit Kha
    • …
    corecore