This is Lina's website

Who is Randy Pausch and what was he known for?

Randy was famous for his last lecture after getting diagnosed with terminal cancer, which was a talk called "Really Achieving Your Childhood Dreams" that was later turned into a bestselling book.

5 things I took from his talk about time management

We should think of time as money. He says that time and money are very equatable. A good strategy he gives is to give your time a value like a salary in order to appreciate it.

He splits tasks into four quadrants: due soon and not due soon, important and not important. He states that the one you should start with is important and due soon.

He says that the end goal in life is to maximize fun, which I mostly agree with.

He said to find your productive time where you schedule meetings and do mundane things. And this time is the same everyday.

There is a 4-5 minute recovery after each interruption in your work, meaning that 5 interruptions wastes a whole hour. This shows us how important it is to remove disruptions while working.

Programming Languages Research

Why did we move from punch cards to programming languages?

We moved to programming languages from punch cards to make writing and fixing computer instructions faster, easier, and less prone to physical damage. This tells me that programming languages are made to make human's jobs faster, as it's easier to work with understandable language than binary, which is only understood by computers. This makes the process of writing much faster than it used to be before.

Fixing a bug often required repunching an entire card, which took much longer. So programming languages make coding more efficient.

Computer programming in the punched card era - Wikipedia

Why are there hundreds of programming languages?

Different programming tools are required for different tasks. Programming languages often have a trade-off between how easily a human can read and write the code and how fast the computer can run it. So it depends on the task and its requirements.

There are some "high-level languages" that are easily understandable by humans but not by computers, while others like machine code are more suitable for computers. Both have their advantages and disadvantages, as high-level languages are easier to debug and update, while low-level languages have more control over a computer's hardware.

Why are there so many programming languages? by Stack Overflow blog

What are some drawbacks of a programming language you use?

Python is an interpreted language, so it runs slower than low-level compiled languages. This drawback doesn't affect me personally, as I'm not required to write complex programs that would take long to run.

A drawback that does affect me is that Python stops the code from running if there is even a small syntax error. Python is known for having specific requirements like indentation that make debugging more frustrating.

If you were going to create a new programming language, how would you start?

I would first look at other programming languages and study how they work. I would define the grammar structure, data types, and execution behaviour. I would make the syntax as close as possible to English, and I would make the rules as understandable as possible.

I would make it highlight an error but still run the rest of the program as often as possible.

I would also have all libraries included, so one doesn't have to import a library every time they need to use it.

YouTube video on making your own programming language by Computerphile

Lina's GitHub account

Here

Lina's Leet account

Here

HCI Research Questions

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

Human-computer interaction (HCI) is the study, design, and evaluation of how people use and engage with computer systems and digital technology. Some disciplines that contribute to it are: AI, accessible technology, healthcare, VR. https://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction https://www.hcii.cmu.edu/research

2. 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?

A system being useful means that it can solve real world problems or accomplish a meaningful goal. Usable means that it is easy to use and operate regardless of whether it was needed. For example VR technology is usable but it is not useful in the sense that it is not addressing any previous issues. It is pleasant to use and is usable but its not useful.

3. 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.

An example would be a microwave that has unclear buttons to control the timing. For example a button with +30. Its more difficult to use than one that would let you type out the exact numbers. To improve it, make the user be able to input the time needed and have a clear start button.

4. What is a prototype, and how can testing one with users help a designer? What is one thing that asks "Do you like it?" would not tell you?

They can see the things the users like and the things that make their experience inconvenient. The developers can then remove and alter the product. Asking "do you like it" does not help as the developers won't know what exactly they need to change. It's better to ask specific questions on which aspects the users like and dislike.

5. 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?

Allowing things like speech to text or text to speech as inputs and outputs helps elderly people, people in rural areas who aren't familiar with newer technology, and people with disabilities who are not able to type or read. https://www.w3.org/WAI/fundamentals/accessibility-intro/