Lab 1: It Works!

In this lab we will focus on:

  • Design Thinking (what does it mean to take a design "approach"?)
  • HTML Setup (there'll be a few tools we'll need to install)
  • Hermeneutics and Information (how does a design "mean" something, and what does this have to do with user experience and accessibility?)

This lab will be due Sunday, Jan. 28th, midnight eastern time.

Design Thinking

You, likely, are enrolled in a CIT concentration at KCTCS. This means that the majority of your courses will be technical in nature. And although we will cover the technical material of programming with HTML and CSS in this course, the more important aspect for us in CIT 157 is "design." "Design" is less a technical topic and more an overlap of creative and practical topics.

"Design thinking" is an approach to solving problems. Usually in CIT and computer science, "problems" means something closer to "math problem" or "technical problem." For us in CIT 157, though, "problems" actually gets to mean "world problems."

The rough outline of design thinking goes like this:

  1. Observe a world problem or an opportunity in the market to provide a new service, etc.
  2. Propose a solution to that problem or an implementation of that service. This solution does not have to be perfect, but simply "better" in some sense given what you know about the world or market.
  3. Before putting your idea into motion, challenge your current knowledge of the world or market, and imagine how your idea would stand up to unexpected trouble.
  4. Then put your idea out there, get feedback from your users or the public, and go back to step one.

You might notice that this resembles the Scientific Method somewhat, but it also has hints of creative "guesswork" from the humanities. What is most important in design thinking though is (1) not trying to be perfect, but better, and (2) "looping" your process so that you can acheive constant, small "revisions" in response to the market, world events, and so on.

Herbert A. Simon, who won the Nobel for his work in economics, wrote about "design" as something that spans both engineering and art, something that lies at the core of our identities as human-beings. Three important points from his book are:

  • Bounded Rationality - Humans are not perfectly rational beings, but instead do the best we can with the limited information that we have. He argues that our behavior (in economics) is simple, but our apparent complexity is actually a result from our simple interactions with the complex world around us, a world that we shape and make complex as much as we passively observe it.
  • Driving in Fog - He gives a metaphor for design (or humans making choices in general) as kind of like driving in fog. We can only see (make predictions) only so far ahead of us, so we do the best we can at each "turn" (moment when we can make a decision) and see what happens, "revising" as we go along.
  • The Watchmakers - Finally, he also gives a story about two watchmakers. One of them makes watches in a way that requires putting 1,000 pieces together without fail, and the other makes watches by "building up" the pieces in a hierarchy. The first watchmaker eventually goes broke, and the second watchermaker survives. The reason is that, for the first watchmaker, whenever he was interrupted he had to start all over, and this slowed him down. The second watchmaker survived because, whenever she was interrupted, only the one "subcomponent" needed to be remade, so less work was lost.

I bring up the fog metaphor because users must navigate your website only with the limited set of options that they have in front of them, without knowing what options will follow, so we need to design with that in mind and help them "get where they are going" in as few clicks as possible. And I bring up the watchmakers because HTML, and web designs in general, are much more like the hierarchical watches than the "flat" watches. This idea of working with hierarchical designs is a topic that we will return to repeatedly in this course.

HTML Setup

Now let's do some programming.

We will learn HTML and CSS in this course. CIT 155 is, as I teach it, more about HTML and CSS as languages in their own right than is CIT 157. Our course is more about creating and planning designs to meet a specific purpose. However, it's kind of hard to make websites without some understanding of HTML and CSS.

Therefore, we'll setup our programming tools today so that we can see our websites quicker, spending less time focusing on HTML and CSS on their own.

These steps should work on Windows, Mac, or Linux. If you are using a Chromebook or other device, shoot me an email and we'll work out an alternative setup:

  1. Download and install Visual Studio Code. I'll refer to this program as VSC for the remainder of this course.
  2. Open VSC. Press Ctrl+P to bring up the command palette. Type the following into the popup and press enter: ext install hdg.live-html-previewer
  3. That should install the Live HTML Previewer plugin quickly. Once that's done, close and re-open VSC.
  4. Optional - You can change your color theme by pressing Ctrl+Shift+P, searching for "Theme" in the popup, selecting "Preferences: Color Theme", then picking a different color theme. I prefer "light" themes personally.
  5. Create a new file, using Ctrl+N. Save it, using Ctrl+S, and name it Lab1.html
  6. Press Ctrl+Shift+P and search for "Show side preview" and press enter. This should open a preview on the right side of your text editor that will let you see your changes appear as you type them. (Note: This step will only work if you are editing a file that has already been saved and has a .html file extension. So, it's good practice for our class to always save your files and give them a name before you start trying to write them.)
  7. Finally, type the following into your editor and save it:
<h1>It Works!</h1>
<p>This is my first paragraph!</p>

Hermeneutics and Information

Information is an easier word to spell, so I'll start there. "Information" is a vague term in everyday English.

In computer science and physics and statistics though it's more precise. "Information" here means "randomness" or "entropy," since the more "random" something is, the harder it is to describe in any simple order. Therefore, a shuffled deck of cards is said to "contain" more information than a sorted deck.

This is related to the idea of "Kolmogorov Complexity," which states that the "complexity" of a message is the size of the smallest program that could output that message.

The problem is, just like dividing by zero, it is impossible to come up with this "smallest problem" and also prove it can't be done any smaller.

What does this have to do with us, as students in CIT 157?

Imagine a very confusing website, something that appears to be in a "random" order. Or list all of the things you can do on Facebook. All of them. It's a long list. Then shuffle that list up so nothing is "grouped" together into those nice hierarchies anymore, and imagine a website build with random features all over the place like that.

How could you make that website make sense to the user?

Because it is impossible for math to find a "smallest program" for Kolmogorov's measure of "complexity," only a human and not a computer program can do their best to organize that messy website for other humans. Further, when you are designing a website, a brand new website with brand new ideas, your ideas will appear to the user at first much more like the shuffled list of Facebook features than the organized website Facebook has come to be over the years.

This comes back to our class because our central goal will be to "draw the line" all the way from:

  1. the goals of your business
  2. to the features and content you choose to have in your business's website to help those goals
  3. to the design choices in the website that organizes those features and content for the user
  4. to the user experiencing your website
  5. and back again to the business as you receive feedback from your users

The hardest step in all of this (the step a computer can't do for you) is organizing and testing those features and content in step two. And step two here is the "Hermeneutics" of our class, which refers to how we as humans interpret the meanings or possible meanings of information and symbols and attempt to organize those ideas into a meaningful (and not misleading or dishonest) order.

And in making meaning with our websites, we will do our best with the limited information we have--information about how our users might behave and examples taken from similar websites already succeeding out there on the web.

Grading and Submission Instructions

To submit, write your responses to the following questions in a Word document, then upload it to Blackboard under this week's folder in Current Assignments.

Labs are due two weeks from when they are assigned, on Sunday at 11:59pm eastern time.

Labs are each worth 5% of your final grade. Scoring on your submission will be based on the following rubric:

0% - Student does not submit on time or submits plagiarized or unacceptable work. Double check that you have attached the right file, as usually students get zeros because they upload a previous week's Lab by accident.

1% - Student answers less than half of the questions with sufficient or accurate responses. Make sure that you are leaving yourself enough time to complete the Lab each week, as usually students submit incomplete work because they were rushed at the last minute.

3% - Student answers almost all questions with sufficient and accurate responses. If you encounter a problem or have a question about one of the questions, be sure to post in Ask the Instructor well before 24 hours before the due date, then continue to attempt to resolve the issue on your own while you wait for a reply.

5% - Great job, maximum points! The student answers all questions accurately and sufficiently, demonstrating the best of their ability.

Note, because Labs span two weeks' worth of reading, it is recommended to go through the Lab twice, once after the first reading where you answer everything that you can, then again after the second reading where you answer everything else.

Part 1

  1. As you were writing your Lab1.html website above, what did the program do to help you? (Hint: what did the text editor pane, where you type your code, do as you typed, and what did the live preview pane on the right do as you typed?)
  2. What does the <h1> tag do?
  3. What does the <p> tag do?
  4. According to your reading, what is a "tag" in HTML, and how do they look in code?
  5. What is an "attribute" in HTML, and how do they look in code?
  6. According to Garrett, what are the "Five Planes"? Briefly define each.
  7. Go into your kitchen. Pick three non-food items. What did you choose, and as far as you can remember roughly how much did each item cost?

Part 2

  1. What is Garrett's "Basic Duality"? Explain.
  2. Edit Lab1.html to have the code below and embed a screenshot of your text editor (with live preview open) as your answer to this question.
  3. Which tag makes the largest font? Which the smallest? Is <h7> a real HTML tag?
  4. For each item you chose from your kitchen, write a list of all of the possible uses someone might have for that item.
  5. For each possible use you listed above, write next to it: (1) the human or humans involved in that use; (2) the material resources involved in that use; and (3) the other tools involved in that use.
  6. Based on the lists you wrote above, organized that information into a hierarchy using h-tags and paragraphs in your Lab1.html webpage, similar to the example below. Embed a screenshot as your answer.

Code for question 2 above:

<h1>It Works!</h1>
<h2>It Still Works!</h2>
<h3>It Definitely Still Works!</h3>
<h4>I'm Pretty Sure This Still Works</h4>
<h5>Work This Does.</h5>
<h6>Works? Yes. Mhm.</h6>
<h7>Oh no, this doesn't work.</h7>

Code for question 6 above:

<h1>My Items</h1>
<h2>Spatula</h2>
<h3>Mixing Batter</h3>
<p>This use requires a chef, batter, and a mixing bowl.</p>

<h3>Swatting a Fly</h3>
<p>This use requires a human and a fly.</p>

etc.

<h2>Mixing Bowl</h2>
etc.

<h2>Paper Towels</h2>
etc.

Part 3

  1. In your opinion, is the website you made in Part 2 Question 6 an effective way to display that hierarchy to the user? What do you believe could be done better?
  2. As far as you know or can remember, what made the items you chose from your kitchen better than the alternatives you could have bought instead at the store? Would you have made the same choice today to buy those particular items instead of something else? Explain.
  3. In your opinion, what is something that is not information? Explain.