CS 458/558 - Problem Set 3

Assigned:Monday March 25
Deadline:Monday April 22, 11:59pm

The Teleology of Technology

Some decision making domains are unstructured or even ill-defined. For most people, deciding what to wear or eat or what movie to see or even whom to date are such domains. While there may be many wrong answers for these areas, it is often the case that there is no demonstrably right answer. These domains have a lot in common with politics - the VOTE domain - in that they involve subjective choices, and are often influenced by relationships or history, rather than by clear facts.

Some decision making domains, like medicine or finance or computer science, often have actual right answers. There are facts. There are clear outcomes. Even so, in a domain like medicine, it is not always the case that the standard practice is right for every patient. For example, something as common as a blood transfusion may not be appropriate for a patient who has religious objections to the procedure. Some people would rather die than compromise their convictions.

This is VOTE territory.

We pose a seemingly simple technology decision: what kind of computer should I buy? A Mac or Windows PC or Linux machine? How much memory? How big a screen? Desktop or laptop or notebook or tablet? How much am I willing to pay?

Implicit in the technical choices are the set of goals that the user wants to achieve. Most people don't buy a computer just for sake of owning a computer. They want to do stuff with it - surf the internet, edit videos, use facebook or zoom, run a business, create music. You get the idea.

The point is that there is a teleology to technology. There is a design and purpose to the many features of computers. I don't want to get all theological here - I am not arguing that your iPhone is proof of the existence of God. However, I am not arguing against that point of view. The point is that in making decisions about technology, you are on firmer ground than most political decisions. Technology, by God, has a demonstrable purpose and can help users achieve their goals.

Building on the classes in the Goals notebook, create a device class, which has instances of a features class. Then create various instances of the agent class, each of which has a set of feature stances, e.g., PRO or CON, and with an importance level. You might want to add a level of indirection, in which feature stances are inferred from goal stances. For example, I want to play video games, therefore I need to have a high resolution monitor, fast CPU, lots of memory, and a high-bandwidth internet connection.

Next write the following procedures:

Steve Jobs famously said "It's really hard to design products by focus groups. A lot of times, people don't know what they want until you show it to them.”

All three procedures must provide explanations. As in VOTE, the person has a set of preferences, a collection of relationships, and possibly a history of prior decisions. You may modify the agent class.

Hard as it may be for a computer science person to accept, it is possible that the recommendation is for the person not to get any computer. Again, there needs to be an explanation. As a rule of thumb, the explanation should lead with the most important reasons.

You may wish to incorporate qualitative arithmetic into the program, given that you have to deal with quantities such as price, memory size, screen size, disk space, etc. See An Intentional Arithmetic for Qualitative Decision Making and Qualitative Decision Explanation for Information Technology Investment and Qualitative Business Decision Making. For example, in the pc recommendation domain, certain dimensions have qualitative valences, e.g., memory is a HIGH, price is a LOW, and speed is a HIGH.

Additional Notes

I understand that some of you may look at this program as requiring creating a database of hundreds or thousands of computers from which to make recommendations. That is really not what I have in mind. The challenging and interesting part of this problem is not creating a vast database or graph of computers. The point is to come up with a detailed and nuanced taxonomy of the users.

From my perspective, you could have just a couple of dozen types of machines, with orthogonal characteristics. For the purpose of this assignment, you do not need to use real machines. You can have fictional computers. You then need to come up with a user classification system that accounts for why a person actually needs a computer.

This line of analysis applies to other domains, for example, recommending movies or books or restaurants or automobiles. The computer program has to have a fine grained understanding of the person for whom the recommendation is being made.

Imagine that you have a restaurant with 1,000 items on the menu. If all you know about the customer is how many calories they desire and to what foods they are allergic, you are not going to make very pertinent (or appetizing) recommendations. The answer to that problem is not to put more items on the menu. Rather, it is to get a better model of the customer.

That principle applies to the pc recommendation domain. The system will not get better by adding hundreds of models if the model of the user is impoverished and does not reflect the diversity of goals that may occur.

One of the key features of VOTE which applies to this domain is the decision strategy. VOTE had over a dozen strategies which served to mediate the decision and also to generate the explanation. In the pc recommendation domain, decision strategies might include:

Most marketing pitches can be viewed as decision strategies. Look at ads for computers. The advertisement is giving you an explanation for buying their product. You might also want to ask your friends and family why they decided to buy (or not buy) a computer.

Deliverable

Write your program in Python. We suggest that you use a Jupyter notebook. Submit your program on the zoo with gradescope.