Welcome to GitHub Pages

Silicon to Singularity

SVA IxD Week 1

Week 1 slides

Notes from our week one class. These notes are generated into the slides we use for class.


TLDR;

  1. Slides from Week 1
  2. Office Hours/ Slack info
  3. Overview of Computation: From Silicon to Singularity
  4. Week 1: Assignments
  5. Software to download


How do we speak to machines?

Code usually means a system for transferring information amongst people and machines, and now objects. Code is communication.



Introductions


Area of Effect

  • Carrie Kengle @kandizzy
  • Bruno Kruse @brunokuse
  • areaofeffect.io

Introduce yourselves

  • Do you want to code?
  • If so, why or why not?
  • Do you believe in the singularity?

Resources and Office Hours

  • Office Hours
    • Quick questions, project help, code review
    • Web / Skype / Hangout: Schedule with us in advance
  • Slack
  • Posting Assignments
    • Due 12:00pm before class

Class Methods

  • This class is designed to immerse you in programming and learn a new language or method by the end of our journey.
  • We'll add code as as a tool to our design process, solving complex and specific problems in our projects.
  • We'll show you what tools and systems are available. It's up to you to choose what you need for your projects. We'll guide you along the way.
  • If you already know programming, thats great! We'll continue to reinforce these skills and learn new ones even faster.
  • Design wise, we'll measure our successes by not only the code we write, but the problems code enables us to solve.
  • We'll learn how to evaluate what's good Copy Pasta (paste) v.s bad Copy Pasta. We want you to own your successes and failures. :)

Poydar Method

  • What did you do this week.
  • What do you need help with?
  • Do you think you have enough time?
  • Henry Poydar

Real-time

  • Lot's of feedback and communication.
  • Coding is massive; we want to know what's confusing and what's not.
  • Join our #slack channel.

From Silicon to Singularity

  • How computers work. Powers of two.
  • Layers of abstraction and computer architecture.
  • Types of programmers
  • People in history
  • Types of computers
  • Computers in history
  • Types of programming languages
  • Code + Design + Machines + People
  • Evolution of Creative Coding
  • What's next?

Silicon

Grace Jones. What does she have to do with code? In the 80s there was an entire Bond film about the destruction all of Silicon Valley. Why Silicon?

Jones

The element silicon is used extensively as a semiconductor in solid-state devices in the computer and microelectronics industries. For this, hyperpure silicon is needed. The silicon is selectively doped with tiny amounts of boron, gallium, phosphorus or arsenic to control its electrical properties.

Grace Jones saves the day.

(note: the goals are money and power, but it's more in hindsight. it's about human evolution)

Moore's law is the observation that the number of transistors in a dense integrated circuit doubles approximately every two years.

Silicon together with Moore's law is the driving force behind everything that's happened with computers since the microcontroller.

It is an interesting time now because we are about to hit a physical wall where the

Moore's law has died at the age of 51 after an extended illness.

Moores law is really dead this time.


Kernel

Many times when evaluating a toolchain, you end up with Linux. And why is that?

Linux now supports more different types of devices and processors than any other operating system ever has in the history of computing. It runs on everything from mobile phones, to laptops and cloud servers, to raspberry pi.

Kernel Map

This is largely due to the development of it's kernel.

Beautiful Code, Chapter 16

  1. Small objects loosely coupled
  2. Iterative dev process
  3. Extremely collaborative

Algorithms

Sol

The thing about algorithms is that they are really, really beautiful.

And, they solve really hard problems in computer science. Which makes computational tasks run better, which makes things more beautiful, which makes our lives better.

If you are interested, try exploring the many ways to sort something. 'Can we do better?' - a question that computer scientists ask themselves.

http://sortvis.org/algorithms/timsort.html

Or just explore their jaw-dropping beauty. https://bost.ocks.org/mike/algorithms/


Sol Lewitt

According to the principle of his work, LeWitt's wall drawings are usually executed by people other than the artist himself. Writing about making wall drawings, LeWitt himself observed in 1971 that "each person draws a line differently and each person understands words differently".

Sol


Workshop


Software Tools

We'll start by downloading our favorite tools to grow our workflow and process.

Goals:

  • To become familiar with programming tools and consoles.
  • Execute intro JS and Python
  • Learn process and workflow
  • Detect errors

Editors


Scripting


Useful markdown

# h2
## h2
> quotes
<code></code>

Hello JavaScript

1. open the developer console

View -> Developer -> JavaScript Console CMD + OPTION + J

Developer Console

2. type your code

alert ('hello, world.')

notes


Terminal Tips

shortcuts

terminal cheatsheet by 0nn0

useful commands

ls
open .
history
ifconfig

Hello Python

You already have python on your computer!

1. write

person = input('Enter your name: ')
print('Hello', person)

2. run

python hello-world.py

Install OSX Command Line Tools

Unlike JavaScript and Python, your machine doesn't have a way to build C applications. We'll try a quick demo.

1. Open your terminal

2. Type the following

xcode-select --install

The following will pop up. Click OK to install.


Hello C

1. write

/* Hello World program */

#include <stdio.h>

int main(void) {
   printf("Hello, world!\n\n");

   return 0;
}

2. compile

gcc -ansi -o hello-world hello-world.c

3. run

./hello-world

Hello Swift

Swift is the newest language developed by apple. It now supports emoji variable names!

Hello Swift







Assignments Week 1

  1. Join our slack. We will help you through questions and guide installing any of the software below.

  2. Download and setup your computer for coding. Come to next prepared class with:

    • Install a Text Editor of your choice (Atom or Sublime)
    • Install a development Browser (Chrome)
    • Install XCode (via app store) and Xcode command line tools
    • note: The XCode download is quite large and may take a moment.
  3. Review our 'From Silicon to Singularity' notes above. This is a (very brief) overview of the world of computation, coding and the internet.

  4. Pick any of the hello world examples from above and modify to say a different message. We will discuss the differences between the languages next class.

  5. Watch Bret Victors the Humane Representation of Thought. We will discuss next week in class.

You can use the editor on GitHub to maintain and preview the content for your website in Markdown files.

Whenever you commit to this repository, GitHub Pages will run Jekyll to rebuild the pages in your site, from the content in your Markdown files.

Markdown

Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for

Syntax highlighted code block

# Header 1
## Header 2
### Header 3

- Bulleted
- List

1. Numbered
2. List

**Bold** and _Italic_ and `Code` text

[Link](url) and ![Image](src)

For more details see GitHub Flavored Markdown.

Jekyll Themes

Your Pages site will use the layout and styles from the Jekyll theme you have selected in your repository settings. The name of this theme is saved in the Jekyll _config.yml configuration file.

Support or Contact

Having trouble with Pages? Check out our documentation or contact support and we’ll help you sort it out.