1- My Reflection:

AI has been on the rise lately. It’s become more and more popular by the day, and everyone’s wondering what it will do next. Some fear that their job will be taken, and some fear the apocalypse approaching. While many are optimistic about it, and what potential avenues it opens. My field of study and work is computer science; the field where AI originated. Having seen how AI operates on the inside, I have rather different views on it than many non-technical individuals. There have been many tools lately, especially with the rise of LLMs (Large Language Models), that contribute to changing how we conduct work in my field. Some of those tools include ChatGPT, Claude, Github Copilot, and many others. I personally use only ChatGPT, and Github Copilot. However, unlike most, I don’t view those tools as search engines or official sources of information. Rather I view them as inspiration tools.

AI tools fail to be accurate because they lack understanding. The best way to describe AI and LLMs as they are today, is that they merely mimic the words but not the meaning. LLMs are tasked to find the most appropriate continuation. It is similar to how someone might know that the correct response to the question “Comment ca va?” is “Ca va bien, merci”. They might know these words from school, or heard others mention them, but they may not know the exact meaning of them. That is what AI is doing; having seen millions of text, LLMs have become incredibly familiar with language. Yet, they fail the most basic of tasks such as how many ‘r’s are in “strawberry”. This is a common question most LLMs fail, because it is not a common question humans ask each other. LLMs even failed basic arithmetic at first. Asking ChatGPT, in the past, what “64467836487326 + 742378463278642” is used to produce wrong answers. The reason is because, although normal conversation which the AI scanned contained arithmetic it didn’t contain this particular example. Rather AI learned what best follows is a bunch of numbers, but didn’t learn the concept of addition or any concept for that matter. In reality, LLMs were never tasked to be accurate, just to complete the conversation with the most appropriate response. It just so happens that the most appropriate response tends to be the accurate one, but not always. A popular known example is the Lawyers from the US case. Where some lawyer chose to have ChatGPT write his defense statement and didn’t bother to factcheck it. ChatGPT had cited fake trials and it became a huge scandal. Thus trusting AI for accurate information is never a good idea.

My field requires intensive researching, sometimes as a joke programers are referred to as “professional googlers”. However, the criticalness of the information comes down to the letter. If I am searching for a particular piece of code, I cannot substitute the word “if” with the word “whether” or the word “while” with the word “during”. So when searching for code I must ensure that the result is accurate. AI on the other hand, isn’t accurate, it is inherently probabilistic, and cannot guarantee that the results are accurate. So I cannot usually ask ChatGPT or Github Copilot to write me perfect code. However, they have been getting better at it by the day. Instead I use normal Google searches for these kinds of tasks. With Google I can guarantee accuracy, because the results are real human’s responses. However, with the lack of determinism of AI, I tend to use ChatGPT more for creative ideas. For instance, I once used to help me generate ideas of the architecture of project I was working on. It helped me better understand the tradeoffs of using a software based solution vs a hardware based one. I also use ChatGPT to help me sumarize texts regarding non-technical details. For example, I may ask about software engineering principles or processes, or about different kinds of UML diagrams we tend to draw and the difference between each. I also find myself commonly asking for ideas in many different cases, usually high level ones. For instance, I asked before for ideas of software I can make for my software engineering course. One of times when I found it to be very useful was during my OS project. The project dabbled in the Linux OS, which is a massive code base with over 20 million lines of code. Unfortunately, there is no documentation for the internals of the kernel. So I would prompt ChatGPT with the code asking it to help me find relevant parts to my work. ChatGPT failed often and wasn’t capable enough to accurately find everything, but it would often lead me down the right path on a general level, such as finding the correct file that corresponds to my work. Contrary to ChatGPT, however, Github Copilot is far better at writing accurate code. Copilot is a tool designed to help programmers while writing code. It scans the already existing code, and attempts to autocomplete it. It tends to only fill small chunks of code, but I feel a huge gain in speed; I have to type less than a tenth of my code. I still need to refactor and factcheck all the code copilot writes, since it often messes up or types very bad code that needs refactoring. Overall, AI has a huge impact on my field. It can help us dramatically get work done faster. However, it isn’t, yet, a replacement for a developer. And a developer isn’t able to fully operate without understanding what the AI produces. It excelerates the programer, however it doesn’t provide them with new found skills they didn’t already have. It can also act as great inspirational tools to help with more creative ideas when needed.

2- AI’s Opinion:

Me: How is AI and LLMs being used or could be used in the future in the field of Computer Science?

ChatGPT:

AI and Large Language Models (LLMs) have been making significant impacts in various areas of Computer Science, and their potential future applications are vast. Here’s a breakdown of how they are being used or could be used in the future:

1. Software Development & Engineering

  • Code Generation: LLMs like OpenAI’s Codex can assist in writing code, automating repetitive tasks, and even generating complete functions or modules from simple descriptions. This reduces the time developers spend on boilerplate code and helps with debugging.
  • Code Review & Debugging: AI systems can analyze code to find potential bugs, suggest improvements, and even refactor code for better performance or readability.
  • Natural Language Interfaces: Developers can describe the functionality they need in natural language, and AI can translate that into code, making software development more accessible to non-programmers.
  • Automated Testing: AI can create and run test cases, identifying edge cases and ensuring robust code.

2. Data Science & Analytics

  • Data Cleaning & Preprocessing: LLMs can help automate the often tedious process of data cleaning, preparation, and transformation, which is crucial for data analysis and machine learning tasks.
  • Data Interpretation: AI can assist in interpreting data by generating natural language reports, summaries, and visualizations, making insights more understandable for decision-makers.
  • Predictive Analytics: Using machine learning models, AI can analyze patterns in data to make predictions about future trends, which is useful across industries for forecasting and decision-making.

3. Natural Language Processing (NLP)

  • Text Summarization: LLMs can create concise summaries of lengthy documents, making it easier to grasp large volumes of information quickly.
  • Sentiment Analysis: Businesses use LLMs to analyze customer feedback, social media posts, and reviews to understand public sentiment toward products or services.
  • Translation & Language Generation: AI models can translate text between languages and generate natural-sounding language, useful for applications in content creation, chatbots, and digital assistants.

4. Human-Computer Interaction (HCI)

  • Chatbots & Virtual Assistants: LLMs power chatbots that can handle customer support, provide technical assistance, and even act as teaching aides for learning new skills or programming languages.
  • Voice-Controlled Systems: Integration of LLMs with voice recognition systems allows users to interact with devices using natural language, enhancing accessibility and user experience.

5. Cybersecurity

  • Threat Detection: AI can be trained to detect unusual patterns of behavior that could indicate a cyber threat, helping organizations identify and mitigate security risks more quickly.
  • Automated Penetration Testing: AI can simulate attacks on systems to identify vulnerabilities, allowing companies to address potential issues before they are exploited.

6. Education & Learning

  • Personalized Learning: AI can adapt educational content to match the learning pace and style of individual students, providing tailored explanations, quizzes, and exercises.
  • Automated Grading: LLMs can assist in grading written assignments, giving feedback, and even suggesting areas for improvement.

7. Research & Development

  • Research Assistance: LLMs can help researchers find relevant papers, summarize key findings, and even suggest potential research directions.
  • Modeling & Simulation: AI can assist in simulating complex systems, including networks, traffic, or even biochemical interactions, aiding in the design and testing of new systems.

Future Potential Uses

  • General AI & Autonomous Systems: As LLMs become more sophisticated, they could serve as core components for general AI systems capable of understanding and responding to a wide range of tasks autonomously.
  • Intelligent IDEs: Integrated Development Environments (IDEs) could become more intelligent, with AI providing real-time suggestions, best practices, and documentation insights as developers write code.
  • Ethical AI & Bias Detection: AI systems themselves can be used to detect and mitigate biases in other AI models, ensuring more equitable and fair outcomes.

The field is rapidly evolving, and the integration of AI into various aspects of Computer Science will likely continue to expand, leading to even more innovative and transformative applications.

Me: How might it be useful to learning and studying side of the field?

ChatGP:

AI and LLMs can significantly enhance the learning and studying aspects of Computer Science by providing tools and resources that make the process more efficient, personalized, and accessible. Here are some ways they are or could be useful:

1. Personalized Learning Paths

  • Adaptive Learning Systems: AI can assess a student’s strengths, weaknesses, and learning pace to create a personalized curriculum. This allows learners to focus on areas where they need the most improvement, rather than following a one-size-fits-all approach.
  • Customized Exercises & Practice: LLMs can generate exercises tailored to an individual’s skill level, providing targeted practice problems that help reinforce concepts they struggle with.

2. Instant Access to Resources & Explanations

  • On-Demand Tutoring: AI-powered chatbots can act as 24/7 tutors, answering questions, explaining complex topics, and guiding learners through problem-solving steps. This can be especially useful when students are studying on their own and need quick clarifications.
  • Concept Simplification: LLMs can take complex topics and break them down into simpler, more digestible explanations. They can provide step-by-step guides, analogies, and examples, making it easier to grasp difficult concepts.
  • Summarizing Study Materials: AI can summarize lengthy articles, textbooks, or research papers into key points, allowing students to quickly review and understand the main concepts without going through large amounts of text.

3. Automated Feedback & Assessment

  • Grading Assignments: AI can automatically grade programming assignments, quizzes, and even written essays, providing immediate feedback to students. This helps learners understand their mistakes quickly and learn from them.
  • Feedback on Code & Projects: AI can analyze code submissions to not only check if they work but also to suggest improvements in terms of efficiency, readability, and adherence to best practices.

4. Interactive Learning Experiences

  • Coding Assistance: Tools like GitHub Copilot use LLMs to assist students while coding, suggesting code snippets, autocompleting functions, and helping with debugging. This enables learners to focus more on solving problems than on syntax or language-specific issues.
  • Virtual Labs & Simulations: AI can power virtual labs where students can experiment with algorithms, data structures, and networking concepts. These labs can simulate real-world scenarios, making it easier to understand how theoretical concepts are applied.
  • Gamification of Learning: AI can create engaging, game-like learning experiences by generating challenges, quizzes, and achievements that encourage students to learn in a fun and interactive way.

5. Research Assistance

  • Finding Relevant Study Material: AI can help students locate the most relevant papers, books, and online resources, saving time that would otherwise be spent searching through databases. LLMs can also suggest additional readings based on the topics a student is studying.
  • Research Summarization & Literature Reviews: LLMs can help in summarizing research papers, extracting key findings, and even writing literature reviews, which is useful for students working on research projects or dissertations.

6. Language Support & Accessibility

  • Multilingual Support: LLMs can translate educational content into multiple languages, making it accessible to students who may not be fluent in the language the course is offered in.
  • Accessibility Features: AI tools can provide captions, transcriptions, and even sign language translations for video lectures, making learning more inclusive for students with different needs.

7. Study Planning & Time Management

  • Intelligent Study Schedulers: AI can help students create effective study plans, setting up schedules that allocate appropriate time for each topic based on the student’s pace and the difficulty of the material.
  • Progress Tracking: AI systems can monitor a student’s progress over time, providing insights on what they have mastered and what needs more attention. This can help learners adjust their study strategies accordingly.

Future Potential Uses

  • AI-Generated Learning Content: In the future, AI could be used to generate entire courses, complete with lectures, quizzes, and interactive labs. These courses could adapt in real time based on how well a student is performing.
  • Real-Time Collaboration & Pair Programming: AI could facilitate real-time collaboration between students, providing hints, resources, or even generating code that helps teams work together more effectively.
  • AI Mentors: As LLMs improve, they could serve as virtual mentors, guiding students through their entire learning journey, from basic concepts to advanced projects, while offering encouragement and strategic advice.

By leveraging AI and LLMs, the learning experience in Computer Science can become more engaging, efficient, and tailored to individual needs, leading to deeper understanding and faster skill acquisition.

Chat Link: https://chatgpt.com/share/67152960-45e8-8006-9c97-c95dfc169041

3- Professor Interview:

Interview Link: https://drive.google.com/file/d/1HPfYchZyujMqhBYSUBeWoGS3CaC6WEuU/view?usp=sharing

In this Interview, I met with Dr Soumaia Al Ayyat, a CS professor at AUC. She teaches the course Theory of Computing. Her points were very interesting and valid. Some of her points agrees to mine, referencing how AI may hallucinate often and thus one needs to be wary of its outcome. The Professor talks about an important idea that I wasn’t aware of from my perspective considering how AI may be used to fabricate research and test results. She also mentioned the side of the professors having to deal with AI at the moment and catching potential cheaters. She mentions that every course has a different learning outcome and AI is welcome to be used outside of those, however it shouldn’t replace the student in areas where their own learning is needed. That is true even for the current assignment, as the regulations specify how certain parts are made for the student and AI shouldn’t be used since that would defeat the purpose of the assignment. The professor mentioned using Turnitin for AI detection, and I believe that Turnitin has its own AI within it that handles AI detection. One interesting idea she had pertaining to learning with AI, was getting an answer from ChatGPT and then critizing the response. The students would learn through the criticism process. I had a similar situation in my Cloud Computing course, where we were given an essay response on certain methodologies in the industry and ChatGPT’s opinion on them. Out task was to critize it and elaborate on it. Dr Soumaia mentioned that a common hallucination of AI occurs in the details of its response. Although on the surface its response looks perfect, once one looks at the intricacies mistakes are found. This is useful in the learning process, as critiquing AI responses would need great attention to detail to find the mistakes in AI response and thus promoting further learning. Finally, the Professor raised an interesting point regarding prompt engineering and how people can tailor the AI output for certain structured responses. In general, she believes that AI is best used as supporting tools and not a replacement for the individuals.

4- Professional Interview:

Interview Link: https://drive.google.com/file/d/1SLAkxfFZ0AO40aLaUwJFRpCtyDKuY8GN/view?usp=sharing

For this interview, I had the pleasure of talking to my friend Hazem Essawi. He graduated from Ain Shams university, and has been working in the field as a backend software engineer for the last eight months. In our discussion, he raised many interesting points such as how most people commonly use AI as a search engine, when perhaps the next level AI may be headed to is for the tools to generate the problems themselves; perhaps that would be the avenue for future project ideation. He also talks about how AI can help automate much of the work. For them, they faced an issue pertaining to Quality Control, and how AI could be used to automate checking and validating data entered by the user. He talks about how AI can be very useful for high level plans and inspirational ideas. However, he says that AI creating code is yet to be fully implemented. He says that currently code generating tools are not yet popular mainly do to their high degree of hallucination, and how it takes more effort to comprehend the faulty code and refactor it, than it is to simply write it from scratch. He mentions that rule number one of using AI is to double check the AI’s work and not take it for granted. Hazem also talks about bias in the AI. He says that AI can be biased based on the data that it trained on. Regarding fear of AI, Hazem recommends people learn a little of how AI operates under the hood. He says how AI, though seems very powerful, is rather too basic behind the scenes. The creativity of AI only appears in first time prompting. However, with time its shown how AI is simply reiterating the same ideas over and over. Hazem believes that AI is far from reaching an armageddon, or being sentient.

5- My Rereflection:

Most of my points remain the same. I think having built AI myself and seen it from the inside, I am aware that AI isn’t as much as the hype makes it to be. Both Dr Soumaia, and Hazem raised interesting points that I wasn’t considering but are relevant from their perspective. Dr Soumaia mentions how AI would affect research and student learning as well as grading. Hazem, on the other hand, discusses how AI is still lacking to take over, and sometimes is rather a setback instead of a helpful tool. I agree that code generation tools are still lacking to be of any help. Github Copilot although an exception, in my opinion, is still perhaps more of an intelisense and an autocomplete tool. Both of them mentioned using AI to generate text based content more than code output. Hallucinations are without a doubt a significant problem to be addressed. Perhaps my generation will be the one take AI to the next step.