Unit 1: Introduction, History, What You Should Know

Jan 12, 2011

Hello and welcome to the Web Application programming class at Mines. At this point I will assume you received your introductory email and have begun to read _why's Poignant Guide to Ruby. Weird, huh? Do take it seriously and consider it a fun introduction to the Ruby programming language.

This week, our agenda is as follows:

All right, let's get started.

Introductions

I've been teaching here at Mines for about four years now. I also operate a software development studio (consultancy) here in Denver. Over the years, I've build over a hundred Web applications. My goal is to empower you to be qualified for any number of well-paying, fun Web development jobs across the country. Although I will be using Rails and FLEX to illustrate concepts, the things we learn in this class are absolutely transferable to other platforms. But once you work with Rails, I truly doubt you'll want to use another piece-of-poo Web framework. Trust me, I've tasted them all!

Action: Please introduce yourself. You should visit this thread and post accordingly.

Administrivia

First, be sure to read the syllabus. Your three priorities are to complete the reading assignments, participate in the forum discussions, and complete the project work. There are two exams in this class.

This Web site will serve as our guide this semester. Grades, and only grades, will be posted on blackboard.

Second, if you ever feel lost, I strongly recommend you post your issue to the forum. Do not send me an email requesting help, I promise I'll see your forum post just as quickly, and I will address the issue there. Never be afraid to "appear dumb" on Ore. I promise that I'm the dumbest person in the CS department, and I post all kinds of junk, so that will make you look like a friggin' genius. Besides, nobody cares that much about you anyway.

Lastly, I strongly suggest you take advantage of office hours which are Tues/Thurs from 1 - 4PM. In-person help is the "bestest."

Expectations

I will release one "Unit" per week. Each Unit will consist of a screencast or presentation with audio. Each unit will consist of:

These Units will be released on the Monday of each week. I recommend that you read/experience the Unit on Monday or Tuesday of the week, giving you plenty of time to finish the reading and project work.

The best way to get the most out of this class is to work on this material for an hour a day. I promise that staying up all night before the assignment is due will be very, very painful. Unless you're a vampire. I do know of a damn good programmer who thinks he's a vampire. But that's not you.

Units will not be released ahead of time. If you finish the week's work early, you can always learn more about Ruby, JavaScript, HTML, CSS, gems, UI/UX, design patterns, etc. Or better yet, unplug and go enjoy your free time -- you've earned it. Do see me in person or send me an email if you feel the progress of the class is too slow.

Over the course of the week I will be posting short supplements to each unit that illustrate a certain concept, such as how it's impossible to deploy truly valid XHTML strict due to improper content-type interpretations across different browsers.

Project Grades

Project grades are composed of two pieces. The first being "did you complete the assignment and satisfy the requirements?" The second piece is based on continuous improvement. You will receive one piece of specific feedback from me regarding your application of the week. The following week, you are expected to not repeat the problem or antipattern. For example, say for Project 1 you used a huge fugly <table> to contain the page layout. I might give you the feedback "Only use tables for tablular information!" When I see your next application, I should see that you've used semantically meaningful markup and style declarations to achieve the interface layout rather than the fugly table.

This "improvement point" will count for 25% of each project assignment's grade and is a critical part of learning The Rails Way.

What You Should Know as a Web Developer

Regardless of your environment, every Web developer, at a bare minimum, should know:

It's ok if you don't know any of these things. You will know this and more by the end of the semester.

Homework this Week

This week's reading is designed to give you an understanding of how we arrived at our current state in the world of Web development. Did you know that most HTTP implementations are not complete? (Meaning, pretty much only POST and GET are used?) Poor Tim Berners-Lee. (To really learn more about the history of the Web see Weaving the Web, not required reading.) In addition, the reading assignment is to give you a fun introduction to Ruby, our faithful companion for this semester.

First, complete Reading 1. It won't take you long.

Second, complete Project 1.0 which is designed to get your development environment set up.

Don't forget to introduce yourself on this forum thread. Otherwise I will feel very lonely.