Imprinting Community College Computer Science Education with Software Engineering Principles
Total Page:16
File Type:pdf, Size:1020Kb
Imprinting Community College Computer Science Education with Software Engineering Principles by Jacqueline Holliday Hundley A dissertation submitted to the Graduate Faculty of Auburn University in partial fulfillment of the requirements for the Degree of Doctor of Philosophy Auburn, Alabama May 7, 2012 Keywords: computer science, software engineering, CS1/CS2, curriculum, higher education, community college Copyright 2012 by Jacqueline Holliday Hundley Approved by David Umpress, Chair, Associate Professor of Computer Science and Software Engineering James Cross, Professor of Computer Science and Software Engineering Dean Hendrix, Associate Professor of Computer Science and Software Engineering UMI Number: 3532345 All rights reserved INFORMATION TO ALL USERS The quality of this reproduction is dependent upon the quality of the copy submitted. In the unlikely event that the author did not send a complete manuscript and there are missing pages, these will be noted. Also, if material had to be removed, a note will indicate the deletion. UMI 3532345 Published by ProQuest LLC (2012). Copyright in the Dissertation held by the Author. Microform Edition © ProQuest LLC. All rights reserved. This work is protected against unauthorized copying under Title 17, United States Code ProQuest LLC. 789 East Eisenhower Parkway P.O. Box 1346 Ann Arbor, MI 48106 - 1346 Abstract Although the two-year curriculum guide includes coverage of all eight software engineering core topics, the computer science courses taught in Alabama community colleges limit student exposure to the programming, or coding, phase of the software development lifecycle and offer little experience in requirements analysis, design, testing, and maintenance. We proposed that some software engineering principles can be incorporated into the introductory-level of the computer science curriculum. Our vision is to give community college students a broader exposure to the software development lifecycle. For those students who plan to transfer to a baccalaureate program subsequent to their community college education, our vision is to prepare them sufficiently to move seamlessly into mainstream computer science and software engineering degrees. For those students who plan to move from the community college to a programming career, our vision is to equip them with the foundational knowledge and skills required by the software industry. To accomplish our goals, we developed curriculum modules for teaching seven of the software engineering knowledge areas within current computer science introductory-level courses. Each module was designed to be self-supported with suggested learning objectives, teaching outline, software tool support, teaching activities, and other material to assist the instructor in using it. ii Acknowledgements I would like to take this opportunity to express my sincere appreciation to my family for their support and encouragement through my pursuit of this PhD degree. I offer a special thanks to my advisory committee chair, Dr. David A. Umphress, for his guidance and encouragement throughout the development of this research. I thank my committee members, Dr. James H. Cross and Dr. Dean Hendrix for their assistance and input into this thesis work. I want to extand an appreciation to the graduate students in the Teaching Software Engineering course for their contributions during the class and participation in the faculty workshop. iii Table of Contents Abstract ......................................................................................................................................................... ii Acknowledgements ...................................................................................................................................... iii List of Tables .............................................................................................................................................. vii List of Figures .............................................................................................................................................. ix List of Acronyms .......................................................................................................................................... x 1 Introduction ............................................................................................................................................ 1 2 Background ............................................................................................................................................ 6 2.1 Computing .............................................................................................................................. 6 2.2 Software Engineering Principles [Pressman 2010]................................................................ 9 2.3 Industry and Software Engineering ...................................................................................... 15 2.4 Curriculum Guidelines ......................................................................................................... 19 2.4.1 Computing Curricula 2001: Computer Science [Chang, et al. 2001] ............................. 19 2.4.2 Computing Curricula 2003: Guidelines for Associate-Degree Curricula in Computer Science [Campbell, R. (chair) et al. 2003] ...................................................................... 21 2.4.3 Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [Le Blance and Sobel 2004] ................................... 24 2.4.4 Computing Curricula 2005: Guidelines for Associate-Degree Transfer Curriculum in Software Engineering [Campbell, et al. 2005] ................................................................ 25 2.4.5 Computing Curricula 2005: Overview Report on Computing Curricula [Shackelford, et al. 2005]........................................................................................................................... 26 2.4.6 Computer Science Curriculum 2008: An Interim Revision of the CS 2001 [McCauley and McGettrick 2008] ..................................................................................................... 28 2.4.7 Computing Curricula 2009: Guidelines for Associate-Degree Transfer Curriculum in Computer Science [Hawthorne, et al 2009] .................................................................... 29 2.4.8 The Guide to the Software Engineering Body of Knowledge [Tripp, et al. 2004] ......... 33 iv 2.5 Software Development Tools .............................................................................................. 34 2.5.1 Professional Integrated Design Environment.................................................................. 36 2.5.2 Pedagogical Integrated Design Environments ................................................................ 39 2.5.3 Microworlds .................................................................................................................... 43 3 Community Colleges ............................................................................................................................ 46 3.1 Higher Education and Community College Demographics ................................................. 47 3.2 STEM in Community Colleges ............................................................................................ 48 3.3 Alabama Community College System ................................................................................. 49 3.4 Alabama Articulation and General Studies Committee ....................................................... 50 3.5 Alabama Community College Computer Science Curricula ............................................... 52 4 SIGCSE 2011 Birds-of-a-Feather: Introducing Software Engineering Principles in the First Two Years of Computer Science Education................................................................................................. 59 5 Survey of Software Engineering Principles and Concepts................................................................... 63 5.1 Survey Results...................................................................................................................... 64 5.1.1 Software Engineering Knowledge Area Results ............................................................. 64 5.1.2 Integrated Development Environment and Programming Language Results ................. 71 5.1.3 Other Results ................................................................................................................... 71 5.2 Survey Results Summary ..................................................................................................... 72 6 Teaching Software Engineering Course ............................................................................................... 75 7 Teaching Software Engineering Principles in Introductory Computer Sciences Courses Workshop . 77 8 Curriculum modules ............................................................................................................................. 79 8.1 Software Process Curriculum Module ................................................................................. 80 9 Conclusion and Future Work ............................................................................................................... 96 9.1 Summary of Research .......................................................................................................... 96 9.2 Future work .......................................................................................................................