CS1-LLM: Integrating LLMs into CS1 Instruction

2406.15379

YC

0

Reddit

0

Published 6/26/2024 by Annapurna Vadaparty, Daniel Zingaro, David H. Smith IV, Mounika Padala, Christine Alvarado, Jamie Gorson Benario, Leo Porter

👨‍🏫

Abstract

The recent, widespread availability of Large Language Models (LLMs) like ChatGPT and GitHub Copilot may impact introductory programming courses (CS1) both in terms of what should be taught and how to teach it. Indeed, recent research has shown that LLMs are capable of solving the majority of the assignments and exams we previously used in CS1. In addition, professional software engineers are often using these tools, raising the question of whether we should be training our students in their use as well. This experience report describes a CS1 course at a large research-intensive university that fully embraces the use of LLMs from the beginning of the course. To incorporate the LLMs, the course was intentionally altered to reduce emphasis on syntax and writing code from scratch. Instead, the course now emphasizes skills needed to successfully produce software with an LLM. This includes explaining code, testing code, and decomposing large problems into small functions that are solvable by an LLM. In addition to frequent, formative assessments of these skills, students were given three large, open-ended projects in three separate domains (data science, image processing, and game design) that allowed them to showcase their creativity in topics of their choosing. In an end-of-term survey, students reported that they appreciated learning with the assistance of the LLM and that they interacted with the LLM in a variety of ways when writing code. We provide lessons learned for instructors who may wish to incorporate LLMs into their course.

Create account to get full access

or

If you already have an account, we'll log you in

Overview

  • Recent advancements in Large Language Models (LLMs) like ChatGPT and GitHub Copilot are impacting introductory programming courses (CS1)
  • LLMs can now solve many of the assignments and exams previously used in CS1
  • This raises questions about what should be taught and how to teach it, including whether students should be trained in using these tools
  • This experience report describes a CS1 course that fully embraces the use of LLMs from the beginning

Plain English Explanation

The rapid development of powerful Large Language Models (LLMs) like ChatGPT and GitHub Copilot is changing the landscape of introductory programming courses (CS1) at universities. These advanced AI systems can now solve many of the same assignments and exams that CS1 students used to struggle with. This is prompting educators to rethink what they should be teaching and how to best prepare students for the new reality of widely available LLMs.

In this report, the authors describe a CS1 course that has fully embraced the use of LLMs from the very beginning. Instead of focusing heavily on syntax and writing code from scratch, the course now emphasizes the skills needed to successfully use an LLM to produce software. This includes explaining code, testing code, and breaking down larger problems into smaller, LLM-solvable tasks.

The course also features three large, open-ended projects in different domains like data science, image processing, and game design. These allow students to showcase their creativity and apply their LLM skills in practical, real-world scenarios. Student feedback suggests they appreciated learning with the assistance of the LLM and used it in a variety of ways when writing code.

The report provides lessons learned for instructors who may want to follow a similar approach and integrate LLMs into their own CS1 courses. It highlights the need to shift the focus away from low-level programming details and towards the higher-level skills of software development that will be crucial as LLMs become more ubiquitous.

Technical Explanation

The researchers describe a CS1 course at a large research university that has been intentionally redesigned to fully incorporate the use of Large Language Models (LLMs) from the beginning.

This course alteration was motivated by the recent research showing that LLMs can now solve the majority of assignments and exams that were previously used in CS1 courses. Additionally, professional software engineers are increasingly using these tools, prompting the question of whether students should also be trained in their use.

To embrace LLMs, the course reduced the emphasis on syntax and writing code from scratch. Instead, it now focuses on the skills needed to successfully produce software with an LLM, such as explaining code, testing code, and decomposing larger problems into smaller, LLM-solvable functions.

In addition to frequent, formative assessments of these skills, the course featured three large, open-ended projects in different domains (data science, image processing, and game design). These allowed students to showcase their creativity and apply their LLM skills in practical, real-world scenarios.

An end-of-term survey revealed that students appreciated learning with the assistance of the LLM and used it in a variety of ways when writing code. The report provides lessons learned for instructors who may wish to incorporate LLMs into their own CS1 courses, emphasizing the need to shift the focus away from low-level programming details and towards the higher-level skills of software development.

Critical Analysis

The experience report presents a compelling case for embracing the use of Large Language Models (LLMs) in introductory computer science education. By acknowledging the growing capabilities of these AI systems and adapting the course accordingly, the authors have demonstrated a proactive approach to preparing students for the evolving landscape of software development.

One potential limitation of the study is the lack of a direct comparison to a control group or traditional CS1 course. While the authors provide insights into student feedback and the overall approach, it would be valuable to have more quantitative data on the relative effectiveness of this LLM-focused curriculum compared to a more traditional one.

Additionally, the report does not delve into the potential challenges or drawbacks of over-relying on LLMs in an educational setting. For example, there may be concerns about students becoming overly dependent on the technology or failing to develop a deeper understanding of fundamental programming concepts. Addressing these potential issues could strengthen the research and provide a more well-rounded perspective.

Overall, the experience report offers a thoughtful and timely exploration of the role of LLMs in introductory computer science education. By sharing their lessons learned, the authors encourage other instructors to consider how they can adapt their own courses to best prepare students for the realities of the modern software development landscape.

Conclusion

This experience report highlights the significant impact that the widespread availability of Large Language Models (LLMs) is having on introductory programming courses (CS1) at the university level. By fully embracing the use of LLMs in a CS1 course, the researchers have demonstrated a proactive approach to adapting the curriculum and preparing students for the evolving nature of software development.

The key insights from this report include the need to shift the course focus away from low-level programming details and towards the higher-level skills required to effectively utilize LLMs, such as code explanation, testing, and problem decomposition. The inclusion of open-ended projects also allows students to showcase their creativity and apply their LLM skills in practical, real-world scenarios.

As LLMs continue to advance and become more widely adopted, this experience report provides a valuable blueprint for other instructors looking to integrate these powerful AI tools into their own CS1 courses. By sharing their lessons learned, the authors encourage a forward-thinking approach to computer science education that equips students with the necessary skills to thrive in an increasingly AI-driven world.



This summary was produced with help from an AI and may contain inaccuracies - check out the links to read the original source documents!

Related Papers

Evaluating the Effectiveness of LLMs in Introductory Computer Science Education: A Semester-Long Field Study

Evaluating the Effectiveness of LLMs in Introductory Computer Science Education: A Semester-Long Field Study

Wenhan Lyu (Rachel), Yimeng Wang (Rachel), Tingting (Rachel), Chung, Yifan Sun, Yixuan Zhang

YC

0

Reddit

0

The integration of AI assistants, especially through the development of Large Language Models (LLMs), into computer science education has sparked significant debate. An emerging body of work has looked into using LLMs in education, but few have examined the impacts of LLMs on students in entry-level programming courses, particularly in real-world contexts and over extended periods. To address this research gap, we conducted a semester-long, between-subjects study with 50 students using CodeTutor, an LLM-powered assistant developed by our research team. Our study results show that students who used CodeTutor (the experimental group) achieved statistically significant improvements in their final scores compared to peers who did not use the tool (the control group). Within the experimental group, those without prior experience with LLM-powered tools demonstrated significantly greater performance gain than their counterparts. We also found that students expressed positive feedback regarding CodeTutor's capability, though they also had concerns about CodeTutor's limited role in developing critical thinking skills. Over the semester, students' agreement with CodeTutor's suggestions decreased, with a growing preference for support from traditional human teaching assistants. Our analysis further reveals that the quality of user prompts was significantly correlated with CodeTutor's response effectiveness. Building upon our results, we discuss the implications of our findings for integrating Generative AI literacy into curricula to foster critical thinking skills and turn to examining the temporal dynamics of user engagement with LLM-powered tools. We further discuss the discrepancy between the anticipated functions of tools and students' actual capabilities, which sheds light on the need for tailored strategies to improve educational outcomes.

Read more

5/6/2024

🛸

Analyzing LLM Usage in an Advanced Computing Class in India

Chaitanya Arora, Utkarsh Venaik, Pavit Singh, Sahil Goyal, Jatin Tyagi, Shyama Goel, Ujjwal Singhal, Dhruv Kumar

YC

0

Reddit

0

This paper investigates the usage patterns of undergraduate and graduate students when engaging with large language models (LLMs) to tackle programming assignments in the context of advanced computing courses. Existing work predominantly focuses on the influence of LLMs in introductory programming contexts. Additionally, there is a scarcity of studies analyzing actual conversations between students and LLMs. Our study provides a comprehensive quantitative and qualitative analysis of raw interactions between students and LLMs within an advanced computing course (Distributed Systems) at an Indian University. We further complement this by conducting student interviews to gain deeper insights into their usage patterns. Our study shows that students make use of large language models (LLMs) in various ways: generating code or debugging code by identifying and fixing errors. They also copy and paste assignment descriptions into LLM interfaces for specific solutions, ask conceptual questions about complex programming ideas or theoretical concepts, and generate test cases to check code functionality and robustness. Our analysis includes over 4,000 prompts from 411 students and conducting interviews with 10 students. Our analysis shows that LLMs excel at generating boilerplate code and assisting in debugging, while students handle the integration of components and system troubleshooting. This aligns with the learning objectives of advanced computing courses, which are oriented towards teaching students how to build systems and troubleshoot, with less emphasis on generating code from scratch. Therefore, LLM tools can be leveraged to increase student productivity, as shown by the data we collected. This study contributes to the ongoing discussion on LLM use in education, advocating for their usefulness in advanced computing courses to complement higher-level learning and productivity.

Read more

4/9/2024

💬

Experiences from Integrating Large Language Model Chatbots into the Classroom

Arto Hellas, Juho Leinonen, Leo Leppanen

YC

0

Reddit

0

In the present study, we provided students an unfiltered access to a state-of-the-art large language model (LLM) chatbot. The chatbot was intentionally designed to mimic proprietary commercial chatbots such as ChatGPT where the chatbot has not been tailored for the educational context; the underlying engine was OpenAI GPT-4. The chatbot was integrated into online learning materials of three courses. One of the courses focused on software engineering with LLMs, while the two other courses were not directly related to LLMs. Our results suggest that only a minority of students engage with the chatbot in the courses that do not relate to LLMs. At the same time, unsurprisingly, nearly all students in the LLM-focused course leveraged the chatbot. In all courses, the majority of the LLM usage came from a few superusers, whereas the majority of the students did not heavily use the chatbot even though it was readily available and effectively provided a free access to the OpenAI GPT-4 model. We also observe that in addition to students using the chatbot for course-specific purposes, many use the chatbot for their own purposes. These results suggest that the worst fears of educators -- all students overrelying on LLMs -- did not materialize even when the chatbot access was unfiltered. We finally discuss potential reasons for the low usage, suggesting the need for more tailored and scaffolded LLM experiences targeted for specific types of student use cases.

Read more

6/10/2024

🚀

Which LLM should I use?: Evaluating LLMs for tasks performed by Undergraduate Computer Science Students

Vibhor Agarwal, Madhav Krishan Garg, Sahiti Dharmavaram, Dhruv Kumar

YC

0

Reddit

0

This study evaluates the effectiveness of various large language models (LLMs) in performing tasks common among undergraduate computer science students. Although a number of research studies in the computing education community have explored the possibility of using LLMs for a variety of tasks, there is a lack of comprehensive research comparing different LLMs and evaluating which LLMs are most effective for different tasks. Our research systematically assesses some of the publicly available LLMs such as Google Bard, ChatGPT(3.5), GitHub Copilot Chat, and Microsoft Copilot across diverse tasks commonly encountered by undergraduate computer science students in India. These tasks include code explanation and documentation, solving class assignments, technical interview preparation, learning new concepts and frameworks, and email writing. Evaluation for these tasks was carried out by pre-final year and final year undergraduate computer science students and provides insights into the models' strengths and limitations. This study aims to guide students as well as instructors in selecting suitable LLMs for any specific task and offers valuable insights on how LLMs can be used constructively by students and instructors.

Read more

4/4/2024