skip to main content
10.1145/1268784.1268837acmconferencesArticle/Chapter ViewAbstractPublication PagesiticseConference Proceedingsconference-collections
Article

Introducing students to professional software construction: a "software construction and maintenance" course and its maintenance corpus

Published: 25 June 2007 Publication History

Abstract

It is widely accepted that there is more to software construction than basic programming skills. Professional software construction involves not only understanding some theoretical concepts, but also mastering appropriate tools and practices. In this paper, we present an undergraduate course in Software Construction and Maintenance, developed with the goal of introducing students to those key concepts, tools and practices.
We first outline the content of that course, explaining how it fits within our undergraduate program. We then present a key element of that course-namely, its maintenance corpus along with its testing frameworks-used to concretely introduce students to various tools and practices, e.g., automatic test execution, build and configuration management, source code documentation, use of assertions, etc.

References

[1]
M. A. Austin and M. H. Samadzadeh. Software comprehension/maintenance: an introductory course. In ICSEng 2005, pages 414--419, 2005.
[2]
E. Barriocanal, M. -A. Urbán,I.Cuevas, and P. Pérez. An experience in integrating automated unit testing practice in an introductory programming course. SIGCSE Bulletin, 34(4):125--128, 2002.
[3]
K. Beck. Extreme Programming Explained-Embrace Change. Addison-Wesley, 2000.
[4]
K. Beck. Test-Driven Development-By Example. Addison-Wesley, 2003.
[5]
K. Beck and E. Gamma. Test infected: Programmers love writing tests. Java Report, 3(7):37--50, 1998.
[6]
A. Bertolino and E. Marchetti (Ass. Eds.). Software testing. In Guide to the SWEBOK (2004 Vers.), pages 5.1--5.16. IEEE Comp. Soc. Press, 2004.
[7]
B. Boehm and R. Turner. Balancing Agility and Discipline-A Guide for the Perplexed. Addison-Wesley, 2004.
[8]
D. Butenhof. Programming with POSIX Threads. Addison-Wesley, 1997.
[9]
H. B. Christensen. Systematic testing should not be a topic in the computer science curriculum! SIGCSE Bulletin, 35(3):7--10, 2003.
[10]
M. Goldwasser. A gimmick to integrate software testing throughout the curriculum. SIGCSE Bulletin, 34(1):271--275, 2002.
[11]
A. Hunt and D. Thomas. The Pragmatic Programmer-From journeyman to master. Addison-Wesley, 2000.
[12]
F. Kazemian and T. Howles. A software testing course for computer science majors. SIGCSE Bull., 37(4):50--53, 2005.
[13]
B. Kernighan and R. Pike. The Practice of Programming. Addison-Wesley, 1999.
[14]
M. Loukides and A. Oram. Programming with GNU Software. O'Reilly, 1997.
[15]
S. McConnell. Code Complete-A Practical Handbook of Soft. Constr. (Second Ed.). Microsoft Press, 2004.
[16]
S. McConnell, T. Bollinger, P. Gabrini, and L. Martin (Ass. Eds.). Software construction. In Guide to the SWEBOK (2004 Vers.), pages 4.1--4.10. IEEE Comp. Soc. Press, 2004.
[17]
R. Noonan and R. Prosl. Unit testing frameworks. SIGCSE Bulletin, 34(2):232--236, 2002.
[18]
S. Pfleeger. Software Engineering-A Rigorous and Practical Approach (Second Ed.). International Thomson Computer Press, 2001.
[19]
M. Postema, J. Miller, and M. Dick. Including practical software evolution in soft. eng. education. In 14th Conf. on Soft. Eng. Educ. and Tr., pages 127--135, 2001.
[20]
R. Pressman. Software Engineering-A Practitioner's Approach (Fifth Ed.). McGraw-Hill, Inc., 2001.
[21]
P. Robillard and P. Kruchten. Software Engineering Process with the UPEDU. Addison-Wesley, 2003.
[22]
The Joint Task Force on Computing Curricula. Software Engineering 2004-Curriculum guidelines for undergraduate degree progams in soft. eng. Aug. 2004.
[23]
D. Thomas and A. Hunt. Pragmatic Version Control Using CVS. The Pragmatic Bookshelf, 2004.
[24]
A. Tinkham and C. Kaner. Experience teaching a course in programmer testing. In Agile Conf. 2005, pages 298--305, 2005.
[25]
G. Tremblay. An undergraduate course in formal methods: "Description is our business". SIGCSE Bulletin, 30(1):166--170, 1998.

Cited By

View all
  • (2024)Testing and Debugging Habits of Intermediate Student Programmers2024 IEEE Global Engineering Education Conference (EDUCON)10.1109/EDUCON60312.2024.10578650(1-10)Online publication date: 8-May-2024
  • (2014)Student projects are not throwawaysProceedings of the 45th ACM technical symposium on Computer science education10.1145/2538862.2538965(55-60)Online publication date: 5-Mar-2014
  • (2020)How do Students Experience and Judge Software Comprehension Techniques?Proceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389283(425-435)Online publication date: 13-Jul-2020
  • Show More Cited By

Index Terms

  1. Introducing students to professional software construction: a "software construction and maintenance" course and its maintenance corpus

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ITiCSE '07: Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
    June 2007
    386 pages
    ISBN:9781595936103
    DOI:10.1145/1268784
    • cover image ACM SIGCSE Bulletin
      ACM SIGCSE Bulletin  Volume 39, Issue 3
      Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education (ITiCSE'07)
      September 2007
      366 pages
      ISSN:0097-8418
      DOI:10.1145/1269900
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 June 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. maintenance
    2. software engineering
    3. testing

    Qualifiers

    • Article

    Conference

    ITiCSE07
    Sponsor:

    Acceptance Rates

    ITiCSE '07 Paper Acceptance Rate 62 of 210 submissions, 30%;
    Overall Acceptance Rate 552 of 1,613 submissions, 34%

    Upcoming Conference

    ITiCSE '25
    Innovation and Technology in Computer Science Education
    June 27 - July 2, 2025
    Nijmegen , Netherlands

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 08 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Testing and Debugging Habits of Intermediate Student Programmers2024 IEEE Global Engineering Education Conference (EDUCON)10.1109/EDUCON60312.2024.10578650(1-10)Online publication date: 8-May-2024
    • (2014)Student projects are not throwawaysProceedings of the 45th ACM technical symposium on Computer science education10.1145/2538862.2538965(55-60)Online publication date: 5-Mar-2014
    • (2020)How do Students Experience and Judge Software Comprehension Techniques?Proceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389283(425-435)Online publication date: 13-Jul-2020
    • (2020)A software maintenance-focused process and supporting toolset for academic environments2020 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME46990.2020.00042(360-370)Online publication date: Sep-2020
    • (2015)Novice code understanding strategies during a software maintenance assignmentProceedings of the 37th International Conference on Software Engineering - Volume 210.5555/2819009.2819052(276-284)Online publication date: 16-May-2015
    • (2015)Novice Code Understanding Strategies during a Software Maintenance Assignment2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.341(276-284)Online publication date: May-2015
    • (2014)Student projects are not throwawaysProceedings of the 45th ACM technical symposium on Computer science education10.1145/2538862.2538965(55-60)Online publication date: 5-Mar-2014

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media