Research archive

Research Hub.

A dedicated page for my course research questions. Use the search bar to find a topic, filter by professor, and open only the answers you want to read.

Human-Computer Interaction

Dr. Amy Research Questions

HCI, usability, interface design, prototyping, and interaction beyond the keyboard and mouse.

5 questions · 6 sources
1. What is human-computer interaction (HCI), and which disciplines contribute to it?

Human-computer interaction (HCI) is the study and design of how people interact with computers and other similar systems. Its main focus is creating interfaces that help people interact with technology effectively. Because HCI is related to humans and technology, it has several disciplines, like computer science, psychology, ergonomics, graphic and product design, anthropology, and engineering

2. What is the difference between a system being useful and being usable? Can you give an example of a system that is usable but not useful for a particular person or task?

Usability means how easy and pleasant to use a certain system, while utility means whether the system has all the features that a person needs. A useful system needs to have both. For example, a calculator app is usually simple and easy to use, making it usable. But wont be useful to someone who wants to write and test Python programs because a calculator does not provide the features needed

3. Find an everyday interface that is confusing to use. What is the person trying to do, and which design decision causes difficulty? Suggest one improvement.

An example of a confusing interface is a microwave with so many buttons, symbols, and cooking modes. A person who is gonna use the microwave may only want to heat his food for 30 sec, but he needs to navigate through the options to find his option; this creates unnecessary complexity. A good interface design should make the important and mainly used action easy to find. One improvement would be to make the common controls, like start and stop, more noticeable while keeping less commonly used options separate.

4. What is a prototype, and how can testing one with users help a designer? What is one thing that asking “Do you like it?” would not tell you?

A prototype is an early version of the interactive design that allows people to experience how a product works before developing the final product. Designers would give users tasks and observe where they hesitate, make mistakes, or even be confused. This allows problems to be found and fixed before launching the final product. Just asking Do you like it would not help in finding out if they can complete important tasks with the interface.

5. Find one example of interaction beyond a keyboard and mouse, such as voice input or a tangible interface. Who might benefit, and how would you test whether it helps them?

One example is speech recognition, which enables people to control a computer using voice commands. It can be used to type text, navigate through menus, activate buttons, and other different commands. According to W3C, this can significantly help people with physical disabilities who can't easily use a keyboard and mouse, people with repetitive stress injuries, and people who find speaking easier than typing. To test it usefulness, i would ask the users to complete the same tasks using their voice and then usijgn a keyboard and mouse. I would compare the time taken to complete each task, what errors occurred, and how easy the users find each method.

Works Cited

Association for Computing Machinery. “HCI – CS2013 Version.” CS2023, csed.acm.org/knowledge-areas-human-computer-interaction-hci-cs2013-version/. Accessed 14 Sept. 2026.

Nielsen, Jakob. “Usability 101: Introduction to Usability.” Nielsen Norman Group, 3 Jan. 2012, nngroup.com/articles/usability-101-introduction-to-usability/. Accessed 14 Sept. 2026.

Nielsen, Jakob. “10 Usability Heuristics for User Interface Design.” Nielsen Norman Group, nngroup.com/articles/ten-usability-heuristics/. Accessed 14 Sept. 2026.

“Prototypes.” Usability & Digital Accessibility, Yale University, usability.yale.edu/ux/build/design-documentation/prototypes. Accessed 14 Sept. 2026.

“User Testing.” Usability & Digital Accessibility, Yale University, usability.yale.edu/ux/validate/review-the-user-experience/user-testing. Accessed 14 Sept. 2026.

“Speech Recognition.” Web Accessibility Initiative (WAI), World Wide Web Consortium, w3.org/WAI/perspective-videos/voice/. Accessed 14 Sept. 2026.

Distributed Systems

Prof. Hammoud Research Questions

Distributed computing, scaling, consensus, cloud computation, and large-scale scientific computing.

5 questions · 6 sources
1. What happens when the problem you want to solve becomes too big for any one computer?

We can split the problem among many connected computers; each one of them handles a part of the problem, and they communicate with each other to combine their results. This is called distributed computing; it allows us to handle problems that require more processing or memory capability of a single computer. However, the problem needs to be able to be split up.

2. Suppose 1,000 computers work together. Do you now have one computer that is 1,000 times more powerful? Why or why not?

Not necessarily; there might be some parts of the task that need to be done in order, so not all of the computational power would be used simultaneously. Computers will also spend time communicating, sharing data, and waiting for each other; these delays would mean that 1000 computers working together wouldn't mean finishing 1000 times faster. The limit that is caused by sequential parts is called Amdahl’s law.

3. Can 1,000 computers agree on something if some of them fail or even lie?

Yes, under certain conditions, they can use consensus algorithms, which set rules for reaching an agreement. Algorithms that handle computers that send wrong or conflicting information with other computers provide Byzantine fault tolerance. For example, in a classical model with good communication and no unforgeable signatures, 1000 computers can handle up to 333 faulty computers. The guarantee depends on the algorithms and its assumptions about communication and failures

4. When you use ChatGPT, Google, Instagram, or an online game, where is the computation actually happening?

The computation is shared between my device and a remote server; my device runs the interface and my input, while the servers in the data centers do most of the processing and storage. These servers can work together from different locations. In most of the online games, my device would handle drawing the graphics while the server manages the shared game state, like a player’s location.

5. If you could make millions of computers behave like one dependable machine, what could humanity build that we cannot build today?

One possibility is building a much more detailed virtual model of biological processes, which would help scientists investigate diseases and test potential medicines at a scale that is currently not possible. Distributed computing already helps in this: Folding@Home connects computers to simulate how a protein moves. So I believe that larger, more dependable systems can extend this work to more complex biological models, but having greater computing power alone would not mean reaching medical breakthroughs

Works Cited

Amazon Web Services. “What Is Distributed Computing?” AWS, aws.amazon.com/what-is/distributed-computing/. Accessed 20 Sept. 2026.

Cloudflare. “Building Real-Time Games Using Workers, Durable Objects, and Unity.” The Cloudflare Blog, blog.cloudflare.com/building-real-time-games-using-workers-durable-objects-and-unity/. Accessed 20 Sept. 2026.

Cloudflare. “What Is the Cloud?” Cloudflare, cloudflare.com/learning/cloud/what-is-the-cloud/. Accessed 20 Sept. 2026.

Folding@home. “How It Works.” Folding@home, foldingathome.org/faq/how-it-works. Accessed 20 Sept. 2026.

Lamport, Leslie, et al. “The Byzantine Generals Problem.” ACM Transactions on Programming Languages and Systems, vol. 4, no. 3, July 1982, pp. 382–401. Microsoft Research, microsoft.com/en-us/research/publication/byzantine-generals-problem/. Accessed 20 Sept. 2026.

NVIDIA. CUDA C++ Best Practices Guide. Version 12.1.1, docs.nvidia.com/cuda/archive/12.1.1/cuda-c-best-practices-guide/index.html. Accessed 20 Sept. 2026.

Multimodal Learning & Embodied AI

Prof. Bilal Taha Research Questions

AI modalities, multimodal learning, embodied AI, and how intelligent systems combine information to interact with their environments.

5 questions · 3 sources
1. What is a modality in AI? Give three examples.

A modality in AI is a type of information that an AI system can process and understand. Different modalities represent information in different ways. Some examples include text such as messages and documents, images like photographs and diagrams, and audio like speech and music.

2. What is multimodal learning?

Multimodal learning is when an AI system learns from and combines different types of information. For example, an AI system can process an image that includes a written description of the photo; by combining the different information, the system can better understand what it is analyzing.

3. Where is multimodal learning used? Can you find one real application and identify the types of information it combines?

Multimodal learning is used in healthcare, robotics, virtual assistants, and self-driving cars. A real example of this is the Waymo Driver, which is used in Waymo’s self-driving cars. The system combines information from the camera, LiDAR, and radar. The camera provides visual information of the road traffic light, pedestrians, and other cars, while LiDAR provides the 3d information regarding the shape and distance of the cars or pedestrians; radar helps in measuring the speed and distance of the surrounding objects. Combining these different sources of information helps the car understand its surroundings.

4. What is embodied AI?

Embodied AI is AI that can interact with its surroundings through a physical or virtual body. Instead of just processing information, embodied AI can look at its surroundings, make decisions, and perform tasks. For example, the AI could look at an object, decide how it would reach out to it, and then move its robotic arm to grab it.

5. How are multimodal learning and embodied AI connected?

Multimodal learning and embodied AI are connected because embodied AI often needs to process different types of information it understands and be able to interact with its surroundings. For example, a robot might use its camera to see objects, a microphone to hear instructions, language to understand commands, and physical sensors to know what is around it. Multimodal learning helps the robot to combine this information, while embodied AI uses it own understanding to decide what it needs to do next in its environment.

Works Cited

Stryker, Cole. “What Is Multimodal AI?” IBM, 15 July 2024, ibm.com/think/topics/multimodal-ai. Accessed 28 Sept. 2026.

“Waymo Driver.” Waymo, waymo.com/waymo-driver/. Accessed 28 Sept. 2026.

“Robotics, Embodied AI, and Learning.” Carnegie Mellon University, cmu.edu/real/. Accessed 28 Sept. 2026.

Artificial Intelligence & Robotics

Prof. Gianni Research Questions

AI definitions, major AI subfields, the current AI boom, robotics applications, and autonomous robot challenges.

5 questions · 5 sources
1. How do you define AI?

Artificial intelligence (AI) is the technology that allows computers and machines to do tasks that would normally need human intelligence; this can include learning from information, finding patterns, understanding language, and solving problems. AI doesn't necessarily mean that the machine thinks like a human. But means that the machine can do certain tasks that require a type of intelligence

2. Can you name at least three different sub-fields of AI?

The three major subfields of AI are machine learning, computer vision, and natural language processing. Machine learning means that computers can improve from the data that they were trained on without being programmed for this situation. Computer vision means that machines can understand information that comes in the form of images and videos by recognizing the person or object. Natural language processing, or NLP, helps computers understand and interpret human language,m like in chatbots and voice assistants

3. AI has been around for about 70 years so far. Why is it booming right now?

AI is booming right now because many of the technologies have improved at the same time; computers and specific hardware have become powerful, allowing researchers to train much larger AI models. Also, there is a huge amount of digital data that is available to train AI models. At the same time, advances in machine learning algorithms, mainly deep learning, have significantly improved what AI can do. Cloud computing helped in making powerful computing resources easier to access. Finally, large investments from tech companies and governments helped accelerate AI research and development.

4. Can you name at least three application sectors where robots are being widely employed? What are the reasons?

Robots are used in manufacturing, logistics, and healthcare. In manufacturing, robots are used for tasks such as welding, assembling products, and handling materials because they can do repetitive tasks quickly, accurately, and consistently. In logistics, robots are used to transport goods, arrange products, and assist in deliveries because they can reduce repetitive physical work, which improves efficiency. In healthcare, robots can help with surgery, rehabilitation, and lab work. Robots are useful in these areas because they can do the repetitive, precise, and potentially dangerous tasks while allowing humans to focus on more complicated work.

5. Can you identify three major challenges for a wheeled autonomous robot performing a 24h surveillance task in a large facility?

The first major challenge is navigation and localization. In large places like the Mall of Qatar, the robot needs to know where it is and find out how to reach the different areas without getting lost. The second major challenge is avoid people and the other obstacle, the mall is a changing enovrioemt where people, carts and cleaning equipment constanlky move, so the robot must detect them and safelky change it path to avoid them. The third major challenge is battery life and continuous operation; a robot would not be able to operate for 24 hours normally on one battery charge. So it needs to monitor its own battery, then go to the nearest charging station if it needs to, and then continue its surveillance task. The robot would need reliable sensors and software because a failure during a 24h surveillance task would hinder it from completing the task successfully.

Works Cited

Stryker, Cole, and Eda Kavlakoglu. “What Is Artificial Intelligence (AI)?” IBM, updated 15 June 2026. IBM — What Is Artificial Intelligence?. Accessed 5 Oct. 2026.

Stanford Institute for Human-Centered Artificial Intelligence. The 2026 AI Index Report. Stanford University, 2026. Stanford HAI — 2026 AI Index Report. Accessed 5 Oct. 2026.

International Federation of Robotics. “Global Sales of Professional Service Robots Surge 24%.” International Federation of Robotics, 30 Sept. 2026. International Federation of Robotics — Service Robots. Accessed 5 Oct. 2026.

“Autonomous Navigation.” Mobile Industrial Robots Academy, Mobile Industrial Robots, academy.mobile-industrial-robots.com/free-skill-paths/autonomous-navigation/. Accessed 5 Oct. 2026.

“MiR Charge 48V.” Mobile Industrial Robots, mobile-industrial-robots.com/products/applications/mir-charge-48v. Accessed 5 Oct. 2026.

Computability & Complexity

Dr. Christos Research Questions

Decision problems, decidability, P, NP, and the P versus NP question.

5 questions · 4 sources
1. What is a decision problem?

A decision problem is a problem that can be answered with only a yes or no. For example, “Is 17 a prime number?” This question can be answered only with a yes-or-no response. In computer science, most of the problems are written in this format because it is easier to study how difficult they are for computers to solve.

2. What does it mean for a decision problem to be decidable?

A problem can be considered decibel if their is an algorithm that cna always output the correst yes or no answer and hten stop for every possible input. No t every pr0blem is considered decidable. For example, the Halting problem cannot be solved by one algorithm for every possible program and input.

3. What is the class P? What is the class NP?

P is the class of decision problems that can be solved by computers in polynomial time, implying that the time needed grows at a manageable rate as the size of the input increases. NP is the class of decision problems whose possible solutions can be checked in polynomial time when given to a computer. All problems in the class P are also in NP because if you can solve something quickly, you can also check its solution quickly.

4. What is the intuitive meaning of the “P versus NP” question?

The idea behind P vs NP is that if a solution can be checked quickly can it also be found quickly? We understand that P is inside of NP but we dont know if P and NP are equal, If P=NP, many problems that look very difficult can be solved efficiently, as of today, the problem is not solved.

5. If you resolve the P versus NP question, how much richer will you be?

If i was able to solve the problem and my solution was accepted according ot the Clay Mathematics Institute's rules, I would receive 1 million dollars. P vs NP is considered one of hte seven Millennium Prize Problems, and 1 million dollars was put under each problem. So other than being known in the computer science community i would recive 1 millon dollars.

Works Cited

Clay Mathematics Institute. “P vs NP.” Clay Mathematics Institute. Accessed 7 Sept. 2026. Clay Mathematics Institute — P vs NP.

Cornell University. “Lecture 36: P, NP, and NP-Completeness.” CS 2800, Fall 2015, Cornell University. Accessed 7 Sept. 2026. Cornell — P, NP, and NP-Completeness.

“Computability and Complexity.” Stanford Encyclopedia of Philosophy, Stanford University, 18 Oct. 2021. Accessed 7 Sept. 2026. Stanford Encyclopedia of Philosophy — Computability and Complexity.

MIT OpenCourseWare. “Automata, Computability, and Complexity.” Massachusetts Institute of Technology, Spring 2011. Accessed 7 Sept. 2026. MIT OpenCourseWare — Automata, Computability, and Complexity.

Programming Languages

Dr. Giselle Reis Research Questions

Programming languages, their purpose, limitations, and design.

4 questions · 4 sources
1. Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?

Because punch cards were slow, inconvenient, and very difficult to fix when a mistake happened. Programming languages made it easier to write instructions to the computer in a way humans can also understand. Then, the computer translates the instructions we wrote into machine code. This shows that the purpose of programming languages is to ease communication between computers and humans.

2. There are hundreds of different programming languages out there. Why do you think we need so many?

Programming languages are designed for different purposes; some are designed for efficiency, some for readability, and others for specific things like creating websites, databases, or operating systems. For example, Python is designed to be simple and readable, while C gives the programmer more control over the computer; different programming languages let programmers choose the one that fits their needs.

3. What are some drawbacks of a programming language you use? How would you like it to be different?

I only use Python, and one drawback is that data-type bugs can only be found when I run the program. For example, adding “5” and 5 looks the same, but one is an integer, and the other is a string. Python is also considerably slower than C or C++; it would be better if Python had a stricter mode that could detect bugs before the program ran.

4. If you were going to create a new programming language, how would you start? What do you need to define?

First, I would ask myself why I am creating a new language and what problem I am trying to solve; then I would start to define its syntax, data types, variables, functions, conditions, and loops, and decide between it being compiled or interpreted and how to deal with errors, After that, I would create a simple interpreter or compiler and slowly add more features as the language develops.

Works Cited

Computer History Museum. “Software & Languages.” Timeline of Computer History, Computer History Museum, computerhistory.org/timeline/software-languages/. Accessed 6 Sept. 2026.

IBM. “The IBM Punched Card.” IBM, ibm.com/history/punched-card. Accessed 6 Sept. 2026.

Nystrom, Robert. Crafting Interpreters. Genever Benning, 2021, craftinginterpreters.com/. Accessed 6 Sept. 2026.

Python Software Foundation. “Python 3.14.7 Documentation.” Python, docs.python.org/3/. Accessed 6 Sept. 2026.

No research questions matched that search. Try a different keyword or select “All.”