AC 2012-3237: AN EXPERIENCE USING REFLECTION IN SOFTWAREENGINEERINGDr. Alexandra Martinez, University of Costa Rica Alexandra Martinez has been working since 2009 as an Invited Professor in the Department of Computer and Information Science at the University of Costa Rica (UCR). She has taught courses in databases, soft- ware testing, and bioinformatics, and done applied research in software testing at UCR’s Research Center on Information and Communication Technologies. Previously, she worked as a Software Design Engi- neer in Test at Microsoft Corporation in Redmond, Wash., and as a Software Engineer at ArtinSoft in San Jose, Costa Rica. She received her Ph.D. in computer engineering from the University of Florida
programs to allow for students tocomplete the necessary co-op requirements2, 3. Undergraduate engineering students complete fiveco-op rotations between their sophomore and senior years, accumulating close to 20 months ofprofessional work experience in their field of study. Although instructors often relate conceptspresented in the classroom to students’ cooperative education, there is a need for teachingmethodologies to better integrate every student’s own real-world experience into engineeringclassrooms. Our hypothesis is that reflecting on and disseminating knowledge and experiencethat students gain through professional practice, in the context of a specific course in thecurriculum, can be a valuable resource for classroom instruction. Based on
. We also share a few surprisesfound in the data.Our main contributions are the analysis of the rich body of collected data, as well as distillinggroups of questions that have yielded particularly useful results, and categorizing those by targetoutcome: questions for evolving the course, for “reading” students’ moods, and for gettingstudents to reflect on their experiences. Many of these questions may be broadly applicable.The remainder of the paper is structured as follows. Section 2 elaborates on relevant aspects ofthe course structure and describes our mechanism for collecting feedback data. Section 3discusses what we have learned from our data analysis – first about the course, and then aboutthe process of doing student surveys. We
estimated and actual time andprovide a brief narrative as to what worked well and what they would change in the next phase.This reflection document is submitted along with work products associated with the phase.At the conclusion of a project, groups meet in class to identify the top three process improvementitems from their individual reflection documents. As a class we consolidate the group lists into aclass-wide list, and target a subset of these for tracking during the next project. Many of thesuggested improvements are what one might expect – start the project sooner, don’tprocrastinate, read the project description, don’t be afraid to ask for help, and so on. Thereflection session also provided the opportunity for students to share scripts
student teams toapply the knowledge within an ongoing project instance that follows a specified process. Theresult is a highly iterative methodology evolving the student’s competencies in a rapid fashion.Each course in the Enterprise sequence follows this immersive approach to teaching softwareengineering concepts. For each concept, students are first exposed at a high level to the conceptand its importance to the software engineering profession. Students then undertake a problem-centered learning (PCL) exercise of some depth to gain working knowledge of specifictechniques realizing the concept or method. Then, in project teams, students are asked to applytechniques on complex, scalable projects. Teams then perform reflective learning
similarities. To theextent that these factors seem to be correlated with administrative housing, perhaps theinstitutional context has shaped the character of the program more.Table 2 summarizes the data relative to the overall content of the technical curricular componentand the degree to which it reflects required coursework. Table 2(a) gives the relevant data forcomputer engineering programs, while Table 2(b) and Table 2(c) summarize this information forcomputer science and software engineering programs. Some interesting patterns emerge whenthis data is analyzed. First, the relative size of the technical component in the computerengineering and software engineering programs is similar – an average of about 51% of the totalcurriculum is technical in
in contemporary softwareengineering principles, the experimental version of the course incorporated the followingvariations:1. The laboratory project now involves open-source mobile application development;2. The hybrid design methodology (waterfall and XP) is further explored by incorporating two or more development cycles into the project, while additional classroom activities further understanding of connections between the development process and application needs;3. Five active-learning sessions are included to enable reflection on past co-operative education or internship experiences and relate them to classroom learning. The objective of this novel pedagogical strategy, which we call UnLecture, is to bridge the gap between
. Cooperative learning isa pedagogy that directly supports this type of teamwork. Through cooperative learning studentsrealize their interdependence, practice face-to-face communication, recognize their individualaccountability to the success of the group, practice interpersonal and small-group skills, andengage in frequent reflective processing of their achievements.We have adapted cooperative learning to teach software architecture in two undergraduatesoftware engineering programs. In traditional cooperative learning, students work on one teamfor an extended period. This helps foster acceptance of individual differences and promotessuccessful teamwork. In our courses we kept students together on the same teams, but we wantedstudents to play multiple
Assurance (QA) course that integrates evidence from research andnew developments in software testing as well as engineering education. The specific goals are:1. To incorporate empirical studies in software engineering to supplement instruction in testing of all aspects, including safety, security, reliability, and performance.2. To increase focus on particular topics of high relevance such as formal testing of safety- critical systems and software inspection through targeted pedagogical interventions.3. To leverage existing instructional materials from the software engineering education community to create and explore blended learning models such as a flipped classroom.4. To integrate and promote inclusive and reflective teaching practices in
engineeringundergraduate degree program and from industry standards and best practices. Students andinstructors will continuously add to that pre-populated content as they learn and create, together.The eNotebook content will be organized in multiple ways, reflecting the software engineeringcourse curriculum, the industry consensus captured in software engineering standards (such asISO and IEEE standards), the IEEE/ACM Computing Curricula models,2,3 and the SoftwareEngineering Body of Knowledge (SWEBOK).4 In addition, students and instructors can add to,modify, and extend these pre-built knowledge organizations to provide additional structure andcontent that reflects the complexity and richness of their knowledge and interactions. Theorganization will not be a
are quite similar to mind maps8, though the context of application is different.Mind mapping activities are often done during discovery, where one is trying to understand anew domain. As examples, students may create a mind map to diagram comprehension ofreading a textbook chapter, or business analysts might create a mind map as part of an ideageneration or business modeling activity during requirements elicitation. Concept mapping, atleast in our context, is an activity that attempts to reflect the structural aspects of a student’sevolving conceptual understanding. Note in this description that we do not say that concept mapsthemselves are an assessment of any kind; indeed they can be interpreted in many ways. Forinstance, student teams
. Theinstructor wants the students to understand that simply working more on the project is notenough; there will be ramifications on the quality and ability to transition the software intoproduction. The students must make hard decisions – try to reduce scope, reduce qualityexpectations, ask for more resources, or shift deadlines. Can they 1) understand that they mustmake that decision now (without the instructor stepping in) and 2) do they have the data availableto make an informed decision? This is just one many potential contextual problems faculty wanttheir students to face, and want the students not only to apply a technique they have learned, butto reflect on the choice and whether it worked as expected.There are other practical challenges in
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
of social constructivist approachessuch as classroom discussion and experiential learning13,18. Through peer interaction andcollaboration students are able to synthesize and evaluate their ideas collectively10,16,19 and areforced to reflect upon and reason about their ideas at greater depth than when workingindividually17.In contrast, there are numerous studies that show the difficulty students experience working inteams. Student’s frequently cite that they have little influence over their team-mates; they believetheir grade will not reflect their contribution or competence; and the transaction cost ofscheduling meetings, and working collaboratively are not worth the rewards, of which they seefew9. These bad team experiences can have a
unique to each of thesister disciplines on the same campus. We also consider relationships between curricularcontent and the identified body of knowledge as reflected in this set of curricular exemplars. Page 15.1071.2IntroductionThe education of highly qualified software engineers who function effectively in multiple sectorsof our society and our economy is critical to the future of modern society. Evidence of this isfound in multiple sources. US News and World Report reported on December 28, 2009 thatsoftware engineering is among the top 10 careers identified for 2010.1 As is noted in that article,“There is an “app” for everything these days
) contained a common part that asked students toself-assess their achievement of the course learning outcomes on a 5-point Likert scale. Thesurvey given to students from managed teams contained two additional parts. The first additionalpart asked students whether having a manager contributed to their achievement of each of thecourse learning outcomes, measured again on a 5-point Likert scale. The second additional partcontained open-ended questions about the ISD students’ interaction with the managers.Course project reflection report. At the end of the semester, the students in the ISD course wereasked to write a course project reflection report (CPRR). The CPRR (shown in Appendix C) hasbeen used for a number of years to provide students with an
for Category 1 (V&V Terminology and Foundations), Category 2(Reviews), and Category 3 (Testing).The survey results elicited here indicate that it is important to enhance the learning and teachingcoverage of Software V&V topics. This is especially apparent, for instance, in the case of unittesting that is commonly applied in industry [8] and also in the case of topics that reflect otherindustry needs [6]. The suggested PBL industry project-based course which blends withchallenging software V&V testing activities and the use of the Pex tool (to encourage TDDpractice) is to be targeted so as to attract those BSE graduate students who are interested infurthering their careers as software testers. This course aims at combining the five
early as possible.For effective group operation, it is also critical to provide evaluative feedback at both the groupand individual levels12. For this project, each deliverable element was accompanied by a student-provided peer-evaluation that is used in a zero-sum grading methodology. This allowed us toassign individual grades that are a better representation of individual student contributions thanthe quality of final deliverables alone. As a result, individual grades reflect high or low levels ofcontribution by students, based on the evaluations of their teammates.Each student is required to provide a peer evaluation along with project deliverables: this peerevaluation provides a scaling factor for the score of the submitting student and
. Page 13.992.2Further, by organizing the content and presenting it in a way that reflects the structure ofknowledge in the software engineering discipline, we expect that the students will more readilygrasp discipline-specific concepts and concept relationships, thereby better organizing andintegrating their learning from course to course over their academic and professional career. Theintended result is a repository of readily accessible and understandable learning content and alocation (a “studio”) for team collaboration.We have implemented a testbed, called Knowdio (a contraction of Knowledge Studio), thatimplements a portion of our system vision. The testbed allows experimental assessment of theeffectiveness of this learning and knowledge
, functional solution that the students would ultimately work onalready existed (but was not available to them), they still had to go through the inception-phaseexercise of developing requirements for what they would want in a solution. Section 6 goesfurther into these details, which reflect an overall lack of critical thinking.13 In their storyboards,which described how the user would carry out various actions, there were many gaps that wouldhave prevented meaningful use. For example, with no capability to move an airplane off therunway after landing, subsequent landings would be impossible.In an agent-based simulation, the agents are the most important element to model. They aredefined primarily in terms of three aspects: data (what they are
. Page 11.318.1© American Society for Engineering Education, 2006 Challenges in an Industry-Academic CollaborationAbstract:Studies have shown the benefits of industry-academic collaborations for the students,faculty and industry partners. However, there are many challenges in establishing suchcollaborations that if not addressed, may result to either the failure of such collaborationor an unpleasant experience for parties involved. In this paper, the authors firstsummarize some of the advantages of such collaborations as it is reflected by theirexperience and in literature survey. This is followed by identifying a series of challengesthey may arise. Some of the challenges mentioned in this paper may be familiar toexperienced
tosoftware engineering. If software engineering is so different than all other types of engineering,should ABET guidelines reflect more of these differences? But the real problem is thateducators must choose between the advice of software engineers and the ABET guidelines. Thisauthor is positing that perhaps we should not have to make that choice.This paper will examine relevant developments that have shaped our current understanding ofwhat constitutes software engineering; the distinct nature of the Software Engineering EducationKnowledge (SEEK); how the SEEK should affect SWE curriculum development; and currentABET curricular guidelines for SWE programs. Finally, the paper will explore the conflicts thatarise when trying to design SWE curricula
“disagree” and 1 represents “Strongly disagree”.Table 5 depicts the survey results for the labs. In general, we see from the results, that thestudents feel the lab exercises they have completed should be continued for future students. Ingeneral, the survey also reflects that the students believed the lab was an excellent tool forteaching the material given the level of expertise shown at that time.A second and possibly more important mechanism for assessing student’s achievement in the Page 25.500.12area of testing is to look at targeted assessments on the final exam for the course. While thereare many different types of questions given on the
propositional logic are among the concepts underlying testing; • provides examples for data structures: testing tools need to represent graphs, the axioms of abstract data types such as a stack can guide testing; and • supports programming education in various aspects: students become better programmers as they o become tool literate; o learn about topics as testing and debugging presented as SECs; and o reflect on quality of source code as well as of programs.Such a positive view is supported, e.g., by McCauley and Jackson who write: “an early andconsistent emphasis on software engineering concepts creates a student culture that values theprinciples and practices of software engineering” 15. Also
. A closer look at the impact of the humanitarian aspect of student involvement with aproject will shed light on the impact of participation in HFOSS versus participation in FOSS.Acknowledgement Page 25.1192.11This material is based on work supported by the National Science Foundation under GrantsDUE-0958204, DUE-0940925, CISE- 0722137, and CISE-0930934. Any opinions, findingsand conclusions or recommendations expressed in this material are those of the author(s) and donot necessarily reflect the views of the National Science Foundation (NSF).Bibliography1. Software Engineering 2004 – Curriculum Guidelines for Undergraduate Degree Programs in
. Page 13.555.10 • Feedback from Students/Alumni: Student feedbacks through course assessment and course reflection have been crucial to the ongoing enhancement of this course. End-of- term student course and instruction assessment were conducted using Student Instructional Report II (SIR II). Table 3 depicts the mean score for selected assessment items for spring 2006 and spring 2007 terms. Table 3: Selected Assessment Items from SIR II Report Item Spring Spring Comparative Mean for 4 2006 2007 Year Institutions Course Organization and Planning 4.31 4.34
reference curriculum for graduateeducation in SwE4. A fresh look at a graduate reference curriculum is in order considering thereliance of the world economy on the quality of senior SwE professionals.The iSSEc (integrated Software and Systems Engineering curriculum) project is iterativelydeveloping a graduate SwE reference curriculum (GSwERC) that reflects new understandings inhow to build software, how software engineering depends on systems engineering, and howsoftware engineering education is influenced by individual application domains, such astelecommunications and defense systems. At this point, at least three curriculum iterations areplanned – GSwERC v0.25, GSwERC v0.5, and GSwERC v1.0. The first iteration is completeand the second is being
Case(s) Do not reflect primary Appropriate in scope, but Purpose of the UC is clear UCs are clear and present a 15% 2.6 2.6 2.6 2.6 2.6 2.6 business events superficial in detail, not and there is sufficient detail to solid basis for requirements, providing enough information support clear Rs, but some without specifying design. for design. Or, the UCs key items are missing. UCs
limitwithout any kind of visual aid. This forces the student to work a mental schema and to practiceoral communication skills. During the presentations the students are also evaluated on theguidelines received in Unit 4.B. RA II and Ability ( i): The recognition of the need for continuous learningAccording to the proposal of Candy [17], there are two areas that the student must develop inorder to achieve the continuous learning: (a) will be able to do (motivation): curious, disciplined,analytical, reflective, responsible, creative, independent and (b) can be done (ability): hasdeveloped skills of search and retrieval of information, has knowledge about the learningprocess, develops and uses its evaluation criterion (critical thinking).Extending the
Iteration Zero) that is needed at the beginning of the project to create the initialversion of the Product Backlog, develop the architecture or high level design and perform anyother activities needed to support the start of the first sprint. It is during this period that requiredproject artifacts and their content are identified.The Product Backlog is prioritized by the order in which features are to be added to a sprint fordevelopment. There may be a variety of characteristics influencing the backlog priority –business value, time to market, technical dependencies, etc., but the Product Owner is ultimatelyresponsible for the ordering of the backlog. The completeness of user stories in the ProductBacklog reflects their relative priority. Stories