Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
102 tokens/sec
GPT-4o
59 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
6 tokens/sec
GPT-4.1 Pro
50 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Software Engineering Educational Experience in Building an Intelligent Tutoring System (2310.05472v3)

Published 9 Oct 2023 in cs.SE and cs.CY

Abstract: The growing number of students enrolling in Computer Science (CS) programmes is pushing CS educators to their limits. This poses significant challenges to computing education, particularly the teaching of introductory programming and advanced software engineering (SE) courses. First-year programming courses often face overwhelming enroLLMents, including interdisciplinary students who are not CS majors. The high teacher-to-student ratio makes it challenging to provide timely and high-quality feedback. Meanwhile, software engineering education comes with inherent difficulties like acquiring industry partners and the dilemma that such software projects are often under or over-specified and one-time efforts within one team or one course. To address these challenges, we designed a novel foundational SE course. This SE course envisions building a full-fledged Intelligent Tutoring System (ITS) of Programming Assignments to provide automated, real-time feedback for novice students in programming courses over multiple years. Each year, SE students contribute to specific short-running SE projects that improve the existing ITS implementation, while at the same time, we can deploy the ITS for usage by students for learning programming. This project setup builds awareness among SE students about their contribution to a "to-be-deployed" software project. In this multi-year teaching effort, we have incrementally built an ITS that is now deployed in various programming courses. This paper discusses the Intelligent Tutoring System architecture, our teaching concept in the SE course, our experience with the built ITS, and our view of future computing education.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (25)
  1. Verifix: Verified Repair of Programming & Assignments. ACM Trans. Softw. Eng. Methodol. 31, 4, Article 74 (jul 2022), 31 pages. https://doi.org/10.1145/3510418
  2. Compilation Error Repair: For the Student Programs, from the Student Programs. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training (Gothenburg, Sweden) (ICSE-SEET ’18). Association for Computing Machinery, New York, NY, USA, 78–87. https://doi.org/10.1145/3183377.3183383
  3. Community-Driven Course and Tool Development for CS1. In Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1 (Toronto ON, Canada) (SIGCSE 2023). Association for Computing Machinery, New York, NY, USA, 834–840. https://doi.org/10.1145/3545945.3569740
  4. Language models are few-shot learners. Advances in neural information processing systems 33 (2020), 1877–1901.
  5. Software engineering project courses with industrial clients. ACM Transactions on Computing Education (TOCE) 15, 4 (2015), 1–31.
  6. Evaluating large language models trained on code. arXiv preprint arXiv:2107.03374 (2021).
  7. Evolving a project-based software engineering course: A case study. In 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T). IEEE, 77–86.
  8. Concept-Based Automated Grading of CS-1 Programming Assignments. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (Seattle, WA, USA) (ISSTA 2023). Association for Computing Machinery, New York, NY, USA, 199–210. https://doi.org/10.1145/3597926.3598049
  9. Automated Clustering and Program Repair for Introductory Programming Assignments. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (Philadelphia, PA, USA) (PLDI 2018). Association for Computing Machinery, New York, NY, USA, 465–480. https://doi.org/10.1145/3192366.3192387
  10. Re-Factoring Based Program Repair Applied to Programming Assignments. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). 388–398. https://doi.org/10.1109/ASE.2019.00044
  11. Lynette Johns-Boast and Shayne Flint. 2013. Simulating industry: An innovative software engineering capstone design course. In 2013 IEEE Frontiers in Education Conference (FIE). IEEE, 1782–1788.
  12. How Helpful do Novice Programmers Find the Feedback of an Automated Repair Tool? arXiv:2310.00954 [cs.CY]
  13. Genprog: A generic method for automatic software repair. Ieee transactions on software engineering 38, 1 (2011), 54–72.
  14. Angelix: Scalable multiline program patch synthesis via symbolic analysis. In Proceedings of the 38th international conference on software engineering. 691–701.
  15. What Is Your Biggest Pain Point? An Investigation of CS Instructor Obstacles, Workarounds, and Desires. In Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1 (Toronto ON, Canada) (SIGCSE 2023). Association for Computing Machinery, New York, NY, USA, 291–297. https://doi.org/10.1145/3545945.3569816
  16. Semfix: Program repair via semantic analysis. In 2013 35th International Conference on Software Engineering (ICSE). IEEE, 772–781.
  17. Margrit Schreier. 2012. Qualitative content analysis in practice. Sage publications.
  18. Natasha Singer. 2019. The Hard Part of Computer Science? Getting Into Class. https://www.nytimes.com/2019/01/24/technology/computer-science-courses-college.html Accessed: 16-March-2023.
  19. Automated feedback generation for introductory programming assignments. In Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation. 15–26.
  20. Maria Spichkova. 2019. Industry-oriented project-based learning of software engineering. In 2019 24th International conference on engineering of complex computer systems (ICECCS). IEEE, 51–60.
  21. A systematic literature review of capstone courses in software engineering. Information and Software Technology (2023), 107191.
  22. Search, Align, and Repair: Data-Driven Feedback Generation for Introductory Programming Exercises. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (Philadelphia, PA, USA) (PLDI 2018). Association for Computing Machinery, New York, NY, USA, 481–495. https://doi.org/10.1145/3192366.3192384
  23. Michihiro Yasunaga and Percy Liang. 2021. Break-it-fix-it: Unsupervised learning for program repair. In International Conference on Machine Learning. PMLR, 11941–11952.
  24. A feasibility study of using automated program repair for introductory programming assignments. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. 740–751.
  25. Repairing Bugs in Python Assignments Using Large Language Models. arXiv preprint arXiv:2209.14876 (2022).
User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (4)
  1. Zhiyu Fan (7 papers)
  2. Yannic Noller (15 papers)
  3. Ashish Dandekar (2 papers)
  4. Abhik Roychoudhury (41 papers)