If you frequent the internet or listen to the news often, then you may already be familiar with what AI is and how it is being integrated in our everyday lives. In a more relevant case study, you might have heard about how AI is changing the educational world. AI is doing everything that students could dream of! It can help simplify and teach students on difficult topics that may be harder in classroom settings. It can help with solving problems with as much explanation as you need it. All these things are wonderful but it can also help students do their entire homework and all students have to do is copy whatever AI tells it. It can also write full blown research papers with facts and evidence and all the student has to do is copy it down. It seems apparent that AI in education is very controversial; It has many pros and cons. Personally, I use ChatGPT the most because it is very accessible and it was one of the most popular AI tools out there.
But how is AI utilized from a software engineering perspective? AI can help software engineers write code to specific problems and it may work! But not all the time as some problems require specific information that the AI does not know it needs to include unless you tell it to do so. AI usage in ICS 314 as been a very hit or miss tool- where sometimes it can provide me a really good snippet of code that solves my problems but it may include a lot of information that I have not learned yet and it becomes more challenging to understand that than if I were to attempt it on my own.
In ICS 314, here is the overview of my usage of AI in different course elements:
Experience WODs
When doing experience WODs, I do not recall a time where I had to use AI because majority of the WODs had a video explanation by the professor so I would use that instead.
In-class Practice WODs
When doing in class practice WODs, I do not recall a time where I had to use AI because since it was partner work, I felt like it would be best to exercise my software engineering skills so I avoided using AI.
In-class WODs
When doing in class WOD quizzes, I do not recall a time where I had to use AI because I prepared enough for the in class quizzes so I never felt the need to use AI.
Essays
When doing essays for ICS 314, I never used AI because the essay topics were specific for this course and if I had to use AI, it probably would have done more harm than good.
Final Project
When doing the final project as of right now, I did not have to use AI but I feel like it would be useful later down the road when the issues I will be working on become harder.
Learning a concept/tutorial
When I am learning a new concept or need a step by step to do something, I like to use ChatGPT because I can have it explain concepts to me like I am in grade school so it is easier to understand.
Answering a question in class or in Discord
When there is a question in class or in Discord, I do not recall a time when I had to use AI because I took questions as an opportunity to sharpen up my own troubleshooting skills or knowledge in general.
Asking or answering a smart-question
When asking or answering a smart-question, I do sometimes use AI to help answer questions I have that I would like to know immediately. Mainly for concepts, not so much coding questions because ChatGPT sometimes gives awkward answers to coding questions.
Coding examples
When asking AI for coding examples, at first it was useful when I asked for more simpler examples. But as we progressed in this course, having AI give me coding examples became a bit rocky because sometimes it would not give any useful results.
Explaining code
When asking AI to explain code to me, I sometimes do this when the code snippets are small. But for bigger chunks of code or code that is more specific towards this course, AI is my last resort as I would rather ask a classmate for some advice.
Writing code
When writing code, I sometimes ask AI for some snippets of code in the beginning, but I quickly found out that the results AI was giving me were not the best and made me more confused as I did not understand what those lines of code mean, so I stopped using AI for writing code snippets.
Documenting code
When documenting code, I never asked AI to do this because documenting code is a way for me to understand what each section of code meant and what was its functionality to the overall program.
Quality assurance
When checking for quality, I did not use any AI for it because I used it to help improve my debugging capabilities so rather than relying on AI, I used it as an opportunity for improvement.
Other uses in ICS 314
Other than for having AI explain concepts to me, I do not think I used AI for anything else within the scope of this course.
Incorporating AI into my learning experience had made studying and understanding new concepts a lot easier due to its accessibility. Using AI has allowed me to better understand and explore different software engineering concepts when I am stuck on understanding something or I would like to learn something new. Overall, AI had a positive impact on my education and I will continue to use it more.
In the real world, there are many examples of practical application of AI outside of ICS 314. One particular example that I personally like to follow along with is autonomous vehicles. There are five different levels to autonomous driving:
A challenge/limitation I faced when using AI within this course is creating prompts that will give me the results I wanted. AI prompts have to be specific and include as much detail retaining to the problem/issue as possible so the AI understands what it is working with. However, this allows for a new opportunity for integrating new concepts/lessons in software engineering education. AI prompt learning and development can be integrated in software engineering classrooms and I believe that it will open up a new way of thinking and problem solving for software engineers.
Comparing traditional teaching methods and AI-enhanced approaches, there are a lot of differences between the two. In terms of engagement, traditional teaching methods allow for more hands on engagement during classes while AI-enhanced approaches does not allow for a lot of in class engagement opportunities. However, in private environments, AI-enhanced methods allow for more personal engagements, simulating a one-on-one experience that is always at the ready but in traditional teaching methods, it becomes harder to have that one-on-one engagement because of scheduling conflicts or other factors and it may take longer to get responses to questions. In terms of knowledge retention, traditional teaching methods are more effective because with AI-enhanced methods, there is no limiting factors to what knowledge is given so there is no steps into learning knowledge which is what traditional teaching methods allows for. In terms of practical skill and development, I think both methods are equal because both can offer great skill development.
The future of software engineering education with the introduction of AI will allow for many different opportunities. We might be able to see more ethical integration of AI into education such as using it as a study buddy, having AI answer educational questions before asking teachers, or learning how to create appropriate AI prompts.
In conclusion, usage of AI in this software engineering course overall allows for students to ethically explore AI. My usage of AI in this course has been overall positive and I think I could have used AI more but in the current state of AI development, having it create code for me still feels ethically wrong as the whole point of this course is to improve software development skills but AI can still aid in a way where it can provide conceptual assistance. As for the future, I think the way AI is integrated into this course is a great introduction for those who are not familiar with AI but want to start using it as another tool in their tool belt.