Skip to main content Accessibility help
×
Hostname: page-component-848d4c4894-xm8r8 Total loading time: 0 Render date: 2024-06-22T07:46:20.216Z Has data issue: false hasContentIssue false

21 - Tools and Environments

from Systems Software and Technology

Published online by Cambridge University Press:  15 February 2019

Sally A. Fincher
Affiliation:
University of Kent, Canterbury
Anthony V. Robins
Affiliation:
University of Otago, New Zealand
Get access

Summary

Teaching and learning how to build software are central aspects of computing education, and the tools which we use to support this are themselves a focus of research and innovation. This chapter considers tools designed or predominately used for education; from software development environments to automatic assessment tools, visualization, and educational games platforms. It looks at not just the history and state-of-the-art of these tools, but also at the challenges and opportunities in researching with and about them.
Type
Chapter
Information
Publisher: Cambridge University Press
Print publication year: 2019

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Allen, E., Cartwright, R., & Stoler, B. (2002). DrJava: A lightweight pedagogic environment for Java. ACM SIGCSE Bulletin, 34(1), 137141.Google Scholar
Ala-Mutka, K. M. (2005). A survey of automated assessment approaches for programming assignments. Computer Science Education, 15(2), 83102.CrossRefGoogle Scholar
Ala-Mutka, K., & Jarvinen, H. M. (2004). Assessment process for programming assignments. In Proceedings. IEEE International Conference on Advanced Learning Technologies, 2004 (pp. 181185). New York: IEEE.Google Scholar
Aleven, V., Myers, E., Easterday, M., & Ogan, A. (2010). Toward a framework for the analysis and design of educational games. In Digital Game and Intelligent Toy Enhanced Learning (DIGITEL) (pp. 6976). New York: IEEE.Google Scholar
Ali, N. H., Shukur, Z., & Idris, S. (2007). Assessment system for UML class diagram using notations extraction. International Journal on Computer Science Network Security, 7, 181187.Google Scholar
Alvarado, C., Morrison, B., Ericson, B., Guzdial, M., Miller, B., & Ranum, D. (2012). Performance and use evaluation of an electronic book for introductory Python programming. Computer Science Faculty Publications. 62. University of Nebraska at Omaha. Retrieved from https://digitalcommons.unomaha.edu/compscifacpub/62Google Scholar
Auvinen, T., Hakulinen, L., & Malmi, L. (2015). Increasing students’ awareness of their behavior in online learning environments with visualizations and achievement badges. IEEE Transactions on Learning Technologies, 8(3), 261273.CrossRefGoogle Scholar
Baecker, R. M., & Sherman, D. (1983). Sorting Out Sorting: Narrated colour videotape, 30 minutes, presented at ACM SIGGRAPH ‘81 and excerpted in ACM SIGGRAPH Video Review #7.Google Scholar
Benford, S., Burke, E., Foxley, E., Gutteridge, N., & Zin, A. M. (1994). Ceilidh as a course management support system. Journal of Educational Technology Systems, 22(3), 235250.Google Scholar
Ben-Ari, M., Bednarik, R., Levy, R. B. B., Ebel, G., Moreno, A., Myller, N., & Sutinen, E. (2011). A decade of research and development on program animation: The Jeliot experience. Journal of Visual Languages & Computing, 22(5), 375384.Google Scholar
Brown, M. H., & Sedgewick, R. (1984). A system for algorithm animation. SIGGRAPH Computer Graphics, 18(3), 177186.Google Scholar
Bruce, K. B., Danyluk, A., & Murtagh, T. (2001). A library to support a graphics-based object-first approach to CS 1. ACM SIGCSE Bulletin, 33(1), 610.Google Scholar
Brusilovsky, P., Edwards, S., Kumar, A., Malmi, L., Benotti, L., Buck, D., Ihantola, P., Prince, R., Sirkiä, T., Sosnovsky, , , S., & Urquiza, J. (2014). Increasing adoption of smart learning content for computer science education. In Proceedings of the Working Group Reports of the 2014 on Innovation & Technology in Computer Science Education Conference (pp. 3157). New York: ACM.Google Scholar
Cardell-Oliver, R., & Doran Wu, P. (2011). UWA Java tools: Harnessing software metrics to support novice programmers. In Proceedings of the 16th Annual Joint Conference on Innovation & Technology in Computer Science Education (pp. 341341). New York: ACM.Google Scholar
Charters, P., Lee, M. J., Ko, A. J., & Loksa, D. (2014). Challenging stereotypes and changing attitudes: the effect of a brief programming encounter on adults’ attitudes toward programming. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education (pp. 653658). New York: ACM.CrossRefGoogle Scholar
Connolly, T. M., & Stansfield, M. H. (2006). Enhancing eLearning: Using computer games to teach requirements collection and analysis. Presented at Second Symposium of the Working Group on Human-Computer Interaction and Usability Engineering of the Austrian Computer Society, Vienna, Austria.Google Scholar
Cooper, S., Dann, W., & Pausch, R. (2000). Alice: A 3-D tool for introductory programming concepts. Journal of Computing Sciences in Colleges, 15(5), 107116.Google Scholar
Cooper, S., Dann, W., & Pausch, R. (2003). Teaching objects-first in introductory computer science. ACM SIGCSE Bulletin, 35(1), 191195.CrossRefGoogle Scholar
Crescenzi, P. (2010). AlViE 3.0. Retrieved from https://sites.google.com/site/alviehomepage/alvie3Google Scholar
Davies, S., Polack-Wahl, J. A., & Anewalt, K. (2011). A snapshot of current practices in teaching the introductory programming sequence. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (pp. 625630). New York: ACM.Google Scholar
Dekeyser, S., de Raadt, M., & Lee, T. Y. (2007). Computer assisted assessment of SQL query skills. In Proceedings of the Eighteenth Conference on Australasian Database – Volume 63 (pp. 5362). Sydney, Australia: Australian Computer Society, Inc.Google Scholar
Diehl, S. (2007). Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software. Berlin, Germany: Springer Science & Business Media.Google Scholar
Douce, C., Livingstone, D., & Orwell, J. (2005). Automatic test-based assessment of programming: A review. Journal on Educational Resources in Computing (JERIC), 5(3), 4.Google Scholar
du Boulay, B. (1986). Some difficulties of learning to program. Journal of Educational Computing Research, 2(1), 5773.Google Scholar
Eckerdal, A., Kinnunen, P., Thota, N., Nylén, A., Sheard, , , J., & Malmi, L. (2014). Teaching and learning with MOOCs: Computing academics’ perspectives and engagement. In Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education (pp. 914). New York: ACM.Google Scholar
Edwards, S. H. (2003). Rethinking computer science education from a test-first perspective. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (pp. 148155). New York: ACM.Google Scholar
Edwards, S. H., Kandru, N., & Rajagopal, M. (2017). Investigating static analysis errors in student Java programs. In Proceedings of the 2017 ACM Conference on International Computing Education Research (pp. 6573). New York: ACM.CrossRefGoogle Scholar
Eisenstadt, M. (1997). My hairiest bug war stories. Communications of the ACM, 40(4), 3037.Google Scholar
Ericson, B. J., Guzdial, M. J., & Morrison, B. B. (2015). Analysis of interactive features designed to enhance learning in an ebook. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research (pp. 169178). New York: ACM.Google Scholar
Ericson, B. J., Rogers, K., Parker, M., Morrison, B., & Guzdial, M. (2016). Identifying design principles for CS teacher ebooks through design-based research. In Proceedings of the 2016 ACM Conference on International Computing Education Research (pp. 191200). New York: ACM.Google Scholar
Felleisen, M., Findler, R. B., Flatt, M., & Krishnamurthi, S. (1998). The DrScheme project: An overview. ACM Sigplan Notices, 33(6), 1723.Google Scholar
Findler, R. B., Flanagan, C., Flatt, M., Krishnamurthi, S., & Felleisen, M. (1997). DrScheme: A pedagogic programming environment for Scheme. In International Symposium on Programming Language Implementation and Logic Programming (pp. 369388). Berlin, Germany: Springer.Google Scholar
Findler, R. B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., & Felleisen, M. (2002). DrScheme: A programming environment for Scheme. Journal of Functional Programming, 12(2), 159182.Google Scholar
Fisker, K., McCall, D., Kölling, M., & Quig, B. (2008). Group work support for the BlueJ IDE. ACM SIGCSE Bulletin, 40(3), 163168.CrossRefGoogle Scholar
Fouh, E., Karavirta, V., Breakiron, D. A., Hamouda, S., Hall, S., Naps, T. L., & Shaffer, C. A. (2014). Design and architecture of an interactive eTextbook – The OpenDSA system. Science of Computer Programming, 88, 2240.CrossRefGoogle Scholar
Gee, J. P. (2014). What Video Games Have to Teach Us about Learning and Literacy. Basingstoke, UK: Macmillan.Google Scholar
Gómez-Albarrán, M. (2005). The teaching and learning of programming: A survey of supporting software tools. The Computer Journal, 48(2), 130144.Google Scholar
Guo, P. J. (2013). Online Python tutor: Embeddable web-based program visualization for CS education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (pp. 579584). New York: ACM.Google Scholar
Haaranen, L. (2017). Programming as a performance: Live-streaming and its implications for computer science education. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education (pp. 353358). New York: ACM.Google Scholar
Haaranen, L., & Duran, R. (2017). Link between gaming communities in YouTube and computer science. In Proceedings of the 9th International Conference on Computer Supported Education (pp. 1724). Setúbal, Portugal: ScitePress.Google Scholar
Helminen, J., Ihantola, P., Karavirta, V., & Malmi, L. (2012). How do students solve parsons programming problems?: An analysis of interaction traces. In Proceedings of the Ninth Annual International Conference on International Computing Education Research (pp. 119126). New York: ACM.Google Scholar
Higgins, C., Symeonidis, P., & Tsintsifas, A. (2002). The marking system for CourseMaster. ACM SIGCSE Bulletin, 34(3), 4650.CrossRefGoogle Scholar
Hollingsworth, J. (1960). Automatic graders for programming classes. Communications of the ACM, 3(10), 528529.Google Scholar
Hundhausen, C. D., Douglas, S. A., & Stasko, J. T. (2002). A meta-study of algorithm visualization effectiveness. Journal of Visual Languages & Computing, 13(3), 259290.Google Scholar
Ibrahim, R., Yusoff, R. C. M., Omar, H. M., & Jaafar, A. (2010). Students perceptions of using educational games to learn introductory programming. Computer and Information Science, 4(1), 205.Google Scholar
Ihantola, P., Ahoniemi, T., Karavirta, V., & Seppälä, O. (2010). Review of recent systems for automatic assessment of programming assignments. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (pp. 8693). New York: ACM.CrossRefGoogle Scholar
Jackson, D., & Usher, M. (1997). Grading student programs using ASSYST. ACM SIGCSE Bulletin, 29(1), 335339.Google Scholar
Joy, M., Griffiths, N., & Boyatt, R. (2005). The BOSS online submission and assessment system. Journal on Educational Resources in Computing (JERIC), 5(3), 2.Google Scholar
Karavirta, V., Korhonen, A., & Malmi, L. (2006). On the use of resubmissions in automatic assessment systems. Computer Science Education, 16(3), 229240.Google Scholar
Karavirta, V., & Shaffer, C. A. (2013). JSAV: The JavaScript algorithm visualization library. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education (pp. 159164). New York: ACM.Google Scholar
Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys (CSUR), 37(2), 83137.CrossRefGoogle Scholar
Kemeny, J. G., & Kurtz, T. E. (1964). BASIC: A Manual for BASIC, the Elementary Algebraic Language Designed for Use with the Dartmouth Time Sharing System, 1st edn. Hanover, NH: Dartmouth College Computation Center.Google Scholar
Kim, A. S., & Ko, A. J. (2017). A pedagogical analysis of online coding tutorials. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (pp. 321326). New York: ACM.Google Scholar
Ko, A. J., Latoza, T. D., & Burnett, M. M. (2015). A practical guide to controlled experiments of software engineering tools with human participants. Empirical Software Engineering, 20(1), 110141.CrossRefGoogle Scholar
Kölling, M., Quig, , Patterson, B., , A., & Rosenberg, J. (2003). The BlueJ system and its pedagogy. Computer Science Education, 13(4), 249268.Google Scholar
Lancaster, T., & Culwin, F. (2004). A comparison of source code plagiarism detection engines. Computer Science Education, 14(2), 101112.Google Scholar
Lee, M. J., Bahmani, F., Kwan, I., LaFerte, J., Charters, P., Horvath, A., Luor, F., Cao, J., Law, C., Beswetherick, M., & Long, S. (2014). Principles of a debugging-first puzzle game for computing education. In 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 5764). New York: IEEE.Google Scholar
Lee, M. J., & Ko, A. J. (2015). Comparing the effectiveness of online learning approaches on CS1 learning outcomes. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research (pp. 237246). New York: ACM.CrossRefGoogle Scholar
Malmi, L., Karavirta, V., Korhonen, A., Nikander, J., Seppälä, O., & Silvasti, P. (2004). Visual algorithm simulation exercise system with automatic assessment: TRAKLA2. Informatics in Education, 3(2), 267.CrossRefGoogle Scholar
Malmi, L., Karavirta, V., Korhonen, A., & Nikander, J. (2005). Experiences on automatically assessed algorithm simulation exercises with different resubmission policies. Journal on Educational Resources in Computing (JERIC), 5(3), 7.CrossRefGoogle Scholar
Mason, R., Cooper, G., & de Raadt, M. (2012). Trends in introductory programming courses in Australian universities: Languages, environments and pedagogy. In Proceedings of the Fourteenth Australasian Computing Education Conference – Volume 123 (pp. 3342). Sydney, Australia: Australian Computer Society, Inc.Google Scholar
McIver, L. (2002). Evaluating languages and environments for novice programmers. In Fourteenth Annual Workshop of the Psychology of Programming Interest Group (PPIG 2002) (pp. 100110). London, UK: Brunel University.Google Scholar
Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2013). Learning computer science concepts with Scratch. Computer Science Education, 23(3), 239264.CrossRefGoogle Scholar
Miller, B. N., & Ranum, D. L. (2012). Beyond PDF and ePub: Toward an interactive textbook. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education (pp. 150155). New York: ACM.Google Scholar
Miljanovic, M. A., & Bradbury, J. S. (2017). RoboBUG: A serious game for learning debugging techniques. In Proceedings of the 2017 ACM Conference on International Computing Education Research (pp. 93100). New York: ACM.Google Scholar
Mitrovic, A., Martin, B., & Mayo, M. (2002). Using evaluation to shape ITS design: Results and experiences with SQL-Tutor. User Modeling and User-Adapted Interaction, 12(2), 243279.Google Scholar
Myller, N., Bednarik, R., Sutinen, E., & Ben-Ari, M. (2009). Extending the engagement taxonomy: Software visualization and collaborative learning. ACM Transactions on Computing Education (TOCE), 9(1), 7.Google Scholar
Naps, T. L., Eagan, J. R., & Norton, L. L. (2000). JHAVÉ – An environment to actively engage students in web-based algorithm visualizations. ACM SIGCSE Bulletin, 32(1), 109113.CrossRefGoogle Scholar
Naps, T. L., Rößling, G., Almstrum, , Dann, V., Fleischer, W., Hundhausen, R., Korhonen, C., Malmi, A., McNally, L., Rodger, M., S., & Velázquez-Iturbide, J. Á. (2002). Exploring the role of visualization and engagement in computer science education. ACM Sigcse Bulletin, 35(2), 131152.Google Scholar
Nelson, G. L., Xie, B., & Ko, A. J. (2017). Comprehension first: Evaluating a novel pedagogy and tutoring system for program tracing in CS1. In Proceedings of the 2017 ACM Conference on International Computing Education Research (pp. 211). New York: ACM.Google Scholar
Parker, M. C., Rogers, K., Ericson, B. J., & Guzdial, M. (2017). Students and teachers use an online AP CS principles ebook differently: Teacher behavior consistent with expert learners. In Proceedings of the 2017 ACM Conference on International Computing Education Research (pp. 101109). New York: ACM.Google Scholar
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, , Eastmond, N., Brennan, E., Millner, K., Rosenbaum, A., Silver, E., Silverman, J., , B., & Kafai, Y. (2009). Scratch: Programming for all. Communications of the ACM, 52(11), 6067.CrossRefGoogle Scholar
Redish, K. A., & Smyth, W. F. (1986). Program style analysis: A natural by-product of program compilation. Communications of the ACM, 29(2), 126133.Google Scholar
Robinett, W., & Grimm, L. (1982). Rocky’s Boots/Robot Odyssey. San Francisco, CA: The Learning Company.Google Scholar
Rodger, S. H. (2002). Using hands-on visualizations to teach computer science from beginning courses to advanced courses. Presented at Second Program Visualization Workshop. Retrieved from www2.cs.duke.edu/csed/rodger/papers/pviswk02.pdfGoogle Scholar
Rodger, S. H., & Finley, T. W. (2006). JFLAP: An Interactive Formal Languages and Automata Package. Burlington, MA: Jones & Bartlett Learning.Google Scholar
Rosales, F., García, A., Rodríguez, S., Pedraza, J. L., Méndez, R., & Nieto, M. M. (2008). Detection of plagiarism in programming assignments. IEEE Transactions on Education, 51(2), 174183.Google Scholar
Rößling, G., & Vellaramkalayil, T. (2009). A visualization-based computer science hypertextbook prototype. ACM Transactions on Computing Education (TOCE), 9(2), 11.Google Scholar
Rößling, G., & Freisleben, B. (2002). ANIMAL: A system for supporting multiple roles in algorithm animation. Journal of Visual Languages & Computing, 13(3), 341354.Google Scholar
Roque, R., Kafai, Y., & Fields, D. (2012). From tools to communities: Designs to support online creative collaboration in Scratch. In Proceedings of the 11th International Conference on Interaction Design and Children (pp. 220223). New York: ACM.Google Scholar
Saikkonen, R., Malmi, L., & Korhonen, A. (2001). Fully automatic assessment of programming exercises. ACM SIGCSE Bulletin, 33(3), 133136.Google Scholar
Shaffer, C. A., Cooper, M. L., Alon, A. J. D., Akbar, M., Stewart, M., Ponce, S., & Edwards, S. H. (2010). Algorithm visualization: The state of the field. ACM Transactions on Computing Education (TOCE), 10(3), 9.Google Scholar
Sheard, J., Eckerdal, A., Kinnunen, P., Malmi, L., Nylén, A., & Thota, N. (2014). MOOCs and their impact on academics. In Proceedings of the 14th Koli Calling International Conference on Computing Education Research (pp. 137145). New York: ACM.Google Scholar
Sheard, J., Simon, S., Hamilton, M., & Lönnberg, J. (2009). Analysis of research into the teaching and learning of programming. In Proceedings of the Fifth International Workshop on Computing Education Research (pp. 93104). New York: ACM.Google Scholar
Shukur, Z., Burke, E., & Foxley, E. (1999). The automatic assessment of formal specification coursework. Journal of Computing in Higher Education, 11(1), 86119.Google Scholar
Simon, A. (2007). classification of recent Australasian computing education publications. Computer Science Education, 17(3), 155169.CrossRefGoogle Scholar
Simon, S. (2009). Informatics in education and Koli Calling: A comparative analysis. Informatics in Education, 8(1), 101.Google Scholar
Sirkiä, T. (2016). Jsvee & Kelmu: Creating and tailoring program animations for computing education. In 2016 IEEE Working Conference on Software Visualization (VISSOFT) (pp. 3645). New York: IEEE.Google Scholar
Sirkiä, T., & Haaranen, L. (2017). Improving online learning activity interoperability with ACOS server. Software: Practice and Experience, 47(11), 16571676.Google Scholar
Soflano, M., Connolly, T. M., & Hainey, T. (2015). An application of adaptive games-based learning based on learning style to teach SQL. Computers & Education, 86, 192211.Google Scholar
Sorva, J., & Sirkiä, T. (2010). UUhistle: A software tool for visual program simulation. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (pp. 4954). New York: ACM.Google Scholar
Sorva, J., Karavirta, V., & Malmi, L. (2013). A review of generic program visualization systems for introductory programming education. ACM Transactions on Computing Education (TOCE), 13(4), 15.Google Scholar
Spacco, J., Hovemeyer, D., Pugh, W., Emad, F., Hollingsworth, J. K., & Padua-Perez, N. (2006). Experiences with Marmoset: Designing and using an advanced submission and testing system for programming courses. ACM SIGCSE Bulletin, 38(3), 1317.Google Scholar
Stasko, J. T. (1990). Tango: A framework and system for algorithm animation. Computer, 23(9), 2739.Google Scholar
Stasko, J. (Ed.) (1998). Software Visualization: Programming as a Multimedia Experience. Cambridge, MA: MIT Press.Google Scholar
Thorburn, G., & Rowe, G. (1997). PASS: An automated system for program assessment. Computers & Education, 29(4), 195206.Google Scholar
Tillmann, N., Bishop, J., Horspool, N., Perelman, D., & Xie, T. (2014). Code hunt: Searching for secret code for fun. In Proceedings of the 7th International Workshop on Search-Based Software Testing (pp. 2326). New York: ACM.Google Scholar
Uysal, M. P. (2016). Evaluation of learning environments for object-oriented programming: Measuring cognitive load with a novel measurement technique. Interactive Learning Environments, 24(7), 15901609.Google Scholar
Valentine, D. W. (2004). CS educational research: A meta-analysis of SIGCSE technical symposium proceedings. ACM SIGCSE Bulletin, 36(1), 255259.Google Scholar
Wirth, N. (1973). The Programming Language Pascal (Revised Report). ETH Zürich. Retrieved from https://doi.org/10.3929/ethz-a-000814158Google Scholar
Wolz, U., & Koffman, E. (1999). simpleIO: A Java package for novice interactive and graphics programming. ACM SIGCSE Bulletin, 31(3), 139142.Google Scholar
Yan, A., Lee, M. J., & Ko, A. J. (2017). Predicting abandonment in online coding tutorials. In IEEE Symposium on Visual Languages and Human-Centered Computing (VL/HCC) (pp. 191199). New York: IEEE.Google Scholar

Save book to Kindle

To save this book to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Available formats
×

Save book to Dropbox

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Dropbox.

Available formats
×

Save book to Google Drive

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Google Drive.

Available formats
×