AI Assistant

20 Nov 2023

Introduction

In the rapidly evolving landscape of education, particularly in disciplines like software engineering, Artificial Intelligence (AI) has become a crucial tool. Its role extends beyond mere assistance to being a transformative force, reshaping pedagogical methods and student experiences. In a course i took (Software Engineering AKA ICS 311), my interaction with AI, predominantly through ChatGPT, offered unique insights and challenges in understanding and applying software engineering principles. This essay aims to delve deeper into these experiences, reflecting on the nuanced ways AI has influenced my learning journey. In the following paper i will explaine my personal dealing with AI though my software engineering class, as well as my general views on the matter of AI in educational institutions. In this essay i will refference WOD’s, this stands for Workouts Of the Day, these were mini exams held once a week where we where givin a coding problem an asked to solve it in a set time period.

Personal Experience with AI

1. Experience WODs

Using AI for Experience WODs has been a game-changer. It proved especially helpful when I faced roadblocks, like misunderstanding the nuances of the underscore pluck function. AI’s ability to provide instant clarification accelerated my learning process, turning potential hours of confusion into moments of enlightenment.

2. In-class Practice WODs

In these sessions, ChatGPT served as a quick reference guide. For instance, when grappling with HTML concepts, it succinctly clarified the differences in header syntax, enhancing my understanding and saving valuable class time.

3. In-class WODs

During these WODs, I consciously chose not to use AI. The need for quick, accurate responses under time pressure made AI less appealing, prompting me to rely more on my understanding and instincts.

4. Essays

For essay writing, Grammarly was indispensable in refining my drafts. It corrected errors and helped me understand the nuances of English grammar, improving my writing skills over time.

5. Final Project

I refrained from using AI in the final project, valuing my work’s authenticity and personal touch. This decision stemmed from a desire to fully own the creative and technical aspects of the project.

6. Learning a Concept / Tutorial

For straightforward queries, AI was a time-saver. However, I still preferred comprehensive resources like video tutorials for in-depth learning or complex concepts, which offered more context and depth.

7. Answering a Question in Class or in Discord

I rarely used AI for class discussions, as I wanted my responses to reflect my voice and understanding.

8. Asking or Answering a smart question

I avoided AI for smart-questions, considering the value of personal knowledge and direct human interaction in such scenarios.

9. Coding Example

AI proved beneficial for providing coding examples. When learning about Underscore .pluck, AI-generated examples offered practical insights that supplemented my learning.

10. Explaining Code

One of the most significant uses of AI was for code explanation. When a code segment’s functionality was unclear, AI provided detailed breakdowns, which were instrumental in deepening my comprehension.

11. Writing Code

I generally avoided AI for writing code. The inconsistencies in style and the additional time needed to adapt AI-generated code to my projects made it less practical.

12. Documenting Code

While I have yet to use AI for documentation, its potential in this area is intriguing. However, the precision required in documentation made me hesitant to rely on AI.

13. Quality Assurance

AI excelled in quality assurance tasks, offering quick insights into potential errors and suggesting directions for debugging, which was invaluable in refining my code.

14. Other Uses in ICS 314

I utilized AI for administrative tasks like calculating my grade total, appreciating its ability to streamline mundane tasks and allowing me to focus on more complex issues.

Impact on Learning and Understanding

Integrating AI into my learning process was transformative, though it posed unique challenges. While AI tools like ChatGPT expedited my understanding of certain concepts and assisted in debugging, there was a risk of becoming overly reliant on these tools, potentially hindering deeper engagement with the material. Balancing AI assistance with self-driven exploration was crucial in maximizing learning outcomes.

Practical Applications

Beyond the classroom, the potential applications of AI in real-world software engineering projects are vast. Although I have not extensively applied AI in external projects, its capabilities are evident in areas like automated testing, code optimization, and collaborative development. Correctly leveraged, AI can significantly enhance efficiency and innovation in software engineering.

Challenges and Opportunities

The main challenge in integrating AI into software engineering education is ensuring it augments rather than replaces critical thinking and creativity. The opportunity for further integration, such as in personalized learning and automated feedback, is immense. However, this requires a balanced approach that values human insight as much as AI efficiency.

Comparative Analysis

Comparing traditional teaching methods with AI-enhanced learning reveals distinct advantages and drawbacks. AI offers immediacy and interactivity, which can boost engagement and efficiency. However, traditional methods sometimes excel in fostering deep, long-term understanding and skill retention. A blended approach, leveraging the strengths of both methods, appears most beneficial.

Future Considerations

AI’s role in software engineering education is poised for growth, with advancements focusing on enhancing human capabilities rather than replacing them. Navigating AI integration’s ethical and practical challenges will be crucial for its successful adoption.

Conclusion

In sum, using AI in the ICS 314 course had been a multifaceted experience, offering enhancements and challenges to my educational journey. While AI has undoubtedly enriched my understanding of software engineering, it also underscored the importance of balancing technological assistance and human ingenuity. Optimizing the integration of AI in future courses will be vital to maximizing its benefits while preserving the core values of creativity and critical thinking in software engineering education.