Exploring AI's Role in ICS 314

20 Nov 2023

Introduction

Artificial Intelligence has emerged as a transformative force in education, offering tools that enhance the student learning experience while also presenting some controversies of its own. Its role in Software Engineering education stands particularly significant, reshaping how students comprehend, engage with, and apply complex concepts. Throughout my journey in ICS 314, I’ve utilized various AI tools like ChatGPT and Co-Pilot, each playing a distinct role in shaping my learning experience. This essay covers my personal utilization of AI in this course, reflecting on its influence across course elements and evaluating its effects on my comprehension and skill development.

Personal Experience with AI in ICS 314

Throughout my course, AI tools like ChatGPT have been instrumental in navigating complex tasks and troubleshooting issues. For instance, in our assignments, while video walkthroughs offered solutions, they didn’t foster understanding. ChatGPT helped me delve deeper into the problems, especially in cases like replicating a webpage using Bootstrap 5. It pointed out an error due to an outdated Node.js version that would have otherwise eluded my detection.

During In-class Practice WODs, group collaboration proved more effective than relying solely on AI tools. However, in individual scenarios, ChatGPT was beneficial. For instance, it helped correct syntax in a JavaScript assignment but fell short when I lacked a complete understanding of the issue, as in the Meteor Part 1 WOD related to a style.css error.

My struggle with writing assignments led me to use AI tools for completion. Unfortunately, while they helped in completing tasks, they didn’t improve my writing skills, often failing to accurately convey my thoughts.

In learning new concepts like Meteor, ChatGPT served as a quick reference guide for specific commands and syntax. It assisted in understanding code snippets like “<Contact key={index} contact={contact} notes={notes.filter(note => (note.contactId === contact._id))}/>,” enhancing my comprehension.

In coding examples, ChatGPT aided in explaining functions and identifying missing modules, thereby ensuring the quality and functionality of my code. However, limitations arose when seeking complete codebase analysis.

While AI tools have been invaluable in pinpointing errors and aiding understanding, they haven’t replaced collaborative learning or deep comprehension. They’ve been beneficial for quick problem-solving and understanding specific elements but have their limitations when it comes to holistic learning and skill enhancement.

Impact on Learning and Understanding

The use of AI throughout this course has offered varied impacts on my learning experience. It has facilitated problem-solving, particularly in resolving specific coding issues and clarifying complex concepts. However, there are limitations in enhancing certain skills, such as writing, where AI assistance might not accurately portray my own knowledge. I believe that AI tools are unable to give me a complete understanding of the materials in this course by themselves, they do however offer effective and catered assistance when accompanying a self learned basis of knowledge. I believe that my overall understanding of ICS 314 concepts has been enhanced by the use of AI tools but my skills in technical writing have been negatively affected.

Practical Applications

Outside of classes, my interactions with AI, specifically GitHub Copilot, have shown its real-world relevance in software engineering. GitHub Copilot assists developers by suggesting code snippets and solutions as they write, expediting the development process. Its ability to analyze code context and offer intelligent suggestions demonstrates AI’s practical application in enhancing coding efficiency and aiding developers in real-time problem-solving within software development projects.

Challenges and Opportunities

One of the challenges encountered with ChatGPT in software-related queries is its inability to access or comprehend the entirety of complex codebases. While it excels in offering insights and explanations based on provided context, its limitations arise when troubleshooting intricate coding issues that require analyzing extensive code structures or debugging across multifaceted software systems. This restricts its effectiveness in pinpointing specific errors or offering precise guidance in scenarios where the issue extends beyond isolated code snippets.

Comparative Analysis

Traditional teaching offers in-depth understanding but may lack immediate support, while AI- enhanced methods, like ChatGPT or GitHub Copilot, provide quick problem-solving aid, boosting engagement but potentially limiting long-term retention and independent skill development. Both have strengths: traditional teaching emphasizes understanding, while AI tools excel in immediate assistance. I personally find it difficult to ask others for help what problems that I am having, so having the ChatGPT as an alternative is a more comfortable option.

Future Considerations

Many students find it difficult to learn software through a single method of teaching. If a course is structured in a manner that is difficult for a students to follow, that individual’s understanding of the materials may suffer. In the future, by giving students the option to utilize AI education tools they may be able to follow the course materials in a style that is catered to their needs. It is important to observe the constraints that these tools may have. Abusing them to replace critical thinking will only further harm the foundational learning skills of a student.

Conclusion

In conclusion, the integration of AI tools like ChatGPT and GitHub Copilot in the Software Engineering course has showcased both benefits and limitations. These AI tools have significantly aided in immediate problem-solving, offering valuable insights and guidance. However, they come with constraints, such as limitations in addressing complex coding issues comprehensively or accurately reflecting nuanced writing skills. To optimize the integration of AI in future courses, it’s crucial to strike a balance, leveraging AI tools as aids for learning while emphasizing the cultivation of critical thinking skills and comprehensive understanding. Recommendations for future integration involve refining AI tools to cater to diverse learning styles, ensuring they supplement rather than replace foundational learning methods. As AI continues to evolve, its potential to enhance personalized learning experiences while nurturing essential skills remains promising, but it’s imperative to tread cautiously, leveraging these tools as supplements to foster holistic learning in software engineering education.