From Chatbots to Classrooms: AI's Role in Education

07 May 2024

I. Introduction

AI has played a transformative role in modern education, particularly in fields like software engineering, where innovation and efficiency are essential. AI technologies provide personalized learning experiences, real-time feedback, and access to diverse knowledge sources, enhancing both the teaching and learning processes. In software engineering, AI-driven tools and methods streamline tasks such as code review, testing, and debugging, as well as offering intelligent coding suggestions and solutions to complex problems.

In the course ICS 314, the integration of AI has been particularly impactful. I have used various AI tools to support my learning and coursework. ChatGPT,for example, has been an invaluable resource for clarifying concepts, providing coding assistance, and double-checking spelling and grammar in my writing. Poe, another AI platform, has offered diverse perspectives and explanations for different coding methodologies. Additionally, blackbox.ai has provided real-time coding suggestions and assistance, helping me write code more efficiently and effectively.

By leveraging these AI tools, my understanding of software engineering principles has deepened, and my ability to tackle complex coding challenges has improved. Overall, AI has enhanced my learning experience in ICS 314 and equipped me with the skills necessary to excel in the evolving field of software engineering.

II. Personal Experience with AI:

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

  1. Experience WODs e.g. E18
    Experience WODs are not necessarily graded based on how quickly I complete them, and I am given as many tries as needed to understand the material and the process. AI doesn’t necessarily play a role in this process. If I fail a couple of attempts, I keep trying until I fully grasp the material and how everything works.

  2. In-class Practice WODs
    Since the in-class practice WODs aren’t graded, they provide me with an opportunity to review and reinforce lessons on my own. I don’t seek help from AI during this time because it’s important for me to identify areas where I need further review or practice. This allows me to focus on what I need to revisit and improve.

  3. In-class WODs
    During the in-class WODs, I sometimes encounter problems with my code. Since these are timed and graded based on how quickly I can understand and complete the tasks, AI has been a helpful resource. When I can’t identify the error or improve my code on my own, I turn to a chatbot for assistance. I ask it to analyze the errors and provide insights to help me pinpoint what went wrong.

  4. Essays
    When it comes to essays, I like to use ChatGPT to double-check spelling and grammar. For example, I asked ChatGPT to review this essay for any mistakes I may have missed during my own review. This makes the editing process easier, especially for mistakes I may have accidentally overlooked.

  5. Final project
    AI has definitely made my final project easier. My team and I decided to use FullCalendar, which was entirely new to us. I must admit I was far from an expert in its various functions and features. Whenever I encountered an error with the calendar, I often spent hours browsing the FullCalendar website, trying to understand what went wrong and how I could fix it. Sometimes I got overwhelmed by the extensive functions and large data sets. In those moments, I turned to AI for help in identifying the problem and suggesting solutions. It made learning FullCalendar significantly easier. I remember sitting in class after spending the entire day trying to figure out why the calendar wasn’t pulling data from our collection. Despite scouring the internet for answers, I found none. That’s when I turned to ChatGPT, and after about four prompts, it quickly solved the problem and helped me get the data to pull correctly. Of course, I needed to understand what I did wrong, and it turned out that I lacked knowledge of a conversion function I had never learned before. This function adjusted the input data to a format that FullCalendar could read. ChatGPT was truly a lifesaver.

  6. Learning a concept / tutorial
    Sometimes concepts can be challenging for me, even the simplest ones. I remember in this class and others where I would ask ChatGPT to explain a concept in ‘elementary’ or ‘preschool’ terms. For example, design patterns were completely new to me. When I first encountered the essay assignment on design patterns, I mistakenly thought the professors wanted me to write about my favorite colors, fonts, or decorative designs for use in class. Fortunately, I went online to clarify what design patterns actually meant, which saved me from submitting a wildly different essay. I tried reading articles and watching YouTube videos to understand the concept of design patterns, but none of them made sense to me. So, I turned to ChatGPT and asked, ‘Can you please explain to me in elementary and preschool terms what design patterns are in computer science and provide examples?’ ChatGPT responded within a minute, giving examples like building houses with Legos or making pizza with different chefs. I literally understood the concept through ChatGPT’s explanations, which helped me grasp the different patterns and how to apply them.

  7. Answering a question in class or in Discord
    I don’t often answer questions on the Discord channel. However, if I am certain about an answer because I had the same question and found the answer myself, I am more than willing to help someone out. For questions in class, I only turn to AI if I’m unsure of the answer and can’t find helpful resources online.

  8. Asking or answering a smart-question
    Answering smart-questions can be challenging for me, and I think this is true in general. If I have already found the answer on my own, I am happy to help others solve their coding problems as well. However, I usually avoid asking or answering advanced questions because I may not fully understand what is being asked or I may not be certain of the answer.

  9. Coding example e.g. “give an example of using Underscore .pluck”
    I seek coding examples not only in ICS 314 but also in my other classes. When I learn a new function or shortcut, I search online for coding examples to find ideas on how to integrate them into my own code. If the online examples are too complex, I ask a chatbot for a simpler example.

  10. Explaining code
    Sometimes, when I review coding answers or examples, I get confused. If I recognize how my code should look or understand the expected outcome, I try to grasp the explanation thoroughly. For any parts I don’t fully understand, I may input them into a chatbot and ask for clarification on why that specific code was used and what its purpose is.

  11. Writing code
    A great example of this is the final project. When I struggled to understand how to work with FullCalendar’s design components, I turned to ChatGPT. I asked it to write code for me that would modify specific areas of the calendar like the display bar, event colors, and background.

  12. Documenting code
    Since I want to understand what my code does in my own words, I don’t usually turn to AI or chatbots to write code documentations. I think it would confuse me down the line cause my understanding of the code and the way that I word it to my understanding would get confused by how a chatbot might write it.

  13. Quality assurance
    I definitely use AI for quality assurance. I appreciate that ChatGPT and other AI chatbots can review my code or writing and offer suggestions for improvement. While I know their responses may not always be correct, I always double-check and decide whether to accept the suggested changes. Despite this, AI chatbots and tools are undeniably helpful for reviewing my code, grammar, spelling, and overall flow.

  14. Other uses in ICS 314 not listed above
    There aren’t any other uses I can think of besides the ones listed above.

III. Impact on Learning and Understanding:

The incorporation of AI in ICS 314 has had a significant impact on my learning and understanding of software engineering principles. AI tools have helped me learn new concepts more efficiently, practice problem-solving more effectively, and complete assignments more accurately. Moreover, AI has challenged me to think more critically and creatively, as I have had to adapt and integrate the AI suggestions and recommendations into my own work.

IV. Practical Applications:

AI has rapidly permeated various industries and sectors, offering practical applications that go far beyond the classroom. In software engineering, AI’s effectiveness can be seen in real-world projects, simulations, and collaborative activities that address complex challenges and enhance productivity. For instance, AI is used in predictive analytics, natural language processing (NLP), and cybersecurity to optimize processes and improve decision-making. AI-driven tools also support automated code review and testing, identifying potential bugs, security vulnerabilities, and performance issues. Additionally, AI facilitates collaboration through intelligent coding suggestions and automating mundane tasks. Its use in simulations helps engineers test systems in controlled environments, while collaborative platforms like GitHub Copilot provide real-time coding assistance. AI’s effectiveness in addressing real-world challenges lies in its ability to accelerate problem-solving, improve quality assurance, optimize resources, and foster continuous learning and innovation. By harnessing AI’s potential, software engineers can develop advanced, efficient, and secure software solutions.

V. Challenges and Opportunities:

While AI has provided significant benefits in software engineering education, there are challenges and limitations to its use within the course. A key challenge is the accuracy and relevance of AI-generated responses, which may sometimes provide incorrect or outdated information, necessitating careful verification. Overreliance on AI can also hinder the development of critical thinking and coding skills as students may become dependent on AI tools for problem-solving. Additionally, AI systems may exhibit biases due to the data they are trained on. Despite these challenges, there are opportunities for further integration of AI in software engineering education, such as advancing AI capabilities for tailored learning experiences, fostering ethical AI practices, and enhancing collaborative learning platforms with intelligent coding suggestions and simulations. These approaches can maximize the benefits of AI while minimizing its limitations.

VI. Comparative Analysis:

In software engineering education, AI-enhanced approaches offer distinct advantages and limitations compared to traditional teaching methods. AI-driven methods can increase student engagement through personalized learning experiences and interactive tools, while traditional methods may rely more heavily on lectures and textbooks. Knowledge retention may be enhanced with AI due to adaptive learning techniques that cater to individual learning styles and paces, whereas traditional methods may use more standardized approaches. In terms of practical skill development, AI-enhanced approaches often provide real-time coding assistance, automated feedback, and access to diverse examples, allowing students to practice and apply skills more effectively. However, traditional methods may encourage deeper critical thinking and independent problem-solving as students work through challenges without relying on AI tools. Balancing these approaches can offer a comprehensive educational experience, combining the best aspects of both traditional and AI-driven methods.

VII. Future Considerations:

The future role of AI in software engineering education is promising, offering potential advancements that could revolutionize the way students learn and apply software engineering principles. AI can enable more tailored and personalized learning experiences, allowing students to engage with material at their own pace and according to their unique learning styles. AI-driven tutoring and mentoring systems could offer targeted support and feedback, helping students understand complex concepts more effectively. AI advancements may also lead to sophisticated simulations and virtual environments for students to practice real-world coding and software development scenarios, enhancing practical skill development and problem-solving abilities. However, challenges such as ensuring the ethical use of AI, including addressing issues like data privacy, bias, and transparency, are critical. Educators must also balance the use of AI with fostering independent problem-solving and critical thinking skills in students. Continuous research and collaboration between academia and industry are essential to keep up with evolving needs and drive innovation in AI tools and techniques. In conclusion, while AI holds significant potential for transforming software engineering education, careful consideration of ethical implications and a focus on student skill development are crucial for maximizing its benefits and ensuring a comprehensive and effective learning experience.

VIII. Conclusion:

AI has emerged as a transformative force in software engineering education, offering unparalleled opportunities for learning, exploration, and innovation. My reflections on the use of AI in the Software Engineering course highlight its significant impact on the learning experience, including enhanced engagement, personalized learning, and efficient problem-solving support. By critically reflecting on our experiences with AI in ICS 314 and embracing its potential while acknowledging its limitations, we can optimize its integration to cultivate the next generation of skilled and adaptive software engineers. To achieve this, educators must focus on ethical AI use and teach students responsible AI practices while balancing the use of AI tools with fostering independent learning and critical thinking. Through strategic AI integration and thoughtful pedagogical approaches, we can navigate the complexities of modern software development and empower learners to thrive in an AI-driven world. Additionally, ongoing research and collaboration between academia and industry will drive innovation in AI tools and techniques, ensuring that software engineering education remains current and effective in preparing students for future challenges.

Please note that I used ChatGPT to improve grammar and spelling in this document.