# Randy Pausch's assignment

## NPvsN problems

A decision problem is a yes-or-no question on specified sets of inputs. A decision problem is called decidable if there is a decision procedure; otherwise, it is called undecidable. And a decision procedure (or decision algorithm) of a given decision problem is an effective procedure that determines the answer of the decision problem for every value of the parameters in the decision problem. A complexity class is the set of all of the computational problems which can be solved using a certain amount of a certain computational resource. The complexity class P (quickly solvable) is the set of decision problems that can be solved by a (deterministic) Turing machine in polynomial time. This class corresponds to an intuitive idea of the problems which can be effectively solved in the worst cases. A Turing machine has potentially infinite workspace so that it can process arbitrarily large inputs, e.g., multiply two huge numbers, but it can only read or write a bounded amount of information, i.e., one symbol, per step. The complexity class NP (quickly checkable) is the set of decision problems solvable in polynomial time by a non-deterministic Turing machine. A non-deterministic Turing machine is a theoretical model of computation. It is used in thought experiments to examine the abilities and limitations of computers. P⊆NP⊆PSPACE⊆EXPTIME The P versus NP problem is a major unsolved problem in computer science. It asks whether every problem whose solution can be quickly verified (technically, verified in polynomial time) can also be solved quickly (again, in polynomial time). https://www.youtube.com/watch?v=YX40hbAHx3s 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. The first workable prototype of the Internet came in the late 1960s with the creation of ARPANET, or the Advanced Research Projects Agency Network. Sources: https://en.wikipedia.org/ https://plato.stanford.edu/entries/computability/ https://www.newworldencyclopedia.org/entry/Decision_problem https://www.history.com/news/who-invented-the-internet

## Prof. Giselle Programming Languages Talk

What are programming languages for? "A programming language is a computer language engineered to create a standard form of commands. These commands can be interpreted into a code understood by a machine. Programs are created through programming languages to control the behavior and output of a machine through accurate algorithms, similar to the human communication process." https://www.techopedia.com/definition/24815/programming-language. How do we translate solutions to computer programs? We use programming languages. What are the limitations? There are six important variables in any decision to use a computer for translation: speed, subject matter, desired level of accuracy, consistency of translation, volume, and expense,. These six determinants can in some cases be merged harmoniously together in a single task, but they will at least as frequently tend to clash. http://www.seasite.niu.edu/trans/articles/Limitations%20of%20Computers%20as%20Translation%20ToolsSource.htm. How many languages are there? There are over 500 languages out there, maybe more. http://www.digibarn.com/collections/posters/tongues/ComputerLanguagesChart.png. What does this number tell you ? It shows the expononential increase of reliance on computers. https://en.wikipedia.org/wiki/Category:Programming_languages. Further resources: https://www.youtube.com/watch?v=iH4JJuoHQHc. https://www.computerscience.org/resources/computer-programming-languages/.

# Resume

## Curriculun Vitae

High school: Groupe Pedagogique Alpha. University: Carnegie Mellon University in Qatar. Work experience : none. Languages with proficiency: English, French, Arabic. Nationality: Moroccan. Current country : Qatar. Email : ntiyal@andrew.cmu.edu. Phone : +97470167837. Major : Computer science. Clubs: TBP, Basketball, MUN, Doha Debate.