BlckShadow / hello-world

Hello World - SVA Fall 2018

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hello World: The Logic of Interaction

FALL 2018
INSTRUCTORS: Carrie Kengle, Bruno Kruse
DURATION: 15 weeks
TIME: Wednesday 2:00pm - 4:50pm
WEBSITE: hello-world.areaofeffect.io

TLDR;

Hello World is a class about learning to code and communicating with machines. By the end of this class you should have the skills to speak the language of (almost) any machine using fundamentals from Python, JavaScript and C.

We’ll dive into:

  • Build a foundation and understanding of basic software principles.

  • Using code as a tool for art or design

  • We'll code 'til it works' as self-taught scrappy programmers.

  • Analyze a variety of programming languages and systems; understanding how they work and applications of each.

  • Best practices and collaboration.



Imgur



COURSE DESCRIPTION

Hello World is traditionally the very first program people write when they are new to a programming language. It’s used to test programming syntax, implementation and sanity. Did it work?

The goal of this class is to provide you with a primer into understanding the world of computer hardware, software and designing with code. We'll start with a foundation in programming and build programs of increasing complexity as the course progresses.

This class will provide you with the tools you need to read and understand source code, critically think about software applications and write your very own programs.

How do we use code as a tool to solve day-to-day problems? How does a processor work and what is a for loop? How is software created and distributed?


SOFTWARE


SCHEDULE

Week 1: Hello World

An brief history of computing, computers and why we code.

  • What is code? (Hint: Communicating with machines)
  • Working with code (JavaScript, C / Arduino, Python)
  • Understanding machines and where code lives (Personal Computers, Embedded Computers, Cloud Servers)
  • Writing our first program.

Discussion : Programming in the real world. Front-end developers, Back-end, Fullstack, Graphics, API developer, iOS/Android, Embedded Systems, Creative programmer*

Assignment:

  1. Download required applications and set up your development environment
  2. Modify one hello world app presented in class.
  3. Watch the Humane Representation of the Thought by Bret Victor.

Week 2: The first building blocks of talking to machines.

  • Variables
  • Data Types
    • Primitives
      • Boolean
      • Characters and Strings
      • Numbers
    • Composites
      • Arrays
      • Objects
  • Converting data from one type to another
  • Protocols
  • Thought Experiments, Dynamic mediums (Bret Victor)

Assignment:

  1. Pick four objects in everyday life and represent them as a data type.
  2. Create and object and verify the syntax using jsonlint.
  3. Create a story using data types from user inputs, follow the example presented in class.
  4. Thought experiment: think of a way to represent a number, string, array or object in a dynamic medium.

Week 3: Logic

  • Operators

    • Assignment
    • Arithmetic
    • Comparison
    • Logical
  • Conditional Statements

    • If
    • Else
    • Elif
  • Functions

    • Declaration
    • Definition
    • Parameters and Arguments
  • Application structure and flow

Assignment:

  1. Create a logic game using conditionals.
  2. Create a flow chart of your game logic.
  3. Prototype your game in Python.

Week 4: Loops

  • Repetitive actions
    • Loops
      • For
      • While
    • Recursion
  • Syntax

Assignment:

  1. Create a genrative artwork or studying using loops and repetition.
  2. Collect a dataset. Take photos using your phone throughout the week.


Week 5: Organizing everything we learned into a program

  • Scope
    • Lexical Scope and Dynamic Scope
    • Levels of Scope
      • Expression
      • Block
      • Function
      • File
      • Module
      • Global
  • Modules and Libraries
    • Writing your own
    • Using NPM
    • Using Arduino Libraries
  • Classes: Organizing code into reusable blocks ( OOP )
  • Introduction to Github
  • Introduction to Node and Interactivity
  • Extracting Exif Data from images ​

Week 6: Interactivity and Debugging

  • Interactivity

    • Keyboard
    • Mouse
    • Webcam
    • Microcontroller
  • Automation

    • Writing scripts to manage reptitive tasks
  • Debugging

    • Chrome Developer View
    • Firebug
    • Print statements
    • Console logs
    • Network, Serial


Week 7 - Intro to Computer Vision

  • OpenCV
  • Kinect
  • Leap Motion
  • VR
  • Project Demos and workshop

Week 8: Data Visualizations and Datastreams

  • How do we structure and organize data in a useful / readable way?
  • API'S, JSON files, Cloud services, Local databases
  • Intro to React
  • Review of serial, protocols and microcontrollers

Week 9 - Intro to IoT

  • How do we talk to things with code?
  • What is a smart object?
  • Strategies for custom hardware and wearables
  • Prototype a connected 'thing'

week 10 - IoT II

  • Best practices, Software and architecture
  • Databases and designing schema
  • Project development.
  • How do we build and launch our own connected devices?

Week 11 - Final Project development

  • Use what you learned to sketch out a potential project
  • Putting it all together and documenting your work

Week 12 - Final Project development

  • Coding workshop

Week 13 - Final Project development

  • Coding workshop

Week 14 - Final Project development

  • Coding workshop

Week 15 - Final project presentations and review

  • Final presentations at New Lab
  • Project review and guest critic


About

Hello World - SVA Fall 2018


Languages

Language:JavaScript 99.6%Language:HTML 0.3%Language:TypeScript 0.1%Language:Python 0.0%Language:CSS 0.0%Language:Shell 0.0%Language:C++ 0.0%Language:C 0.0%