Introduction to JavaScript Spring 2011
Contents
Introduction
JavaScript is a scrappy little language that has seen a lot of changes since its introduction in 1995. Though the language has often been abused, there has been a resurgence of interest since the introduction of highly dynamic web applications like Gmail and Google Maps, which take full of advantage of JavaScript's capabilities.
This class will treat JavaScript with the respect that it deserves. Instead of relying on poorly designed tools to generate half-baked JavaScript, we will be hand writing clean and compact JavaScript.
I fully expect that this class will include students with little to no experience with programming or JavaScript. Luckily, JavaScript is a simple language to work with. Unlike many other languages, JavaScript doesn't require any fancy development environments or expensive tools. I hope that everyone will come away from this class knowing a lot more about JavaScript than they did before starting.
Who's teaching this class?
My name is Brian Nielsen. I am a Front End Developer at Sears Holdings Corporation.
You can contact me at bnielsen@colum.edu.
I won't have any office hours on campus, but if you would like to meet with me, I am available before and after class by appointment.
Class Deliverables
The majority of your grade will come from work you turn into class. A small fraction of your grade will be from class participation and attendance. All class work (except written exams) is expected to be posted on your class portfolio site. Work that isn't posted won't be graded. Class work will fall into these categories:
In-Class Work
There will be some time to work on examples in class. Some of these examples will count towards your grade. In class assignments are due at the begging of class one week after they are assigned. I will still accept them one week late for full credit.
Assignments
Assignments are homework. They are worth considerably more points than in-class work. I expect them to be posted to your portfolio before the beginning of the class that they are due. If an assignment is late it can be posted before the beginning of the next class. Late assignments will not be accepted.
Projects
Projects are homework that you will have a much longer timeline than assignments have. A proposal should be approved before you begin work on your projects, and they should be documented. Projects are worth a huge chunk of your final grade. Late projects will not be accepted, and count as as a zero.
Exams
There will be midterm and final exam for this class.
Tools for this class
This is a list of tools that will come in handy for JavaScript development.
Text Editors
Cross Platform
- Aptana (free, built on top of eclipse)
For Windows
- Notepad++ (free)
- e TextEditor
- SciTE (free and open source)
For OS X
- TextWrangler (free)
- jEdit (free and open source)
- TextMate
- Coda
Browser Tools
Tools for Firefox
Books
I won't be teaching directly out of a book for this class, but there are a few books that will come in handy:
DOM Scripting: Web Design with JavaScript and the Document Object Model: this is the best JavaScript book I have found for people that don't have any prior programing or JavaScript background.
JavaScript: the Definitive Guide: this is, essentially, the JavaScript Bible. If you want to know where much of the content of this course comes from, look no further than this book. I highly recommend buying it. And make sure to get the latest edition (currently, the 5th is the latest).
JavaScript: the Good Parts: this is a brief and opinionated book, but if you're already somewhat familiar with JavaScript, it makes a good reference. It's no substitute for the Definitive Guide, but it contains some good information.
Resources
This is a list of resources that will come in handy for this class.
- W3Schools JavaScript reference
- Mozilla JavaScript reference
- Dive Into HTML5 (an online book about HTML5)
- (online videos of JavaScript lectures)
Tutor
Phil's tutoring schedule:
- Tuesday: 3:30-5:30
- Wednesday: 5-10
- Thursday: 5-6:30
eBooks
Interesting JavaScript Websites
Each week, I will might you an interesting example of JavaScript usage in the wild. You can find a list of all of the websites here. If you come across any sites that you think use JavaScript in an interesting way, feel free to suggest them.
Class Schedule
- Class 01 (01/25/2011): Introduction
- Class 02 (02/01/2011): (Chicago Snowpocalypse 2011)
- Class 03 (02/08/2011): Variables, Conditions
- Class 04 (02/15/2011): Functions, Objects
- Class 05 (02/22/2011): Arrays & Loops
- Class 06 (03/01/2011): Forms and GET data
- Class 07 (03/08/2011): Midterm Review
- Class 08 (03/15/2011): Midterm Exam
- SP Break (03/22/2011): Spring Break, Woo!
- Class 09 (03/29/2011): project1 examples
- Class 10 (04/05/2011): Project 1 Critique
- Class 11 (04/12/2011): jQuery!
- Class 12 (04/19/2011): Ajax
- Class 13 (04/26/2011): jQuery Plugins
- Class 14 (05/03/2011): Rapheal
- Class 15 (05/10/2011): Project 2 Critique