Research
Randy Pausch
-
Randy Pausch was an educator and professor at Carnegie Mellon University who researched human-computer interaction.
-
He was known for being a human-computer interaction researcher, a co-founder of CMU's Entertainment technology Center, being the creator of the Alice software and for his last lecture titled "Last Lecture: Achieving Your Childhood Dreams" along with the book "The Last Lecture" co-authored by Pausch
-
-
Treating time as a commodity as you would money except that you can't earn it
-
Doing things that maximise fun
-
The importance of planning and knowing how to plan (in particular making good to-do lists using the quadrant method)
-
The importance off using calendars to free up much needed space in your mind
-
Doing things close to the deadline is very expensive and very stressful so make up fake deadlines and act as if they are real
Cloud Computing
-
What is cloud computing?
Cloud computing is the access to computing resources that are accessible over the internet and can be hosted by yourself or a third-party
-
Is cloud computing a new technology per se? In other words, what are the unique technology features of cloud computing, if any?
Cloud computing is not a new technology, but it has significantly grown in recent years. This is in part due to the pandemic where many had to work from personal machines. Cloud computing enabled people with lower end machines to access resources that would have been too expensive for a single person or in the case of large companies, it allowed for easier sharing of company resources such as documents or spreadsheets.
-
What are the three major cloud service models?
-
Infrastructer as a Service (IaaS) - provides access to fundamental resources such as compute, storage and networking
-
Platform as a Service (PaaS) - provides access to resources that allow for the development and deployment of software such as websites or cloud-based applications
-
Software as a Service (SaaS) - provides access to applications that are accessed through the cloud rather than being run locally
-
Name at least 3 real-world domains where the application of cloud computing was (or can be) very enabling and effective.
Cloud computing is most notably used in:
-
Creating development and test environments for specific hardware needs
-
Analysing big data through more powerful hardware
-
Cloud storage
-
Backup and recovery of important data
-
Entertainment (on-demand streaming)
-
What is the economic/business model of cloud computing?
Many companies will have a subscription based model for SaaS, meaning you have to pay a set amount per time period (usually monthly or anually). The pricing of PaaS and IaaS is usually dependant on the amount of computing resources used i.e. the price of hosting a website would be dependant on the number of requests handled.
Natural Language Processing
-
Name 3 applications on Natural Language Processing
-
Chatbots
-
autocomplete
-
voice assistants
-
Select three words in your language and for each word try to separate into its internal component. (e.g for English If I chose "unbelievable" I would break it as un-believ(e)-able)
-
disagreement -> dis-agree-ment
-
identification -> identif(y)-ication
-
continuation -> continu(e)-ation
-
Select three sentences in your native language (but please write it in the closest latin transcription). Your sentences should be around 10 words. Translate these sentences to English and indicate which words or small groups of words translate to which words or groups of words in English translation.
-
How many interpretations are there for the following English sentence "Time flies like an arrow". Write each interpretation descriptively?
Most people will unambiguously interpret the statement as "Time passes as fast as the speed of an arrow"
Other ways that the sentence could be interpreted include:
-
You would measure the speed of a fly the same way you would measure the speed of an arrow.
-
You should measure the speed of a fly the same way that you would measure the speed of an arrow.
-
You should measure the speed of "flies that are similar to arrows".
-
Time travels through the air the same way an arrow would.
-
Insects known as "time flies" like arrows.
-
What is the most likely word that follows “The prime”?
The most likely word is "minister".
Theory and Algorithms
-
What is a decision problem?
A problem that has either a yes or no output for any given input ("Decision problems", 2023). An example of a decision problem is "Given a positive integer x, is x even?" because x could either be even or not; there is no other answer. The input for a decision problem could have any number of inputs including an infinite amount.
-
What does it mean for a decision problem to be decidable?
A decision problem is decidable if an algorithm can be employed to obtain the answer in a finite amount of time ("Decision problems", 2023).
-
What is the class P? What is the class NP?
The class P is the class of all decision problems that an algorithm can produce an answer within polynomial time (the time taken grows as a polynomial function of the size of the inputs).
The class NP is the class of all decision problems for which an answer to a given input can be checked by an algorithm within polynomial time ("Decision problems", 2023).
-
What is the intuitive meaning of the “P versus NP” question?
All P class problems are NP problems because if a problem can be solved in polynomial time, the solution can be verified in polynomial time by simply solving the problem. Therefore the class P is a subset of the class NP. The question of "P vs NP" asks whether P = NP, i.e. if a solution to a problem can be verified in polynomial time, it can also be solved in polynomial time ("Decision problems", 2023).
-
If you resolve the P versus NP question, how much richer will you be?
$1 000 000 (Clay Mathematics Institute, n.d.)
Further reading:
References:
Programming Languages
-
Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?
Programming languages give a higher level of abstraction than punch cards allowing programmers to write code easier. Punch cards can also break easily and need to be kept in order. If a stack of punch cards representing a program were to be dropped and scattered, significant amounts of time would need to be used to stack them back in order. It would also take long amounts of time to feed the punch cards into a machine.
Programming languages solve all of these problems by being stored on a magnetic tape which did not have the risk of losing the order of the program and could be read by the computer at much faster speeds. (Scharf, 2021)
-
There are hundreds of different programming languages out there. Why do you think we need so many?
Each programming language can be used for different applications as they were developed for different purposes, and they all have different strengths and weaknesses. For example, when developing mobile apps, one would use Java, Kotlin or Swift but if the task was to develop dynamic web applications, one would most likely use JavaScript and PHP. (Lagutin, 2021)
-
What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.
Python is a slow language compared to lower-level languages, like C or C++, and, while contested whether it is an advantage or disadvantage, Python is a dynamically typed language allowing for more versatility at the expense of a higher risk of errors and bugs. I would prefer Python to be a statically typed language but at the same time, it wouldn't be Python anymore if that were the case.
-
If you were going to create a new programming language, how would you start? What do you need to define?
I would start by identifying features of the language that I would like to include such as whether it is statically or dynamically typed, compiled or interpreted, etc. I would then identify the core features of a programming language such as conditionals, loops, variable assignment and decide what keywords to use and how the syntax will look. You would then have to write a lexer which splits words into tokens that can be parsed by a parser into an abstract syntax tree(AST). The AST is then converted into what LLVM calls the Intermediate Representation(IR). A compiler can take this IR and generate machine code (Wold, 2017).
Further reading:
References:
Security
-
Attack on RasGas
On August 27th 2012, the natural gas company RasGas was hit with a virus that shut down their IT infrastructure. While the attack didn't stop critical operations such as pumping gas it did manage to render all of their computers and servers offline for 3 days (Zetter, 2012). The attack is believed to be the Shamoon virus that also attacked the Saudi Arabian company Aramco, which wipes the drives of infected computers and replaces the data with an image of a burning USA flag according to investigations by Seculert (Zetter, 2012).
-
Hacking of Qatar News Agency
In 2017, the Qatar News Agency was hacked which US intelligence agencies found were tied to the UAE though the country denied the allegations. In the attack, malicious posts containing quotes supposedly said by Qatar's emir were spread on the agency's website aggravating the countries of Saudi Arabia, Egypt and UAE. This attack led to a years long blockade between Qatar and the aforementioned countries (DeYoung & Nakashima, 2023).
Further reading:
References:
Artificial Intelligence and Robotics
-
How do you define AI?
A field of science and engineering that is concerned with making systems that can complete tasks commonly associated with human intelligence. (IBM, n.d.; Google, n.d.)
-
Can you name at least three different sub-fields of AI?
-
Machine Learning
-
Neural Networks
-
Natural Language Processing (Tyagi, 2020)
-
AI has been around since about 70 years so far. Why is it booming right now?
Some of the biggest factors influencing the growth of AI are higher computing power, more data and better algorithms. In recent times, all 3 of these fields have improved leading to massive leaps in what AIs are able to accomplish.
-
Can you name at least three application sectors where robots are being largely employed? What are the reasons?
-
Law enforcement - used in dangerous situations such as bomb refusal, assessing suspicious packages, etc.
-
Manufacturing - robots increase production output and consistency of produced products
-
Medicine - robots are used to aid in surgeries to increase precision
-
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)
-
Object detection
-
Mapping an environment
-
Safety of surrounding people
Further reading:
References: