408,788 research outputs found

    CEG 460/660-01: Introduction to Software Computer Engineering

    Get PDF
    This course introduces established practices for engineering large-scale software systems. Emphasis is placed on both the technical and managerial aspects of software engineering, and the software development process. This includes techniques for requirements elicitation, analysis, design, testing, and project management. The course emphasizes object-oriented development with the Unified Modeling Language (UML). Hands-on experience is provided through individual homework problems and a partnered project

    CEG 460/660-01: Introduction to Software Computer Engineering

    Get PDF
    This course introduces established practices for engineering large-scale software systems. Emphasis is placed on both the technical and managerial aspects of software engineering, and the software development process. This includes techniques for requirements elicitation, analysis, design, testing, and project management. The course emphasizes object-oriented development with the Unified Modeling Language (UML). Hands-on experience is provided through individual homework problems and a partnered project

    Software Engineering for Millennials, by Millennials

    Full text link
    Software engineers need to manage both technical and professional skills in order to be successful. Our university offers a 5.5 year program that mixes computer science, software and computer engineering, where the first two years are mostly math and physics courses. As such, our students' first real teamwork experience is during the introductory SE course, where they modify open source projects in groups of 6-8. However, students have problems working in such large teams, and feel that the course material and project are "disconnected". We decided to redesign this course in 2017, trying to achieve a balance between theory and practice, and technical and professional skills, with a maximum course workload of 150 hrs per semester. We share our experience in this paper, discussing the strategies we used to improve teamwork and help students learn new technologies in a more autonomous manner. We also discuss what we learned from the two times we taught the new course.Comment: 8 pages, 9 tables, 4 figures, Second International Workshop on Software Engineering Education for Millennial

    Teaching Software Engineering with Free Open Source Software Development: An Experience Report

    Get PDF
    We report on the design and delivery of a senior Software Engineering course within the limits of a Computer Science program. The course is structured around a collaboration with a large, active Free Open Source Software project. We show how this structure allows us to (a) incorporate principles of Project Based Learning and of Service Learning, reaping the benefits of these pedagogies, (b) effectively, using a hands-on approach, teach a number of essential topics in Software Engineering, (c) provide the students with a capstone project experience, given the lack of one in our curriculum, and (d) use the project as a powerful motivating factor for the students. We outline the experiences of the course instructor, of the teaching assistants team, and of the students of the course. We also describe the experience of the lead developers of this open source project, and report on the benefits and costs (time commitment) to the project

    IT Systems Development: An IS Curricula Course that Combines Best Practices of Project Management and Software Engineering

    Get PDF
    Software Engineering in IS Curricula Software engineering course is taught to higher education students majoring in Computer Science (CS), Computer Engineering (CE), and Software Engineering (SE). Software engineering course is also taught in other disciplines, either as a mandatory or as an elective course, such as Information Systems (IS). IS is a broader field than CS and includes parts of CS. IS fie ld could be described as an interdisplinary field that studies the design and use of information systems in a social context. As noted in IS2002 model curricula (Gorgone et al., 2002) , IS as a fie ld of academic study exists under a variety of at least thirteen (13) different curricula, including Information Systems, Management Information Systems, Computer Information Systems, Information Management, Business Information Systems, Informatics, Information Resources Management, Information Technology, Information Technology Systems, Information Technology Resources Management, Accounting Information Systems, Information Science, and Information and Quantitative Science. The author\u27s early experience was that teaching IS students a software engineering course in the same way as CS students was not successful. This is mainly because IS students have significantly less background in programming than CS students. This experience encouraged him to accommodate topics on project management and SE best practices lab using Rational Suite Enterprise (Rational Suite Enterprise, 2008). This new approach was relevant to IS curricula and with accordance with IS2002.10 project management and practice course guidelines. Hilburn, Bagert, Mengel, & Oexmann (2008) proposed that several computing associations including the Association of Computing Machinery (ACM), the IEEE Computer Society (IEEECS), and the Computer Sciences Accreditation Board (CSAB) have provided encouragement, support, and guidance in developing quality curricula that are viable and dynamic. However, most computing programs still devote little time to software life cycle development, software processes, quality issues, team skills, and other areas of software engineering essentials to effective commercial software development. Hence, new graduates know little about what are best practices in software engineering profession (e.g., practices related to use of software processes, team building, front-end development). Therefore, it is the role of faculty members teaching such courses to redesign and implement curricula that focus on practice of software engineering, and other related issues. This paper is organized as follows: Section 2 presents arguments for the alternative approach. Section 3 presents IS2002.10 course specifications. Section 4 presents IS software engineering body of knowledge. Section 5 presents the project component, Section 6 presents a mapping from IS2002.10 course specification onto the IS software engineering course. Section 7 presents evaluation of the proposed approach. Finally, conclusions are presented in Section 8. Why IT Systems Development Course? We have taught the IT Systems Development course to IS students for seven years, and we believe we hit upon an approach that works. Instead of trying to instruct students in theory of various techniques, we teach them what we believe of as software development. From the management side IS students are expected to deal with non-technical challenges arising from project situations, including understand project domain and requirements, how to be a team player, how to schedule work between team members, and how to cope with time pressures and hard deadlines. As indicated by (Weaver, 2004), students often have limited experience in projects management. They do not appreciate the need for planning and take more time than anticipated to complete tasks. We have developed the creation of a set of guidelines for accommodating topics on project management to help students deal with non-technical issues of software development.

    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

    Preparing the Global Software Engineer

    Get PDF
    With a goal of preparing software engineering students for practice in today’s global settings, Uppsala University has for some years run courses involving global collaboration. The “IT in Society” course is one such course which applies an ‘Open Ended Group Project’ model, in partnership with a local health sector client and global educational partners. Within each iteration of the course, students across the partnering institutions are given a brief around an open-ended problem. They work in collaboration with their client and stakeholders to investigate options and produce a report with their findings and recommendations, informed by global perspectives. The report may or may not be supported by working software prototypes. We analyze student evaluations & reflections on the course to unpack their perceptions of software engineering, the perceived relevance of a global learning experience and its role in reshaping their identities as global software engineers

    'Create the future': an environment for excellence in teaching future-oriented Industrial Design Engineering

    Get PDF
    In 2001, the University of Twente started a new course on Industrial Design Engineering. This paper describes the insights that have been employed in developing the curriculum, and in developing the environment in which the educational activities are facilitated. The University of Twente has a broad experience with project-oriented education [1], and because one of the goals of the curriculum is to get the students acquainted with working methods as employed in e.g. design bureaus, this project-oriented approach has been used as the basis for the new course. In everyday practice, this implies a number of prerequisites to be imposed on the learning environment: instead of focusing on the sheer transfer of information, this environment must allow the students to imbibe the knowledge and competences that make them better designers. Consequently, a much more flexible environment has to be created, in which working as a team becomes habitual, and where cutting-edge technologies are available to facilitate the process. This can be realized because every student owns a laptop, with all relevant software and a full-grown course management system within reach. Moreover, the learning environment provides the fastest possible wireless network and Internet access available [2]. This obviously has its repercussions on the way the education is organized. On the one hand, e.g. virtual reality tools, CAD software and 3D printing are addressed in the curriculum, whereas on the other hand more traditional techniques (like sketching and model making) are conveyed explicitly as well. Together with a sound footing in basic disciplines ranging from mathematics to design history, this course offers the students a profound education in Industrial Design Engineering. The paper describes in more detail the curriculum and the education environment, based on which it is assessed if the course on Industrial Design Engineering can live up to its motto: ‘Create the future’, and what can be done to further enable the students to acquire the full denotation of that motto

    The Impact of Undergraduate Mentorship on Student Satisfaction and Engagement, Teamwork Performance, and Team Dysfunction in a Software Engineering Group Project

    Get PDF
    Mentorship schemes in software engineering education usually involve professional software engineers guiding and advising teams of undergraduate students working collaboratively to develop a software system. With or without mentorship, teams run the risk of experiencing team dysfunction: a situation where lack of engagement, internal conflicts, and/or poor team management lead to different assessment outcomes for individual team members and overall frustration and dissatisfaction within the team. The paper describes a mentorship scheme devised as part of a 33 week software engineering group project course, where the mentors were undergraduate students who had recently completed the course successfully and possessed at least a year’s experience as professional software engineers. We measure and discuss the impact the scheme had on: (1) student satisfaction and engagement, (2) team performance, and (3) team dysfunction

    What Agile processes should we use in software engineering course projects?

    Get PDF
    Producción CientíficaWhile project-based software engineering courses aim to provide learning opportunities grounded in professional processes, it is not always possible to replicate every process in classrooms due to course constraints. Previous studies observed how students react to various processes and gave retroactive recommendations. In this study, we instead combine a field study on professional Agile (eXtreme Programming, XP) teams and an established team process taxonomy to proactively select team processes to incorporate in a project-based software engineering course. With collected knowledge from the field study, we choose three XP processes to augment the design of a mature software engineering project course. We choose processes that are 1) considered important by professionals, and 2) complete with respect to coverage of the taxonomy's main categories. We then compare the augmented course design with the original design in a case study. Our results suggest that 1) even without extra resources, adding these new processes does not interfere with learning opportunities for XP processes previously existing in the course design; 2) student teams experience similar benefits from these new processes as professional teams do, and students appreciate the usefulness and value of the processes. In other words, our approach allows instructors to make conscious choices of XP processes that improve student learning outcomes while exposing students to a more complete set of processes and thus preparing them better for professional careers. Course designers with limited resources are encouraged to use our methodology to evaluate and improve the designs of their own project-based courses.Ministerio de Ciencia, Innovación y Universidades (Project TIN2017-85179-C3-2-R)Junta de Castilla y León (project VA257P18) by the European Commission under project grant 588438-EPP-1-2017-1-EL-EPPKA2- K
    corecore