Coder Social home page Coder Social logo

programming-from-a-to-z / a2z-f15 Goto Github PK

View Code? Open in Web Editor NEW
101.0 101.0 39.0 26.47 MB

Repository for ITP Fall 2015 Course

HTML 0.12% JavaScript 99.85% Processing 0.01% CSS 0.01% Haxe 0.01% Makefile 0.01% Nix 0.01% ABAP 0.01% ActionScript 0.01% Ada 0.01% Assembly 0.01% AutoHotkey 0.01% Batchfile 0.01% C++ 0.01% Cirru 0.01% Clojure 0.01% COBOL 0.01% CoffeeScript 0.01% ColdFusion 0.01% C# 0.01%

a2z-f15's Introduction

Programming-from-A-to-Z

(or Everything you wanted to know about text but were afraid to ask.)

(or How i learned to stop worrying and love the javascript.)

What can computation add to human communication? Creating computer applications, instead of just using them, will give you a deeper understanding of the essential possibilities of computation. The course focuses on the fundamentals of programming the computer in the context of language and words. We'll explore topics ranging from evaluating text according to its statistical properties to the automated production of text with probabilistic methods to text visualization. Students will learn the JavaScript programming languages and develop projects that can be shared and interacted with online. The end of the semester is spent developing an idea for a final project and implementing it using computer programming.

Week 1 -- Introduction

  • Why are we here? What is computational media? What is programming? What is it good for? What kinds of programming languages are there?
  • What makes up a web page
    • Structure: HTML
    • Style: CSS
    • Behavior: JavaScript
  • Server-side vs. client programming

Week 2 -- Generate text automatically

  • basic HTML/CSS
  • variables
  • simple objects
  • Strings

Week 3 -- Make text interactive

  • conditionals
  • simple functions

Week 4 -- ??????

  • more about functions and objects

Week 5 -- Make lots and lots of text

  • arrays

Week 6 -- Regular Expressions

Week 7 -- Generating Text - PROJECT 1

  • Markov
  • Context Free Grammar

Week 8 -- Analyzing Text - PROJECT 2

  • concordance
  • visualization / drawing

Week 9 -- Bonus Topics

Week 10 -- Propose Final Projects

Week 11 -- One on one speed user testing / feedback

Week 12 -- Final Project Presentations

a2z-f15's People

Contributors

craigson avatar shiffman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

a2z-f15's Issues

Ideas for chrome extension examples

Possible Examples

  • content script skeleton with browser action
  • content script skeleton with page action
  • browser action with pop-up skeleton
  • swap images on page and alter text content, inspiration: girlsvsgit
  • search page for text, redact that text, inspiration: shaved bieber
  • replace default new tab page, inspiration: code doodles
  • incorporating p5 into content.js (canvas overlay, etc.)
  • omnibox
  • incorporating APIs - wordnik? google image search?
  • API request without p5
  • gmail hacks: https://github.com/KartikTalwar/gmail.js

Topics

  • Content vs. everything else (popup, background, other views, etc.)
  • Chrome APIs
    • Alarms API
    • is browser idle or active?
    • omnibox keyword events
    • tabs and windows
    • tts (text-to-speech)
    • webRequest

week 7 notes: logical sequence about "levels" of n-grams

I've been reading your notes and examples about Markov chains, I like them a lot and they have inspired me to build some things. Thank you for making them public! (And sorry for messing with your issues!)

I just wanted to point out a detail that I found confusing while reading:
After the interactive demo of n-grams, where we can "enter some text there" to get the n-grams for a given n at the word-level*, you returned to the to be or not to be example but now with n-grams at the character-level* without any notice. At first it happened to me that, although you previously mentioned the existence of different element types for n-grams, I got confused about the tokenization and construction of the model discussed in the remaining text.

* I also read the Allison Parrish's references that you linked, hehe

object prototypes

do you have any notes (and/or more examples) on object prototypes? livestream yesterday was super helpful but wondering if you can point me to any resources on prototypes specifically.

week 2 notes

  • missing text input and textarea explanations
  • make certain elements live
  • add links to all examples and source code
  • add discussion of cut-up examples

JSON grammar doesn't match rules object in ContextFree

In week 8 cf.js examples with JSON, it would be nice to be able to avoid this extra step to parse the JSON file into the rules object.

  // Look at the JSON object
  for (var rule in grammar) {
    // Get the expansions and split them
    var expansions = grammar[rule];
    for (var j = 0; j < expansions.length; j++) {
      // Now split up each expansion into its own array
      // Internally, the CF object is using arrays of arrays
      // It's awkward to look at it that in the JSON file so split by whitespace
      var tokens = expansions[j].split(/\s+/);
      // Add the rule
      cfree.addRule(rule, tokens);
    }
  }

and just say:

  cfree.rules = grammar;

concordance example fixes

  • sort anonymous function confusing
  • don't need to check == undefined
  • fix all functions to be members of Concordance object with this

For the next time

I'm using this thread to make notes for the next time the course is run:

  • Add watching Darius Kazemi talk: https://vimeo.com/112289364
  • Maybe do closures and callbacks earlier (week 1?!) since it comes up over and over again
  • Think about when to introduce node and other JS text packages
  • Look at wordnet as example of machine readable dictionary (available via NodeNatural)

week 5 naive bayes example

  • user should be able to name categories
  • some sort of sorting / better reporting of "interesting" words

week 3 notes

  • add notes on randexp
  • more on replace() with a callback
  • integrate ACE editor into notes? more dynamic testing stuff
  • Sublime scenarios too complex?

Simple CFG Examples

Here are some ideas:

  • A coffee drink order generator.
  • An apology generator.
  • An ITP project idea generator.
  • A knock knock joke generator.

week 4 notes

These should also include:

  • a bit more on the APIs and how to sign up for API key -- wordnik, google, nytimes
  • basics of tabletop.js and google sheets
  • basics of working with parse
  • discussion of server-side proxy and regex for scraping
  • twitter (but maybe save this for bots week)

week 8 homework

I need to write some "technical" exercises for closures and this can be a homework possibility in addition to the CFG exercise.

Promises

Go over promises and synchronous requests. Perhaps one of the bonus weeks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.