Calendar

Week 1 (17 Jan):
Wednesday–>Course Intro and Orientation

Introductions
– name, major, year in school
– why this class?
– name the digital media you are most obsessed with. why?
– what makes you most like a class?
– what makes you least like a class?

Discussion: What is net art? Software studies? Critical software?
Thinking critically about the internet — who benefits? who is made most vulnerable?
Rushkoff quote

Look at some net art examples
Course overview (assignments, projects, schedule (lab vs non-lab), policies, grading)
Group exercise: expected input/output of web-based systems

Homework:
-read Critical Engineering Manifesto, be ready to discuss on 22 Jan.


Week 2 (22/24 Jan):

Monday–> Lab and discussion
-finish input/output group report
-go over course policies
-logging into the blog, and first blog post –> screenshot of digital media you’re most obsessed with

– discuss Critical Engineering Manifesto
– Introduce Project 0: OBSERVE
– Introduce Project 1: (AB)USE
– project 1 small group brainstorming and reports

Homework (for Wednesday)–
– read Javascript intros (intro, where-to, output, statements, syntax, commentsvariables, operators)

– optional review: read HTML Introduction down through HTML Images and
 CSS Introduction down through CSS Padding

Wednesday–>Lab

– HTML/CSS review (basic tags, structure, etc)
– Javascript intro (script tags, hello world, output, syntax, comments, variables, operators)
– Codepen (use, accounts, etc)

Homework:
-read jQuery intros (introsyntaxselectorshide/show)
-read about the Chrome DevTools (through linked items in Elements and Console sections)
-due Monday: Project 0 #1, Project 1


Week 3 (29/31 Jan):

Monday–> Crits, New Project Intro
– due: OBSERVE #1
– due: Project 1: (AB)USE

– Project 0 quick checks
– Project 1 Mini-Critiques
– demo: Chrome developer console
– Introduce Project 2: TWEAK
– brainstorm proj 2 ideas

Wednesday–> Lab (jQuery, dev console) and visitor talk
– duckduckgo demo
– work on Project 2
– Attend: Dylan Miner talk on Wed at 5:30p rm 331 (w/ in-class intro by Kathleen)

Homework:
– read more on jQuery (fade, get, set, add, css)
– due Monday: OBSERVE #2, Project 2


Week 4 (5/7 Feb):
Monday–> Crits, New Project Intro
Due: OBSERVE #2 – crit
Due: Project 2: TWEAK – crit

– jQuery demo
– jQuery in the console
– Introduce Project 3: ADD
– Work on Project 3

Homework: repeat the in-class exercise with another site, so…

– pick a site
– load jQuery in the console
– change 3 things with at most 3 lines of jQuery (color, border, etc.)
– at least once, use the :contains(“”)
– screenshot on blog

// examples
j(‘a’).css(‘color’,’black’); // change font to black
j(‘a:contains(“Trump”)’).css(‘backgroundColor’,’black’);

Wednesday–> jQuery practice
– a few more observes / project 2s

jQuery exercises with selectors, :contains(), and css()

– append()/prepend()
– before()/after()

– jQuery exercises with everything we’ve learned so far — prepend/append/before/after
– Introduce Project 3: ADD

– Homework: Project 3
– Homework: read about these new jQuery functions 
hide() (including keywords like ‘slow’ or millisecond arguments)
show()
fadeOut()
fadeIn()
css(‘display’,’none’)
css(‘opacity’,’0′)
text()
addClass()

removeClass()
not()


Week 5 (12/14 Feb):

Monday–> Crits, New Project Intro
Due: Project 3
Due: OBSERVE #3

Project 3 Mini-Critiques

More jQuery: hide(), show(), fadeOut(), fadeIn(), css() display/opacity, text()
Introduction to Userscripts w/ Tampermonkey! — in-class exercise
Tampemonkey hints:
– use this line in header to add jQuery:

// @require http://code.jquery.com/jquery-latest.js

– don’t forget to start script with:

var j = jQuery.noConflict();

– then you can write lines like: j(‘a’).css(‘border’,’1px solid red’)
– save your script to a file to work on it elsewhere!!
Introduce Project 4: ERASE

Wednesday–> NO CLASS –>
Homework:
– read everything under “Userscript Header” on Tampermonkey site
– create a working Tampermonkey Userscript for any site and post code to blog
– read The Web Began Dying in 2014, and here’s how
– brainstorm 8 ideas for Project 4: ERASE, post to blog
– do OBSERVE #4

Week 6 (19/21 Feb):
Monday–> More JS, jQuery, Tampermonkey
– Due: Observe #4, one Tampermonkey script on blog, 8 ideas for ERASE on blog

– class discussion of brainstorm ideas
– the problem w/ dynamically loaded elements
– ready() — handling dynamically loaded elements!
if/else conditionals and the logical operators such as || and &&
– in-class demo of how to go about writing an ERASE

Wednesday–> no class (office hours instead, email if you’re coming)
– homework: OBSERVE #5
– homework: Project 4: ERASE

Week 7 (26/28 Feb):
Monday–> critiques, tampermonkey vs. Chrome extensions, anonymous functions
Due: Project 4

Due: OBSERVE #5
Project 4 Mini-Critiques

– anonymous functions in Javascript
– check in on if/else, anything else JS related
– tampermonkey vs userscripts vs chrome extensions
– how to turn a tampermonkey into a chrome extension! (download this zip file)
– get Google Developer account started
– packaging userscripts as chrome extensions
– reimplement project 4 as a chrome extension, test, demo

Wednesday–(office hours, email if you’re coming)
Homework: read Something is wrong on the internet (note, contains disturbing material!)
Homework: read the following on Chrome extensions:
What are Extensions
Getting Started
Overview (down to ‘using the Chrome.* apis)
Extension Quality Guidelines FAQ
Content Scripts (down to Programmatic Injection)
Webstore Hosting and Updating
Homework: brainstorm 8 ideas for Project 5: REPLACE, post to blog
Homework: do OBSERVE #6


Week 8 (5/7 Mar):
Monday–> observes, Bridle article, proj 5 intro, Chrome extensions!
Due: OBSERVE #6

Due: class discussion on James Bridle article
Due: brainstorm ideas for proj 5

Discuss Bridle
Look at observes

How to make a Chrome extension! Testing, packaging
Discuss Project 5: REPLACE (including examples)
Discuss brainstorms

Wednesday–(office hours, email if you’re coming)
Homework:

– Get your extensions coded and on the Chrome Web Store ASAP
– (with description, images, etc.)

– Get friends to try it


Week 9 (12/14 Mar):

Monday–> observes, proj 5 demos, proj 6 intro, iframes, youtubemultipler
Due: Project 5
Due: OBSERVE #7
Observes
Project 5 Mini-Critiques

Introduce Project 6: MASH

Wednesday–>(office hours, email if you’re coming)
Homework:
– read: The Follower Factory
– read: Escaping Twitter’s Self-Consciousness Machine
– Try out Codeacademy for Javascript, work through all of “Getting Started with Programming” (questions 1-28)

Week 10 (19/21 Mar):
SPRING BREAK!!


Week 11 (26/28 Mar):

Monday–> grades, discussion, proj 6, proj 7 intro
Note about Proj 7 team preferences
Grades
Project 6 Mini-critiques
Discuss: Codeacademy
Discuss: Cambridge Analytica / Facebook breaking news
Discuss: The Follower Factory
Discuss: Escaping Twitter’s Self-Consciousness Machine
Introduce Project 7: INTERACT
Project 7 work

Wednesday–>No class, no office hours (contact if you want to schedule for Thursday or Friday)
Homework:
– read: ‘I made Steve Bannon’s Psychological Warfare Tool‘ at The Guardian
– read: Don’t Delete Facebook at The New York Times

– team blog post: read the articles above, and then, with your project 7 partner, blog six ideas to improve social media, presuming you could change ANYTHING
– OBSERVE #8


Week 12 (1/3 Apr):

Monday–> grades, reading discussion, observes, brainstorm ideas for P7, extra credit talks coming up
https://www.youtube.com/watch?v=jVhlJNJopOQ

Project grades — discuss, distribute
Discuss Cambridge Analytica and Facebook articles
Discuss six ideas to improve social media
In-class: brainstorm project 7 ideas
Project 7 Work
Discuss Moll/McCarthy extra credit opportunities
Look at OBSERVE #8 (maybe on Wednesday)
Homework: write a proposal for Project 7 on your blog

Wednesday–> **required** lab in 225 A+D for Project 7 (unless you have your P7 fully under control and idea already approved by Ben)
Work on Project 7 — develop / prototype / test in class


Week 13 (9/11 Apr):
Monday–> Proj 7 finishing lab, Discuss Extra Credit, Proj 7 crits, discuss proj 8, brainstorm ideas for P8
Lab: final questions on Project 7 (first 30m or so)
Due: Project 7
Project 7 Mini-Critiques
Discuss Optional Extra Credit
Look at last week’s Observes
Introduce Project 8: (AB)USE/TWEAK/ADD/ERASE/REPLACE/COMBINE/MASH/COLLABORATE –> Portfolio
Write proposals, discuss with Ben in class

Wednesday–> No class, attend symposium if you can
Technocultural Futurisms Symposium
Homework: Project 8 proposal … what do you propose to make/do? Why? Post on blog.

Week 14 (16/18 Apr):
Monday–> Project 8 proposal approvals, lab for proj 8
Extra Credit Due (optional)
Project 8 Proposals Due
Discuss documentation video requirement for Project 8, including examples.
In-class WORK ON PROJECT 8!!!

Wednesday–> No class, come to my office hours if you need it! Email if you’re coming and bring a laptop if you can.
Homework for Monday: final chance to complete missing Project 5 extensions (e.g. P4 ERASE), or to submit anything else missing for partial credit.


Week 15 (23/25 Apr):

Monday–> Project 8 work
Due: ERASE extensions missed as part of Project 5
Due: any missing work you want me to grade for partial credit (much better than 0!)
Project 8 work and check-in

Wednesday–> No class, come to my office hours if you need it! Email if you’re coming and bring a laptop if you can.


Week 16 (30 Apr):

Due: Project 8!

Project 8 Critique Blowout Session (may run long!)