Hello welcome to a first video of a new playlist called programming from A to Z.
and this playlist is going to be. It will be as I make it! A lot
of videos that are going to follow this
course that I'm teaching at a program called ITP
at School of the Arts New York University called programming from A to Z.
And in this video.
If you're really just interested in the technical content you can just skip ahead
and stop watching this video. But in this video I want to just kind of talk
about where the ideas for this course came from some, of my inspiration for
putting the material together for this course and what my goals for it are.
So what and kind of like who.......
What do you need to have in advance before you start watching this sequence and
I will mention that a lot of the videos that I make I intend for
them to be kind of stand alone videos that could be placed.
That you could kind of come to on them their own, but
I'm going to seek with them in a way that will give you a little bit of a narrative
over the course of this fall.
It is September something in 2016.
That's when this video is being recorded.
But maybe you are an alien robot of the future watching it and
wondering about this strange earth a species on the Internet.
If the internet still exists anyway.
OK So OK so
let me talk a little bit about where this the idea for this course came from.
So I think this was probably at least ten years ago.
If not more.
I was at the University of Pennsylvania sitting in on a poetry class you
might wonder why was I sitting in on a poetry class that's a story for
another day. But someone named Nick Montfort was giving a presentation.
Nick Montfort is a poet and artist and
professor, an author who has a recent book out actually
called explored Tory programming. I don't see it on his website how it's a wonderful
book that I've been actually reading as a resource for this course as well.
And Nick was giving a presentation to this poetry class
about computational techniques.
And in writing and... I mean it was more sophisticated and
interesting than that but I loosely say that it was so it was for an audience of
people who are not necessarily familiar with programming and algorithms.
But are poets and writers and looking at historical examples and
new techniques in writing using computational methods. And at
the time I was kind of a recent ITP graduate I think our current ITP student.
I don't remember and I thought how this is interesting.
So much of my time, this was early in the days of processing.
So much of my time is spent thinking about programming for motion and animation and
I hadn't really considered this idea of programming for text.
Reading a program that reads text is a program that generates text out.
And so at the time I actually decided to work on some materials for
a course called programming from A to Z.
Strangely enough, I
taught this course in Java which was in many ways a kind of horrifically terrible idea.
But Java was a programming language that I was learning and
familiar with at the time.
It also the basis of the creative coding environment processing.
And so I was a connecting some stuff between those two environments?
I taught this course and I believe this was like two thousand and
six or seven or something like that. You could look it up if someone resourceful on
the Internet could find the old syllabus for a problem.
And so a lot of the ideas for this course came out of this presentation that
I saw from Nick Monfort. Now interestingly enough at the time,
Allison Parrish was a student at I T P, I believe she was actually a student in his
class and when she graduated from I T P I talked with her.
I don't remember exactly how this about starting a new class that
I called in which she came up with called reading and writing electronic tech. So
Allison Parrish is a huge inspiration for this course as well. If you're not familiar
with her work with generative text performance and Twitter bots and a lot of things
you should be familiar with. And so
Allison teaches a course taught in Python called reading and writing
electronic text a lot of the materials can be found on her website. So Allison really
took a lot of the ideas from programming from A to Z and made a much better and
more interesting course using a much more appropriate programming language and
environment Python to working with text. The focus of her course however is.
is really not about I would say -- I mean I could be wrong about this-- but
just to make the argument for argument's sake about really focusing on poetry
generative text, generative poetry about the sort of core out text in text output
not necessarily about interactive systems as related to text and not about server
side programming client side programming things that happen in the process.
So what I decided to do.
Was recently after she had started this course
that I T P was to revive programming from Ato Z
And so now the course is once again back and it's all about programming with
text, text in text out but with I would say an appropriate
language meaning job script. Sure a lot of a lot of innovative and
new work with data analysis and text is happening in Python and there are tons of
natural language processing libraries and data libraries for processing for Python.
But if you want to make things happen in the web browser where users can enter
text, receive text back.
Participate in an era interactive system Javascript is a language that
is useful to make all the stuff happen in the web browser so.
So this is really where the ideas for
the course came from. Now I am going to just briefly now so
so that's kind of the bit of much more long winded than I had hoped but
a bit about where some of the ideas for the course came from.
Now I want to talk the next thing I want to talk about is my goals for
the course. Just so I'm not so..
I'm standing somewhere different with a little visual variety here.
I have a couple fundamental goals.
One is programming and
algorithms. And particular in programming I'm talking about Javascript here.
So if you are a beginner javascript programmer, if you
maybe just took a single course in P5js
You know a little bit about javascript.
This is a course where you can improve and
expand your knowledge. I want to talk about things like what's this 'prototype' thing?
What's that this key word What's a closure or what's an anonymous function.
All of these kind of aspects to javascript programming that you might not find in
an introductory creative coding course.
So I want part of the Course to be able to get all base programming skills.
I want that thing not just to be for the sake of you know, programming itself but,
to have a kind of conceptual basis of creative output for
you. And this is the other aspect of the course.
So I want you to think about creative new ways to
think about computational (am I really ritting this down?!).
(I am really writting this down) computational output.
And specifically text based output oh and input.
Right.
So maybe you've taken a computer science course or some other javascript course and
the focus is on web development for professional work for
getting a job at a start up or maybe the Course is about algorithms. So
you can figure out the absolute fastest way to sort a list of numbers.
These are not... you know there are aspectsto that those ideas that might
be in a course like this, but my goal is really for you to discover new and
creative ideas and generate creative projects... playful useless!
Experiment from this course because I believe I think I think I know that that
you know number one : making art and playful experiments is a
Joyful way of interfacing with the world it can bring meaning to people's lives but
also I think practical tools and new discoveries come out of
useless impractical explorations So that's kind of a go for this course to
augment skills and and kind of inspire your creativity.
OK So back to over here I want to briefly run you over what the topics will be as I
go over them from week to week.
This week: I'm just going to kind of introduce
ideas for the course I am asking the students of the course to
use pages as a way of publishing their work, this is absolutely not required.
I want to look at DOM manipulation in P5js and
kind of compare that to other DOM manipulation frameworks and libraries you
might think of. I want to do tutorials about just the string object in Javascript and
then I want to look at how you get text input from a user in the browser a text
box a uploading a file and I want to do a couple coding
challenges around making a web page that generates kind of found random poetry.
And I'll talk about an assignment for
you guys if that's what's going to happen today. Regular expressions I am so
excited for my favorite topic ever because I like a complete
loser that I don't know if you love regular expressions.
You know I am a loser you watching this are clearly not one loser such a terrible
word that's and I sound like I hate that word.
Nobody.
Anyway.
And edit this part out! Where's my...
OK but reconstruction is a topic that I love it's an amazing.
tool puzzle, exciting, crazy programming language kind of unto
itself thing that allows you to manipulate do wonderful things with text.
I want to look at how you can get text from data sources different API.
I want to look at wordnik. I think I've looked at word take another video
tutorials what I want to look at a deeper more deeply.
I want to look at how you can get users to fill out a Google spreadshit and
use this as the input to your program.
Server side programming is a priority for me.
So there's a lot of things that make sense to do with only client side
programming and P5js but I want to look at node in particular Twitter bots.
Fortunately I have a whole set of video tutorials already made about Twitter bots.
So we'll see what I can add to that for
this week and then I kind of want to run you through the classics.
So my goal and hope for
you is doing creative ideas in text analysis of Text generation but I want to
look at how some of these kind of classic text generation analysis algorithms work.
So word counting is kind of the fundamental building block to all text analysis
we are going to look at a word counting program.
TF/IDF. which is like a fancy term for
figuring out how to delete key words from a text based on word counting.
I might look at these Bayesian analysis there if I could get the courage
and also there are a lot of no packages that will do a lot of the stuff for
you that I'll examine.
Text generation.
I want to build a Markov chain from scratch.
I'll talk more about what that is but a probability based system for
generating text.
I want to look at grammars. There's a wonderful thing that I'll just mention
if you're not familiar with another work that I find really inspirational
tracery by tracery by the way that should not say tracery
by tracery somebody pull request fix this.
It should say by Galaxy Kate.
So galaxy Kate Compton on get her galaxy Kate .com is
a wonderful artist programmer or a person who has built a story generation library for
a java script called tracery which I'll examine later as a tutorial maybe as I
start to figure out ways of getting guests maybe I can invite Kate to appear to talk
about tracery back here and then look at code for building something
called a context free grammar.The language the term grammar might be familiar to you
programming languages have a grammar : write function name followed by prayer.
It's followed by a bunch of arguments separated by commas if you're missing
a comma that's a grammatical error a syntax error.
So rather than looking at language and seeing how it fits into a jam grammar.
If you can design a grammar and
generate language from that, what kind of results do you get? And then also I want to
make sure I look at chrome make some tutorials on Chrome extensions.
I'm going to show you one
of my favorite artists Addie Wagenknecht.
She is a wonderful artist who makes amazing work that you should become
familiar with and she made a Chrome extension.
Called.
Girls versus Git. i'm going to pull this up here and
you can see some of the things some of the features that it does every user name and
in github is replaced with a generic female user name every GRavatar
is replaced with the Gravatar of a woman or female type image.
So this is something that you can do with a Chrome extension.
You can have control over a user's browser and their browsing experience
to kind of experiment with all the strange and
alternate ways of viewing the universe of the web and experiencing. Obviously
this can be used for productivity tools and you probably have
extensions for things like a pocket which allows you to save you all your things but
how what kind of strange ways can you do if you.
You know take everybody's,
every time you know noun is on a web page and replace it with a food item.
This came from an idea somebody had in class.
So you're just reading web pages to make yourself hungry all the time so creative
ideas working with chrome extensions is something that I want to pursue.
So this is kind of the trajectory of the course
the Course trajectory of the course ... I'm after this video is done.
I'm going to make the first few videos for
this first week on some of the material. Now here's a quest...
Here's here's something I will mention to you.
You people of the Internet can simply just find these videos on You Tube you.
you can write in the You Tube comments
if you have questions and I try to answer them when I have time and
other people answer them as well and I hope you will enjoy watching.
If you want to participate in this course to slightly augmented away.
I will point you to Patreon.com/codingrainbow or codingrainbow.com
You can subscribe to my Patreon feed which is a crowdfunding system and
with that you will get an invitation to a slack channel where you can ask questions
about the course and post your work in assignments and have a peer group of
people discussing it giving you feedback. So if you're interested.
This is an experiment I'm trying I'm teaching the physical class for
ITP students at New York University.
I'm teaching an online version of this class for free on You Tube It is add
supported that there will be ads for these videos. I have mixed feelings about that but
I doing that right now for a little bit of revenue.
There's expenses associated with making this, there is time and
then I am also experimented with a crowdfunding platform to
allow people a certain additional form of interaction.
So my kind of philosophy on online education right now
is free content paid interaction.But
mostly I'm doing this because I enjoy it and I enjoy discovering a new audience and
bringing new ideas and doing weird dancing from time to time too.
Ringing my bell and all sorts of weirdness so.
So thanks for watching this introduction I'm sure there are lots of things I missed
saying Aaaaah
I thought of something I wanted to mention to other
the links to all of these things are in the
In the description of this video and to mention two other big inspirations.
One is Lynn Cherny who does a lot of work with data analysis and presentations and
another is Darius Kazemi also known as tiny subversions.Who is an Internet
artist prolific creator of incredibly strange and interesting Twitter bots.
Basically you know I am not
I have to admit something I am not really a Twitter bot maker, I am a person who knows
ohw to make it.
And so if you're looking for inspiration and ideas and other types of materials
this great I want to point out both Lynn Cherny and Kazemy have
2016 talks from the festival in Minneapolis.
So I would recommend you find those in all of these are great but
if I go here to see all I can find various.
Books actually I'll get it where you can find them a week to them in
the description. But both of those are highly relevant Cherny and Kazemi's talk
from Io has kind of starting
material to get you thinking about ideas or things you might want to meet if they're
following along with this course.
OK thank you for watching.
And stay tuned in the next video I'll be showing you some other stuff.
OK ThanksByeBye!