Engineering Division (SWED)Key Words: Software Engineering, Agile Software Development, User documentation, ActiveLearning, Real-world project, Technical Communication.Introduction“Complexity kills,” Microsoft executive Ray Ozzie famously wrote in a 2005 internal memo [1].“It sucks the life out of developers; it makes products difficult to plan, build, and test; it introducessecurity challenges; and it causes user and administrator frustration.” If Ozzie thought things werecomplicated back then, one might wonder what he would make of the complexity softwaredevelopers face today with software users that expect flexibility from software in many the areas offeatures, connectivity options, high performance, multiple platforms, including the Internet
emphasized in the traditionalcurriculum. Student reflection and exit survey data examined student learning experiences alongwith the challenges of implementing skills they have learned. Students described the benefits oflearning an effective socially engaged design process to plan their projects, engaging withstakeholders to gather important information regarding their needs, learning recommendedpractices in idea generation, and creating prototypes before coding. On the other hand, studentsdescribed perceived challenges including lacking experience in socially engaged design skillsthat may impact their ability to implement skills from the workshops effectively, identifying andconnecting with stakeholders who could provide meaningful information, and
a platform for students to role-play a fictional company for enterpriseresource planning [49]. Other online role-play simulations focus on students taking the role ofproject managers with students receiving immediate feedback on their decisions [50], [51], [52].The course redesign described in this paper builds upon the work of Maxim, Brunvand, andDecker [57], which used role-play in a redesigned game design course, CIS 488, at theUniversity of Michigan – Dearborn. We re-used this work with some modifications in therevision of the second course in our two-course game design sequence. This course beginning in2017 had the students role-play as developers of a failing game company with the goal ofsimulating concept to release creation of 3D
software engineering process (e.g., agile methods, plan-based methods); (2) the ability to conduct the software engineering process (e.g., requirementselicitation, project specification, design, implementation, validation, maintenance and evolution, 5re-use, and security analysis); and (3) an understanding of the social aspects of softwareengineering, (e.g., teamwork and ethics).The course uses project-based learning [37] to teach these learning outcomes. Students work on acourse project in small teams in teams of four that spans the entire 16-week semester1 . Theproject has two phases. Phase 1 takes 4 weeks. After Phase 1, the teams exchange projects
use SEPTs.Specifically, we present the preliminary design of a qualitative study, including a surveyinstrument to assess familiarity with software engineering terminology and use of SEPTs. Oursurvey is based on the Software Engineering Body of Knowledge (SWEBOK) Guide, whichoutlines a generally accepted, standard body of knowledge expected of practicing early-careersoftware engineers. We design the survey to be accessible even to those unfamiliar with thespecific software engineering terminology used in the SWEBOK Guide. In addition to the surveyitself, we describe our planned approach to conduct a thematic analysis of participants’ responses,using the taxonomy of the SWEBOK Guide as an analytical framework.We hope that our study will help
conducted. The surveys’ outcomes andfeedback are used as metrics to measure the level of success of the application as well as tofurther improve the application. Currently, there are 24 survey members composed of individualsin the capstone authors’ communities. These participants were not filtered based on their interestor knowledge regarding skincare products. As testing continues, the team aims to gather resultsfrom more individuals within Canada. Additionally, the team is planning to conduct testing withpeople who are visually acute and impaired to assess the accessibility of Matilda.Testing was focused on the user-friendliness and ease-of-use of Matilda. In all trials, participantswere asked to load the web application and search for a product
addressed, andstudents were encouraged to escalate them to campus faculty resource centers if necessary.The course was structured into approachable modules, with shorter textbooks matched to thesequencing. The course started with an introduction to robot basics including sensing, actuation,planning, and control [16]. The course progressed into programming and architectures includingreactive control, deliberative control, and hybrid architectures [17]. Lastly, project work exploredtopics such as robot operating systems (ROS) [18], [19], robotic simulators [20], and cloudrobotics [21].Overall, the proposed solution emphasizes the importance of designing inclusive practices thatprovide multiple means of engagement, while setting clear expectations and
studentcompletion of tasks [21].In computer science, we often ask students to build larger programming projects over the span ofdays or weeks. As teachers, we know that students do not always have the skills to project andtime manage themselves well on these larger projects. Additionally, we know that trying toestimate how long it takes to plan, program, and test software projects is hard [22] and evensoftware organizations in industry find it challenging to deliver software on time [23]. To helpscaffold students on these larger projects, teachers often break projects up into milestones orseparate gradable deliverables.Benefits of Milestones in Programming ProjectsBy breaking these larger projects into distinct milestone assignments, teachers can more
project a learning opportunity,but it also provided the opportunity to contribute to society by creating a system that can be usedto benefit the environment.” [23] The other team member wrote, “I learned a lot about teamworkin this project and how to be a better collaborator with someone else. I also learned theimportance of fully planning out ideas with collaborators to make sure that everything iscohesive and will function when put together.” [ 23]Second Project: Smart IntersectionOne computer engineering student worked on this project for one semester. The goal of thisproject was to optimize the flow of traffic and allow traffic to proceed through the intersectionwith little to no idling and detecting vehicles that illegally ran a red light
engineering methodologies (e.g., iterativevs. plan-based) and specific techniques for software design, implementation, validation,deployment, and maintenance. Pertinent to this study, one learning outcome relates tocybersecurity analysis.The course uses a project-based learning approach to teach these outcomes. Students work inteams (groups of 3 to 4 individuals) on a semester-long software engineering project. Teamsmust provide weekly updates, but these are intended to help course staff assist struggling teamsrather than as assessment instruments. The primary assessable assignments are the majormilestones of the project – deliveries in week 4, week ~8, and week 16. The project requirementshave been similar in all offerings of the course (Fall 2021