Questions for future Presentations

These are my answers

Presentation 1: Giselle 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?
  2. Punch cards were slow, error-prone and very limited in what they can do and also very hard to use and understand. In comparison to programming languages which are more user-friendly and easier to understand and use, they are also more powerful and can do a lot more. This shows us that the purpose of programming languages is to make programming easier, faster and more efficient.
  3. There are hundreds of different programming languages out there. Why do you think we need so many?
  4. Each programming has a different purpose and is designed to solve different problems. Some are better for things other programming languages are not. Plus every programming language has its own strenghts and weaknesses. So we need multiple programming languages to be able to choose the right one for each task and to be able to solve different problems.
  5. What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.
  6. From what I read and understood, Python is a very good programming language, but it has some drawbacks. One of them is that it is not the fastest programming language out there, which can be a problem for some applications that require high performance. Another drawback is that it is not the best programming language for mobile development, which can be a problem for some developers who want to create mobile applications. I would like it to be faster and more efficient. But this is not needed because that is why we have a lot of programming languages, each has their strenghts and weaknesses.
  7. If you were going to create a new programming language, how would you start? What do you need to define?
  8. I would start by defining the purpose of the programming language and what I will use it for, then the syntax and after that multiple things I still don't know for now.
  9. Links:
  10. https://spectrum.ieee.org/from-punch-cards-to-python ......... https://stackoverflow.blog/2015/07/29/why-are-there-so-many-programming-languages/ ......... https://www.python.org/doc/essays/comparisons/

Presentation 2: Christos Kapoutsis - Theory of Computation

  1. What is a decision problem?
  2. A decision problem is a problem where the answer can only be Yes or No. For example, “Is 17 a prime number?” is a decision problem because the answer is either Yes or No. Similarly, “Does this graph contain a path from A to B?” is also a decision problem.
  3. What does it mean for a decision problem to be decidable?
  4. A decision problem is decidable if there is an algorithm that can correctly answer Yes or No for every possible input and always eventually stop. In other words, there is a guaranteed method for solving the problem that never gets stuck running forever.
  5. What is the class P? What is the class NP?
  6. The class P consists of decision problems that can be solved efficiently, meaning there is an algorithm that solves them in polynomial time, such as O(n), O(n^2), or O(n^3). The class NP consists of decision problems for which a proposed solution can be verified efficiently in polynomial time. Therefore, P is roughly about problems that can be solved quickly, while NP is about problems whose solutions can be checked quickly.
  7. What is the intuitive meaning of the “P versus NP” question?
  8. The P versus NP question asks whether every problem whose solution can be checked quickly can also be solved quickly. In other words, it asks whether finding a solution is fundamentally harder than verifying a solution. Mathematicians and computer scientists currently do not know whether P = NP or P != NP, although most believe that P != NP
  9. If you resolve the P versus NP question, how much richer will you be?
  10. If you correctly resolve the P versus NP problem, you could receive $1 million, because it is one of the Clay Mathematics Institute’s Millennium Prize Problems. You would also become very famous in mathematics and computer science, assuming your proof was rigorously verified and accepted.
  11. Links:
  12. https://www.claymath.org/millennium/p-vs-np/ ......... https://www.claymath.org/wp-content/uploads/2022/02/MPPc.pdf ......... https://plato.stanford.edu/entries/computability/

Presentation 3: Amy Melniczuk - Human Computer Interaction

  1. What is human-computer interaction (HCI), and which disciplines contribute to it?
  2. HCI is the study of how people interact with computers and how to design systems that fit the way people actually think and behave. It is not a single field, because the subject is half machine and half human. Carnegie Mellon's HCI Institute says its founding faculty came from computer science, psychology, design and technology. Human factors, sociology, accessibility studies, statistics and ethics also contribute.
  3. 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?
  4. Jakob Nielsen defines utility as whether the system has the features you need, and usability as how easy and pleasant those features are to use. Usefulness is both together. My university's course catalogue app is usable but not useful: the search is fast and I have never been confused by it, but it cannot actually enrol me in a class, which is the task I actually have.
  5. 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.
  6. A cooker with four burners arranged in a square but four control knobs arranged in a straight line. The person only wants to turn on the back-left burner. The problem is the mismatched layout: there is no connection between where a knob sits and which burner it controls, so you either memorise it or guess wrong. This forces recall when recognition would do. The improvement is to arrange the knobs in the same square shape as the burners, so the position of the knob tells you which burner it controls.
  7. 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?
  8. A prototype is an early version of a design built to be tested, described by Nielsen Norman Group as a hypothesis or candidate solution. It can be rough paper sketches or a clickable near-final version. Testing one shows where real people get stuck before anything is built. Asking "Do you like it?" would not tell you whether they can actually complete the task. Nielsen found that stated preference and measured performance correlate only 0.44.
  9. 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?
  10. KIBO is a tangible robotics kit from the DevTech Research Group at Boston College. Children program it with no screen: they put wooden blocks in order and the robot scans their barcodes to run the program. It is made for ages 4 to 7, so it benefits children who cannot read or type yet, and classrooms that limit screen time. To test it, I would compare KIBO classrooms against ones using a screen tool like ScratchJr, measuring both before and after with TechCheck, the computational thinking assessment the same group developed.
  11. Links:
  12. https://www.nngroup.com/articles/ten-usability-heuristics/ ......... https://www.nngroup.com/articles/usability-101-introduction-to-usability/ ......... https://www.nngroup.com/articles/first-rule-of-usability-dont-listen-to-users/ ......... https://www.nngroup.com/articles/ux-prototype-hi-lo-fidelity/ ......... https://www.w3.org/WAI/fundamentals/accessibility-intro/ ......... https://hcii.cmu.edu/research ......... https://sites.bc.edu/devtech/kibo-robot/

Presentation 4: Prof. Hammoud - Distributed Systems

When One Computer Is Not Enough: The Fascinating World of Distributed Systems

  1. What happens when the problem you want to solve becomes too big for any one computer?
  2. You cut the problem into pieces, give a piece to each computer and put the answers back together at the end, which is basically what a distributed system is. But then you get new problems you did not have before, like the computers having to talk over a network and some of them crashing while the work is still going.
  3. Suppose 1,000 computers work together. Do you now have one computer that is 1,000 times more powerful? Why or why not?
  4. No, you get a lot more power but never 1,000 times more, because a lot of the time is spent sending data between the computers and some parts cannot be split at all. There is something called Amdahl's law that says the part you cannot split limits how fast you can go, no matter how many computers you add.
  5. Can 1,000 computers agree on something if some of them fail or even lie?
  6. If they just crash it is fine, algorithms like Raft and Paxos still work as long as more than half are alive. Lying is much worse because a computer can say one thing to you and something else to someone else, and from what I understood you need more than two thirds of them to be honest for that to work.
  7. When you use ChatGPT, Google, Instagram, or an online game, where is the computation actually happening?
  8. Almost nothing happens on your phone, it just sends the request and a huge data centre full of computers does the real work and sends the answer back in less than a second. For photos and videos there is usually a machine closer to you keeping a copy, which is why they open instantly.
  9. If you could make millions of computers behave like one dependable machine, what could humanity build that we cannot build today?
  10. We could simulate things that are too big to simulate right now, like the climate properly, how proteins fold, or how a medicine acts in the body before testing it on a real person. What I find interesting is that we already understand these problems, we just do not have the computing power, so it is the computers holding us back and not the science.
  11. Links:
  12. https://raft.github.io/ ......... https://en.wikipedia.org/wiki/Amdahl%27s_law ......... https://lamport.azurewebsites.net/pubs/byz.pdf

Presentation 5: Bilal Taha - Multimodal Learning and Embodied AI

  1. What is a modality in AI? Give three examples of different modalities.
  2. A modality is just the type of information the model is getting, basically the equivalent of one of our senses. Three examples are text, images and audio.
  3. What is multimodal learning?
  4. It is when a model learns from more than one modality at the same time instead of only one. The idea is that the modalities fill each other's gaps, like how hearing someone and seeing their face tells you more than only hearing them.
  5. Where is multimodal learning used? Can you find one real application and identify the types of information it combines?
  6. Self-driving cars use it, for example the Waymo Driver. It combines camera images, lidar and radar, because cameras see colours and signs but lidar and radar are the ones that measure distance properly and still work at night or in bad weather.
  7. What is embodied AI?
  8. It is AI that has a body and exists in a real physical place, like a robot, so it has to perceive and actually move and act. What makes it different is that it learns by interacting with the world instead of only reading a dataset.
  9. How are multimodal learning and embodied AI connected?
  10. A robot in the real world gets many kinds of information at once, like what it sees, what it hears and where its own body is, so it needs multimodal learning to combine all of that into one understanding. So multimodal learning is kind of the tool that makes embodied AI possible.
  11. Links:
  12. https://en.wikipedia.org/wiki/Multimodal_learning ......... https://waymo.com/waymo-driver/ ......... https://embodied-ai.org/

Presentation 6: Gianni Di Caro - Robotics and AI

  1. How do you define AI?
  2. For me AI is getting a machine to do things that normally need a human brain, like understanding what it sees, learning from examples and deciding what to do next. The part I find interesting is that the definition keeps moving, because once we figure out how to do something we stop calling it AI.
  3. Can you name at least three different sub-fields of AI?
  4. Machine learning, computer vision and natural language processing. Robotics and planning are also big ones, and most real systems end up using a few of them together.
  5. AI has been around for about 70 years so far. Why is it booming right now?
  6. Because three things finally came together at the same time: a huge amount of data from the internet, hardware like GPUs that can actually handle it, and better algorithms like deep learning. A lot of the ideas are actually old, we just did not have the computing power to run them back then.
  7. Can you name at least three application sectors where robots are being widely employed? What are the reasons?
  8. Car factories, warehouses and hospitals for surgery, and I would add agriculture. The reasons are mostly the same everywhere: the task is repetitive or dangerous for a human, or it needs a precision and a consistency that we cannot keep up for hours.
  9. 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)
  10. First the battery, because 24h means it has to go charge itself without leaving a part of the mall unwatched. Then the crowds and the fact that the place changes every day with new kiosks and barriers, and finally all the glass and shiny floors in a mall that confuse the sensors, plus it has to work at night when the lighting is completely different.
  11. Links:
  12. https://en.wikipedia.org/wiki/Artificial_intelligence ......... https://aiindex.stanford.edu/report/ ......... https://ifr.org/robot-history