AyAyAy, AI!

07 May 2024

I. Introduction

Artificial Intelligence, or better known as AI, has become an overnight phenomenon to the 21st century world, especially in education. AI plays a very significant role in higher education as a tool that aids students in doing work or maybe just helps in understanding different topics that are not as clear. In software engineering, AI is a great tool that could either build your entire project for you or be used as a tool for debugging. That is the biggest tool I personally use AI for, which is debugging code. Debugging code, especially when you think your logic is correct, is a pain, but AI is an amazing tool that allows you to see your code clearly and understand where the mistake is. There are many AI tools that aid in this such as GitHub Co-Pilot, but the one I prefer and use all the time is ChatGPT. AI is also great at giving example code that can be used to just spark inspiration or an idea for a project and not just for software engineering. Although, AI is a double edged sword and may not always be of assistance, so be wary. I have used AI in class this semester in the following areas:

II. Personal Experience with AI:

  1. Experience WODs e.g. E18
    • For experience WODs, I wouldn’t use any AI tool as I would actually like to practice my skills and I did not see AI being needed for these experiences. For the most part, there were guidethrough videos by the professors that would go through the entire WOD and also explain what was going on and why one would need to do what. There really was no need to use AI for this as there were clear answers already given and was just to learn.
  2. In-class Practice WODs
    • For the In-class Practice WODs, I would treat these as real WODs and get a feel for what the actual WOD would be like, so yes, I did use AI tools to aid me. However, I did not just input the prompt into ChatGPT and make it do the work for me. In the beginning, I would mainly use it for things that I just did not know how to do, which was mainly formatting, like “how to get text in the middle of the page” and things like that. I found it quite helpful at times and it would help in these practice WODs.
  3. In-class WODs
    • For the actual In-class WODs, I for sure used ChatGPT to help me pass these WODs; however, I did not use it as much as I thought I would have. For the most part, I used it very sparingly and would actually try to resolve whatever issue I had on my own before consulting ChatGPT. And when I did use it, it was very useful and helped out a lot as I used it as a last resort option. An example of this would be when during the Morning Brew WOD for meteor, I could not figure out the red buttons for the landing page like the formatting of how it looked on screen and how to make it red. I used ChatGPT to do it for me and it gave me what I asked for. Subsequently, I got a 100/100 on that WOD. However, ChatGPT is not always reliable as it could just lead you on a wild goose chase and cost you a WOD. This happened to me for the Underscore function WOD where we had to use Underscore functions to sort through UH:Manoa degrees and such. I kept putting input through to ChatGPT and it would not give me the answer and would not give me the correct number of degrees. I luckily figured it out on my own and passed that WOD as well. AI can be very helpful, but also drive you straight into the ground if you’re not careful.
  4. Essays
    • For essays, I did not use ChatGPT at all to write the essay for me; I didn’t even use it to create an outline for me or use it for writing material. I didn’t even use ChatGPT to come up with the header titles and title for my essay because ChatGPT is not clever enough to come up with funny and punny titles. Luckily, I am a decent writer and good with grammar, so I didn’t need to use ChatGPT for any of my essays at all, including this one.
  5. Final project
    • For the final project, I heavily relied on ChatGPT because having to create a full working product is difficult and I did not have a full understanding of how to connect the front end to the database until the very end. An example of how ChatGPT helped me significantly would be when I was trying to create the landing page for when you first enter our website, a user landing page, and a vendor landing page. I had no clue on how to use the ready subscription for different types of accounts and ChatGPT helped me out alot with that database aspect of the final project.
  6. Learning a concept / tutorial
    • When learning new concepts, I rarely ever used ChatGPT to explain it to me as there are numerous videos that explain the material as well as experience WODs with guidethrough videos that aid in understanding. And if I was still confused, I would then ask ChatGPT to understand the gist of what was being taught, but it would never help me understand the full depth of the material.
  7. Answering a question in class or in Discord
    • Personally, I have never asked a question in the Discord so I never had to use ChatGPT to answer questions. But if I did have to, Google would be my first choice as it has a broader answer and a more reliable answer because ChatGPT must be taken with a grain of salt when it comes to answering questions.
  8. Asking or answering a smart-question
    • Again, I have never had to answer or ask a smart-question, but if I did, ChatGPT wouldn’t be the first choice or even a choice at all. Most likely, the person asking the question probably already tried ChatGPT and was still stuck. I would use Google again but use my own intuition and logic to help aid them in their question along with whatever I gathered from my own search.
  9. Coding example e.g. “give an example of using Underscore .pluck”
    • I have absolutely used ChatGPT to give me an example of different functions in Underscore or for anything code related. For example, I asked ChatGPT to give me an example of a landing page with text in the middle for one of the WODs as I could not figure out the formatting. It gave me an example that was not quite what I was looking for, but it did push me into the right direction and sparked an idea in my head of how I should approach it. ChatGPT is great at giving examples and pushing people into the right direction, especially when someone knows how to use AI with discretion.
  10. Explaining code
    • ChatGPT is generally ok when explaining code as it is very vague for the most part. I once asked it to explain how the Meteor subscription works and it gave me a few paragraphs, but it still didn’t quite explain how it worked. But, it did at least clarify a few things of how it worked and connected the database to the front end.
  11. Writing code
    • ChatGPT excels in writing code, as long as you give it a very specific prompt. For example, I asked it recently to write me a randomizing landing page that would randomize the vendors, and it did exactly that. Was it what I was looking for? No, absolutely not! But did it do it? Yes! It was functional and it didn’t break my code which is pretty neat. So, if solely based on if it can write code, it for sure can! But did it follow ES-Lint? No, it did not. AI can absolutely write code for you that works, but it may not be what you are looking for.
  12. Documenting code
    • I do not think I have ever had to document code in this class or ever in my life, so I don’t know how well ChatGPT or AI does that.
  13. Quality assurance
    • I don’t think I really use AI for quality assurance. I usually ask AI what’s wrong with my code, but never used it to ensure my code did what it was supposed to because that’s usually very obvious. However, I have used AI to try and make test cases for code in the past. It didn’t work very well because it didn’t properly test my code how I wanted to because the test cases it came up with were either not good enough or ridiculous.
  14. Other uses in ICS 314 not listed above
    • Personally, I can not think of any other things I used AI for that wasn’t listed above already.

III. Impact on Learning and Understanding:

The impact AI has on learning and understanding, I believe, is dependent on the person using it. For most people, it’s a tool that aids in learning and is put to great use; but for other people, it’s used as a scapegoat for when they’re feeling lazy. AI is a double edged sword and should be wielded with caution. AI can help make very difficult and hard-to-understand topics very simple, but it also has the power to give people the ability to just skip over material. It’s very dependent on who uses it on how it affects learning and understanding. Personally, it has made a lot of hard topics easier to understand. It gives me a basis of understanding that I can build upon afterward.

IV. Practical Applications:

A very practical application of AI would be face recognition, specifically used for customs at airports such as Changi International Airport in Singapore. There are no customs officers manually checking passports, but they use AI face recognition and passport scanners to keep track of foreign visitors entering the country. It scans the information from your passport and links it to the biopage that you had to fill out prior to checking for any flags in their database. It makes going through customs easier and more efficient. Based on how AI is being implemented for secure use, it seems AI applications are becoming more effective in addressing real world problems and only seems to be improving as time goes on.

V. Challenges and Opportunities:

A challenge that has come up in 314 with AI is the lack of knowledge AI has on meteor templates or anything really software engineering. It has a very surface level understanding and doesn’t understand the connection between UI and the database. It’s very apparent when I tried to ask it to do certain things for the final project and it struggled on giving me what I asked for. An opportunity AI could be used for in software engineering education would be to learn how to use it as a tool for debugging. It’s great at debugging code or at least gets your foot in the door to start solving the problem. It would also be a good opportunity to teach people how to use AI with discretion and to pluck certain things out that you need/don’t.

VI. Comparative Analysis:

A traditional teaching method is still heavily needed in teaching software engineering and computer science as a whole. Incorporating correct use of AI would need to be implemented while also utilizing it to aid on top of the traditional teaching is needed as well. The traditional way of teaching is still needed for engagement and a fuller, deeper understanding of topics and to also keep knowledge retention as well. If it was full AI, no one would actually learn anything and would just continuously cut corners. By incorporating AI approaches to aid in the traditional way, it wouldn’t just keep knowledge retention and engagement, it would also incorporate practical skill development as it can be taught that it is a tool to aid you instead of something to cut corners with.

VII. Future Considerations:

AI is definitely here to stay and will only improve from when I write this. AI will need to be incorporated into all levels of teaching in software engineering and computer science as a whole. It needs to be like this to ensure AI use is taught effectively and critically. The current challenge right now is that AI is a tool to cut corners in education and is less used as a tool for better understanding, maybe because AI doesn’t have a deeper understanding of topics to begin with. This would need to be improved on as it then can be used as a tool for learning and teaching instead of a cookie corner cutter. Once AI becomes more reliable and has more understanding of software engineering topics and all topics as a whole, then it can be a great tool that will be incorporated into all levels of education.

VIII. Conclusion:

AI has become everyone’s new best friend or the outcast of the friend group. Many people cut corners while others try to avoid it like the plague. In software engineering, it can be an amazing tool that helps debug code and aid in the start of learning new topics. A way to implement this into a software engineering course would be to teach students how to use it and how to use it effectively and critically.