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.
- Daniel Shiffman, Tuesdays, 12:10pm-2:40pm
- All class dates
- Office Hours
- Notes and Examples
- Glitch Example
- WorkFlow videos: Editor, Shell, Node, Git
- GitHub pages tutorial: (Note you no longer have to call the branch
gh-pages
). - DOM manipulation in p5.js
- Strings in JS
- Text input (from user, from file)
- Client-side vs. Server-side programming
- Homework Assignment
- From Class
- ES6
- Regular Expressions
- Notes and Examples
- JavaScript Regex reference:
test()
,exec()
- String:
match()
- Splitting with regex:
split()
- Replace with regex:
replace()
- randexp.js
- Homework Assignment
- Notes and Examples
- JSON basics
- JavaScript libraries
- Getting data from APIs
- Working with google sheets: tabletop.js
- Acrostic with Wordnik
- Homework Assignment
- ChatBot Slides
- TwitterBot Slides
- Notes on Node
Notes on Twitter Bots- Mastodon Bots
- ChatBots
- Voice Synthesis and Speech Recognition
- Reading and References
- Homework Assignment
- Notes on text analysis
- In class, we'll build a simple concordance together as well as demonstrate and discuss TF/IDF, Bayesian analysis, and word2vec.
- Simple Concordance
- TF/IDF
- Bayesian Classification Library
- Node text analysis packages
- Notes on N-Grams and Markov Chains
- Notes on Context-Free Grammar
- Tracery by Kate Compton
- Seaduck by Allison Parrish
- Homework Assignment
- Notes on Node
- Notes on API in Node
- Notes on Firebase
- Express
- serving files
- data persistence
- local json files, databases?
- Firebase
- html scraping, request package
- routes
- query string vs. "RESTian"
- CORS
- sending back JSON
- Text APIs
- Your own API (concordance, markov, etc.)
- AFINN-111 sentiment analysis (sentiment node package)
- spellcheck (with node natural)
- Bayesian text classification (with node natural)
Week 13 - User Testing
- Moved to references wiki
- JavaScript: The Definitive Guide
- Eloquent JavaScript, Marijn Haverbeke
- Beginning JavaScript, Paul Wilton and Jeremy McPeak
- CodeAcademy: JavaScript
- How to learn JavaScript properly
- JavaScript the right way
- Code School
- JavaScript garden
- A re-introduction to JS by Mozilla
- JavaScript 101 from JQuery
- Checking code: JSLint / JSHint
- Browser debugging: Chrome Developer Tools (tutorial) / Firebug (tutorial)
- Mobile debugging jsconsole.com
- Sharing code snippets (useful for asking questions): gist.github.com
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 (40%)
- Assignments (40%)
- Final Project (20%)
Please see ITP's statement on Pass/Fail which states that a "Pass" is equivalent to an "A" or a "B" while anything less would be considered a "Fail".
Attendance is mandatory. Please inform your teacher via email if you are going to miss a class. Two unexcused absences is cause for failing the class. (An unexcused lateness of 10 minutes or more is equivalent to 1/2 an absence.)
This class will be participatory, you are expected to participate in discussions and give feedback to other students both in class and participate with their projects. This (along with attendance) is 40% of your grade.
Class will culminate with final projects. You are expected to push your abilities to produce something that utilizes what you have learned in the class that is useful in some manner to yourself or the world. This will comprise 20% of your grade.
Plagiarism is presenting someone else’s work as though it were your own. More specifically, plagiarism is to present as your own: A sequence of words quoted without quotation marks from another writer or a paraphrased passage from another writer’s work or facts, ideas or images composed by someone else.
The core of the educational experience at the Tisch School of the Arts is the creation of original academic and artistic work by students for the critical review of faculty members. It is therefore of the utmost importance that students at all times provide their instructors with an accurate sense of their current abilities and knowledge in order to receive appropriate constructive criticism and advice. Any attempt to evade that essential, transparent transaction between instructor and student through plagiarism or cheating is educationally self-defeating and a grave violation of Tisch School of the Arts community standards. For all the details on plagiarism, please refer to page 10 of the Tisch School of the Arts, Policies and Procedures Handbook, which can be found online at: http://students.tisch.nyu.edu/page/home.html
Please feel free to make suggestions to your instructor about ways in which this class could become more accessible to you. Academic accommodations are available for students with documented disabilities. Please contact the Moses Center for Students with Disabilities at 212 998-4980 for further information.
Your health and safety are a priority at NYU. If you experience any health or mental health issues during this course, we encourage you to utilize the support services of the 24/7 NYU Wellness Exchange 212-443-9999. Also, all students who may require an academic accommodation due to a qualified disability, physical or mental, please register with the Moses Center 212-998-4980. Please let your instructor know if you need help connecting to these resources.
Laptops will be an essential part of the course and may be used in class during workshops and for taking notes in lecture. Laptops must be closed during class discussions and student presentations. Phone use in class is strictly prohibited unless directly related to a presentation of your own work or if you are asked to do so as part of the curriculum.