Giter VIP home page Giter VIP logo

a2z-f16's Introduction

Programming from A to Z, Fall 2016

This course focuses on programming strategies and techniques behind procedural analysis and generation of text-based data. 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 server-side and client-side JavaScript programming and develop projects that can be shared and interacted with online. There will be weekly homework assignments as well as a final project.

Info

  • Daniel Shiffman, Tuesdays, 9:00am-11:30am
  • All class dates
  • Office Hours
  • In addition to the ITP physical class, I am running an online version of the class for Patreon subscribers. ITP students will receive a slack invite should they want to participate. YouTube live stream sessions TBA.

Mailing List

Week 1 - Intro

Week 2 -- Regular Expressions

  • Notes and Examples
  • Also
    • multiple DOMs + multiple event
    • rita.js -- similar and rhyming, etc.
  • Regular Expressions
    • meta-characters
      • position
      • single character
      • quantifiers
      • character classes
      • alternation
      • capturing groups and back reference
    • Regex in atom editor
    • Regex in JS:
      • Regex: test(), exec()
      • String: match()
    • Splitting with regex: split()
    • Replace with regex: replace()
    • randexp.js
  • Homework Assignment

Week 3 -- Data/API Workshop

Week 4 -- Intro to Node and Twitter Bots

Week 5 - Text Analysis Workshop

  • Notes on text analysis
  • In class, we'll build a simple concordance together as well as demonstrate and discuss TF/IDF and Bayesian analysis.
  • Simple Concordance
  • TF/IDF
  • Bayesian Analysis
  • Node text analysis packages

Week 6 - Show Twitter Bots

Week 7 - Text Generation: N-Grams and Markov chains

Week 8 - Text Generation: Grammars

Week 9 - Building your own API in Node

Week 10 - Chrome Extensions

Week 11 - Final Project Proposals part 1

Week 12 - Final Project Proposals part 2

Week 13 - User Testing

Week 14 - Final Presentations

References and Inspiration

Tools

JS reference books

Learning / Intro

Tools

Requirements

  • You are required to attend all class meetings and submit all weekly assignments and a final project.
  • Grading (pass/fail) will be based on a combination of factors:
    • Attendance, participation in class discussion, and engagement in other students' projects (25%)
    • Quality of assignments (50%)
    • Final Project (25%)

a2z-f16's People

Contributors

arnirjhor avatar c-steindl avatar felixschorer 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  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

a2z-f16's Issues

family tree

can you make an video for how to create a simple (interactive ) family tree using p5.js ! something like this Genealogical Research and Analysis Management Programming System (GRAMPS)

reference link : https://en.wikipedia.org/wiki/Gramps

Issue with cyrillic text

Hey Daniel! Thank you for your lessons!
I got this example and it works great with English words, but when I put Russian words in the source file I meet the problem. Program cuts words and doesn't work correctly.

JavaScript "beyond ICM"

Separate from the "text" content of this course, I find it useful to cover some JavaScript programming concepts that we don't get to in ICM. This is a list to remember to talk about in class and/or make videos about.

  • closures
  • arguments array and method overloading
  • Prototype
    • OOP
    • this
  • advanced array operations -- forEach(), map(), etc.
  • more about synchronous vs synchronous requests (promises?)
  • callbacks
  • anonymous
  • chrome developer tools

Notes from F15

  • 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)

There are also many little issues here (https://github.com/shiffman/A2Z-F15/issues) that I should look at each week as I prepare the notes.

deep learning

Am interested in doing something with deep learning + text. Some ideas are "node + tensorflow" or "Processing + deeplearning4j".

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.