Programming With Text
This course focuses on programming strategies and techniques behind procedural analysis and generation of text-based data.
There will be weekly homework assignments as well as a final project.
Introduction09 Sep 2016
In this introduction video I talk about my goals for this playlist that accompanies a course I teach at ITP (http://itp.nyu.edu). I show an outline of things I’d like to cover and also discuss the inspirations for the course.
My Workflow09 Sep 2016
In this video, I demonstrate the tools that I use in my coding environment for this course. There are many alternatives to this particular setup, but in case you are at a loss for what to use, here’s a reasonable option. The tools I am showing you (node.js, atom, p5.js) are free.
Text Input09 Sep 2016
In this video, I demonstrate how you can get text input from a user with DOM elements (“input” and “textarea” in combination with the p5.dom.js library.
Loading a Text File11 Sep 2016
In this video, I show you how to get text input from a user by loading a text file using the p5.js function loadStrings(). I discuss how a user can upload their own text file with createFileInput() or a “drag and drop” zone.
Homework Assignments Week 112 Sep 2016
In this short video I discuss a creative assignment around the topics covered in Week 1 of “Programming from A to Z”.
Introduction to Regular Expressions15 Sep 2016
In this video I introduce Regular Expressions. What are they and how are they used?
Homework Assignments Week 220 Sep 2016
In this short video I discuss a creative assignment around the topic of Regular Expressions in Week 2 of “Programming from A to Z”.
Meta-characters16 Sep 2016
In this video I discuss meta-characters: what are they and what role do they play in regular expressions?
Character Classes16 Sep 2016
In this video, I explain character classes which are a way of matching a selection of characters in a regular expression.
Capturing Groups17 Sep 2016
In this video I discuss capturing parentheses and how they are used to create numbered groups that referenced in a find/replace operation.
Back References18 Sep 2016
In this short tutorial, I explain the concept of “back references” and explore how they are used to match the characters previously matched by capturing parentheses (groups) in a regular expression (regex).
test() and match()18 Sep 2016
exec()18 Sep 2016
split()19 Sep 2016
This video covers
replace()19 Sep 2016
replace(). The function allows you to search for a string (by matching a regular expression) and replace that string.
The RiTa.js Library22 Sep 2016
The nlp-compromise Library23 Sep 2016
Homework Assignments Week 328 Sep 2016
In this short video I discuss a creative assignment around the topic of Data and APIs for week 3 of “Programming from A to Z”.
Intro to Week 5: Text Analysis and Word Counting07 Oct 2016
Week 5 of Programming from A to Z focuses on about text-analysis and word counting. In this introduction, I discuss different how word counting and text analysis can be used in a creative coding context. I give an overview of the topics I will cover in this series of videos.
Homework Assignment Week 513 Oct 2016
In this video I discuss assignments and exercises around the topic of Text-Analysis and Word Counting for week 5 of “Programming from A to Z”.
Intro to Session 6: Markov Chains22 Oct 2016
This video introduces Session 6: Markov Chains (http://shiffman.net/a2z/markov). It is part of the ITP course “Programming from A to Z”. A Markov Chain is a broad concept, in this series I will demonstrate it as a means to generate text algorithmically, using n-grams and probability.
Homework Assignment Session 626 Oct 2016
In this last video of Session 6, I discuss exercises you can try related to n-grams and Markov Chains (http://shiffman.net/a2z/markov).
Intro to Session 7: Context-Free Grammar27 Oct 2016
Context-Free Grammar with Tracery28 Oct 2016
In this video, I demonstrate how to use Kate Compton’s Tracery library to generate a story from a set of grammar rules.. This video is part of Session 7 of the “Programming from A to Z” ITP class.
Context-Free Grammar with RiTa.js29 Oct 2016
In this video, I use Daniel C. Howe’s RiTa.js library to generate text with a context-free grammar (https://github.com/dhowe/RiTaJS). This video is part of Session 7 of the “Programming from A to Z” ITP class.
Homework Assignment Session 701 Nov 2016
In this last video of Session 7, I discuss exercises you can try related to Context-Free Grammars.
Intro to Session 8: Building an API in Node04 Nov 2016
In this session, I cover the basic steps for building a RESTful API with Node.js. I show you how to install the Node.js framework express how to use routes and parameters to deal with the HTTP GET requests. I also cover what it means for an API to be a REST (Representational State Transfer) API.
RESTful Routes06 Nov 2016
In this second video of “Building an API in Node” from the ITP course “Programming from A to Z”, I explain what a REST (Representational state transfer) API is as well as how to use “routes” in Express to process requests made to your API. http://shiffman.net/a2z/node-api/
Saving Data to JSON File with Node.js18 Nov 2016
In this video, I discuss how to work with a very simple database with in the API example using local JSON files and the node.js “fs”(file-system) package.
API Front End Client19 Nov 2016
In this video, I look at how to talk to your API from a web page by building a simple front end client with HTML and the p5.js library.
Build Your Own API - Conclusion with HTTP POST13 Dec 2016
This is it! The conclusion to the “Build Your Own API” with node.js tutorial from my “Programming from A to Z” ITP class.
What is Firebase? (Database as a Service) - Programming with Text08 Dec 2016
9.2: Firebase: Saving Data - Programming with Text09 Dec 2016
In this video, I demonstrate how to save data to the cloud using the database service Firebase. This video is part of the “Programming from A to Z” ITP class.
9.3: Firebase: Retrieving Data - Programming with Text10 Dec 2016
In this video, I demonstrate how to retrieve data from Firebase (Google database as a service product). The example is a high score list but the data can be anything of course. This video is part of the “Programming from A to Z” ITP class.
Introduction to Chatbots12 Oct 2017
This video is an introduction to a new topic in my Programming with Text playlist: Chatbots!
Chatbots with RiveScript12 Oct 2017
In this video I cover RiveScript: a simple scripting language for chatbots with a friendly, easy to learn syntax.
Speech Recognition with p5.Speech20 Oct 2017
In this video, I use the p5.Speech library for speech-to-text, i.e. speech recognition. The p5.Speech library is an initiative from the NYU Ability Project.
Introduction to Chrome Extensions13 Nov 2017
This video introduces a new topic in the Programming with Text playlist: Chrome Extensions!
Bookmarklets13 Nov 2017
Content Scripts14 Nov 2017
Background Scripts15 Nov 2017
In this video, I discuss “background scripts” for chrome extensions.
Pop-ups21 Nov 2017
In this video, I cover “pop-ups” with chrome extensions.
Pop-ups Messaging22 Nov 2017
In this video, I show you how to communicate between an extension “pop-up” and a content script with chrome’s messaging API.
New Tab Override27 Nov 2017
In this video, I demonstrate chrome extension “overrides” – specifically the “tab override” which replaces the default page when you open a new tab in your browser.
Cross-browser Extensions28 Nov 2017
The chrome extension API is also available as part of a more general “browser extension” API.