Design Process

System-centered Design

A Technology-First approach
Still necessary if we have legal or security concerns

  • What can be built easily on this platform?
  • What can I create from the available tools?
  • What do I as a programmer find interesting to work on?

Design Thinker: Designers who create

Read more »

Viewing Pipeline

  • Modeling Coordinates: Objects are created by their own coordinates.
  • World Coordinates: The objects are placed in the same world coordinate.
  • Viewing Coordinates: Objects are now expressed relative to camera.
  • Normalized Coordinates: Everything visible to the camera is mapped to unit cube for easy clipping.
  • Device Coordinates: Normalized coordinate (unit-cube) is mapped to the device coordinate.
  • Rasterization: 2D primitives turns into pixels.

WC to VC (Viewing Transformation)

If the position and orientation of camera are given, everything is done.
qwc=[Rp01]qvc\mathbf{q}_{wc} = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0} & 1 \end{bmatrix}\mathbf{q}_{vc} where RR is camera's rotation matrix and p\mathbf{p} is camera's position.

qvc=[Rp01]1qwc=[RTRTp01]qwcqwc=Rqvc+pqwcp=RqvcRTqwcRTp=qvc\begin{align*} \therefore \mathbf{q}_{vc} = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0} & 1 \end{bmatrix}^{-1}\mathbf{q}_{wc} &= \begin{bmatrix} R^T & -R^T\mathbf{p} \\ \mathbf{0} & 1 \end{bmatrix}\mathbf{q}_{wc}\\ \because \mathbf{q}_{wc} &= R\mathbf{q}_{vc} + \mathbf{p} \\ \mathbf{q}_{wc} - \mathbf{p} &= R\mathbf{q}_{vc} \\ R^T\mathbf{q}_{wc} - R^T\mathbf{p} &= \mathbf{q}_{vc} \\ \end{align*}

Read more »

Application-layer protocols

  • Transport-layer service models: Transport-layer sends data (TCP, UDP)
  • Client-server paradigm (HTTP)
  • Peer-to-peer paradigm (BitTorrent)

HTTP

Web

Web page consists of objects, which can be HTML file, JPEG image, audio file, etc.
Web page consists of base HTML-file which includes several referenced objects, each addressable by a URL.

Read more »

Perpetual intermediates

Most people are perepetually intermediate - only few beginners and experts

Design should target intermediates!

Interaction Design

  • The design of spaces for human communication and interaction. (Winograd, 1997)
  • Designing interactive products to support the way people communicate and interact in their everyday and working lives. (Sharp, Rogers and Preece, 2011)
Read more »

Hierarchical modeling

Model complex objects by combinig simple primitives. (e.g. triangles, box, cylinders, spheres)

Static Hierarchical Model

Relative transformations do not change. (e.g. car)

Dynamic Hierarchical Model

Read more »

Two types of packets

  • UDP: unreliable datagram
  • TCP: reliable byte stream

Actually it takes the same amount of time to send UDP packet and TCP packet!!
Even streaming services uses TCP these days.

UDP

  • no handshaking before sending data (no connection!)
  • sender explictly attaches IP destination address and port number to each packet
  • receiver extracts sender IP address and port number from received packet
Read more »

History of Computer

Early Example: Astrolabe

In middle age, astrolabe can calculate people the time of the day, sun, star, season, latitude, etc.
Easier to use, but need to learn how to use astrolabe.

Babbage Difference Engine

  • First mechanical calculator
  • Can solve 7th-order polynomial equations!
Read more »

Google TPU

Google TPU Version 1.0 does 64,000 multiplication per cycle!
It can multiply 256x256 matrix!

Two important things in parallel computing are making small unit and providing new data every cycle.
How does Google TPU multiply 256x256 matrix?

Systolic array

Systolic Array

Read more »

Moore's law

Computer abilities are doubled each 2 years. But human abilities are almost in place...

AI has nearly caught up with human performance!

HCI

Human-Computer Interaction is a discipline concerned with the analysis, design, implementation, and evaluation of interactive computing systems for human use and with the study of major phenomena surrounding them.

Read more »

Recall) Linear transformation

Linear transformation TLT_L is a mapping between vector spaces.
Linear combination is invariant under TLT_L.

TL(i=0Ncivi)=c0TL(v0)++cNTL(vN)T_L\left(\sum_{i=0}^{N}c_i\mathbf{v}_i\right) = c_0T_L(\mathbf{v}_0) + \cdots + c_NT_L(\mathbf{v}_N)

In 3D space, TLT_L can be represented by a 3x3 matrix AA.

TL(v)=A3×3v3×1T_L(\mathbf{v}) = A_{3 \times 3}\mathbf{v}_{3 \times 1}

Read more »
0%