Spring 2014. Tuesdays 9:30am -12:00pm (7weeks)
Instructor: Robyn Overstreet
Office Hours: Tuesdays and Wednesdays by appointment
Code Repository: github.com/robynitp/commlabweb
[PDF version of this document: CommLabWebSyllabus.pdf]
The web has become one of our most fundamental media. It supports rich interaction between people. Though the core web interaction is simple — a client sends a request to a server, information pills and the server responds — services of incredible sophistication and scale have been built around it. In addition to the obvious uses — applications like Twitter and Tumblr, information hubs like the New York Times and Huffington Post, and web-based art projects like PostSecret and We Feel Fine — internet protocols are behind the scenes in many of the projects we build at ITP, from connected objects to interactive installations that remember visitors to the plant that tweets you when it needs to be watered. This class is less concerned with building pretty websites than with learning to send information between clients and servers. We learn how to create websites, first with the static markup language HTML, then adding interactivity with PHP, a server-side programming language. This two-credit course meets for seven weeks.
Grades will be determined according to the following breakdown:
- Regular Assignments 40%
- Participation and Attendance 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”.
It is expected that everyone in the class will create and maintain a blog for their assignments.
Be sure to email me your preferred email address and the URL to your blog.
This class is very participatory in nature and discussions will certainly take place outside of the classroom. Along with the blog, one of the primary vehicles for these discussions (as well as administrative issues) will be the Google group / listserv. Use the listserv to ask questions about homework assignments and try to answer other people’s questions when you can.
Laptops and WiFi
Laptops and WiFi available are valuable tools for use in the classroom. Unfortunately, they can very easily be a distraction as well. Since this class is technical in nature and we’ll likely be trying code and looking at online resources laptops use will likely be very useful. We should though be courteous to one another and during discussion or student presentations laptops use should be curtailed.
We will have weekly assignments that are relevant to material from the previous class. These assignments are required and you should be prepared to show/talk about them in class. This is 40% of your grade.
Attendance is mandatory. Please inform me via email if you are going to miss a class. Habitually showing up late for class or an excessive number of absences will adversely affect your grade.
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. Be cognizant of how you interact in class discussions. If you find yourself commenting more frequently than most other people in the class, step back and give others a chance to contribute (even if you have something to say). If you tend to hesitate to join discussions, challenge yourself to jump in. Check out the ITP Rules of Play for more info on the participation philosophy.
Class participation (along with attendance) is 40% of your grade.
Class will culminate 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.
Reading assignments will be given out on a weekly basis and in general will be downloads or online articles.
Much of the assigned technical material will be on Lynda.com. You must request a Lynda.com account through the NYU library. (It’s in the “Make an Appointment” form, but you don’t actually make an appointment.) It may take a day or two to get approved.
If you prefer a book for reference (not required!)
HTML and CSS: Visual QuickStart Guide (8th Edition) (Visual Quickstart Guides)
Refer to class notes for each week for full details.
Week 1: Jan 28 Week 1 details
HTML, FTP, Introduction to Client-Server environments
Write a response to the readings on your blog
Create a piece of web-based art, using what you know about HTML thus far.
Due next class (2/4). Blog write-up with a link to your project in its current state due by 8pm Feb 3.
Week 2: Feb 4 Week 2 details
HTML, CSS, HTTP
Create the front end for an interactive application you envision. The interactive functionality will come next week — build the parts the user will see. For example, if a user needs to submit a form, build the form. Then build a page that is one of the possible results of submitting that form.
Due next class (2/11). Blog write-up due 8pm Feb 10.
Week 3: Feb 11 Week 3 details
PHP, Getting information from the user
Using PHP, add the interactive elements to the front-end you build last week. Implement the $_GET and/or $_POST arrays available in PHP.
Due next class (2/18). Blog write-up due 8pm Feb 17.
Week 4: Feb 18 Week 4 details
Data storage. reading and writing to the file system, JSON
Create an application that stores data in the file system in JSON or CSV format and retrieves that data for display on the front end. You may continue with your application from the past weeks or move forward with a new idea.
Propose a final project. Describe it in a blog post.
Due next week (2/25). Blog write-ups due 8pm Feb 24.
Week 5: Feb 25 Week 5 details
Web Services. APIs. Using JSON to get data from web services
Create a web page that uses data from one of the APIs above, or one you find on your own. Go beyond just spitting out the data — do something interesting with it. For instance, display a color or image based on the current temperature. Optionally, you can create a mashup that combines information from two different APIs, for example, show tweets tagged “rain” when it is raining, “snow” when it is snowing, etc.
Due next week (3/4). Blog write-up due 8pm Mar 3.
Week 6: Mar 4 Week 6 details
Databases. Storing structured data with MySQL
Populate a database with information relevant to your application. Then query the database for specific information. At the very least, you should be able to take input from a user, store it in a table, and display all the records in that table. You might also import data into your database from an outside source, like an Excel sheet from a dataset from NYC OpenData.
Sign up for a final project presentation time slot. (link to doc to be posted)
Due next class (3/11). Blog write-up due 8pm Mar 10.
Week 7: Mar 11
Final Project presentations.