learningobjectives. The course is structured around the implementation of a visualization tool for use inexplaining and demonstrating fundamental concepts and classical results of graph theory. Possiblegraph theory topics to be included in the tool are search techniques, Euler circuits, and minimalcost spanning trees. Many of the decisions about the project’s design and the topics covered are de-pendent on the students. As a result, the resulting tool can appear quite different from one offeringto the next. The project is intended to be developed by one or more student groups with all groups usingthe same interface for the graphs and visualizations. Strict enforcement of interface usage allowsthe opportunity to teach many design patterns that will aid in
BeckThis quote by Kent Beck is a mantra within our course. The goal of the programming activitiesand projects is not to reward students who can produce the cleverest solution, but to developrepeatable engineering habits that competent developers employ when building quality softwareproducts. These same habits are directly transferable to all activities in the software developmentlife-cycle. [9] The following sections include a sampling of those habits we identified whichcontribute to success, and thus we want our students to acquire as they evolve into professionalsoftware engineers.“Spend more time reading your code than you do writing it.”Software developers write a lot of code, but unless they have reason to go back and modify it,they rarely
onlyoverhead was adapting to the Android SDK. Furthermore, given the popularity of mobile andtablet devices, students were generally enthusiastic about learning to build such applications.Student Assessment: Exams, individual assignments, and participation in UnLectures andassociated reflective writing constitute 50% of the grade. The laboratory project constitutes theremaining 50% of the course grade, and students are assessed based on both individualcontribution and team performance. Every release (see Table II) is graded based on theirdocumentation, design reviews, code correctness, and demonstration. Design reviews aredelivered in the form of in-class oral presentations. Code correctness is assessed by runningvarious test cases written as a part
, and review techniques for the development of high quality software. Ackerman has been active in either the ACM or the IEEE throughout his career. He is a Life Member of the IEEE. Presently, he is an Associate Professor of software engineering at Montana Tech of the University of Montana. He is a graduate of the University of Chicago and holds a Ph.D. in computer science from the University of North Carolina, Chapel Hill.Dr. Sushil Acharya, Robert Morris University Sushil Acharya, D.Eng., Associate Professor of software engineering, joined Robert Morris University in the spring of 2005 after serving 15 years in the Software Industry. With U.S. Airways, Acharya was responsible for creating a data warehouse and using
this hypothesis, wehave developed a novel pedagogical strategy called UnLecture that uses concepts from activelearning and peer instruction to fully integrate students' co-op experiences into their classroomactivities. This technique can also be applied in courses where students have worked ininternships.UnLecture Overview An UnLecture consists of a reflective writing component and a participant-driven discussion.Each UnLecture session is based on a theme directly related to one of the course topics.Typically, an UnLecture on a topic is scheduled after that topic has been covered in an in-classlecture. A rubric is provided to the students a few days prior to the session. The rubric is thecentral element facilitating various components of
paper is on outcomes assessment as mandated by ABET,but we acknowledge other sources are also very important. In particular, our program alsoreceives input from a program advisory board, a college advisory board, three and five yearsurveys of graduates and our graduates’ managers, and benchmarks against other programs.OutcomesThe current software engineering outcomes, adopted in December of 2004, are: A. Foundation: Graduates shall have a strong foundation in science, mathematics, and engineering, and can apply this fundamental knowledge to software engineering tasks. B. Development: Graduates can effectively apply software engineering practice over the entire system lifecycle. This includes requirements engineering, analysis
software testing, debug- ging, safety, and reliability at the application and architectural design levels. Wong is the Vice President for Technical Operations of the IEEE Reliability Society and the Secretary of the ACM Special Interest Group on Applied Computing (SIGAPP). Page 25.754.1 c American Society for Engineering Education, 2012 Improving the State of Undergraduate Software Testing EducationSoftware has become fundamental to our everyday life. Regardless of age, gender, occupation,nationality, etc., each of us depends on software in some way, either directly or indirectly
for suchcourses is that related topics are typically perceived by students especially at the undergraduatelevel as uninteresting and irrelevant, while it is difficult to bring the “real-world” experience tothe classroom.This paper summarizes the author’s experiences in developing and teaching for the first time aSoftware Specifications course to the newly established Software Engineering (SE) degreeprogram at Florida Gulf Coast University (FGCU) in Spring 2014. The SE program belongs inan Engineering College which emphasizes undergraduate education (there is no graduate degreeoffered). The Software Specifications course is a required course for all SE students at FGCU. Itincludes topics such as Eliciting, Writing, and Testing Requirements
collaboration, students submit a completed mobile application that embodiescore concepts of a mobile game experience: quick play sessions, immediate feedback, easily-achievable goals, and high replayability. These domain constraints enable students to exploretheir previously-acquired software engineering skills within the domain of mobile applicationdevelopment.3.2. ROBERT MORRIS UNIVERSITY (RMU)At RMU requirements engineering concepts and practices are introduced and practiced in a twocourse sequence. In ENGR3410 (Fundamentals of Software Engineering), requirementsengineering is introduced, hands-on exercises are carried out and a Software RequirementsSpecification is developed using the IEEE template for a course-based project. Additionalpractices
thelearner tests her models and theories with new experiences) 8.Learning journals, diaries and portfolios are increasingly used in higher education to facili-tate and to assess learning. They may be highly structured or free, but regardless of theirshape and form, they generally seem to be helpful in personalizing and deepening the quality Page 25.160.2of learning and in integrating the learning material 10. The distinction between learning jour-nal and other types of writing is that “…it focuses on ongoing issues over time and there willbe some intention to learn from either the process of doing it or from the results of it.” 10Some of the reasons why
. 7. (2 min) In the “Group / Step” column of Scheduling Worksheet 1, write an outline with all groups & steps. Put each group label in its own row, and put each step in that group into a row below the group row. Do not worry about the order of groups or steps - alphabetical order is fine. This outline is called a Work Breakdown Structure (WBS). A WBS can be useful to organize a project and identify missing steps, particularly if you have templates with common headings or WBS examples from similar projects. For complex projects, the WBS may have 3 or more levels and require multiple pages. 8. (2 min) Consider other grouping for the steps, and list their pros & cons
class insteadof adding new topics. One important adaptation was the choice of a web application project. Webapplications require that students deal with fundamental problems of security, including authentica-tion, access control, and input and output validation. It’s important to give these security featuresthe same importance as functional features when evaluating student projects. Other adaptationsincluded the addition of misuse cases to document security requirements, leveraging student ex-perience with use cases, and the application of web testing tools to test security in addition tofunctionality.Course ConceptsSecurity is fundamentally different from the functional qualities of software, as security focuseson restricting capabilities
Paper ID #7783Software and System Engineering Education: Commonalities and Differ-encesDr. Massood Towhidnejad, Embry-Riddle Aeronautical Univ., Daytona Beach Massood Towhidnejad is the director of NExtGeneration Applied Research Laboratory (NEAR), and a tenure full professor of software engineering in the department of Electrical, Computer, Software and System Engineering at Embry-Riddle Aeronautical University. His research and teaching interests include autonomous systems, and software and systems engineering with emphasis on software quality assurance and testing.Dr. Thomas B Hilburn, Embry-Riddle Aeronautical Univ
testers in this category [6]. For this reason,the second objective of this paper is to compare the university BSE and the Certified SoftwareTest Professional (CSTP) programs by focusing on the methods of teaching and the coverage oftopics comprising Software V&V Knowledge. The CSTP program has been chosen forcomparison because it provides instruction in the relevant testing skills, methodologies, andknowledge within its fundamental and advanced courses [7]. The CSTP program is one thatspecifically recognizes those interested in being software testing specialists and as the surveyresults and analysis here reveal, differences do exist between this program and the available BSEprograms.A survey is the optimum method to apply when investigating
Paper ID #15294The Integration of Novel Forms of Feedback into Software Engineering CoursesDr. Walter W Schilling Jr., Milwaukee School of Engineering Walter Schilling is an Associate Professor in the Software Engineering and Computer Engineering pro- grams at the Milwaukee School of Engineering in Milwaukee, Wisconsin. He received his B.S.E.E. from Ohio Northern University and M.S. and Ph.D. from the University of Toledo. He worked for several large engineering firms in the automotive industry in the embedded systems development area prior to returning for doctoral work. He has spent time at NASA Glenn Research Center in
thecoaching and guidance for adhering to Scrum practices. Commercial Scrum projects useCertified Scrum Masters [18] that have attended standardized training courses. Student teamsmost likely will not have that opportunity, so based on the course context this position may befulfilled by the instructor, or rotated through the group based on the team’s level of Scrumexpertise.Opportunities for the Student ScrumDespite the inability of student teams to match commercial Scrum environments, there is ampleopportunity for them to engage in specific Agile practices within the framework of Scrum thatsupport the fundamental software engineering skills they need to learn and practice
). A problem with this approachis that due to the timeline of the course, the course ends up focusing more on the develop-ment than on the testing part (the author reports that 55% of the time is spent developingwhile only 33% of the time is spent testing, and the remaining 12% is spent writing a shortreflection paper).There have also been experiences using “real-world” (industrial) software under test in test-ing courses8, as a mean to effectively teach students how to test real software. The majorrisks of this approach are confidentiality and technical support on software that is under de-velopment by others. Garousi8 states that this approach requires and leads to strong academ-ia-industry partnerships, but points out that it is necessary
is developed by volunteers; design and implementation decisions are conducted by voting through the Internet. Apache web server supports virtual hosts and database; users can extend the functionality by building modules through an API. In February 2005, the Apache web server is used in over 40 million or 68% sites as the most popular web server (from Netcraft Survey). • kde. Kde is a desktop environment for UNIX-based systems to provide user-friendly easy-to-configure interfaces. Kde starts with the purpose to create an easier environ- ment for writing applications than X11-based windows. Hundreds of applications have been written for kde, ranging from network utilities to games. This study considers the
organization. For example, Software Engineering Management is rated secondlowest in the survey results. The follow-up qualitative group that met shared with us that topicssuch as this and the Software Engineering process are important, but new graduates willprobably not be hired to work in those areas – they are typically filled by experienced engineersand are thus weighted lower for new graduates.The four most important topics were Mathematical Foundations, Engineering Foundations,Professional Practice, and Computing Foundations. These could be described under a broadumbrella category of “Engineering Fundamentals”. OC’s ECE program covers the “EngineeringFundamentals” topics thoroughly throughout the curriculum as verified by OC’s ABETFeedback and
introducethe students to the need for software verification.Before going in depth into software testing techniques, students need an early introduction to thesoftware development lifecycle models. At this point in time, there has been no formalizedexplanation of the phases within a software development project. Thus, to even provide arudimentary understanding of the different types of testing requires an explanation of thefundamental models of software development.With this fundamental introductory material presented, it is now possible to move into the realmof unit testing and the discussion of the design of unit tests. Students are provided with the coredefinitions for testing, the relationship between errors, faults, and failures, and the concept
introduce the CEN4072 Fundamentals of Software Testing course that is taught atFlorida International University (FIU). In addition, we briefly introduce the Web-Based Repositoryof Software Testing Tutorials (WReSTT)8 that students use to supplement the instruction on soft- Page 24.1115.4ware testing tools. This course has become very popular at FIU since several of the local companiesrecruit students after they have taken the course as either full-time employees or interns.3.1 Pedagogical ApproachIn the testing course we use a combination of collaborative learning22 and problem-based learn-ing21 to get students involved in learning testing
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
concept, for example, in the computer science context, it would be developing a program to run the telescope, focusing on the program development cycle, with writing (editing) the code, compiling, executing, and debugging it experiment – this activity relies on enforcing the essential concept of scientific inquiry, which in the context of computer science would be testing the software developed for a telescope, with outlining test plans, conducting actual testing, and showing the test results project – this activity is typical to a full-fledged engineering process, that is, developing software in four stages, with formal (a) requirements, (b) design, (c) implementation, and (d
Page 22.1254.2contribute positively to writing correct, understandable, and verifiable computer programs4.Others have found software reuse is of interest because people want to build systems that arebigger and more complex, more reliable, less expensive and that are delivered on time5. In fact,the advantage of amortizing software development efforts through reuse continues to be widelyacknowledged, even though the tools, methods, languages, and overall understanding of softwareengineering have changed significantly since 1968.In spite of its promise, software reuse has failed to become standard practice for softwareconstruction3. Among the many causes of this failure, the lack of education is considered one ofthe most important. In a survey
coverage of what to do and how to do it is essential for the studentsto fully understand the fundamentals and carry them onto their projects.Workshops are considered as a more effective tool in conveying scenario-specific materials tothe participants. When used after a lecture that introduces a new topic (such as requirementelicitation), a workshop can zoom in on a scenario in the sample application and set theparticipants into the context of a related project activity (such as analyzing a problem statement).Depending on the background of the participants, the class can either continue to elaborate thetopic of concern, or introduce related activities and tools used (such as drawing use casediagrams using a modeling toolkit), and guide the
Paper ID #16425Inclusive and Evidence-based Instruction in Software Testing EducationVignesh Subbian, University of Cincinnati Vignesh Subbian is an instructor in the Department of Electrical Engineering and Computing Systems at the University of Cincinnati. His interests include biomedical informatics, healthcare systems engineer- ing, STEM integration, and engineering education.Dr. Nan Niu, University of Cincinnati Nan Niu is an Assistant Professor of Electrical Engineering and Computing Systems at the University of Cincinnati. He received his Ph.D. in Computer Science in 2009 from the University of Toronto, where he
theUniversity of Nottingham.70 CourseMarker improved grades after the parameters for assignmentswere tweaked in response to early results. From 1998–2001 and 1999–2002 respectively, theoverall percentage of students passing first- and second-level programming rose. The authors donot provide specific numbers, but they clearly correlate student improvement to CourseMarkerwhen they write, “The ratio of student passes to failures is very high, and has improved with theevolution of CourseMarker and the support provided by the system.”In 2005, Kumar showed learning improvement with an automated tutor aimed at testing staticand dynamic scoping concepts in a programming languages course.71 The author’s experimentconsisted of a pre-test and post-test given