INFO 343 : summer a-term, 2009

Things you should have done long before now:

We have Facebook group. You're not required to join it.

Summary

This class is about client-side web technologies. You will learn what these technologies are, how they work, why they matter and how to use them. In other words, you will learn about how people shape and interact with the web and how you can shape that interaction.

Grading: 40% participation, 30% portfolio, 30% final exam. The portfolio is a website you will not be ashamed to show others, a website that might even impress them. You'll demonstrate it to the class.

This syllabus is subject to change. I'll add more details before the course starts and as the course proceeds.

Your instructor is Joseph Tate. He goes by Jody. For non-teaching and non-UW Jody, visit josephtate.com.

And now: the fine print.

The Fine Print

Office hours

My office hours are Tues 7:30 to 8:30 in MGH 330K. If my regular office hours aren't convenient, I'm happy to meet other times when I can. Also, we can use IM if that's convenient.

Us

I teach in a manner that is both fun and serious: fun, but not a joke; serious, but not sober. But don't mistake my awkward and feeble attempts at hipness and humor for an overall lenient attitude. I am a generous and flexible instructor. I invest time, energy, and interest into every students' success: I am on your side.

Participation

This component includes discussion, quizzes, group work, presentations, etc.

Thoughtful and respectful discussion is required on a regular basis and is a major part of your participation grade. During discussion I encourage you to respond not only to me, but to engage with your classmates. Successful discussion also depends on listening. In other words: listen to your classmates' contributions.

To do well in this area you need to participate in all the full-class meetings and you need to contribute thoughtfully to class discussion and any in-class exercises. I do not grade attendance, but attending class means nothing if you do nothing in class. Also, doing something other than classwork during class time is considered non-participation and will be graded as if you are not present.

Regular participation is essential. Participation in all class sessions exceeds the competence tested by any exam. Ergo, if you suspect you will not be able to participate on a regular basis in this class, you probably should consider taking the class at another time.

Late Work and Non-Participation

Late work is accepted but is penalized: 5% off for lateness on the day due (e.g., submitted after class), 10% off for 1 day late, 20% for 2 days, 40% for 3, 80% for 4. Work older than 4 days is not accepted. Late work receives no feedback. Late work and non-participation can be excused, but: any excuses for lateness, absence or late work needs my approval--by email or in person--before the deadline. Non-emergencies will not be excused (e.g., taking a friend or family member to the airport, attending a party you didn't invite me to).

If you miss a class or exercise without informing me prior to the class or exercise, you can't "make-up" the work. That said, don't ask me what assignments you missed or if you missed "something important," etc. The answer to that question is always yes.

Some more clarity: an excuse might be that you forgot to FTP your work to a server, or forgot to bring your flash drive, and on and on. You might get one time excused, maybe two, but three times? Nope.

Other Warnings

Remember to save, save, save your work. I recommend you get a USB flash drive. Do not trust any single hard drives, flash drives, SSD drives, online storage, the "cloud," etc. Keep back ups of your work in multiple areas. Single points of failure will fail.

Don't let your cell phone ring during class. Emergencies happen and you might need to be contacted during class time. If so, set the phone to vibrate and take the call outside. If the phone rings during class time, public humiliation and hilarity will ensue. Same with text messaging: don't.

Accommodations

If you are identified as having a disability and require specific instructional accommodations, please notify me during the first week of the term.

Plagiarism

Plagiarism is an act of theft. It also goes by the less frightening-sounding guise of "cheating." If you do it, I will catch you. And it will not be fun to sit and chat with me about it. Cheating in a web-based course is a difficult problem. In a course like this one, we will be borrowing code, but the key phrase is "borrowing"--we won't pretend it's ours. If you borrow code, you can document the borrowing in comments. Always give credit to the source of borrowed code and ideas. Also, if you borrow code and don't know how it works, when we--you and I--talk about it, it'll show.

Really, I'm a Nice Person

The above sounds harsh. It does to me, at least. But I want to remind you that as bad and as strict it might sound: I am on your side.

Close

Week 1 June 22-25

This week we'll introduce ourselves and go over what we'll be doing and why. We'll get our web development environment ready, fiddle with our .htaccess files. We'll cover XHTML (HTML, XHTML, Transitional vs. Strict), CSS, web standards, W3C Validation. We'll talk about why peer programming and code conventions are useful. We'll discuss accessibility and section 508. We'll cry about cross-browser incompatibilities and we'll use a css reset stylesheet (this site uses a reset). We'll learn to ignore the rich-text editor in Dreamweaver. We'll learn the big picture in a short lecture: what the internet is and how it works. We'll discuss technologies you know nothing about but underlie what you do and without which what we're doing would not work. We'll discuss error codes. Web security will be addressed, e.g. how to password protect a page (requires UWNetID).

Week 2 June 29-July 2

This week we'll cover design techniques using advanced CSS. We'll discuss layout, floats, fonts, font-families, negative space, why frames are pure evil, why image maps are evil, why CSS image maps are better, why JS rollovers are evil, why CSS rollovers are better, etc. We'll discuss interaction design, information architecture, usability, e.g., Apple's Human Interface Guidelines. We'll talk about Google's recommendations for page search optimization and tag semantics and why those recommendations matter. We'll discuss color and content (righting for teh interwebz, aka 1nt3rn37). If you have a website of your own, we might look at it together and laugh at it (laugh with you, not at you). We might touch on image creation and editing. Emphasis on might. You will read Getting Real and you will feel fortunate I instructed you to do so.

Week 3 July 6-9

This week we'll have a midterm! Then, we'll cover ECMAScript (not a skin condition), also known as JavaScript. We'll start by covering the basics: variables, functions, loops and if/else (stuff you should know). We'll look at simple JS implementations and massive ones. We'll discuss how JS libraries help and we'll focus on jQuery. Why jQuery? It's winning some battles in the adoption war, e.g. Microsoft will be distributing jQuery as part of Visual Studio. We'll discuss ajax--its history, how it works, how the term is misused and how libraries make it easier to use. You'll use ajax to consume some XML and some JSON. We'll discuss the rise of JSON. We'll discuss the difference between ajax and DHTML. We'll talk about the range of things JavaScript does, what it does now, and what it will be doing in the future (i.e., almost everything). Maybe we'll get to canvas. And don't forget Firebug.

Week 4 July 13-16

This week we'll cover too much in too little time: PHP as a help in making templated sites, Flash and/or Silverlight, social media (integrating YouTube , Twitter, Facebook, etc.), how what you do on the client-side works with the server-side (the rise of REST), designing for the iPhone (why iPhone? It's winning around the world and on the UW campus) and other mobile devices. What else? Google Analytics! YSlow!

Week 5 July 20-21

This week we'll see each other's final work with question and answers from the audience. Each person gets roughly 15 minutes. 10 minutes to demo, 5 for questions and comments from the class. You need to be able to explain what you've done and why. You'll validate it in front of us. Why the presentation? You'll be doing them when you apply for jobs, internships, attempt to woo clients, and so on. You'll have a final exam, too.

Elsewhere

Standards

Design/IA

JavaScript

Mobile Internet

Browsers

Bunches of Other Stuff