Email joelross@uw.edu
Zoom https://washington.zoom.us/my/joelross
Introduce to yourself to your neighbor!
Meet someone new!
Lectures will be used to review and demo the material.
I personally request that you please wear a mask for first few weeks if attending in person. Thank you.
Course Textbook: https://info340.github.io/
Video Demos: linked from Canvas
The course schedule has an ordered list of resources and tasks. The best way to approach this:
And ask lots of questions throughout!
Project Proposal
Draft 1 (Static Mockup)
Draft 2 (React)
Final Version
We will also provide accommodations for illnesses/etc.
Class & Lab Work (5 hr/week)
At Home Work (10 hr/week)
5 credit course = 15 hour per week commitment (link)
While the task maybe to implement a program, the work you need to do for this class is to learn the material. AI can help you with the task, it cannot help you with the work. recognition != recall
For full details, see the syllabus on Canvas
protocol
domain
resource
"Hi Wikipedia, I'd like you to send me the Informatics page!"
two
t
(how to handle info)
(who has info)
(what info you want)
Web Server
Response
Request
+
=
"this is a heading, this is a paragraph, this is a definition, this is a hyperlink..."
<tag>
Content
</tag>
<tag>content</TAG>
open/start tag
close/end tag (leading slash)
content
}
ignores whitespace and tag case (use lowercase)
<h1>
: a 1st-level heading
<h2>
: a 2nd-level heading (and so on, down to <h6>)
<p>
: a paragraph of text
<a>
: an “anchor”, or a hyperlink
<img>
: an image
<button>
: a button
<em>
: emphasized content (not necessarily
italic). The same as _text_ in Markdown.
<ul>
: an unordered list (and <ol> is an ordered list)
<li>
: a list item (an item in a list)
<table>
: a data table
<form>
: a form for the user to fill out
<div>
: a division (section) of content. Also acts as an empty
block element (followed by a line break)
<tag attributeA="value" attributeB="value">
content
</tag>
Attributes are a space-separated list of names (think: variables) and values.
Values are (almost) always Strings.
NO SPACES!
<html lang="en">
...
</html>
<!-- an image -->
<img src="baby_picture.jpg" alt="a cute baby">
<!-- a is an "anchor" (hyperlink) -->
<a href="https://ischool.uw.edu">iSchool homepage</a>
"hypertext reference"
alternate text for screen readers
source
images have no (text) content so no closing tag
language of document is English
<h1>Hello <em>(with emphasis)</em> world!</h1>
open h1
close h1
open em
close em
<p>I <strong>never<strong> make mistakes</p>
important text
did not close tag!
<!-- An unordered list (ul) with 3 items.
The second item's content contains an
ordered list (ol) containing 2 items. -->
<ul>
<li>Pigeons</li>
<li>
Swallows:
<ol>
<li>African</li>
<li>European</li>
</ol>
</li>
<li>Budgies</li>
</ul>
cmd + /
to
comment a line
comments
<!DOCTYPE html> <!-- browser instruction: doc's type is HTML -->
<html lang="en"> <!-- the document itself-->
<head> <!-- metadata information (not shown) -->
<!-- support non-English characters -->
<meta charset="utf-8">
<!-- for searche engines, etc -->
<meta name="author" content="your name">
<!-- title in tab-->
<title>My Page Title</title>
</head>
<body> <!-- the body content (shown) -->
<h1>Some content...</h1>
...
</body>
</html>
(see also: https://websitesfromhell.net/)
"use this color and font for the first paragraph in the article; this picture for the page's background..."
/* A rule with many properties */
h1 {
font-family: 'Helvetica';
color: white;
background-color: #333; /*dark gray*/
}
"font"
selector: apply to all <h1> elements
style.css
h1 {
font-family: 'Helvetica';
color: white;
background-color: #333; /*dark gray*/
}
<head>
<link rel="stylesheet" href="my-style.css">
</head>
<head>
relation between this page and reference
no content,
no closing tag
font-family
: the "font" (list alternates separated by commas)
font-size
: the size of the text
font-weight
: boldness
color
: text color
background-color
: element's background
padding
: the space around an element
<!-- HTML -->
<p>This text has <i>emphasis!</i></p>
/* CSS */
em {
font-style: normal;
text-decoration: underline;
}
why is this italicized?
change what emphatic text looks like
HTML describes the meaning, not what it looks like!
<!-- HTML -->
<p>This text has <em>emphasis!</em></p>
says nothing about appearance!
Have a rule apply to only a particular elements by specifying those elements' class attribute and then using that class as the selector in the CSS
/* CSS */
.highlighted {
background-color: yellow;
}
<!-- HTML -->
<p class="highlighted">This text is highlighted!</p>
dot specifies class name, not tag name
<!-- HTML -->
<p class="rebel">Leia Organa</p>
<p class="imperial">Darth Vader</p>
/* CSS */
.rebel {
color: red;
}
.imperial {
color: gray;
}
Multiple rules can apply to the same element (in a "cascade").
p { /* applies to all paragraphs */
font-family: 'Helvetica'
}
.alert { /* applies to all elements with class="alert" */
font-size: larger;
}
.success { /* applies to all elements with class="success" */
color: #28a745; /* a pleasant green */
}
<p class="alert success">
This paragraph will be in Helvetica font, a larger
font-size, and green color, because all 3 of the above
rules apply to it.
</p>
two classes (space separated)
Finish the "Start Here" steps on Canvas
Finish the task list for Week 1!
Read Git chapters for next week
Next: Git and GitHub