Real-world software engineering: A spiral approach to a project-oriented course

Author(s):  
Donald Gotterbarn ◽  
Robert Riser
Electronics ◽  
2021 ◽  
Vol 10 (10) ◽  
pp. 1181
Author(s):  
Juanan Pereira

(1) Background: final year students of computer science engineering degrees must carry out a final degree project (FDP) in order to graduate. Students’ contributions to improve open source software (OSS) through FDPs can offer multiple benefits and challenges, both for the students, the instructors and for the project itself. This work reports on a practical experience developed by four students contributing to mature OSS projects during their FDPs, detailing how they addressed the multiple challenges involved, both from the students and teachers perspective. (2) Methods: we followed the work of four students contributing to two established OSS projects for two academic years and analyzed their work on GitHub and their responses to a survey. (3) Results: we obtained a set of specific recommendations for future practitioners and detailed a list of benefits achieved by steering FDP towards OSS contributions, for students, teachers and the OSS projects. (4) Conclusion: we find out that FDPs oriented towards enhancing OSS projects can introduce students into real-world, practical examples of software engineering principles, give them a boost in their confidence about their technical and communication skills and help them build a portfolio of contributions to daily used worldwide open source applications.


2002 ◽  
Vol 2 (4-5) ◽  
pp. 423-424 ◽  
Author(s):  
MAURICE BRUYNOOGHE ◽  
KUNG-KIU LAU

This special issue marks the tenth anniversary of the LOPSTR workshop. LOPSTR started in 1991 as a workshop on Logic Program Synthesis and Transformation, but later it broadened its scope to logic-based Program Development in general.The motivating force behind LOPSTR has been a belief that declarative paradigms such as logic programming are better suited to program development tasks than traditional non-declarative ones such as the imperative paradigm. Specification, synthesis, transformation or specialisation, analysis, verification and debugging can all be given logical foundations, thus providing a unifying framework for the whole development process.In the past ten years or so, such a theoretical framework has indeed begun to emerge. Even tools have been implemented for analysis, verification and specialisation. However, it is fair to say that so far the focus has largely been on programming-in-the-small. So the future challenge is to apply or extend these techniques to programming-in-the-large, in order to tackle software engineering in the real world.


2021 ◽  
Vol 13 (2) ◽  
pp. 62-84
Author(s):  
Boudjemaa Boudaa ◽  
Djamila Figuir ◽  
Slimane Hammoudi ◽  
Sidi mohamed Benslimane

Collaborative and content-based recommender systems are widely employed in several activity domains helping users in finding relevant products and services (i.e., items). However, with the increasing features of items, the users are getting more demanding in their requirements, and these recommender systems are becoming not able to be efficient for this purpose. Built on knowledge bases about users and items, constraint-based recommender systems (CBRSs) come to meet the complex user requirements. Nevertheless, this kind of recommender systems witnesses a rarity in research and remains underutilised, essentially due to difficulties in knowledge acquisition and/or in their software engineering. This paper details a generic software architecture for the CBRSs development. Accordingly, a prototype mobile application called DATAtourist has been realized using DATAtourisme ontology as a recent real-world knowledge source in tourism. The DATAtourist evaluation under varied usage scenarios has demonstrated its usability and reliability to recommend personalized touristic points of interest.


Author(s):  
Bonnie K. MacKellar ◽  
Mihaela Sabin ◽  
Allen B. Tucker

Too often, computer science programs offer a software engineering course that emphasizes concepts, principles, and practical techniques, but fails to engage students in real-world software experiences. The authors have developed an approach to teaching undergraduate software engineering courses that integrates client-oriented project development and open source development practice. They call this approach the Client-Oriented Open Source Software (CO-FOSS) model. The advantages of this approach are that students are involved directly with a client, nonprofits gain a useful software application, and the project is available as open source for other students or organizations to extend and adapt. This chapter describes the motivation, elaborates the approach, and presents the results in substantial detail. The process is agile and the development framework is transferrable to other one-semester software engineering courses in a wide range of institutions.


Author(s):  
Liguo Yu

Software development is the process to produce an information technology solution to a real-world problem. Teaching and integrating non-technical software engineering skills into the curriculum is considered one of the most challenging tasks in an academic environment. This becomes even more challenging when the curriculum is supposed to be internationalized and applied in different countries because of the cultural difference, policy difference, and business model difference. In this chapter, the authors present their experience of teaching a software engineering course both locally and globally, where two universities of USA and China are chosen for this study. Specifically, they describe how they adjust homework assignments and student performance evaluations to reflect different government policies, different business environment, and different real-world customer requirement. The chapter shows that it is possible to create an internationalized computer science curriculum that contains both common core learning standards and adjustable custom learning standards.


Sign in / Sign up

Export Citation Format

Share Document