Hello, World.

Malek Ahmed Abdelfattah

I’m an undergraduate who programs in Python and practices problem solving on LeetCode. This page collects what I took away from six talks on computing, with the sources I used.

Read my résumé See my 4-year academic plan

Programming languages

Talk by Dr. Giselle Reis

  1. Because it is easier to understand, faster, and has more storage. It tells me that as we get more advanced, programming languages tend to be easier, faster, and more efficient.
  2. Every programming language excels in different parts. No programming language has a perfect memory, rapid speed, and ease of use at the same time, so different programming languages are used to serve different purposes.
  3. Python, the programming language I use, has a relatively slow execution speed when compared to other languages. It has late error detection, so the code may run successfully until it reaches the error line, then crash.
  4. I would start with defining the syntax and semantics to visualize the end goal that I am trying to reach.

Decidability and P vs NP

Talk by Dr. Christos

  1. A decision problem is a problem with an answer of yes or no, where you can write an answer for every single input.
  2. That means that for all possible inputs, there exists one algorithm that can produce the correct yes-or-no output.
  3. P problems: P is the set of problems whose solution times are proportional to polynomials involving N’s.
    NP problems: NP (which stands for nondeterministic polynomial time) is the set of problems whose solutions can be verified in polynomial time.
  4. An intuitive explanation could be “If the solution to a problem can be verified in polynomial time, can it be found in polynomial time?”
  5. Solving P = NP would guarantee you 1 million dollars because it is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute, each of which carries a US$1,000,000 prize for the first correct solution. In short, you would be a million dollars richer, probably before taxes.
Sources

Human-computer interaction

Talk by Dr. Amy Melniczuk

  1. Human-Computer Interaction (HCI) is the process through which people operate and engage with computer systems. Some examples of disciplines that contribute to HCI are architecture, cartography, computer and system engineering.
  2. Useful means that the system does what it should. Usable means that it is easy to do it. A fast calculator that performs only single-digit addition is an example of a usable but not useful system.
  3. The control panel for digital washing machines. The person is trying to wash their laundry quickly using certain settings, but the lack of clear instructions and a confusing process for some of the necessary choices make it hard, all for the sake of seeming modern and futuristic. I would suggest adding more buttons whose goals are clear and easy to use.
  4. A prototype is an early version of a product that designers make. It is often not as detailed as the final product. It helps a designer see their new product in real life and test how it works, which shows which parts of the design work well and which don’t. It will not tell you whether a user can actually use the prototype or navigate it without getting confused.
  5. Gesture-based interfaces. They benefit gamers by bringing motion control and touch screens into gaming, and they benefit medical professionals by letting them navigate medical records without touching anything, which avoids contamination. By testing contamination levels in medical sections and observing changes in game sales after these changes, we can determine whether they are helpful or not.
Sources

Distributed systems

Talk by Prof. Hammoud

  1. We split the work and data across many machines that run concurrently. That offers a way to solve problems that are too big, too busy, or too critical to run on one server.
  2. No, because some tasks can only be executed by a single processor, one at a time. These are called sequential. If the sequential fraction of the code is s, the maximum speedup is 1/s.
  3. Yes, using agreement protocols, which are mechanisms that ensure all participating processes reach a consensus on a single decision or state despite potential failures.
  4. By using data centers, which are huge buildings filled with computers called servers. Companies use them to run websites, store applications, process transactions, and much more.
  5. We could build a model that simulates entire ecosystems, or advance so much in medicine that we cure diseases we have not yet discovered how to cure.
Sources

Multimodal AI

Talk by Prof. Bilal Taha

  1. Modality refers to the types of data understandable by AI, similar to the human five senses. AI modalities include visual, textual, audio, sensor data, and others. Unimodal AI systems are specialists in one type of data, while multimodal AI systems can process diverse types of data.
  2. It is a learning method that combines different types of data formats, including visual, audio, text, and hands-on practice, to assist learning.
  3. One major application is in healthcare. Multimodal AI analyzes MRI images, pathology slides, genetic markers, and handwritten notes all at once.
  4. Embodied AI refers to the integration of AI into physical systems, enabling them to interact with the physical world. These systems can include humanoid robots, autonomous vehicles, and others.
  5. Multimodal learning enhances the cognitive and interactive capabilities of physical systems by providing deeper contextual understanding, improving communication, and enabling predictive capabilities.
Sources

Artificial intelligence and robotics

Talk by Prof. Gianni

  1. Artificial intelligence (AI) is technology that enables computers and machines to simulate human learning, comprehension, problem solving, decision making, creativity, and autonomy.
  2. Computer vision, robotics, and language processing.
  3. Because when deep learning took off in 2012, AI systems began recognizing images, understanding speech, and performing tasks in ways similar to humans, unlike ever before. The real explosion happened in 2022, when OpenAI released ChatGPT, which could interact with people.
  4. Three industries that use robotics:
    • Aerospace: The industry frequently uses drones, also known as unmanned aerial vehicles (UAVs), and robotic arms.
    • Healthcare: Surgical, rehabilitation, and autonomous robots.
    • Logistics: Autonomous mobile robots (AMRs), automated storage and retrieval systems (AS/RS), and storage robots.
  5. Limited human judgment, technical failures (such as power shortages, connectivity issues, or software glitches), and the need for maintenance and upgrades.
Sources