AI is prevalent in today’s Software Engineering field and used a lot in education. A lot of tools using AI are made for the sake of “boosting” productivity. For example, I just used Google Docs’ autocomplete feature that allowed me to finish this sentence with the press of a button, which is powered by AI, using the context of this sentence and tries its best to finish what it thinks I’m about to write out. It also gave some blue squiggly lines under some words used in the last sentence in order to correct my grammar or make the flow more better flow better. It’s a lot better and more efficient to write this essay with these tools than waiting for someone to peer review it and make sure it sounds good. It also makes us more lazy, auto-completing code and sentences without even checking it, which can be prone to error, but we don’t bother because robots can never be wrong, right? I have used AI before, using tools like Bing AI to complete hard math problems, or ChatGPT to help come up with ideas for projects. But I have not used it yet in ICS 314.
Experience & In-Class Practice WODs: For the experience WODs, I didn’t use AI because what’s the point? What’s the point of gaining experience if you’re not gonna do the WOD yourself and make AI do it for you? Experience WODs were good for introducing us to new concepts and to practice with repetition. The videos themselves were helpful resources since they showed how to solve the problems. I liked doing these WODs myself so I can practice for the real WOD ahead of time and potentially use this skill later down the road. This is also the same reason for not using AI in in-class practice WODs. The point of these in-class practice WODs is to practice and sharpen our skills for the real WOD. We could also work with our group to help each other out and try to reach the same goal together. This was also the time I did the TAs WODs and see if I apply those skills from those WODs onto the practice WODs.
In-Class WODs: The actual in-class WODs are a different story altogether. I was tempted to use ChatGPT to help with the underscore function WOD but I was scared to because I thought that ChatGPT was limited to only output vanilla JavaScript. I later learned that ChatGPT is capable of outputting underscore code so I underestimated it’s abilities. This is what made me realize that ChatGPT can do more if you provide it with the right prompts.
Essays: I did not use AI for the essays. For me, it’s a personal choice because when I write, I like to think of it as a personal reflection of myself that I can share to the world rather than something to complete so I rather write a lot of my own thoughts than use AI for the sake of completing the assignment. It feels soulless and doesn’t reflect the person that I am.
Final Project: For the final project, I don’t plan on using AI because I feel like it won’t give me what I want that connects to my project. I feel like there aren’t a lot of Meteor projects just like ours that GitHub CoPilot can spew out and magically work with our clubs project. I feel like going through the effort of getting the perfect piece of code that works with our project with AI isn’t worth the time.
Learning a concept/subject & Answering/asking a smart question in Discord/class: Personally, I don’t see the point in using AI to learn a concept/subject. I would just use Google to search about my problem, usually ending up on StackOverflow or a FreeCodeCamp tutorial. Probably because I don’t know how to write a good AI prompt that would elicit information that is helpful to me that I could find with a quick Google search. That is also the same reason for not using AI to answer questions in-class or Discord; there isn’t a point in using it for me. Usually the questions asked are short and easy to answer like “How do I get rid of this error?” and usually ends up being an ESLint error. I am also inactive in the class Discord server unless there is an assignment due so that also contributes to my case which is also the same reason for not using AI to ask or answer a smart-question in Discord; I don’t do it. Either someone else has already answered it (shoutout to Thanh and Andrea for helping out everyone on the server) or I just wait till someone asks for help for the same issue that I have, which you shouldn’t do. Ever.
Coding examples/writing code: I have not used AI for coding examples, although I think it is a good prompt to use when you use ChatGPT to get a good code sample. I personally have not used it because I just search it up on Google or read the documentation of the software/coding language that I am using. Same thing can be said with writing code, I don’t use AI for it. Personally, I like writing code on my own and doing trial and error to see if it works because I learn a lot more by coding by myself. I also don’t feel confident enough to use CoPilot because I am not confident with the technology itself. I feel like it’ll hinder my productivity trying to feed it a good prompt to get a good output rather than boost my productivity.
Documenting/explaining code: I will group up documenting and explaining code into one reason: I prefer to do it myself rather than using AI. Documenting is easy in itself: just explain the parameters and what each thing does in the code. If I coded it, I know what it does. Explaining code is also easy enough. If I explain it and it doesn’t make sense, I like to trace the code step by step and go more in-depth with explaining the functionality of the code. I also don’t have confidence in AI to explain the code itself because it might explain it completely differently than what it actually does. This is the same reason with quality assurance. I don’t think AI knows what is right or wrong with the code unless there is a bot out there specifically trained for those types of cases. That’s why I prefer to do it myself and learn from the mistakes if I don’t catch it at first glance. I’ve tried to use AI in ICS 314 once but failed, and have never used it in class ever since.
AI has had an overall positive impact on my learning experience. I can work a lot more efficiently, have concepts explained to me in a concise and simple manner, and have a (somewhat) reliable tool to help me whenever I need something. One of the best examples is Bing’s auto-generated search feature. Whenever you search something up on Bing, the first result is a summary of the first page index that it compiles into a short paragraph with links to the references it uses. It is very helpful since it combines the information of multiple sources into one single paragraph so that you don’t have to click on multiple links to find different pieces of information and try to combine them into one yourselves. I also like Bing AI because you can make it explain step by step what it’s doing for a problem that you give it, and it will force you to compute the problem yourself, which is very helpful in learning a problem without the answer being fed to you. This helps maintain skill development and comprehension without breaching the integrity of the problem. AI technology have definitely enhanced my view of software engineering concepts because of how easy it is to learn them now and how efficient they can be in helping develop your code and understanding.
A lot of AI usage has been used to create many different projects and applications in the software engineering field. For example, Zoom and Slack and many other team communication services have an AI tool that summarizes a conversation or meeting that you had missed. This could save a lot of time for a person instead of having to nag your co-worker for a summary. Another example is machine learning which is used to create algorithms that curate the content you see on social media. One of the best tools that help with software engineering is Figma AI, allowing people to design a website and AI helps bring it to life by giving people code that matches the design. AI is really effective at making software engineering a lot more simple and efficient.
The main challenge of using AI in this course is making AI cater to your needs. Most of the topics in this course can be done with an easy prompt, the main issue arises with the final project. Creating a specific prompt to make the AI create code to your needs is very hard, and even when it does, sometimes it won’t work within the parameters of your projects. I think integrating AI into education should be limited to a point where it needs to be used here and there and not used everytime they’re stuck. People need to develop critical thinking skills and still learn the fundamentals of software engineering without the reliance of AI. AI should be a tool, not a necessity.
Traditional teaching styles rely on exams and quizzes for testing knowledge. An example in the context of software engineering is reciting what each coding language does, looking and tracing code and answering what is wrong with it, or memorizing what each protocol does.It relies heavily on knowledge retention and memorization rather than developing a skill set. AI-enhanced learning relies on real-world problems and applications to test knowledge. An example of this is to create an application that addresses a real-world problem. This helps develop real world skills and allows people to apply the skills that they learned in the classroom. This also helps people collaborate with each other better, creating a better learning environment for everyone.
I think AI can help better improve the education system and the process. The more applicable skills that people can apply in the classroom, the more well-rounded and skilled they are when they get into the workforce. Since AI is being used to better help productivity, instead of circumventing it and avoiding using it in the classroom, we can make a better education format like the flipped classroom, allowing students to learn and use those tools and skills to develop real world applications. An obvious misconception is that AI is always right. In the future when AI technology gets better, a big challenge will be creating assignments that don’t take 1 prompt in ChatGPT. There are more challenges that will emerge as time goes on but for now, it is still a gray area that needs a lot of tinkering with.
In conclusion, AI is a good thing for the software engineering field. It allows work to be done more efficiently and helps with productivity. Some really cool assignments can be done with AI, like creating a whole application done with AI, or recreating an AI prompt with code. It allows people to be more creative and free with their thinking, and enhances the learning process. There is no shame in using AI, it is a tool that can help you out. Finally, we should take advantage of what AI does, and use it to its full potential.