Evolution of the Software Toolchain for Computer Science Students
- 1 Computing and Software Systems, University of Washington Bothell, Bothell, USA
Abstract
Introductory programming classes continue to be challenging for students. Early attempts in teaching introductory courses focused on teaching language syntax and expanding to procedures for organizing large programs. Later, the object-first approach gained popularity focusing on the object-oriented nature of modern programming languages. We advocate a toolchain-first approach to teaching programming where the tools used in writing, debugging, compiling, formatting, versioning and testing the code are given as much importance as the language being taught. We have successfully integrated industry standard tools into our introductory programming courses. The tools provide the scaffolding to students as they develop their code. By prioritizing tools and tool based help as an integral part of programming, we prepare students for more complex tools, such as LLM based AI companions, that will be used to produce software.
- Ashbacher, C. (2002). JCreator 2.0 LE. Mathematics and Computer Education, 36, 90.
- Berry, R., Makino, M., Hikawa, N., Naemura, M., Pisan, Y., & Edmonds, E. (2006). Programming in the World. Digital Creativity, 17, 36-48. https://doi.org/10.1080/14626260600665728
- Boudreau, T., Glick, J., Greene, S., Spurlin, V., & Woehr, J. J. (2002). NetBeans: The D e finitive Guide: Developing, Debugging, and Deploying JAVA Code. O’Reilly Media.
- Des Rivieres, J., & Wiegand, J. (2004). Eclipse: A Platform for Integrating Development Tools. IBM Systems Journal, 43, 371-383. https://doi.org/10.1147/sj.432.0371
- Guzdial, M., Hohmann, L., Konneman, M., Walton, C., & Soloway, E. (1998). Supporting Programming and Learning-To-Program with an Integrated CAD and Scaffolding Workbench. Interactive Learning Environments, 6, 143-179. https://doi.org/10.1076/ilee.6.1.143.3609
- IntelliJ, I. (2011). The Most Intelligent Java IDE. JetBrains. https://www.jetbrains.com/idea/#chooseYourEdition
- Kölling, M. (2010). The Greenfoot Programming Environment. ACM Transactions on Computing Education, 10, 1-21. https://doi.org/10.1145/1868358.1868361
- Kölling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The Bluej System and Its Pedagogy. Computer Science Education, 13, 249-268. https://doi.org/10.1076/csed.13.4.249.17496
- Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J. et al. (2007). A Survey of Literature on the Teaching of Introductory Programming. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education (pp. 204-223). Association for Computing Machinery. https://doi.org/10.1145/1345443.1345441
- Pisan, Y. (1994). Visual Reasoning with Graphs. In Eighth International Workshop on Qualitative Reasoning about Physical Systems (pp. 205-211). Nara.
- Pisan, Y., Richards, D., Sloane, A., Koncek, H., & Mitchell, S. (2003). Submit! A Web-Based System for Automatic Program Critiquing. In Proceedings of the Fifth Australasian Conference on Computing Education (pp. 59-68). Australian Computer Society.
- Porter, L., Guzdial, M., McDowell, C., & Simon, B. (2013). Success in Introductory Programming. Communications of the ACM, 56, 34-36. https://doi.org/10.1145/2492007.2492020
- Puryear, B., & Sprint, G. (2022). Github Copilot in the Classroom: Learning to Code with AI Assistance. Journal of Computing Sciences in Colleges, 38, 37-47.