! Thesubsequent semesters’ results were less gratifying, but were still an improvement over the resultsfrom previous semesters.The percentages of students in CSSE2-II earning each grade from the past nine semesters areshown in Table 1. Figure 1 shows the same data as a stacked bar chart. The last five semestersincorporated the new techniques. It should be pointed out that the instructors varied fromsemester to semester, but all have a history of similar grading styles for the different courses thatthey teach. # Term A B C D F W C or Better Students F01 12.2% 12.2% 24.5% 4.1% 22.5
philosophy. This paper is meant to start a debate in the SE education community on whether the issue is the philosophy itself, its implementation or how we are measuring (or not measuring) “success”. This paper most likely raises more questions than it answers.1. Introduction When the term “Software Engineering” was coined in 1969[10], the software developmentcommunity recognized the fact that production of software is a complex undertaking. SoftwareEngineering (SE) educators have been struggling since then to provide opportunities in anacademic setting where the students can apply SE practice and process to realistic developmentefforts[13]. According to Humphrey[4] the concept of software process is not so much concernedwith particular
by the students outsidethe classrooms. (c) The students were encouraged to apply and integrate their knowledgefrom other subjects. PBL has been adopted in teaching software engineering,1, 3 first-yearCS courses,9 and programming.12 This paper presents our findings in using both competition and collaboration. Eachstudent filed a weekly report about the amount of time spent on the project, overall satis-faction with the project, the evaluations of the other team members, and suggestions aboutthe course. To encourage the students to report accurate amounts of effort, the reportednumbers were not used for grading. We learned the following issues in this course. (a)Competition is a strong motivator; hence, collaboration within each team is
levelization. If a file is welltested and believed working, it is labeled as level zero. Standard C header or library filesare examples of level-0 files. A file is level n if the file needs files of level n − 1 or smaller forcompilation or linking. Cyclic coupling is considered as a sign of inferior design. Arisholmet al.1 point out that static analysis of codes coupling cannot be directly applied to object-oriented software due to polymorphism and run-time binding. Thus, they analyze dynamiccoupling of object-oriented software. They discover that dynamic export coupling can be aneffective indicator of change proneness. Basili et al.2 classify errors into several types such as incorrect requirements and misun-derstanding of the environment. The
why SEs must be able to developthem, are not covered in the current work; readers interested in these topics are encouraged to seeprevious papers by the author and his colleagues1, 2.The purpose of this paper is to present and discuss the process used. To that end, all the keymethods applied are presented: (1) introducing the BE client teams to requirements, (2) clientteam project presentations to the requirements teams, (3) team training, (4) the four assignments,(5) interim general meetings for process review, (6) informal reviews of work in progress, (7) agroup presentation rubric, (8) a final report rubric, (9) student self-assessment of courseoutcomes, and (10) student feedback on the course
similar to that used to specify any other type of software product. However, unlikemost software products, games have an entertainment dimension. People play computer gamesbecause games are fun.8The International Game Developers Association (IGDA) proposed a curriculum framework foruniversity level training in game development.5 The core topic areas from the IGDArecommendations appear in Table 1. Many of these topics involve the application of skills taughtin software engineering courses. Page 11.660.2 Table 1: IGDA Curriculum Framework Core Topic Key Elements Critical Game Studies game
a complementary fashion, the behaviors specified by patterns and scopes provideclear and simple examples that can enhance the understanding of these testing techniques. In thispaper, we describe an approach and present general lessons and exercises that demonstrate howpatterns and scopes can be used to teach boundary value analysis and equivalence class testing,which are two of the most commonly used black-box testing techniques. As a side effect of thisapproach, students are exposed to, and become familiar with, formally specifying system behavior.1 Introduction Testing remains the most natural and customary way of verifying a piece of software [6]. Insoftware development, testing ranges from verifying the separate components of the
providing a direct measurement of a specific performance criterion. Course Surveys: Course learning outcomes are included in each course. Students are surveyed in each course and asked whether the course learning outcomes are being met. A mapping of course outcomes to performance criteria is used. This is an indirect assessment measurement. Graduating Senior Exit Surveys: Graduating seniors provide feedback by completing a standard exit survey during the last week of their final semester. The survey is designed using the performance criteria. This is an indirect assessment measurement.As an example, the performance criteria and measurements for Development Outcome B are: B.1: Develops
that satisfy both masters: ABET and SE2004.History of Software Engineering EducationPeter Freeman et. al.1 proposed the earliest framework for software engineering education (SEE). Page 12.990.2It was for graduate software engineering, and it identified a set of criteria that any SE curriculamust follow and a set of five content areas necessary for any software engineering (SE) degree.Revisiting SEE a decade later, Freeman2 reported that few, if any, efforts since his earlier paperhad “strategically addressed the question of where SEE is or should be headed.” He furthernoted that in spite of the past ten years of development in software
a requirement of graduates ofbaccalaureate software engineering degree programs. This paper will examine how the ABET-accredited software engineering degree programs have implemented these application domaintracks.1. Introduction Every software product is intrinsically tied to a particular application area. Over the years, asboth the quantity and processing power of computers increased while their relative cost hasdecreased, the number of domain areas for which software is developed has continuously grown.The advent of undergraduate software engineering (SE) degree programs in the United States –all but one of them having started since 19995 - has caused the stakeholders in the SE educationcommunity to consider how to ensure that
toorganize, add to, and manage the learning content, promises to significantly improve the Page 11.1261.3collaborative learning experience. It promises to allow students and teachers to “gather aroundgreat things in a complex and interactive community of truth.”1 However, this ability may comeat a cost: the added level of cognitive engagement and workload to describe, organize, andmanage the information, and the potential information overload of having too much informationavailable at once. The eNotebook system will provide features that enable it to be used as atestbed in which to conduct experiments to assess the benefit and cost of the tool in
Systems, Man and Cybernetics, Part C, and has served as a program committee member for many international conferences. Dr. Wang is a senior member of the IEEE. Page 11.1065.1© American Society for Engineering Education, 2006 Real-Time Systems Scheduling Tool DevelopmentAbstractThis paper presents a real-time system (RTS) scheduling tool which implements some of themost popular scheduling algorithms. It allows users to specify real-time tasks in a RTS, thenevaluates task scheduleability and plots the simulated schedules. It can be used by bothinstructors and students of RTS classes.1. IntroductionReal-time systems are
integrate knowledge gained from the required core courses offered in afour-year period. According to CC2001 1, this course is supposed to cover software systemdesign, software processes, key activities in software development lifecycle, and software projectmanagement. The traditional approach to teaching a Software Engineering course, as reflected inclassical textbooks 11, 10, usually starts with an introduction to software process models, which isthen followed with discussions on highlevel activities in various phases of a generic softwarelifecycle template that can accommodate all possible programming paradigms. Although updatedmany times since their original editions, those texts are not well adapted to the latest paradigmchanges (such as object
the Software Engineering Body ofKnowledge project (SWEBOK) 1 was released, so SWEBOK provided the initial framework forthe project. The module categories in the prototype web site – design, process, quality, andrequirements – corresponded directly to major focus areas of SWEBOK. Page 11.1125.2More recently, the Computing Curriculum in Software Engineering (SE 2004) 2 became availableand influenced the development of the SWENET project. SE 2004 gave rise to a more detailedbody of knowledge for education. This software engineering education body of knowledge (orSEEK) had the advantages of (a) relating directly to the mission of SWENET, and (b
, accreditation is a stamp of approval that says your department is successful atmeeting its goals and has an established process for continual improvement. To be able to showthis you must use assessment to collect the data, evaluation to analyze it, and incorporate theresults to improve your program.The importance of the role of process in software engineering, and of continual processimprovement as we teach in CMM and now CMMI, is a deep thread running through ourcoursework. Yet when trying to apply those very same concepts to software engineeringeducation, which is what accreditation is really doing, we realized we had been operating atCMM Level 1, with a set of undefined processes. We did not have stated program goals and wewere not assessing how our
systemsengineering activity, understanding those activities and their role in systems engineering are vitalfor software engineering education.The addition of systems engineering activities in and embedded software course has led to manysuccessful outcomes. Students understand the approach for solving complex systems. They alsoobserved first hand the benefits of modeling a solution before committing to an implementation.In fact, student remark that once their model is correct, building for the target platform isrelatively simple. Finally, the value of showing UML notation and the various diagrams in thecontext of systems development is vital for students, as these activities are becoming common inthe systems engineering community.1 IntroductionSystems
better appreciation of the need for software security and a basic understanding of how todevelop secure software. However, finding the time required to cover software security effectivelyremains a considerable challenge, especially as both institutions only offer a single semester ofsoftware engineering.IntroductionApplication software has become highly interconnected as the Internet and wireless networkinghave grown in importance. While security flaws were previously exposed only to users sittingin front of the computer, the Internet allows attackers from around the world to exploit securityvulnerabilities in networked applications. Even embedded systems like cell phones are vulnerableto remote attacks.1 This increased exposure to attack has
thisknowledge. A typical conversation an interviewer might have with a graduating student mightbe “well, yes I did a few use cases in my Software Requirements class, but no I have not doneone of that size nor do I understand how to use that model to drive analysis and test planning.”This paper presents an alternative approach underway at Arizona State University’s Polytechniccampus. In this approach, students are accelerated through the knowledge, comprehension,application levels through a hybrid teaching and learning model that combines multiplepedagogical approaches with a process-guided exposure to software engineering.1. The Software Enterprise: An OverviewIn the Division of Computing Studies (DCST) at Arizona State University’s Polytechnic Campus
Date{}sig BirthdayBook { known : set Person, // those persons known in this book dates : Person -> Date // the birth day for each known person}Here we have defined three signatures, Person, Date, and BirthdayBook, along with two Page 11.616.2relations, known and dates. The signature declarations implicitly state that the three underlyingsets of atoms partition the universe of all atoms (that is, the three sets are pair-wise disjoint andtheir union is the universe). At the modeling level, however, all that exists are relations – Person,Date, and BirthdayBook are really unary relations, containing a 1-tuple for each of the
takes into consideration the cognitive knowledgeand skills needed at each stage of the process. The integrated model, called the Dual CommonModel (DCM), identifies for each problem solving/program development task, the specificcognitive techniques required to accomplish that task. A brief overview of the problem solvingtasks is as follows:1. Formulating the problem: This stage leads to an organized representation of all relevantproblem information: the goal, givens, unknowns, conditions and problem constraints.2. Planning the solution: During this stage, the user identifies and evaluates or assessesalternative possible solutions, and also partitions the problem by refining the overall problemgoal into sub-goals.3. Designing the solution: This
used in industry.One of the challenges to teach a capstone project course is to provide students with sufficient motivationand get them invested in the outcome. To achieve this, Horgan, Smith and Thomas in their 2005 ACEpaper5 suggested a problem domain that accurately reflects the concerns and priorities of a real industryclient. They also proposed a Real World Software Process with four different phases: (1) Phase Zero –developing a project proposal which addresses the client‟s needs and clearly identifies goals and successcriteria, (2) Phase One – requirements gathering, release planning, and the initial development, (3) PhaseN – the generic, repeatable cycle in which the functionality of the system is incrementally extended andthe
Education, 2013 Challenges and Benefits of Programming Competitions as Outreach to High School StudentsAbstractSoftware development-oriented competitions are one way that computing degree programs likesoftware engineering, support outreach to local high schools. Such competitions motivatestudents to succeed, help students build teamwork, and assist in improving student softwareskills. Indeed, there are a variety of different types of competitions ranging from robotics [1] toprocess-oriented that emphasize team interactions [2]. This paper reports on the approach used byRobert Morris University (RMU) that annually conducts programming competition for area highschool students.The goal of the paper is to provide
university for a number ofweeks during the summer period. Software engineering concepts are introduced in all four parts ofthe programme during the software project phases. Our outreach efforts primarily use the Scratchtool that was developed at the MIT Media Lab.We describe each outreach effort in detail and outline our experiences based on a mixture ofsurvey results, instructor observation and participant feedback. We will conclude by describinghow the E&O programme has led to Lero being commissioned by the Department of Education towrite a computing course for high school students that will be part of the official curriculum.1. IntroductionThere are many well-known and well-documented computer science outreach programmes such as“Computer
). Students in these fields need toacquire the basics of engineering and software, medical software tools and a generalunderstanding of computers.Human physiology had proven itself to be a successful model to follow 1, or at least aninspirational one for science4. Especially in software engineering, fields such as geneticalgorithms3, computer vision4, and computer scent recognition2 are all examples on howto build software systems similar to biological systems; but could this be applied toeducation? To answer this question, this paper introduces a software model that followsthe human physiology to structure different parts of a conventional software system; andto introduce it to students. On the other hand, lifecycle models can help in illustrating
before graduation. Page 25.754.2Another argument is that undergraduate SE programs, following the SWEBOK5, or theundergraduate SE curriculum recommended by the ACM and the IEEE Computer Society4,generally do teach software testing. However, we must recognize two important facts: (1) mostuniversities and colleges only offer undergraduate degrees in CS, not SE, and (2) for the majorityof software engineers, if they have a Bachelor’s degree, it is most likely in CS rather than in SE.Besides, although some aspects of software testing may be covered, the actual application oftesting practices is not explored in-depth during the undergraduate
Education Page 25.796.2AbstractVehicle Systems are becoming increasingly dependent on microcontrollers and integration ofcomputer systems. The average car currently uses between 30 and 45 microcontroller basedelectronic control units (ECU)1. Projections show number of microcontrollers in an averageautomobile increasing to greater than 70 by 2020. As the number of microcontrollers increases,so does the complexity of the microcontroller, transitioning from 8 bit to 16 bit, and then from 16bit to 32 bit. The multiple microprocessor supported subsystems also require increasinglycomplex communication infrastructure. Automotive computing is trending toward vehiclepersonalization, smart
educate next generations ofstudents in Science, Technology, Engineering and Mathematics (STEM) disciplines. It is widelybelieved that STEM focused education contributes to the innovativeness in product developmentand as such has a significant impact on strengthening the economy and making it morecompetitive globally. Respective findings have been published on multiple occasions, by variousbodies, most notably in a report by the National Science Board, which states, among otherthings.1 In the 21st century, scientific and technological innovations have become increasingly important as we face the benefits and challenges of both globalization and a knowledge-based economy. To succeed in this new information-based and highly
communication abilities necessary to ensure their success in theworkforce.1, 2 Employers typically place effective communication at the top of the qualitiesthey seek in new engineers.3, 4, 5, 6 To prepare their students to communicate effectively intheir careers, engineering programs may require a technical writing course taught by anotherdepartment and, in some cases, one or two communication-intensive courses in theirprograms. Nevertheless, new college graduates encounter significant difficulty adjusting toworkplace communication practices,7, 8, 9 and employers invest substantial sums inmentoring, providing in-house training, or subscribing to external programs to teach newemployees the communication skills that are basic in their workplace.10 While
from economics and measurement to generative programming and re-engineering. Thecrucial aspect that distinguished Frakes’ course from other reuse courses was probably theexplicit introduction and teaching of domain engineering. Figure 1. Domain engineering as a means of achieving systematic software reuse8 Page 22.1254.4Domain engineering is the key to systematic software reuse. The basic insight is that mostorganizations build software systems within a few business lines, called domains, repeatedlybuilding system variants within