Fundamentals of Web Applications (Winter 2013)

From Soma-notes
Revision as of 03:36, 13 January 2013 by Sdp (talk | contribs)

Administration

The course outline for this course is here.

Course discussions will be on Piazza. You can sign up here. Note that Piazza has a "groups" function that can help you find partners for your project. Also note that piazza asks for your carleton.ca email address, so you can't directly sign up with any anonymous email address. If you wish to sign up using an anonymous/throw away email address, please email Prof. Somayaji or a TA and they can enroll that email address manually.

You should get an account on this wiki so you can add to it. Email Prof. Somayaji to get one with your preferred username and email address to which a password should be sent. (Note this is not a requirement.)

Resources

JavaScript

You should go out and learn the basics of JavaScript on your own. While we will discuss the language in class, much of that discussion will make more sense if you've exposed yourself to the language. You should also get basic exposure to standard web technologies.

The easiest way to get started with JavaScript and get basic understanding of web technologies is to go through the interactive lessons on Code Academy. I suggest you go through their JavaScript, Web Fundamentals, and jQuery tracks. They shouldn't take you very long to do given that you already know how to program.

You should get access to JavaScript: The Good Parts by Douglas Crockford (free PDF download). Read it. It is available through O'Reilly, Safari Books Online, and the regular online bookstores. I've even seen an interactive version of it which includes an embedded JavaScript interpreter. (link?) You can get access to Safari Books Online through the Carleton Library (four concurrent users only) or partial access by becoming a member of IEEE Computer Society.

Crockford also has a lot of online resources on JavaScript, including videos of talks he's given that cover much of the content in his book. Look at his JavaScript page and this page of his videos.

Another good book is Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke. A version of this book is available online for free. The for-sale version is apparently updated and edited.

And of course the standard reference for JavaScript is JavaScript: The Definitive Guide by David Flanagan. It is a big book, but it is comprehensive.

Node

You will be building your application in node.js this term. A good, relatively comprehensive book is Learning Node by Shelley Powers. This book is recommended but not required. A quick way to get started with node.js is The Node Beginner Book by Manuel Kiessling.

Lectures

Date

Topic

Jan. 8

Introduction

Jan. 10

Symbols

Tutorials/Weekly Tasks

Each week you will get a progress grade from 0-4, given to you by a TA. If you are being diligent, you should be able to get 4's every week. The easiest way to get your grade is to come to tutorial and meet with your TA; alternately, you can meet a TA in their office hours or, at their discretion, discuss things with them online.

Initially you can talk to any TA to get your progress grade. Once groups have been formed, however, you will have an assigned TA who will be tracking your progress throughout the semester.

Below is a schedule with the tasks you need to accomplish each week. Note you need to accomplish the task before your next tutorial. So, if you attend the Monday tutorials, you need to show progress before the following Monday.

Date

Tasks

Jan. 11,14

Setup Accounts, Run node.js

Jan. 18,21

Project Partners due

Humor/Quotes

Bobby Tables, a funny example of SQL injection.

"Scalability is always the answer in this class." -Alexis

"First axiom of this class is web apps suck." -Professor Somayaji