Art 102: Digital Media Tool Box: Concepts and Techniques - Intro to Programming for Art Students (with focus on the Web and data) |
|
Time: T/TR 10.00AM-11.50AM Room: Old Gym E-Studio Instructor: Lisa Jevbratt Office hours: T/TR 11.50 AM to 12.50 PM Prerequisites: Arts 22, HTML coding experience is required. No programming experience is required. In this class you will learn basic programming skills applied to the specific context of the Internet and the Web. The skills you acquire can be applied to learning and using other computer languages for a multitude of other purposes. We will be writing programs in the programming language Perl that access and combine data from the Web and present the information in new ways. The Web is full of constantly updating and fascinating information, there is data about weather, tsunamis, earthquakes, UFO sightings, whale tracking, gas prices, world population, stock market data, personal blogs, sports results and much more. You can also make projects that use text and images from sites such as Flickr and Twitter. By using HTML forms you can get information from the visitors to your Web site, and include it in your projects. The programs you make can be interactive web based projects, or they can produce images and text for printing or other use. The class requires a focused and dedicated interest in the concepts and techniques dealt with. The class will be demanding and students have to work independently on solving programming problems and researching ideas. The class is a beginning programming class, with no prior programming experience expected apart from what is covered in Art 22 and 7D. If you have more experience with programming there is still a lot to learn and explore. |
|
Week 1 | |
Thursday 9/22 |
|
Lecture: | Class Introduction |
Week 2 |
|
Tuesday 9/28 |
|
Due: |
Your class homepage |
Lecture: | UNIX; CSS; Perl: Print, Loops, Arrays, Random |
|
|
Examples: |
Basic Perl |
Thursday 9/30 |
|
Due: |
Exercise 1: Make a simple perl program that generates a webpage. Use the print command and the rand function. Link to the program from your homepage. |
Lecture: | UNIX; CSS; Perl: Print, Loops, Arrays, Random |
|
|
Examples: |
Basic Perl |
Week 3 |
|
Tuesday 10/5 |
|
Due: |
Perl Tutorial, Part 1.
Be prepared to answer questions about the reading. And, if there is anything that you don't understand in the readings, be prepared to ask questions. |
Thursday 10/7 |
|
Due: |
Project 1 |
|
|
Lecture: | If statements, getting and parsing data from the web. |
|
|
Examples: |
If Statements, Getting data from the web |
Week 4 |
|
Tuesday 10/12 |
|
Due: |
Exercise 2: Find a webpage that change at least daily. Use 'get' to read the webpage. Then use an 'if statement' and '=~' to generate different content (text, images, colors, shapes, placements)
depending on some content in the webpage your program reads. Link to the program from your homepage. There might be some interesting sites here. But you can use any site that change daily, weather, news, sport sites, stocks... In the tutorial there is a small section in part 3, 'Simple matching', that describes the =~ operator. Read it. The rest of section 3 will be covered later in the class so don't read it now unless you feel like you want to challange yourself. |
Thursday 10/14 |
|
Due: |
Perl Tutorial, Part 2 up to, not including, the section 'Filehandles'. Be prepared to ask and answer questions about the reading. |
Week 5 |
|
Tuesday 10/19 |
|
Due: |
Project 2 |
Lecture: | HTML forms |
Examples: |
really_simple_form.html form_and_get.html |
Thursday 10/21 |
|
Due: |
Exercise 3: A simple program that use user input (from an HTML form) to change something in an old program of yours. If you are using a program that uses LWP::Simple, you have to change the line: use LWP::Simple; to: use LWP::Simple qw(!head); |
|
|
Lecture: | More on Forms + Writing/Reading Files |
|
|
Examples: |
Form simple_form.html Read/Write Files simple_read_write.cgi append_time.cgi Read/Write Files + Form form_save.html Some "simple" APIs ("Application Programming Interfaces")..more later in class World Weather Online simple.cgi YouTube simple.cgi simple_search.cgi simple_location_search.cgi |
Week 6 |
|
Tuesday 10/26 |
|
Due: |
1. Midterm Project Idea(s) 2. Perl Tutorial, Part 2: The section 'Filehandles' and forward. If you feel overwhelmed don't read the 'Subs' section. Be prepared to answer questions about the reading. And, if there is anything that you don't understand in the readings, be prepared to ask questions. |
Thursday 10/28 |
|
Due: |
1. Reading Assignment 2. Written Midterm Project Proposal (see the midterm description for details) |
Lab | Be prepared to ask questions about technical aspects of your project. |
Week 7 |
|
Tuesday 11/02 |
|
Due: | Project Progress Report |
Thursday 11/4 |
|
Due: | Project Progress Report |
Week 8 |
|
Tuesday 11/9 |
|
Due: | Midterm Project |
Lecture: | API's and Graphics |
Thursday 11/11 |
|
No Class (Veterans Day) | |
Week 9 |
|
Tuesday 11/16 |
|
Due: |
Find a website that combines information from two or more sites, or reuses/recontextualizes information from one ore more sites (a mashup)
that you find interesting. Good places to look are:
programmableweb.com
and mashupawards.com/
On your homepage, link to the site and write a one paragraph description of the 'mashup' including why you find it interesting. |
|
|
Lecture: | API's and Graphics |
Examples: |
GD graphics library Programs: basic.cgi louse_drawing.cgi random_jpg.cgi levine.cgi circles_from_text.cgi filter.cgi Projects using GD by Lisa: 1:1 Migration Infome Imager APIs ("Application Programming Interfaces") simple_search.cgi simple_location_search.cgi Yahoo Several examples see each program for documentation pages We Feel Fine API from We Feel Fine population_feeling.cgi feeling_confluence_photo.cgi simple.cgi Flickr API for the Flickr photo sharing website before_and_after.cgi images.cgi simple_geo.cgi YouTube simple.cgi |
Thursday 11/18 |
|
Due: | Final Project Ideas |
Week 10 |
|
Tuesday 11/23 |
|
Due: | Final Project Written Proposal/Description |
Thursday 11/25 |
|
Thanksgiving No Class | |
Week 10 |
|
Tuesday 11/30 |
|
Due: | Progress report |
Thursday 12/2 |
|
Due: | FINAL PROJECT |
|
|
Tech Help: |
Lisa's Perl Examples Perl Documentation Perl GD Library CPAN modules |
|
|
APIs: |
Fairly simple REST based APIs Yahoo Web Search API Yahoo Term Extraction API Yahoo Traffic API More Yahoo APIs Gaze web service. Gives you data such as population density and long/lat of places. Amnesty International's API provides censored web content from all over the world. We Feel Fine API from We Feel Fine More complex REST based APIs Flickr API for the Flickr photo sharing website Google Search API (a bit more complex to work with) Google Translation API (a bit more complex to work with) Technorati API for the Technorati blog search website eBay APIs Other API's Facebook API Various Amazon APIs (difficult to use) Listing of may APIs at programmableweb.com |
|
|
Software: | TextWrangler, a good text editor (similar to BBEdit). (free)
(Mac) JEdit, text editor for Mac and PC. (free) Filezilla, sftp client for Mac and PC. (free) Putty, an ssh client for PC. (free) UCSB VPN client (for accessing the online book storage Safari and academic articles, data etc.) |
|
|
Misc: |
Page with some data sites...please contribute. Eco Vis Challenge Mashup Listing "Ten Best Flickr Mashups" Student Projects 06/07 Netsquared Mashup Challenge www.rssfeeds.com Rhizome.org |