Research Topics
Dr Gianni - Robotics & AI
1. How do you define AI?
- Artificial Intelligence (AI) is the ability of a computer or machine to perform tasks that normally require human intelligence, such as learning, problem-solving, decision-making, and understanding language.
- In simple terms, AI allows machines to learn from information and make decisions instead of being explicitly programmed for every situation.
IBM - "What is Artificial Intelligence?" - link
2. Can you name at least three different sub-fields of AI?
- Machine Learning: allows computers to learn patterns from data and make predictions or decisions.
- Computer Vision: allows computers to understand and analyze images and videos.
- Natural Language Processing (NLP): allows computers to understand and work with human language.
- Robotics: combines AI with physical machines so they can sense their environment and perform tasks.
IBM - "What is Artificial Intelligence?" - link
3. AI has been around for about 70 years so far. Why is it booming right now?
- There is much more data available today from the internet, smartphones, cameras, and other devices, which gives AI more information to learn from.
- Computers and GPUs have become much more powerful, allowing AI models to process huge amounts of data much faster.
- AI algorithms, especially deep learning, have improved significantly and can now solve problems that were much harder for older AI systems.
- Cloud computing has also made large amounts of computing power more accessible.
- Generative AI has made AI much more visible and useful because systems can now generate text, images, audio, video, and code.
Stanford University - "AI Index Report" - link
4. Can you name at least three application sectors where robots are being widely employed? What are the reasons?
- Manufacturing: robots are used for assembly, welding, and handling materials because they can perform repetitive tasks quickly, accurately, and consistently.
- Healthcare: robots can assist with medical procedures and other healthcare tasks because they can provide high precision and reduce repetitive work.
- Transportation and Logistics: robots are used in warehouses to move goods and materials because they can operate efficiently and reduce manual labour.
- Agriculture: robots can help with tasks such as harvesting and crop management because they can reduce manual labour and improve efficiency.
International Federation of Robotics - "World Robotics" - link
5. Can you identify three major challenges for a wheeled autonomous robot performing a 24h surveillance task in a large facility? (e.g., something like Mall of Qatar)
- Battery life: The robot needs to operate for 24 hours, so it needs an efficient battery and possibly an automatic charging station.
- Navigation and obstacle avoidance: A large facility can have many people, objects, doors, and other obstacles. The robot needs to know where it is and safely avoid obstacles.
- Reliable sensing and surveillance: The robot needs cameras and other sensors to detect people, objects, and unusual situations. It needs to work reliably in different lighting conditions and while people are moving around it.
IEEE - "Autonomous Navigation by Mobile Robots in Human Environments" - link
Dr Taha - Multimodal Learning and Embodied AI
1. What is a modality in AI? Give three examples of different modalities.
- A modality is a distinct type or channel of data/information that an AI system can take in or produce. It's functions like a different "sense" the system uses to perceive or communicate
- Examples: text, images/vision, audio/speech, video, and sensor data (touch, motion, depth)
IBM - "What is Multimodal AI?" - link
2. What is multimodal learning?
- Learning that combines more than one modality at once, rather than being limited to just one type of input.
- Instead of a model that only processes text or only images, a multimodal model takes in multiple types together
McKinsey & Company - "What Is Multimodal AI?" - link
3. Where is multimodal learning used? Can you find one real application and identify the types of information it combines?
- In healthcare, multimodal AI can combine medical images, such as X-rays or scans, with patient records and other clinical data to help doctors analyze a patient's condition
- In customer service, it can combine text, speech, and visual information to understand customer requests and provide more useful responses across different types of interactions.d
Google Cloud - "Multimodal AI" - link
4. What is embodied AI?
- AI that exists in and interacts with a physical environment, usually through a robot, rather than just processing static data as software. It perceives its surroundings, often through multiple senses (vision, touch, sound)
- It also makes decisions and acts physically in the real world and learns through real interaction, not just from a fixed dataset
MIT CSAIL - "Embodied Intelligence Summit" - link
5. How are multimodal learning and embodied AI connected?
- A robot moving through the physical world needs to process many types of input at once: vision, sound, touch/sensor feedback, sometimes language instructions
- This means embodied AI is almost always inherently multimodal, since a physical agent naturally receives many different sensory inputs simultaneously
Medium - "How Multimodal Models Align Modalities in the Embedding Space" - link
Dr Hammoud - Distributed Systems
1. What happens when the problem you want to solve becomes too big for any one computer?
- The problem can be divided into smaller tasks and distributed across many computers.
- Each computer processes part of the problem, and the results are combined.
- For example, CERN's Worldwide LHC Computing Grid distributes the processing and analysis of data across computing sites around the world.
CERN - "Worldwide LHC Computing Grid" - link
2. Suppose 1,000 computers work together. Do you now have one computer that is 1,000 times more powerful? Why or why not?
- No, not automatically. Some tasks can be divided among computers very effectively, while others cannot.
- Computers also need to communicate and coordinate, which takes time and resources.
- The amount of speedup depends on how well the particular problem can be parallelized.
GeeksforGeeks - Amdahl's law in Computer Organization - link
3. Can 1,000 computers agree on something if some of them fail or even lie?
- Yes, distributed systems can use consensus algorithms to help computers agree despite failures.
- When some computers can behave maliciously or "lie," this becomes a Byzantine fault-tolerance problem.
- There are limits, however, the system needs enough reliable participants and an appropriate protocol to tolerate the failures.
Cornell University - "Heterogeneous Consensus" - link
4. When you use ChatGPT, Google, Instagram, or an online game, where is the computation actually happening?
- A significant amount of computation happens on remote servers in data centers, rather than entirely on your personal device.
- Cloud computing provides virtualized computing resources such as processing power and memory over networks.
- Your device communicates with these remote resources to use online services.
IBM - What is a data center?- link
5. If you could make millions of computers behave like one dependable machine, what could humanity build that we cannot build today?
- We could simulate extremely complicated systems that would be impractical to study using ordinary computers.
- This could help with areas such as medicine, biotechnology, weather, energy, materials, and understanding the universe.
- Large-scale computing already allows scientists to perform simulations that would otherwise be too expensive or difficult.
U.S. Department of Energy - "Supercomputing and Exascale" - link
Dr Melniczuk - Human-Computer Interaction
1. What is HCI, and which disciplines contribute to it?
- HCI studies how people interact with computers and technology, and how to design that interaction well.
- It draws from psychology (how people think, perceive, and make errors), computer science (what's technically feasible), design (visual and interaction principles), and sociology and anthropology (how people behave in groups or contexts).
The Decision Lab - "Human-Computer Interaction" - link
2. Useful vs. usable, plus an example
- Useful means the system does something people actually need. Usable means it's easy and pleasant to use to get that need met.
- A system can be useful but not usable, e.g. a powerful piece of enterprise software like SAP. It handles complex business operations exactly as needed but is notoriously unintuitive, with cluttered menus and steep learning curves that make employees dread opening it.
- A system can also be usable but not useful, e.g. a beautifully designed to-do list app with smooth animations and satisfying interactions, that ultimately doesn't help you actually get anything done because it lacks real reminders or integration with your other tools.
Nielsen Norman Group - "Usability 101: Introduction to Usability" - link
3. A confusing everyday interface
- Capacitive touch screens used for managing large scale light systems, chosen for durability since they'll be touched by many people, but inconvenient because touches aren't always recognized.
- The person trying to accomplish a simple task, adjusting a light, ends up tapping repeatedly or pressing harder, since capacitive screens rely on detecting the electrical charge of skin contact and can misread inconsistent or lighter touches.
- A better fix would be an infrared touch screen with a protective casing. Infrared screens detect the interruption of light beams rather than relying on skin conductivity, so they respond more reliably regardless of touch pressure, while the casing still gives the durability the original design was aiming for.
Nielsen Norman Group - "10 Usability Heuristics for User Interface Design" - link
4. What is a prototype, and why test with users?
- A prototype is an early, often rough version of a design, whether a paper sketch, a clickable mockup, or a partial working version, used to try out ideas before committing to a full build.
- Testing with real users matters because what people say they prefer often diverges from how they actually behave. Someone might say they like something but still struggle silently or misuse a feature.
- Watching someone attempt a task reveals friction points that just asking opinions never surfaces.
UXtweak - "Prototype User Testing: Step-by-step Guide" - link
5. Interaction beyond keyboard and mouse
- Speech dictation and voice navigation for individuals unable to type due to any type of disability.
- This benefits users with motor impairments, or any condition that limits fine motor control needed for typing, letting them interact with technology entirely through spoken commands instead.
- To test whether it actually helps, you'd observe the intended user attempting a real task, like composing a message or navigating a device, using speech dictation, and compare their completion time, error rate, and frustration level against a control method they'd otherwise be forced to use, like an on-screen keyboard or assistive switch.
WebAbility - "Voice Control & Accessibility: Rise of Voice Interfaces" - link
Dr Christos - Theory of Computation
1. What is a decision problem?
- A decision problem is computational task which decides if a given input possesses a certain property, returning "True" or "False"
- For example: "Is this number odd?"
Medium - (Simran Tinani) - "Decision Problems - Decidability, Verifiability, and Complexity Classes" - link
2. What does it mean for a decision problem to be decidable?
- If a problem has an algorithm which can solve it in a finite amount of time
- If an algorithm can be constructed to answer a problem correctly, it is by definition decidable
GeeksForGeeks - "Decidable and Undecidable Problems in the Theory of Computation" - link
3. What is the class P? What is the class NP?
- Classes P & NP are used to classify decisions problems according to their ability to be solved or verified
- Class P - (P for Polynomial Time) - represents the class of all decision problems that a computer can solve quickly
- For example: The shortest path in a graph network
- Class NP - (NP for Nondeterministic Polynomial Time) - represents the class of all decision problems whose proposed solutions can be verified quickly, although finding actual solutions from nothing may take exponentially long
- For example: The travelling salesman problem
GeeksforGeeks - "P, NP, CoNP, NP hard and NP complete | Complexity Classes" - link
4. What is the intuitive meaning of the "P versus NP" question?
- Is every probelm whose solution is quick to verify, also quick to solve?
- Depending on the answer, P & NP are equal or unequal
5. If you resolve the P versus NP question, how much richer will you be?
- As P v NP is a part of the Millenium Prize problems, if I solved it, I would be awarded $1,000,000 by the Clay Mathematics Institute
Dr Reis - Programming Languages
1. Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?
- In order to program, holes had to be punched into cards with one card representing one line; any single defect, bend, or scatter ruined hours of work and carried a high risk of human error.
- Errors could not be discovered in real time, since you had to run the entire card batch. A single typo could mean the whole task had to be redone, making the process highly time inefficient.
- Storage technology itself improved such that code could be edited, something punch cards could not facilitate, and they were eventually replaced by magnetic tapes.
- All of this points to programming languages being a natural evolution from punch cards, as the requirements for time efficiency increased and the capacity for better storage appeared.
- Programming languages serve as the latest tool in a long term goal to bridge the gap between human thought and machine execution.
IEEE Spectrum - "From Punch Cards to Python" - link
Medium (Ryena Dhingra) - "A Brief History of Punched Cards" - link
Quantum Zeitgeist - "Programming Languages: From Punch Cards to Python" - link
2. Why do we need so many programming languages?
- Different programming languages exist to suit different jobs in the computer science and engineering industry. There is no single optimal language, since using any given language involves a tradeoff.
- There are also performance tradeoffs between lower level and higher level languages, sacrificing control over hardware and memory for faster, easier, and more readable coding.
ScienceABC - "Why There Are So Many Programming Languages?" - link
Stack Overflow Blog - "Why Are There So Many Programming Languages?" - link
3. Drawbacks of a language you use
- Python is interpreted, not compiled, so it is slower than C, C++, or Java. It is also dynamically typed, so many bugs (like adding a string and an integer) only appear at runtime instead of being caught early.
- There are many times when I am constrained for time, whether on an assignment or in a competition, and small errors like this waste time I don't have to spare.
GeeksforGeeks - "Disadvantages of Python" - link
4. How would you start creating a new language?
- I would first define its purpose and target demographic, identifying why it is needed and who will use it, then establish syntax rules for the language.
- I would use an interpreter, as line-by-line error reporting is, in my opinion, more convenient for writing code, and I would also choose a typing and caching system.
Dr Randy Pausch
Randy Pausch was a professor of Computer Science, Human-Computer Interaction, and Design at Carnegie Mellon University.
- The creator of Alice, a 3D programming environment that teaches coding via storytelling and interactive game building.
- He taught at the University of Virginia (1988 to 1997) before moving to Carnegie Mellon.
- Worked with Adobe and Google.
- Co-founded the Entertainment Technology Center at CMU with Don Marinelli.
- In August 2006, he was diagnosed with pancreatic cancer, and in 2007 found out it was terminal.
5 Points I Loved From Randy's Speech
- The difference in efficiency and societal value of money vs. time management is an issue, especially ironic since time is money.
- His advice to invest in a second monitor, since it increases productivity.
- Time is made by electing not to do something else. The bad thing about doing something of low value isn't the doing itself, it's the loss of time.
- Procrastination is not necessarily indicative of laziness. Doing things at the last minute is much more expensive than doing it just before the last minute.
- No one operates alone anymore, you operate more efficiently with others. Delegation is not dumping, it's granting authority alongside responsibility. If you trust someone to do work, you trust them to use the resources, time, and budget. Delegate, but always do the dirtiest job yourself.