Introduction

INFO 253 - Front End Web Architecture

Kay Ashaolu

Teacher and TA Introductions

Course Goals

  • Facebook.com -> "magic" -> web page
  • Demystify "magic"
  • Learn how to build "magic" with existing tools
  • With a focus on what you see in the browser
  • Know the challenges of building "magic"
  • What is the front end? Why should I care?

Course Layout

  • Wednesdays 12:30 pm - 3:30 pm
  • First half of semester: Two 50 minute lectures and a 50 minute office hour/demo session
  • Second half of semester: One 90 minute lecture and 90 minutes of group project work / weekly standups
  • All lectures, assignments, and class prep will be posted on our course GitHub repository
  • Course website:
  • All course communications will be conducted on CampusWire

Course Work

  • 5 individual homework assignments building an web application
  • 1 group project building an web application

More on assignments

  • Assignments must be done individually, but you can ask others for help
  • Assignments are due at 11:59 pm on the day they are assigned to be due
  • Every day it is late after that we will deduct 5 points from the final score
  • If you have any problems, please let us know

More on the project

  • The group project is an opportunity to build something cool with other students
  • Must be in groups of 4-5. There are no exceptions to this rule
  • You will first form teams and draft up a proposal of what you would like to build, and we will give you feedback

More on the project

  • This will be assigned around the second half of the semester
  • There will be presentations and a report
  • All of this is due at 11:59 pm on the due date assigned
  • We will be publicizing the final project presentations this year, and your projects will be on the ischool website

More on the project

  • There is even more of a focus on the final project for this class
  • There will be no assignments assigned while you are working on your final projects
  • Last half of class for the second half of the semester will be devoted to working on your projects and doing your weekly standup

What is a standup?

  • Feedback that I have heard is that you like the practicality of this class
  • This year we will take a step further
  • During the second half of each class in the second half of the semester, each team will have a 10 min weekly "standup"

What is a standup?

  • Standup is a meeting that is from the Scrum/Agile methodology you see in many software engineering companies
  • It is a way to ensure that no one is blocked and stuck on any issue, as well as give an opportunity for team members to help each other

What is a standup?

  • TAs and I will take turns conducting a weekly standup for each team lasting 10 minutes
  • We will ask you the following three questions to each member of the team:
    • What were you able to complete last week?
    • What are you currently working on
    • Most Important: What are you currently blocked on?
  • THIS IS NOT GRADED BUT IT IS MANDATORY

What is a standup?

  • We will be using the Project feature in Github to create what is called a Kanban Board
  • Live example: Kanban Example
  • This is a tool to document all of the tasks that you need to complete and where you are with that task
  • This is done in industry

Grades

  • Assignments: 50%
    • Graded on a numeric basis
  • Group Project: 50%
    • Graded on a numeric basis
  • There is no midterm nor final

Technologies you will use

  • Languages/Libraries
    • HTML
    • CSS
    • JavaScript
    • React
  • Tools
    • Git
    • Unix / Terminal

But don't worry

  • This is not primarily a programming class
  • Grades are based on the demonstration of understanding the base concepts
  • Grades are not based on extra bells and whistles, but are reserved for extra credit
  • We are here to help

This is a Graduate class

  • Perform well without supervision
  • Understand readings from a variety of different areas on the web
  • Ask for help proactively
  • Get frameworks working on your own

Responsibilities

  • Me
    • Explain core concepts
    • Understand design trade-offs
    • Introduce new technologies
    • Tie everything together
  • You
    • Understand lectures and do class prep if assigned
    • Explore new technologies
    • Work independently and in groups

Wait List

  • So I have emailed some of you earlier about how I resolve the wait list
  • However, I didn't expect to have 70 students to sign up, and there is only 49 openings for the class
  • As of now only School of Information students are automatically enrolled in the class
  • The iSchool will automatically release the hold for INFO students on Friday, so people on the wait list will be enrolled then

Wait List

  • Unfortunately I can no longer make any determinations concerning your being accepted in the class
  • If you are on the wait list, please check on Friday if you have been enrolled
  • Please be on the lookout for emails concerning getting set up on Friday for the class
  • Also this course website will be publicly available if you are not able to get into the class

Questions?

Why are you in this class?

The Web is important

  • Democratizes information
  • Decentralized
  • Low barrier of entry

The Web is built on composable parts

  • Internet
    • How data gets from one network to another
  • Network Stack
    • How data gets from one computer to another
  • Browsers
    • One (of many) destinations data goes to
  • HTML/CSS/JavaScript/Images
    • One (of many) representations of data transmitted over the web

Highway vs Railway

Highway: Simple and Composable

  • Any machine with wheels can use it
  • Cars can drive on any highway, but also off-road
  • Motorcycles and trucks can use roads as well as highways
  • Uncoordinated

Railway: Complicated but Efficient

  • Must have the right track gauge
  • Must coordinate with other traffic
  • If you upgrade one part of the system, everything else must be upgraded
  • Need specially made vehicles for railway

The Internet is like a highway

  • More like an interconnected large set of highways
  • It’s the longest running computer system in the world
  • Protocols (UPS) are agnostic of their content (packages)
  • Pieces can be upgraded incrementally

Protocols

  • A protocol is a system of rules of transmitting data
    • UPS has a system of trucks and vans that get packages from one place to another
  • Data is delivered to a destination (browsers)
    • Just like packages deliver to a destination (address)
  • Data can be interpreted, and used as information
    • Like packages can be appreciated in a number of different ways

Browsers interpret data into information

Browsers interpret data as text
  • HTML
  • CSS
  • JavaScript
Browsers interpret data as other media
  • Images
  • Music
  • Video

Questions?