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

An evaluation of object oriented example programs in introductory programming textbooks

Published: 18 January 2010 Publication History
  • Get Citation Alerts
  • Abstract

    Research shows that examples play an important role for cognitive skill acquisition. Students as well as teachers rank examples as important resources for learning to program. Therefore examples must be consistent with the principles and rules of the topics we are teaching.
    However, educators often struggle to find or develop objectoriented example programs of high quality. Common examples are often perceived as not fully faithful to all principles and guidelines of the object-oriented paradigm, or as not following general pedagogical principles and practices. Unless students are able to engage with good examples, they will not be able to tell desirable from undesirable properties in their own and others' programs.
    In this paper we report on a study in which experienced educators reviewed a wide range of object-oriented examples for novices from popular textbooks. This review was accomplished using an on-line checklist that elicited responses on 10 quality factors. Results show that the evaluation instrument provides a sufficiently consistent set of responses to distinguish examples.
    The paper then goes on to examine some of the characteristics of good and bad examples and how this study will influence the evolution of the evaluating instrument.

    References

    [1]
    Limesurvey project homepage. http://www.limesurvey.org/, last visited 2009-08-26.
    [2]
    AAAS. Benchmarks for science literacy, a tool for curriculum reform, 1989. http://www.project2061.org/publications/bsl/default.htm, last visited 2009-08-26.
    [3]
    S. W. Ambler, A. Vermeulen, and G. Bumgardner. The Elements of Java Style. Cambridge University Press, 1999.
    [4]
    D. J. Barnes and M. Kölling. Objects First with Java. Prentice Hall, 4th edition, 2009.
    [5]
    J. Börstler, M. Caspersen, and M. Nordström. Beauty and the beast--toward a measurement framework for example program quality. Technical Report UMINF-07.23, Dept. of Computing Science, Umeå University, Umeå, Sweden, 2007.
    [6]
    J. Börstler, H. B. Christensen, J. Bennedsen, M. Nordström, L. K. Westin, J. E. Moström, and M. E. Caspersen. Evaluating oo example programs for cs1. In ITiCSE'08: Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education, pages 47--52, 2008.
    [7]
    J. Böorstler, M. Nordström, L. K. Westin, J. E. Moström, H. B. Christensen, and J. Bennedsen. An evaluation instrument for object-oriented example programs for novices. Technical Report UMINF-08.09, Dept. of Computing Science, Umeå University, Umeå, Sweden, 2008.
    [8]
    R. Bravaco and S. Simonson. Java Programming -- From the Ground Up. McGraw-Hill, 1st edition, 2010.
    [9]
    R. Brooks. Towards a theory of the comprehension of computer programs. Intl. Journal of Man-Machine Studies, 18(6):543--554, 1983.
    [10]
    B. Brykczynski. A survey of software inspection checklists. ACM SIGSOFT Software Engineering Notes, 24(1):82--89, 1999.
    [11]
    J. Burkhardt, F. Déetienne, and S. Wiedenbeck. Object-oriented program comprehension: Effect of expertise, task and phase. Empirical Software Engineering, 7(2):115--156, 2002.
    [12]
    CACM Forum. 'Hello, World' gets mixed greetings. Communications of the ACM, 45(2):11--15, 2002.
    [13]
    CACM Forum. For programmers, objects are not the only tools. Communications of the ACM, 48(4):11--12, 2005.
    [14]
    M. Clancy. Misconceptions and attitudes that infere with learning to program. In S. Fincher and M. Petre, editors, Computer Science Education Research, pages 85--100. Taylor & Francis, Lisse, The Netherlands, 2004.
    [15]
    R. Clark, F. Nguyen, and J. Sweller. Efficiency in Learning, Evidence-Based Guidelines to Manage Cognitive Load. Wiley & Sons, San Francisco, CA, USA, 2006.
    [16]
    M. de Raadt, R. Watson, and M. Toleman. Textbooks: Under inspection. Technical report, University of Southern Queensland, Department of Maths and Computing, Toowoomba, Australia, 2005.
    [17]
    H. M. Deitel and P. J. Deitel. Java -- How to Program. Prentice Hall, 7th edition, 2007.
    [18]
    M. H. Dodani. Hello World! goodbye skills! Journal of Object Technology, 2(1):23--28, 2003.
    [19]
    S. H. Edwards, J. Börstler, L. N. Cassel, M. S. Hall, and J. Hollingsworth. Developing a common format for sharing programming assignments. ACM SIGCSE Bulletin, 40(4):167--182, 2008.
    [20]
    J. Farrell. Java Programming. Thomson, 5th edition, 2010.
    [21]
    A. E. Fleury. Programming in Java: Student-constructed rules. In Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, pages 197--201, 2000.
    [22]
    M. Fowler. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., 1999.
    [23]
    M. Goldwasser and D. Letscher. Object-Oriented Programming in Python. Prentice Hall, 1st edition, 2008.
    [24]
    M. Guzdial. Centralized mindset: A student problem with object-oriented programming. In Proceedings of the 26th Technical Symposium on Computer Science Education, pages 182--185, 1995.
    [25]
    S. Holland, R. Griffiths, and M. Woodman. Avoiding object misconceptions. In Proceedings of the 28th Technical Symposium on Computer Science Education, pages 131--134, 1997.
    [26]
    C. S. Horstmann. Big Java. Wiley, 3rd edition, 2008.
    [27]
    C. Hu. Dataless objects considered harmful. Communications of the ACM, 48(2):99--101, 2005.
    [28]
    E. Lahtinen, K. Ala-Mutka, and H. Järvinen. A study of the difficulties of novice programmers. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, pages 14--18, 2005.
    [29]
    J. Lewis and W. Loftus. Java -- Software Solutions. Addison-Wesley, 6th edition, 2009.
    [30]
    K. Magel. A Theory of Small Program Complexity. ACM SIGPLAN Notices, 17(3):37--45, 1982.
    [31]
    K. Malan and K. Halland. Examples that can do harm in learning programming. In Companion to the 19th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 83--87, 2004.
    [32]
    D. Malik and R. P. Burton. Java Programming-Guided Learning with Early Objects. Course Technology, 1st edition, 2009.
    [33]
    J. Mason and D. Pimm. Generic Examples: Seeing the General in the Particular. Educational Studies in Mathematics, 15(3):277--289, 1984.
    [34]
    J. Niño and F. A. Hosch. Introduction to Programming and Object Oriented Design Using Java. Wiley, 3rd edition, 2008.
    [35]
    M. Nordström. He{d}uristics--Heuristics for designing object oriented examples for novices. PhD thesis, Umeå University, Umeå, Sweden, 2009.
    [36]
    N. Ourosoff. Primitive types in Java considered harmful. Communications of the ACM, 45(8):105--106, 2002.
    [37]
    S. Purao and V. Vaishnavi. Product metrics for object-oriented systems. ACM Computing Surveys, 35(2):191--221, 2003.
    [38]
    A. J. Riel. Object-Oriented Design Heuristics. Addison-Wesley, Reading, MA, 1996.
    [39]
    D. D. Riley. The Object of Java. Addison-Wesley, 2nd edition, 2006.
    [40]
    E. Roberts. Java -- An Introduction to Computer Science. Addison-Wesley, 2nd edition, 2008.
    [41]
    K. Sanders and L. Thomas. Checklists for grading object-oriented cs1 programs: Concepts and misconceptions. In Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, pages 166--170, 2007.
    [42]
    W. Savitch. Absolute Java. Addison-Wesley, 3rd edition, 2008.
    [43]
    C. Schulte. Block model: An educational model of program comprehension as a tool for a scholarly approach to teaching. In Proceedings of the 4th International Workshop on Computing Education Research, pages 149--160, 2008.
    [44]
    J. Sweller and G. Cooper. The use of worked examples as a substitute for problem solving in learning algebra. Cognition and Instruction, 2:59--89, 1995.
    [45]
    J. G. Trafton and B. J. Reiser. Studying examples and solving problems: Contributions to skill acquisition. Technical report, Naval HCI Research Lab, Washington, DC, USA, 1993.
    [46]
    T. VanDrunen. Java interfaces in cs 1 textbooks. In OOPSLA'06: Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, pages 875--880, 2006.
    [47]
    K. VanLehn. Cognitive skill acquisition. Annual Review of Psychology, 47:513--539, 1996.
    [48]
    R. Westfall. 'Hello, World' considered harmful. Communications of the ACM, 44(10):129--130, 2001.
    [49]
    C.-C. Wu, J. M.-C. Lin, and K.-Y. Lin. A content analysis of programming examples in high school computer textbooks in taiwan. Journal of Computers in Mathematics and Science Teaching, 18(3):225--244, 1999.
    [50]
    C. T. Wu. A Comprehensive Introduction to Object-Oriented Programming with Java. McGraw-Hill, international edition, 2008.

    Cited By

    View all
    • (2022)Expressions in Java: Essential, Prevalent, Neglected?Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3563767.3568131(41-51)Online publication date: 29-Nov-2022
    • (2020)Presenting Basic CS Concepts: A Content Analysis of AP CSA TextbooksProceedings of the 20th Koli Calling International Conference on Computing Education Research10.1145/3428029.3428567(1-2)Online publication date: 19-Nov-2020
    • (2020) DynamiQue – A Technical Intervention To Augment Static Textbook with Dynamic Q&A Interactive Learning Environments10.1080/10494820.2020.174401630:9(1693-1707)Online publication date: 3-Apr-2020
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGCSE Bulletin
    ACM SIGCSE Bulletin  Volume 41, Issue 4
    December 2009
    205 pages
    ISSN:0097-8418
    DOI:10.1145/1709424
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 January 2010
    Published in SIGCSE Volume 41, Issue 4

    Check for updates

    Author Tags

    1. assessment
    2. check list
    3. courseware
    4. example programs
    5. examples
    6. guidelines
    7. principles
    8. textbooks

    Qualifiers

    • Review-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)13
    • Downloads (Last 6 weeks)2

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Expressions in Java: Essential, Prevalent, Neglected?Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3563767.3568131(41-51)Online publication date: 29-Nov-2022
    • (2020)Presenting Basic CS Concepts: A Content Analysis of AP CSA TextbooksProceedings of the 20th Koli Calling International Conference on Computing Education Research10.1145/3428029.3428567(1-2)Online publication date: 19-Nov-2020
    • (2020) DynamiQue – A Technical Intervention To Augment Static Textbook with Dynamic Q&A Interactive Learning Environments10.1080/10494820.2020.174401630:9(1693-1707)Online publication date: 3-Apr-2020
    • (2020)Learning by coding: A sociocultural approach to teaching web development in higher educationEducation and Information Technologies10.1007/s10639-019-10037-x25:3(1759-1783)Online publication date: 1-May-2020
    • (2018)"I know it when I see it" Perceptions of Code QualityProceedings of the 2017 ITiCSE Conference on Working Group Reports10.1145/3174781.3174785(70-85)Online publication date: 30-Jan-2018
    • (2017)Student Software Designs at the Undergraduate MidpointProceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education10.1145/3059009.3059016(34-39)Online publication date: 28-Jun-2017
    • (2017)Investigating the Under-Usage of Code Decomposition and Reuse Among High School Students: The Case of FunctionsAdvanced Information Systems Engineering Workshops10.1007/978-3-319-60048-2_9(92-98)Online publication date: 2-Jun-2017
    • (2015)New Horizons in the Assessment of Computer Science at School and BeyondProceedings of the 2015 ITiCSE on Working Group Reports10.1145/2858796.2858801(117-147)Online publication date: 4-Jul-2015
    • (2015)Structurally Heterogeneous Source Code Examples from Unstructured Knowledge SourcesProceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation10.1145/2678015.2682537(21-26)Online publication date: 13-Jan-2015
    • (2015)An empirical study on program comprehension task classification of novices2015 IEEE Conference on e-Learning, e-Management and e-Services (IC3e)10.1109/IC3e.2015.7403479(15-20)Online publication date: Aug-2015
    • Show More Cited By

    View Options

    Get Access

    Login options

    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