INFSCI 1091: Web 2.0

Fall, 2007
Monday 6:00-8:30, IS 838

Rosta Farzan: rosta@cs.pitt.edu, 412-624-5757
Tomek Loboda: tol7@pitt.edu, 412-624-7378


Overview

What is Web 2.0? A term to describe web technologies that are highly interactive, conversational and participatory? Or a term to describe the future of the WWW in which people are linked together in addition to documents? Why is Web 2.0 so important? In this course, we will explore the theories, technologies, and other issues related to Web 2.0. We will look at them from the perspective of various disciplines, such as social psychology and economics. You will become familiar with the Web browser environment and learn how to create Web 2.0 applications (a.k.a. AJAX applications).


Prerequisites

A big component of this course will focus on gaining practical skills. Because of that, you should have prior programming experience. No particular language is important. It can be C, C++, Java, Perl, Python, Lisp, or any other language. What is important is that you understand a set of universal programming concepts. If you are not sure if your skills meet that requirement, try asking yourself if you are able to implement a stack -- one of the basic data structures. If you can do that, you have likely achieved the necessary level of programming proficiency. If you just need a refresher on that particular data structure it's still likely you will do well in this course. If you are unable to implement a stack or don't even know what a stack is, then this course is probably not a good choice for you.

Since the main programming language that we will use in this course is Javascript, familiarity with any language with the C syntax is a plus.

This course is generally targeted to advanced students, but if you feel you are a good match and are interested in it you are welcome to join this course.


Emphasis

This course will allow you to experiment with technologies that enabled the Web to evolve to its current form. Stated very briefly, conceptually you will discover:

On the level of practical skills, you will learn to:

Generally, familiarity with HTML will be assumed, but we will have a very quick review of that markup language.


Outline

There will be no exams in this course. Rather, the workload will be distributed (reasonably equally) across the whole term. There will be eight small assignments. All of them will be narrow in scope and designed for you to practice material from the previous lecture. In the case of all of them, you will create something useful and, who knows, maybe even cool. There will be two projects: midterm and final. The midterm project will be the much smaller of the two and will require no programming. It will be a purely conceptual thing. The final project will be an amalgam of both.

To make sure you get as much as possible from each lecture, each week you will read one paper. You will also be encouraged to take active participation in the discussion of that paper (and the relevant lecture). Those discussions will count towards the participation part of your grade (see below for Grading section).

In the outline below the letter C denotes the title of the conceptual part and the letter P the practical part. Deadlines are marked with a star and displayed in green.



Grading

Below is the distribution of points you can get.

Participation 13
Programming assignments   40 (8*5)
Midterm project 13
Final project:
  Proposal 7
  Progress report 7
  Final presentation 10
  Final report 10
Optional assignment 5
TOTAL 105

On top of that, Rosta and Tomek will have 5 points each at their disposition. Those points are not to be asked for though. They will be used solely at their discretion. For instance, if you made a good impression in class and are a B+ case those points will likely help you to get an A.

Your final grade will then be as follows:

A   90-100 points
B   80-89 points
C   60-79 points
F   0-59 point


Submissions

All deliverables should be submitted using the CourseWeb Dropbox. If you choose to make your submission by sending either of us an e-mail, it may be lost, so the Dropbox is your best bet. The submission deadline is midnight on the day an assignment or a report is due. Generally, late submissions will not be accepted. Extensions will be granted on a case-by-case basis.

All assignments and projects will be done in groups of two. Groups will be named after the planets of the Solar System. That means we can have no more than eight groups. If a need be, we will use names of smaller objects floating out there, like Pluto (which de facto lost it's status of a planet quite recently). All submissions should be ZIP-ed. Below is the convention that should be used for naming the resulting archives:

    <planet>-<assignment or project>.zip

For example, the submission of the first assignment of the Uranus group should be named Uranus-1.zip. Similarily, the submission of the midterm project report of the Mercury group should be named Mercury-MP-Report.zip.

There is nothing more frustrating for students than not graded assignments. There is nothing more frustrating to the teacher than poor submission.


Resources

Below are some resources you will likely find useful for the practical part of the course. Please note that no JavaScript textbook is required. However, the first resource is an on-line version of a book that you may want to give a more serious consideration. Purchase is not necessary. The book is available free and with no restrictions if accessed from the University of Pittsburgh network (dorms, library, computer labs, etc.). For that matter, many other good books on JavaScript are available at Safari Books as well (search for javascript).