Randy Pausch’s Time Management Lecture Summary and Notes:

Who was Randy Pausch? What did he do?:

Randy Pausch was a professor in CMU’s department of Computer Science. He was diagnosed with end-stage pancreatic cancer. When researching a bit more about his life, I discovered that he was the creator of Alice (an educational block-based programming environment for creating 3D animations (S, n.d.) ). His lecture was aimed at giving the audience concrete advice on how to make the most out of their limited time.

Key Concepts:

Key Actions:

5 things I found interesting:

  1. The concept of a collective time famine
  2. The introduction of a time journal as a means of tracking how I am spending my time.
  3. The 80/20 rule
  4. Treating time as a form of currency and budgeting it the same way.
  5. Considering the opportunity cost before taking up any new tasks.

References:

S, P. (n.d.). Randy Pausch Lecture on Time Management (Transcript). The Singju Post. https://singjupost.com/randy-pausch-lecture-time-management-transcript/


Research Updates

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. The use of punch cards to write code came with various disadvantages including but not limited to:

    The rise of programming languages provided a solution to these problems. Ultimately, the purpose of programming languages was making the programming process more efficient by making it easier for humans to write and store their code.

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

  4. There are hundreds of problems that we need to code solutions for; therefore, we need various programming languages, each designed to specifically address each of these problems. For example, when you need to manipulate and analyze data you would use SQL and R, languages designed specifically to handle analyzing large amounts of data. On the other hand, in web development you would choose a versatile language that can be used for interactivity and animations such as Javascript.

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

  6. Python’s main drawback is its execution speed. Since python isn’t pre-compiled, its execution time is higher relative to other languages. This drawback is emphasized in tasks where you need low-latency and quick execution (such as in animations and video games). It would be better if python’s interpreter can be optimized for faster code execution.

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

References:

https://medium.com/dataform/sql-vs-r-which-to-use-for-data-analysis-5bac46f91610

https://www.researchgate.net/publication/383942383_Punch_Card_Technology_Data_Storage_and_Processing_in_Early_Computing

https://www.coursera.org/articles/what-is-javascript-used-for

https://www.geeksforgeeks.org/cpp/advantages-and-disadvantages-of-cpp/

https://drewdevault.com/blog/How-to-design-a-new-programming-language/

Christos Kapoutsis - Theory of Computation

  1. What is a decision problem?

  2. A decision problem is a task where a given input is evaluated based on whether or not a property is present. The solution is always one of two outputs, either true or false.

  3. What does it mean for a decision problem to be decidable?

  4. A decision problem is decidable when it has a solution that can be calculated by an algorithm in a finite amount of time

  5. What is the class P? What is the class NP?

  6. Class P and NP are used to classify a problem's complexity. The P class is the class of problems that can be solved using deterministiic machines(a machine that returns the same output for the same input such as our computers) in polynomial time. P problems are usually easy to compute. NP problems ,on the other hand, are ones that can only be solved by non-deterministic machines in polynomial time. This makes them hard to compute but easy to verify.

  7. What is the intuitive meaning of the “P versus NP” question?

  8. P is the set of all problems whose solution can be computed easily. NP is the set of all problems whose solutions can be easily verified. NP vs P asks if NP problem's solutions can be easily verfied then can they also be calculated in polynomial time by deterministic machines.

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

  10. One Million dollars richer

References:

https://simran-tinani.medium.com/decision-problems-decidability-verifiability-and-complexity-classes-79336746cbbd

https://concurrent-rt.com/redhawk/what-is-deterministic-computing/

https://www.geeksforgeeks.org/dsa/types-of-complexity-classes-p-np-conp-np-hard-and-np-complete/

https://news.mit.edu/2009/explainer-pnp

Amy Melniczuk - Human Computer Interaction

  1. What is human-computer interaction (HCI), and which disciplines contribute to it?

  2. HCI is a field that aims to improve the interactions between humans and computers/machines. It combines various disciplines including computer science, psychology, design, and social science

  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. A usable system is one that is easy to use and intuitive to navigate. On the other hand, a useful system is one that actually serves a meaningful function/purpose. For example, let's say you want to build a volume controller. You can decide to make a single button which you click and it gives you a random volume. This system is usable. All you need to do is click a button in order to change the volume. However, this system is utterly useless as it just gives random volumes and gives you no control over the actual value, hence rendering it useless.

  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. One everyday interface that is confusing to use is the dorm's washing machine's keypad. A person using the washing machine would want to pick an appropriate cycle for the type of clothes they are washing; however, a new resident is hindered by the buttons that are only labeled with random symbols. An improvement would be to properly label the different buttons to indicate the appropriate cycles.

  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 initial model that is made to test the product's functionality and design before its released to the masses. Testing a prototype with users provides the designer with feedback that would allow them to fix any problems that they might have not noticed and ensure that the launched product is actually functional and useful for potential buyers. Asking "Do you like it?" often prompts a yes or no answer which doesn't pinpoint areas of strengths nor of weaknesses.

  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. A voice control feature on mobile devices. This feature would benefit the visually-impaired by allowing them to utilize their phones without needing to see the interface. In order to test whether this is a beneficial feature or not, I would utilize the accessibility evaluation tools + user feedback through surveys.

References:

https://blog.uxtweak.com/usability-vs-usefulness/

https://www.getsmarter.com/blog/what-is-human-computer-interaction-hci/

https://www.coursera.org/articles/human-computer-interaction

https://uxdesign.cc/5-ways-to-improve-your-prototype-testing-3cce3465a7d5

https://www.w3.org/WAI/test-evaluate/

Links

https://github.com/Nourhan-Mohammed

https://leetcode.com/u/nourhan953/