176,977 research outputs found
A systematic literature review of capstone courses in software engineering
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
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
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
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"
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
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
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
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
Recommended from our members
Internet-of-Things Instructional Platform for Electrical and Computer Engineering
ABSTRACT OF THE THESISInternet-of-Things Instructional Platformfor Electrical and Computer Engineeringby Xu ZhangMaster of Science in Electrical and Computer EngineeringUniversity of California, Los Angeles, 2019Professor William J. Kaiser, ChairThe motivation of this thesis is to design an interactive and scalable educational platform that delivers latest industrial technology and related electrical and computer engineering fundamentals to engineering students with inspiring and intuitive project examples. Current platform mainly demonstrates merged topics including Internet-of-Things (IoT) network, embedded system, data processing and computing, and machine learning. The platform is composed of hardware system, software system, and curriculum system. The hardware system is consisted of STMicroelectronics SensorTile kits, STMicroelectronics Nucleo board, and Beaglebone, which provide different levels of IoT hardware components with reasonable costs. The software system is constituted with open-source integrated development environment (IDE), System WorkBench, which is a professional tool to support bare-metal microcontroller programming. The curriculum system has series of tutorials and reference designs, which provide various intuitive projects with detailed instructions and programming guidance. There are nine tutorials covering fundamental topics including firmware level programming, sensor system signal acquisition, motion sensing, audio sampling and signal processing, Bluetooth low energy (BLE), and inertial sensing. Reference design provides complete, end-to-end experience in development of a system. This experience prepares developers for innovation and implementation of new systems.This platform is initiated through UCLA Engineering 96C course, which becomes one of the engineering course requirement, and UCLA ECE 180D course, which is the senior capstone design course. UCLA students have collaborated together and developed novel systems for motion classification with SensorTile data sources and machine learning methods developed. Those extraordinary projects are tidily compiled as student project reference designs to inspire other future developments. In addition, the platform is widely adopted by various universities including Columbia University, California State University – North Bridge, Georgia Tech, University of Maine, and so on
Teaching compiler development to undergraduates using a template based approach
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
- …