Eman-Ansar’s Website

Hello world!

                                             

 

I am currently working on using technology without getting frustrated😊

 

 

Email: eansar@andrew.cmu.edu

Major: Computer Science

Class Of 2025

 

·       GitHub

·       LeetCode

·       LinkeldIn

·       My Calendar

·       My Resume

·       My Course Plan

 

  

 

Assignment #01:

 

01)                  Who is Randy Pausch and what is he known for?

 

Randy Pausch was a Computer Science professor at Carnegie Mellon University in Pittsburgh, Pennsylvania. He is renowned for his Last Lecture which he gave on September 18,2007, after he was diagnosed with pancreatic cancer when the doctors had predicted that he had, “three to six months of good health left”. Even though it was supposedly meant to be a “Last Lecture” but for him it was real – and so he poured his heart out in the lecture, which due to his sincerity captured millions of hearts.

 

The talk I will be referring to in the passage below, however, is the one he gave in the University of Virginia in November 2007.

02)                  5 points that I liked in his talk:

 

·      Time and money are equitable. Start think about time and money as if they are the same thing. I truly resonate with this because a lot of time people take free time for-granted and tend to waste it on stuff that will not benefit them in any way.

·      If you’re not going to have fun, why do it, right? The end is maximizing fun. This truly sheds light onto the fact that life isn’t meant to be meaningless, and if that what yours feel like- there’s a need for change.

·      Multi-tasking: “And for an hour a day I ride my bike…[t]his is the time I am spending on the phone, getting work done”

·      When someone gets a thank-you note, they will remember you. Even though, gratitude is something that can go beyond cards.

·      You do not find time for important things, you make it, and you make time by electing not to do something else.

 

 

Lecture#01:

 

 

01)What is a decision problem?

A decision problem is a set of problems that can be answered as a “yes” or “no” depending on the input values. It decides if the following problem is provable or not.

 

02)What does it mean for the decision problem to be decidable?

A decision problem that can be solved by an algorithm that halts on all inputs in a finite number of steps.

 

03)What is the class P? What is the class NP?

P stands for polynomial, and it contains the set of problems that are easily verifiable as well as solvable by a deterministic Turing machine using a polynomial amount of computation time.

NP stands for nondeterministic polynomial time, and it contains the set of problems are easy to verify in polynomial time but mostly take exponential time to solve (e.g., sudoku)

 

04)What is the intuitive meaning of the “P versus the NP” question?

The P versus NP problem is a major unsolved problem in computer science. It asks whether every problem whose solution can be quickly verified can also be solved quickly. E.g., sudoku it is easier to verify the answer but takes time to solve it especially if the puzzle becomes bigger, however, verifying it remains relatively easier.

 

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

At least a million dollar richer!

 

Reference List:

(n.d.). decidable problem. https://xlinux.nist.gov/dads/HTML/decidableProblem.html#:~:text=(definition),is%20called%20a%20decidable%20language.

 

 

Lecture 02:

 

Research two major computer security incidents that have happened in Qatar.  For each, describe....

 

01)What did attackers break into?

A massive collection of documents from Qatar National Bank, based in Doha, was leaked and posted online to the whistleblower site Cryptome on April 26. The leaked data, which totals 1.4 GBs, apparently includes internal corporate files and sensitive financial data for QNB's customers.

Another one that was hacked was the Qatar News Agency (QNA) website which had been hacked by an unknown entity.

 

02)How did the attackers break into it?

Cryotome offered no insights into how the data was obtained, for example, if it was via an external hack attack, or an inside job. For QNA, the ministry said, “the investigation team confirmed that the hacking operation used high technology and innovative methods by exploiting a cyber-bug on the website of Qatar News Agency. The investigation team was able to identify the sources through which the cyber-attack was carried out”. The sources, however, weren’t specified.

 

03)Who was impacted?

The leaked data, which totals 1.4 GBs, apparently includes internal corporate files and sensitive financial data for QNB's customers. For QNA, it was a false statement attributed to His Highness [had] been published,” a government statement said. For QNA, there were a lot of disruptions with the neighboring countries, where the latter ended up blocking some of Qatari sites.

 

04)How was it investigated?

There were no investigations but the bank released a statement April 26 that references "social media speculation in regard to an alleged data breach," saying that "it is QNB Group policy not to comment on reports circulated via social media." For QNA, an FBI team had been in Doha for the past week after the Qatari government asked the United States for help following a security breach by hackers last month who posted fake remarks on its official media platform, Qatar News Agency (QNA).Two other unnamed countries have also been speculated in helping Qatar.

 

Reference List:

https://www.bankinfosecurity.com/qatar-national-bank-suffers-massive-breach-a-9068

https://www.aljazeera.com/news/2017/6/7/qatar-reveals-preliminary-results-of-qna-hacking-probe

 

 

Lecture#03:

 

01)Name 3 applications on Natural Language Processing.

·      Target advertising: it’s a form of advertising where adds are catered according to the user’s online activity. It’s based mostly on keyword matching, where the users who search for similar keywords are shown relevant adds.

·      Voice Assistants: these rely on not only speech recognition but also have the power to understand the syntax, semantics, and the pragmatics of the language.

·      Email Filtering: where your emails get filtered into either social, primary or spam etc. This saves us a lot of time and relies on text classifications, which is a form of natural language processing.

 

02)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).

بر-یا-نی۔

 

مو-ٹر سا-ئ-کل

 

کر-ا-چی

 

 

03)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)

Main parhna pasand krti hoon. == I like to study.

Uss Baagh mei bohot pyaaray darakht hain ==That Garden has many beautiful trees.

Mujhe khana khana pasand hai. == I like to eat food.

 

04)Indicate which words or small groups of words translate to which words or groups of words in English translation.

Main = I

Bagh = Garden

Pyaaray = beautiful

Darakht = trees

 

05)How many interpretations are there for the following English sentence "Time flies like an arrow". Write each interpretation descriptively?

First interpretation would be considering the word time flies, which is quite common, and it means “time passes quickly”. Hence, the overall sentence would mean that “Time passes quickly, as an arrow flies quickly through the air”.

However, the ambiguity is because of the sentence which mostly follows it, i.e., “Fruits flies like a banana”. Here it might mean that you should time the speed of flies in the same manner as you would time the speed of an arrow.

 

 

Reference List:

https://www.analyticsvidhya.com/blog/2020/07/top-10-applications-of-natural-language-processing-nlp/

https://ell.stackexchange.com/questions/7/how-would-a-native-speaker-understand-time-flies-like-an-arrow

 

 

Lecture #04:

 

01)Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?

The main reason behind this swift switch to programming languages, is the inefficiency of punching cards. For example, a punch card can store about 80 characters, and a stack of cards holds 2000 cards. To scale, a small town would need approximately 15 exabytes (2^60 bytes) of data, which has a depth of 4.5 kilometers. Hence, the main reason was their long density.

 

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

According to Wikipedia, there are approximately 700 different programming languages but why do we need so many? The main reason is because different languages were made by different people, who had different objectives and so they catered to their needs. Some languages are better suited for certain tasks, however, most of the syntax and semantics are similar, so its easier to learn if you have mastered a few.

 

03)What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.

Python is slow-speed language because of its line-by-line execution of code, thus its not well-suited for applications where speed is the key. Secondly, it is prone to Runtime errors, because of which the python programmers need to do thorough testing.

 

 

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

I need to define its execution paradigm, static or dynamic typing, performance or readability, its semantics and syntax. I will need to decide if I want it to be based on already existing languages and what platform we are using. And then we need to build a compiler. The most important aspect, however, is to get started. More detailed answer can be found here, https://tomassetti.me/how-to-create-programming-language/ .

 

 

Reference List:

https://what-if.xkcd.com/63/

https://www.hunterbusinessschool.edu/5-reasons-to-learn-multiple-programming-languages/

https://techvidvan.com/tutorials/python-advantages-and-disadvantages/

https://tomassetti.me/how-to-create-programming-language/

 

 

Lecture #05:

 

01)How do you define AI?

It’s a branch of computer science that relies on simulating human intelligence to produce machines that can perform tasks that require thinking like a human. As the word artificial implies, it is the demonstration of intelligence by robots/machine to perform tasks that are commonly associated with intelligent beings(humans).

 

03)Can you name at least three different sub-fields of AI?

a) Machine Learning

b) Speech Recognition

c) Robotics

 

03)AI has been around since about 70 years so far. Why is it booming right now?

AI is much larger than before because of the availability of good infrastructure speed, faster hardware, and accessibility of expensive super computers. The huge reduction in the cost and an increase in the generation of reliable data has led to the surgency of AI.

 

04)Can you name at least three application sectors where robots are being largely employed? What are the reasons? 

a) Health Care: they make such delicate tasks much more efficient and allow for minimal invasive procedures in surgeries, limiting the size and number of incisions.

b) Manufacturing: they lower the production costs all while increasing the efficiency and quality of products.

c) Agriculture: growing quality food is a tedious work, hence why robots are taking over this field too.

 

05)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)

Robots are not good at interpreting human behavior unlike humans, who are more likely to sense something is off, whereas a robot might not. A robot might not be aware of what is considered immoral so is less likely to detect suspicious behavior. Thirdly, a robot might be unable to hear and sense any verbal cues that a human can.

 

 

Reference List:

https://www.britannica.com/technology/artificial-intelligence

https://www.cs.bham.ac.uk/~jxb/IAI/w2.pdf

https://onlinemasters.ohio.edu/blog/5-industries-utilizing-robotics/

 

 

 Lecture #06:

 

01)What is the difference between a microcontroller and microprocessor?

A MCU (Microcontroller Unit) is a single Integrated Chip (a set of electronic circuits on one small flat piece semiconductor material) which is used for tasks such as computers, and power tools. These are the heart of the embedded systems. In a nutshell, they gather information, process it, and then produce a reaction. A microprocessor is the heart of the computer system. It’s an electronic component which is carries out millions of instructions that are described by the computer systems.

 

02)What are Realtime systems?

Real time systems are bounded by time constraints, where if the processing fails take more time than the constraint then the system has failed. They are meant to process data as it comes in, without any buffer delays. These delays are measured in short increments of time, such as tenth of seconds.

 

03)What is a control system?

These systems provide desired response by controlling the output. The output is varied depending on the input. This is mostly done by using control loops. They mostly rely on a microprocessor which needs a control program to handle data from sensors. There are two types of control systems:

·      Open loop control systems (non-feedback control systems)

·      Closed loop control systems (feedback control systems)

 

04)What are intelligent tutoring Systems?

These are computer systems that mostly rely on AI technology. These are meant to provide personalized feedback, tailormade problems and appropriately selected ways of teaching depending on the learner, all without any human intervention.

 

 

Reference List:

https://www.eletimes.com/microprocessor-vs-microcontroller-what-is-the-difference

https://en.wikipedia.org/wiki/Real-time_operating_system

https://www.sciencedirect.com/topics/psychology/intelligent-tutoring-system