Artificial Intelligence (AI) has emerged as a transformative force within the realm of education, redefining traditional learning methodologies and enhancing the way we comprehend complex subjects like Software Engineering. In the sphere of education, AI serves as a catalyst, revolutionizing the learning experience by providing personalized, adaptive, and interactive platforms tailored to individual student needs. Specifically relevant to Software Engineering, AI tools have provided guidelines for developers of all skill levels, especially beginners. I believe it will continue to play a pivotal role in helping shape the future of the software industry and upcoming software engineers. Personally, I have only had experience with using ChatGPT and it has been an extremely insightful tool, offering lots of clarifications on complex programming issues or any bugs I may encounter.
I found that I didn’t need to use any AI tools for the experience WODs because I felt the instructions on the documentation was sufficient enough for me to complete and understand the assignment with quality.
Because we work in groups for the in-class practice WODs, I felt that I would rather consult my groupmates or the teacher anytime I had questions about the assignment instead of resorting to AI.
For the in-class WODs, I felt that it was important for me to test my skills and knowledge of the material without the use of AI because I would always spend the day before studying the material and making sure I understood everything.
For practically all my essays, I have used ChatGPT as a tool and I have had an excellent experience using it. It provides an outline for my essay and helps me organize my thoughts before attempting the essay.
I have used ChatGPT a handful of times for our final project. I feel that it helps most with providing a template to our project and how our code should be organized. Once I understand the basic outline/template, I then use it to help me with individual functions and components of our project.
I have not used AI to learn any concepts. I feel that resorting to a quick google search is much more insightful in this case because it provides me with much more resources in case one resource isn’t enough for me to fully understand the concept.
I have not used AI for answering any in class questions or questions on Discord. This is mainly due to the fact that I generally am not the one to answer the questions asked in-class or in the Discord.
I have not used any AI tools to help ask or answer a smart-question. I usually answer any question I see only if I know the answer or any troubleshooting tips off the top of my head.
I have used ChatGPT for giving coding examples. I feel that for me, seeing an example of a solution is the best way for me to fully understand the code, and ChatGPT was able to provide that for me.
I have not used AI for explaining code. If I need any explanation of code, I usually resort to google because that’s what I’m used to. However, I feel that I should utilize AI tools more in this aspect.
I have used ChatGPT to help me write code. Many times I know the idea and the thought process behind what code to write, but I struggle with remembering proper syntax and coding styles, which is when ChatGPT comes in handy.
I have not used AI tools to document code because my documentation of my code that I’ve written comes from the way I understand it myself. Therefore, I shouldn’t have to use AI tools to write documentation because I should know exactly how it works and what the code does.
For quality assurance, I usually always use google to help me with troubleshooting bugs or issues I may run into while coding (which happens very frequently).
I don’t believe there are any other aspects of ICS 314 that I have used AI tools for. In a school setting, I generally see AI tools as a last resort if I can’t figure it out myself because I always feel that it’s best to try and do everything you can without the help of AI in order to test your knowledge as best as possible because that’s what school is for.
Because I treat AI as a last resort when learning a new concept of Software Engineering, I feel that AI has done nothing but enhanced my understanding of these concepts, as well as my overall problem-solving abilities. I do not feel comfortable just copying and pasting code from ChatGPT into my project or assignment unless I understand the code completely. This way, I am able to learn the concepts much quicker and efficiently instead of spending my time trying to find the most optimal resources to support me with my issue. I strive to keep my relationship with AI as a resource to help enhance my education rather than an answer key.
Recently the AI industry has been rapidly increasing and continuously becoming implemented as solutions to many of our real-world problems. For example, facial recognition has become widely used across the world by normal civilians as well as areas like law enforcement agencies and cybersecurity firms. These technologies can enhance public safety and combat crime by helping identify potential threats. There are many other real-world applications of AI such as self-driving cars, quality control systems for manufacturing, and even using AI to monitor crops for farmers. In various real-world projects, AI has been instrumental in revolutionizing software development processes
I felt that the biggest challenge/limitation for me was the authenticity and accuracy of the answers I was given from the use of AI within the course. While AI assistants like ChatGPT and Co-Pilot offer valuable insights, their effectiveness is contingent on the accuracy of the underlying data. In some instances, these tools may provide generic or inaccurate information, leading to potential misconceptions of software engineering principles. Therefore, ensuring the accuracy and reliability of AI-generated content remains a persistent challenge. However, AI is relatively new and is continuously growing and evolving so for future integration, I believe that refining AI tools to provide more contextually relevant and accurate information specific to software engineering principles could significantly improve their utility within the course.
While traditional teaching methods have their strengths in delivering foundational knowledge, AI-enhanced approaches offer unique advantages in enhancing engagement, facilitating personalized learning, fostering practical skill development, and adapting to individual learning needs. A balanced integration that combines the strengths of both approaches could potentially offer a comprehensive and effective software engineering education, leveraging AI’s capabilities while retaining the human touch of traditional teaching methods.
The future role of AI in software engineering education holds immense promise in transforming learning experiences. However, addressing challenges such as accuracy, ethical concerns, and finding the right balance between AI and human instruction will be essential for leveraging AI’s full potential in shaping the future of software engineering education. Continued advancements, along with a focus on ethical considerations and adaptability, will be essential in harnessing AI’s capabilities for the benefit of students and educators alike.
The use of AI in the Software Engineering course has been influential in enhancing learning experiences and practical skill development. I feel that the encouragement to use AI throughout this course made studying, learning, and understanding all the important principles in this class much easier and beginner-friendly. As stated in the beginning of the class, everyone is starting at different skill levels and coming from different software engineering backgrounds. Therefore, the use of AI was an excellent way to level the playing field for everyone, especially when it came to concepts that may be more difficult than others. I believe that balancing the use of AI while retaining the student-teacher relationship is the best way to optimize its integration in future courses.