Exploring the Impact of AI in Class

07 May 2024

I. Introduction

Artificial intelligence (AI) is changing how we learn and work, including in courses like ICS 314. In this essay, I will share my experiences with AI in the context of this course. We’ll explore how AI affects learning, its practical uses in software engineering, and the challenges and opportunities it brings. Throughout ICS 314, I have used ChatGPT to aid in concepts such as web development, app creation, code quality, and troubleshooting.

II. Personal Experience with AI:

I have used AI in class this semester in the following areas:

  1. Experience WODs e.g. E18: When I would get stuck on a particular part of an experience WOD, I would use AI to help me brainstorm and get started. For one of our first homework assignments in the class (E08), I prompted ChatGPT with Project Euler Problem 1. I asked it, “If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6, and 9. The sum of these multiples is 23. Write a JavaScript program that finds the sum of all the multiples of 3 or 5 below 1000.” From there, I got a good sense of the approach that I should take to complete E08.

  2. In-class Practice WODs: I distinctly remember being stuck on the Murphy’s Bootstrap 5 in-class group WOD. I basically had no idea where to start with implementing the page. I tried tasking ChatGPT with designing a page using Bootstrap 5 along with the instructions of the practice WOD. However, what it returned did not end up being helpful with completing it, and I ended up having to wait for Professor Johnson to go over the solution at the end of class.

  3. In-class WODs: I found ChatGPT to be a useful tool during the first several in-class WODs that dealt with JavaScript and Underscore functions. However, it became less useful over the course of the semester as the WODs became more complex.

  4. Essays: I often use AI to check the grammar and spelling of my writing. It has helped me to write in a way that communicates my thoughts clearly and effectively.

  5. Final project: While I had wanted to use AI when working on my final project, I found that the meteor-template-react and bowfolios apps were too complex for ChatGPT. This is because it lacked a lot of context for what the app is doing and the different names within the source code.

  6. Learning a concept / tutorial: Personally, I start off with a simple Google search when I try to learn something new. When I find that it is too complicated or difficult to understand, I often ask ChatGPT to help dumb it down to a level that a beginner could understand. I find that doing that helps a lot with comprehension.

  7. Answering a question in class or in Discord: When I was asked a question that I did not immediately know the answer to, I relied on ChatGPT to see if it knew the answer. From there, I would cross-reference online resources to check the validity of ChatGPT’s response.

  8. Asking or answering a smart-question: I used ChatGPT to help me come up with questions in a way that other people could understand what I was stuck on. It is similar to the way that I use AI to draft an email.

  9. Coding example e.g. “give an example of using Underscore .pluck”: I often asked ChatGPT to give examples for something that I was having difficulty understanding. After Professor Johnson had mentioned how much he liked the map function in Underscore, I decided to ask AI to “give several examples of using the map function in Underscore,” which aided my learning.

  10. Explaining code: There were many instances where there was a block of code that I did not understand. I would then feed it into ChatGPT and plainly ask “What does this code do?”

  11. Writing code: I used ChatGPT to generate code in several homework assignments, especially dealing with HTML and CSS, as it was less prone to errors.

  12. Documenting code: ChatGPT’s ability to generate comments for given source code helped to point out gaps in the code that I did not see at first, which helped improve its readability.

  13. Quality assurance: At times, I would get an ESLint error that I did not understand the meaning of, nor how to solve it. At that times, I would copy and paste the error into ChatGPT and ask it to help me resolve it.

  14. Other uses in ICS 314 not listed above: In general, when there were things that I had a hard time understanding, using ChatGPT along with Google helped me to learn.

III. Impact on Learning and Understanding:

Using AI tools in ICS 314 has really changed the way that I learn. They have made it easier to understand complex topics and solve problems. ChatGPT, for example, has been super helpful with breaking down tough concepts, giving extra insights, and suggesting different ways to tackle problems. Interacting with AI like this has made learning more fun and easy to approach. There have definitely been times when it’s been a bit tricky to figure out how AI fits into software engineering, but overall, it’s been a big boost to my learning journey. In a way, AI is like a tutor that is available 24/7 and will never get tired of me.

IV. Practical Applications:

Beyond ICS 314, AI has practical applications in various real-world scenarios within software engineering. From assisting in project management to facilitating collaborative activities, AI plays a pivotal role in streamlining processes and enhancing productivity. For instance, AI-powered chatbots can automate routine tasks, provide instant support to developers, and even assist in bug detection and resolution. While AI applications have shown promise in addressing real-world software engineering challenges, their effectiveness ultimately depends on factors such as data quality and algorithm accuracy. After all, when it comes to customer service experiences, people tend to prefer speaking with a real person as opposed to a chatbot. Despite some limitations, AI offers innovative solutions to complex problems.

V. Challenges and Opportunities:

Using AI in the class has presented both challenges and opportunities. One challenge is ensuring the accuracy and reliability of AI-generated responses, as they may sometimes provide incorrect or misleading information. Additionally, integrating AI tools into existing educational frameworks can be complex and requires careful planning to ensure optimal use and effectiveness. However, these challenges also present opportunities for further integration of AI in software engineering education. Exploring innovative ways to incorporate AI into coursework, such as developing AI-driven simulations or interactive learning modules, can enhance student engagement and encourage deeper learning experiences. While there are indeed challenges to overcome, the continued integration of AI in software engineering education has a lot potential for enhancing learning outcomes and preparing students for the future of the industry.

VI. Comparative Analysis:

Comparing traditional teaching methods with AI-enhanced approaches in education shows that each has its own advantages and disadvantages. Traditional methods often rely on lectures, textbooks, and assignments, which can sometimes lack interactivity and personalization. In contrast, AI-enhanced approaches leverage interactive tools like ChatGPT to engage students in real-time conversations, providing personalized explanations and feedback. This dynamic interaction fosters deeper engagement and facilitates better knowledge retention by promoting active participation and immediate reinforcement. While traditional methods remain valuable for foundational learning, AI-enhanced approaches have the potential to improve software engineering education by offering more personalized, interactive, and effective learning experiences.

VII. Future Considerations:

Looking forward, AI’s role in software engineering education is set to grow. We can expect more advanced tools tailored to individual students, making learning more personalized. However, as AI becomes more common, we need to ensure everyone has access to it and address concerns like data privacy and bias. It is easy for users to phrase prompts in a certain way to influence the AI to respond in a particular way. There is also the concern that students will become too reliant on AI when it comes to solving their problems. As such, it is by leveraging AI’s potential while addressing its challenges that we can create more engaging, effective, and fair learning experiences for all.

VIII. Conclusion:

Reflecting on my journey with AI in the context of ICS 314, it’s evident that AI tools like ChatGPT have profoundly impacted my learning experience in software engineering. From enhancing comprehension and problem-solving abilities to providing personalized guidance and fostering engagement, AI has revolutionized how we approach education. While challenges such as accuracy and integration persist, the opportunities for further integration of AI in software engineering education are vast. Looking ahead, the future of software engineering education holds promise for more personalized, effective, and inclusive learning experiences, driven by advancements in AI technology and ongoing efforts to address associated challenges. As we navigate this evolving landscape, it’s essential to leverage AI’s potential while ensuring equitable access, privacy, and continued improvement in understanding complex concepts. With a thoughtful approach, AI will continue to shape the future of software engineering education, empowering students to thrive in an ever-changing technological landscape.