Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Teaching Mathematical Reasoning Principles for Software Correctness and Its Assessment

Published: 19 August 2015 Publication History

Abstract

Undergraduate computer science students need to learn analytical reasoning skills to develop high-quality software and to understand why the software they develop works as specified. To accomplish this central educational objective, this article describes a systematic process of introducing reasoning skills into the curriculum and assessing how well students have learned those skills. To facilitate assessment, a comprehensive inventory of principles for reasoning about correctness that captures the finer details of basic skills that students need to learn has been defined and used. The principles can be taught at various levels of depth across the curriculum in a variety of courses.
The use of a particular instructional process is illustrated to inculcate reasoning principles across several iterations of a sophomore-level development foundations course and a junior-level software engineering course. The article summarizes how learning outcomes motivated by the inventory of reasoning principles lead to questions that in turn form the basis for a careful analysis of student understanding and for fine-tuning teaching interventions that together facilitate continuous improvements to instruction.

References

[1]
ABET. 2014. Assessment Planning. Retrieved July 14, 2015, from http://abet.org/assessment-planning/.
[2]
V. L. Almstrum, P. B. Henderson, V. Harvey, C. Heeren, W. Marion, C. Riedesel, L.-K. Soh, and A. E. Tew. 2006. Concept inventories in computer science for the topic discrete mathematics. In Proceedings of the Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education. ACM, New York, NY, 132--145.
[3]
D. Baldwin, A. Brady, A. Danyluk, J. Adams, and A. Lawrence. 2010a. Case studies of liberal arts computer science programs. ACM Transactions on Computing Education 10, 1, 1--30.
[4]
D. Baldwin, B. Marion, M. Sitaraman, and C. Heeren, 2010b. Some developments in mathematical thinking for computer science education since computing curricula 2001. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education. ACM, New York, NY, 392--393.
[5]
B. S. Bloom, M. Engelhart, E. J. Furst, W. H. Hill, and D. R. Krathwohl. 1956. Taxonomy of Educational Objectives Handbook I: The Cognitive Domain. Longman, New York, NY.
[6]
P. Bucci, T. J. Long, and B. W. Weide. 2001. Do we really teach abstraction? In Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education. ACM, New York, NY, 26--30.
[7]
L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. R. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll. 2005. An overview of JML tools and applications. International Journal on Software Tools for Technology Transfer 7, 3, 212--232.
[8]
C. T. Cook. 2011. A Web-Integrated Environment for Component-Based Reasoning. Master's Thesis. Clemson University.
[9]
C. T. Cook, S. Drachova, J. O. Hallstrom, J. E. Hollingsworth, D. P. Jacobs, J. Krone, and M. Sitaraman. 2012a. A systematic approach to teaching abstraction and mathematical modeling. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education. ACM, New York, NY, 357--362.
[10]
C. T. Cook, S. V. Drachova-Strang, Y.-S. Sun, M. Sitaraman, J. C. Carver, and J. E. Hollingsworth. 2013. Specification and reasoning in SE projects using a Web IDE. In Proceedings of the 26th Conference on Software Engineering Education and Training (CSEE&T’’13). IEEE, Los Alamitos, CA, 229--238.
[11]
C. T. Cook, H. Harton, H. Smith, and M. Sitaraman. 2012b. Specification engineering and modular verification using a Web-integrated verifying compiler. In Proceedings of the 2012 International Conference on Software Engineering. IEEE, Los Alamitos, CA, 1379--1382.
[12]
E. W. Dijkstra, W. H. J. Feijen, and J. Sterringa. 1988. A Method of Programming. Addison-Wesley.
[13]
S. Drachova. 2013. Teaching and Assessment of Mathematical Principles for Software Correctness Using a Reasoning Concept Inventory. Ph.D. Dissertation. Clemson University.
[14]
S. Drachova-Strang, M. Sitaraman, and J. Hollingsworth. 2011. Experimentation with tutors for teaching mathematical reasoning and specification. In Proceedings of the Conference on Frontiers in Education.
[15]
S. H. Edwards. 2001. A framework for practical, automated black-box testing of component-based software. Software Testing, Verification and Reliability 11, 2, 97--111.
[16]
S. H. Edwards, W. D. Heym, T. J. Long, M. Sitaraman, and B. W. Weide. 1994. Part II: Specifying components in RESOLVE. ACM SIGSOFT Software Engineering Notes 19, 4, 29--39.
[17]
M. F. Frias, C. G. L. Pombo, and M. M. Moscato. 2007. Alloy analyzer+PVS in the analysis and verification of alloy specifications. In Proceedings of the 13th International Conference on Tools and Algorithms for the Construction and Analysis of Systems. 587--601.
[18]
L. R. Glasman and D. Albarracín. 2006. Forming attitudes that predict future behavior: A meta-analysis of the attitude-behavior relation. Psychological Bulletin 132, 5, 778--822.
[19]
K. Goldman, P. Gross, C. Heeren, G. Herman, L. Kaczmarczyk, M. C. Loui, and C. Zilles. 2008. Identifying important and difficult concepts in introductory computing courses using a Delphi process. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education. ACM, New York, NY, 256--260.
[20]
D. Gries. 1981. The Science of Programming. Springer, Heidelberg, Germany.
[21]
D. Gries, B. Marion, P. Henderson, and D. Schwartz. 2001. How mathematical thinking enchances computer science problem solving. In Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education. ACM, New York, NY, 390--391.
[22]
P. B. Henderson. 2003. Mathematical reasoning in software engineering education. Communications of the ACM 46, 9, 45--50.
[23]
G. L. Herman, M. C. Loui, and C. Zilles. 2010. Creating the digital logic concept inventory. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education. ACM, New York, NY, 102--106.
[24]
D. Hestenes, M. Wells, and G. Swackhamer. 1992. Force Concept Inventory. Physics Teacher 30, 3, 141--158.
[25]
J. E. Hollingsworth. 2012. SIGCSE Workshop 2012: Instructional Video Series. Retrieved July 15, 2015, from http://www.cs.clemson.edu/resolve/teaching/ed_ws/sigcse2012/index.html.
[26]
J. E. Hollingsworth, L. Blankenship, and B. W. Weide. 2000. Experience report: Using RESOLVE/C++ for commercial software. ACM SIGSOFT Software Engineering Notes 25, 6, 11--19.
[27]
A. Jacobi, J. Martin, J. Mitchell, and T. Newell. 2003. A concept inventory for heat transfer. In Proceedings of the 33rd Annual Frontiers in Education Conference (FIE’03). T3D-12--T3D-16.
[28]
Joint Task Force on Computing Curricula. 2013. Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. ACM, New York, NY.
[29]
J. Krone, D. Baldwin, J. C. Carver, J. E. Hollingsworth, A. Kumar, and M. Sitaraman. 2012. Teaching mathematical reasoning across the curriculum. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education. ACM, New York, NY, 241--242.
[30]
A. Kumar. 2004. Web-based tutors for learning programming in C++/Java. SIGCSE Bulletin 36, 3, 266.
[31]
K. R. M. Leino. 2012. Developing verified programs with Dafny. In Proceedings of the 2012 ACM Conference on High Integrity Language Technology. ACM, New York, NY, 9--10.
[32]
D. P. Leonard, J. O. Hallstrom, and M. Sitaraman. 2009. Injecting rapid feedback and collaborative reasoning in teaching specifications. In Proceedings of the 40th ACM Technical Symposium on Computer Science Education. ACM, New York, NY, 524--528.
[33]
B. Meyer. 1992. Eiffel: The Language. Prentice Hall.
[34]
K. C. Midkiff, T. A. Litzinger, and D. Evans. 2001. Development of engineering thermodynamics concept inventory instruments. In Proceedings of the 31st Annual Frontiers in Education Conference. F2A--F23.
[35]
B. M. Notaros. 2002. Concept inventory assessment instruments for electromagnetics education. In Proceedings of the Antennas and Propagation Society International Symposium. IEEE, Los Alamitos, CA, 684--687.
[36]
A. Remshagen. 2010. Making discrete mathematics relevant. In Proceedings of the 48th Annual Southeast Regional Conference. ACM, New York, NY, 1--6.
[37]
M. Sitaraman, B. Adcock, J. Avigad, D. Bronish, P. Bucci, D. Frazier, H. M. Friedman, H. Harton, W. Heym, J. Kirschenbaum, J. Krone, H. Smith, and B. W. Weide. 2011. Building a push-button RESOLVE verifier: Progress and challenges. Formal Aspects of Computing 23, 5, 607--626.
[38]
M. Sitaraman, J. O. Hallstrom, J. White, S. Drachova-Strang, H. K. Harton, D. Leonard, J. Krone, and R. Pak. 2009. Engaging students in specification and reasoning: “Hands-on” experimentation and evaluation. In Proceedings of the 14th Annual ACM SIGCSE Conference on Innovation and Technology in Computer Science Education. ACM, New York, NY, 50--54.
[39]
A. Stone, K. Allen, T. R. Rhoads, T. J. Murphy, R. L. Shehab, and C. Saha. 2003. The statistics concept inventory: A pilot study. In Proceedings of the 33rd Annual Conference on Frontiers in Education, IEEE, Los Alamitos, CA, T3D--1-6.
[40]
A. E. Tew. 2010. Assessing Fundamental Introductory Computing Concept Knowledge in a Language Independent Manner. Ph.D. Dissertation. Georgia Institute of Technology.
[41]
A. E. Tew and M. Guzdial. 2011. The FCS1: A language independent assessment of CS1 knowledge. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education. ACM, New York, NY, 111--116.
[42]
G. T. Leavens, P. O’Hearn, and S. K. Rajamani (Eds.). 2010. VSTTE’10: Proceedings of the 3rd International Conference on Verified Software: Theories, Tools, Experiments. Springer-Verlag, Heidelberg, Germany.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Computing Education
ACM Transactions on Computing Education  Volume 15, Issue 3
September 2015
69 pages
EISSN:1946-6226
DOI:10.1145/2809889
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 August 2015
Accepted: 01 December 2014
Revised: 01 July 2014
Received: 01 July 2013
Published in TOCE Volume 15, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Evaluation
  2. components
  3. formal methods
  4. learning outcomes
  5. objects
  6. specifications

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Mocking Temporal LogicProceedings of the 2024 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3689493.3689980(98-109)Online publication date: 17-Oct-2024
  • (2023)A Multi-Paradigm Programming Language for EducationProceedings of the 5th European Conference on Software Engineering Education10.1145/3593663.3593666(236-245)Online publication date: 19-Jun-2023
  • (2023)Pursuing the traces of mathematical reasoningAsia Pacific Education Review10.1007/s12564-023-09895-5Online publication date: 21-Sep-2023
  • (2022)Assessment of Code, Which Aspects Do Teachers Consider and How Are They Valued?ACM Transactions on Computing Education10.1145/351713322:4(1-27)Online publication date: 15-Sep-2022
  • (2022)Network Visualization and Assessment of Student Reasoning About ConditionalsProceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 110.1145/3502718.3524793(255-261)Online publication date: 7-Jul-2022
  • (2022)A Systematic Literature Review on Predictive Cognitive Skills in Novice Programming2022 IEEE Frontiers in Education Conference (FIE)10.1109/FIE56618.2022.9962582(1-9)Online publication date: 8-Oct-2022
  • (2020)The need of mathematical literacy competency for informatics graduates: Preliminary study at STMIK STIKOM IndonesiaJournal of Physics: Conference Series10.1088/1742-6596/1469/1/0121441469(012144)Online publication date: 26-Mar-2020
  • (2019)Impact of Steps, Instruction, and Motivation on Learning Symbolic Reasoning Using an Online ToolProceedings of the 50th ACM Technical Symposium on Computer Science Education10.1145/3287324.3287401(1039-1045)Online publication date: 22-Feb-2019
  • (2018)An Activity-Based Undergraduate Software Engineering Course to Engage Students and Encourage LearningProceedings of the 3rd European Conference of Software Engineering Education10.1145/3209087.3209100(18-25)Online publication date: 14-Jun-2018
  • (2018)Where exactly are the difficulties in reasoning logically about code? experimentation with an online systemProceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education10.1145/3197091.3197133(39-44)Online publication date: 2-Jul-2018
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media