Skip to content

Programming-from-A-to-Z/A2Z-F17

Repository files navigation

Programming from A to Z, Fall 2017

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

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 -- Bots! Bots! Bots!

Week 5 - Text Analysis Workshop

Week 6 - Show Bots

Week 7 - Text Generation: Word2Vec and Grammars

Week 8 - Text Generation: N-Grams, Markov chains, and LSTMs

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