Asee peer logo

Teaching Software-engineering Concepts through Industrially Used Tools Early in the Undergraduate Curriculum

Download Paper |

Conference

2015 ASEE Annual Conference & Exposition

Location

Seattle, Washington

Publication Date

June 14, 2015

Start Date

June 14, 2015

End Date

June 17, 2015

ISBN

978-0-692-50180-1

ISSN

2153-5965

Conference Session

Software Engineering Constituent Committee Technical Session 2

Tagged Division

Software Engineering Constituent Committee

Page Count

16

Page Numbers

26.1487.1 - 26.1487.16

DOI

10.18260/p.24824

Permanent URL

https://peer.asee.org/24824

Download Count

56

Request a correction

Paper Authors

biography

Temesghen Kahsai Carnegie Mellon University

visit author page

Dr. Temesghen Kahsai is a research scientist at Carnegie Mellon University Silicon Valley. His research expertise is in the intersection of formal methods and software engineering, with an emphasis on automated reasoning about software systems. He has extensive experience in the development of formal foundations and tools for the analysis of complex critical systems. He is currently leading three projects on contract-based verification of flight critical systems, analysis of heterogeneous software protocols stacks and credible auto-coding of embedded systems. These projects are funded by NASA and NSF.

visit author page

biography

Liam O'Reilly Swansea University

visit author page

Liam O’Reilly is a Senior Tutor at the department of Computer Science at Swansea University who specializes in Formal Methods, specifically verification using algebraic specification and processes algebra. O'Reilly currently develops and delivers various courses as part of the undergraduate program and an innovative work-based learning degree.

visit author page

biography

Markus Roggenbach Swansea University

visit author page

Markus Roggenbach is an Associate Professor in Computer Science at Swansea University, who specializes in Formal Methods in Software Engineering. His area of expertise is verification of software designs, including tool support, specification languages, and testing. He is a member of the IFIP WG 1.3 “Foundations of System Specification.” He has significant experience of technology transfer through regular co-operations with industry, including Siemens, Rolls-Royce, and McAfee.

visit author page

Download Paper |

Abstract

Teaching software-engineering concepts through industrially used tools early in the undergraduate curriculumThis paper reports on an established course, running successfully for five years at a UKuniversity. In this course carefully selected software engineering concepts (SECs) are taughtto first year undergraduate students whose programming background consists of only oneintroductory course on programming (in Java). This course is also part of a work-basedlearning programme aimed at industry and is being taken by full-time employees from privatecompanies. Due to the students’ limited programming background in both programmes, theselected SECs need to be demonstrable in a programming-in-the-small setting [1]. Challengesto teaching SECs at such an early stage include: Challenge C1: due to the students’ limited ability to think abstractly, students need hands-on experience to understand SECs. Challenge C2: due to the students’ limited programming experience, students are critical of SECs and require convincing arguments that the taught SECs are relevant.Our pedagogical approach to address these challenges is (a) to run a lab-centered course and(b) to let students see the “real thing” as often as possible.  To (a): Lectures introduce concepts and ideas that can later be experienced in carefullydesigned lab sessions. In the labs, we focus on SECs rather than programming by providingstudents with Java programs to be manipulated with tools. Topics covered include: codecommenting with Javadoc, coding standards with Checkstyle, debugging in Eclipse,automated testing with JUnit, test coverage with Emma, automated GUI testing usingsoftware robots, and extreme programming applied to game development. This providesstudents with many concrete and accessible examples illustrating the selected SECs.To (b): All of the tools mentioned above are used in industry: e.g., CheckStyle is standard inmajor companies, including the car manufacturer Daimler, Germany. The coding standarddiscussed is the 1997 Sun “Java  Code  Conventions”.  Extreme  programming  was  developed  to  serve  software  needs  at  Chrysler,  US.  Lab  examples  are  grounded  in  reality,  e.g.,  testing  of  a  “next  date”  function  is  motivated  by  presenting  a  bug  report  on  German  credit  cards  not  working  as  they  “can’t  recognize  the  year  2010”  [2].  This  evidence  convinces  students  of  relevance  and  applicability  of  the  selected  SECs.    The  positive  outcomes  of  our  approach  are  demonstrated  using  various  methods  of  assessment  (MOAs)  for  evaluating  the  success  of  our  course:   • After  the  course  students  understand  formatting/commenting/documenting   program  code  and  how  these  help  with  maintenance;  know  how  SECs  are   supported  by  tools;  are  able  to  explain  extreme  programming;  and  can  develop   test-­‐suites  using  both  white-­‐box  and  black-­‐box  testing.  (MOA:  Exam  results)   • The  course  has  100%  student  retention  (MOA:  over  5  years,  no  student  failed  the   first  year  due  to  this  course).   • Students  engage  with  the  lab  classes  (MOA:  ~80%  of  the  students  reliably   participate  in  the  labs);  enjoy  the  course  (MOA:  student  feedback,  interaction  in   the  labs);  and  are  SE-­‐tool  literate  (MOA:  time  to  get  new  tools  working  in  the  labs   reduces  significantly  over  the  course).  1. Frank DeRemer and Hans Kron. 1975. Programming-in-the large versus programming-in-the-small. In Proceedings of the international conference on Reliable software. ACM, New York, NY, USA, 114-121. DOI=10.1145/800027.808431 http://doi.acm.org/10.1145/800027.  2. Time Inc Network, The Year 2010 Bug Strikes German Bank Cards By Tristana Moore / Berlin Thursday, Jan. 07, 2010 http://www.time.com/time/business/article/0,8599,1952305,00.html Last accessed October 2014. Slide from the lectures on code commenting: Part of MR’s rule book Task from the lab classes: Commenting a Stack program.

Kahsai , T., & O'Reilly, L., & Roggenbach, M. (2015, June), Teaching Software-engineering Concepts through Industrially Used Tools Early in the Undergraduate Curriculum Paper presented at 2015 ASEE Annual Conference & Exposition, Seattle, Washington. 10.18260/p.24824

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2015 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015