Introduction

Info 253: Web Architecture
Kay Ashaolu

Before we start

  • Please start downloading VirtualBox and Vagrant
  • Vagrant sets up a Virtual Machine within your machine
  • You are running an operation system within an operating system
  • This ensures that everyone is under the same environment and has access to the same tools

Hi my name is Kay

  • Princeton EE
  • Credit Suisse, Morgan Stanley
  • Independent web dev consulting
  • MIMS ‘13
  • Ancestry.com
  • Nuna Health
  • Lecturer

Hi my name is Monik

  • Mumbai University CS
  • 3 startups as Software Engineer
  • Machine Learning Engineer
  • Algorithms, Machine Learning, NLP
  • Active competitive programme NLP Researcher
  • Experience with MVC frameworks and DevOps

Course Goals

  • Facebook.com -> "magic" -> web page
  • Demystify "magic"
  • Learn how to build "magic" with existing tools
  • Know the challenges of building "magic"
  • Understand the trade-offs made when building "magic"

Course Layout

  • Friday's 2 pm - 5 pm
  • Two 50 minute lecture and a 50 minute lab
  • 10 minute break after every section
  • All lectures, assignments, readings, and labs will be posted on our course GitHub repository
  • Labs, assignments, and projects are completed in your GitHub repository and submitted via our bCourses website.

Course Work

  • 4 individual homework assignments building an web application
  • 1 group project building an web application
  • 11 in class short labs to go over aspects of building a web application

More on labs

  • There will be a short assignment for the last 50 minute section of most classes
  • It’s designed to be completed within the 50 minutes
  • Labs are due at 11:59 pm the day of lecture
  • You can leave class early and do the lab on your own, but you must submit it before midnight

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

More on the project

  • The group project is an opportunity to build something cool with other students
  • Must be in groups of 3-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
  • There will be presentations at the end of the class, and a report
  • All of this is due at 11:59 pm on the due date assigned

Technologies you will use

  • Languages
    • HTML
    • CSS
    • JavaScript
    • Python/Flask
    • SQL/Active Record
  • Tools
    • Git
    • Unix / Terminal
    • Vagrant
    • Heroku
    • Amazon AWS

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
  • Monik and I 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 vagrant box

Responsibilities

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

Office hours and wait list

  • Kay’s office hours are by request via Google hangout
  • Monik's office hours: Fridays 5 pm - 6 pm (after class)
  • We have a Piazza website for this class: https://piazza.com/class/j6rtzu85yai59k
  • Because of the new Cal Central system, I'll be processing the wait list by September 8th
  • Typically I can enroll everyone that wants to stay in the class.

Grades

  • Labs: 15%
    • Graded on a complete/incomplete basis
  • Assignments: 45%
    • Graded on a numeric basis
  • Project: 40%
    • Graded on a numeric basis
  • There is no midterm nor final

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?