Fundamentals of Web Applications (Fall 2013)

From Soma-notes
Revision as of 00:07, 8 September 2013 by Soma (talk | contribs)

Course Information

Official Course Description

An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications. Topics include: scripting and functional languages, language­based virtual machines, database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.

Communication

This wiki page is the canonical source of information on this course. Please refer to it for updates. When significant changes are made to this document it will be either announced in lecture and/or posted in the course discussion forum.

Course discussions will be on cuLearn. While you may discuss assignments there, do not post answers to assigned questions.

You may get an account on this wiki so you can edit content here. 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.)

Collaboration

Collaboration on all work is allowed except for the midterm and final exams. Collaboration, however, should be clearly acknowledged. Further, all submitted work should be your own. While you may get help from others and even collaboratively solve technical problems, the code and answers should all be your own work. For example, you may not divide an assignment into parts, give a part to another student or anyone else to solve, and then submit that work as your own. You have to have participated in the creation of every part of your submitted work.

An easy way to make sure this happens is never share files regarding coursework or copy and paste answers into email. Instead, meet together to work on an assignment and then separate to write up your solutions.

Similarity between submitted assignments that has not been appropriately documented will be treated as plagiarism - the same as copying on a midterm or a final- and will be submitted to the Dean for disciplinary action.

Required Textbooks

There are two required texts for this course:

These books have been ordered by the University bookstore. You may also buy them online in paper or ebook form. They are also available through Safari Books Online. There is even an interactive version of Crockford's book which includes an embedded JavaScript interpreter. 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.

Other Resources

JavaScript

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.

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.

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


Node

Another introduction to node.js is The Node Beginner Book by Manuel Kiessling.

This page by Evan Hahn has a good overview of the express/connect/node software stack.


Lectures and Exams

Date

Topic

Sept. 9

Lecture 1

Sept. 11

Lecture 2

Sept. 16

Lecture 3

Sept. 18

Lecture 4

Sept. 23

Lecture 5

Sept. 25

Lecture 6

Sept. 30

Lecture 7

Oct. 2

Lecture 8

Oct. 7

Lecture 9

Oct. 9

Lecture 10

Oct. 16

Midterm Review

Oct. 21

Midterm (in class)

Oct. 23

Lecture 11

Nov. 4

Lecture 12

Nov. 6

Lecture 13

Nov. 11

Lecture 14

Nov. 13

Lecture 15

Nov. 18

Lecture 16

Nov. 20

Lecture 17

Nov. 25

Lecture 18

Nov. 27

Lecture 19

Dec. 2

Lecture 20

Dec. 4

Lecture 21

Dec. 9

Lecture 22

TBA

Final Exam

Tutorials

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.

Date

Tutorials

Sept. 6

Setup VMs, Run node.js

Sept. 13

TBA

Sept. 20

TBA

Sept. 27

TBA

Oct. 4

TBA

Oct. 11

TBA

Oct. 18

TBA

Oct. 25

TBA

Nov. 8

TBA

Nov. 15

TBA

Nov. 22

TBA

Nov. 29

TBA

Dec. 6

TBA

Assignments

Due Date

Assignments

Sept. 26

Assignment 1

Oct. 10

Assignment 2

Nov. 14

Assignment 3

Dec. 5

Assignment 4

University Policies

Student Academic Integrity Policy

Every student should be familiar with the Carleton University student academic integrity policy. A student found in violation of academic integrity standards may be awarded penalties which range from a reprimand to receiving a grade of F in the course or even being expelled from the program or University. Some examples of offences are: plagiarism and unauthorized co-operation or collaboration. Information on this policy may be found in the Undergraduate Calendar.

Plagiarism

As defined by Senate, "plagiarism is presenting, whether intentional or not, the ideas, expression of ideas or work of others as one's own". Such reported offences will be reviewed by the office of the Dean of Science.

Unauthorized Co-operation or Collaboration

Senate policy states that "to ensure fairness and equity in assessment of term work, students shall not co-operate or collaborate in the completion of an academic assignment, in whole or in part, when the instructor has indicated that the assignment is to be completed on an individual basis".

Please see above for the specific collaboration policy for this course.

Academic Accommodations for Students with Disabilities

The Paul Menton Centre for Students with Disabilities (PMC) provides services to students with Learning Disabilities (LD), psychiatric/mental health disabilities, Attention Deficit Hyperactivity Disorder (ADHD), Autism Spectrum Disorders (ASD), chronic medical conditions, and impairments in mobility, hearing, and vision. If you have a disability requiring academic accommodations in this course, please contact PMC at 613-520-6608 or pmc@carleton.ca for a formal evaluation. If you are already registered with the PMC, contact your PMC coordinator to send me your Letter of Accommodation at the beginning of the term, and no later than two weeks before the first in-class scheduled test or exam requiring accommodation (if applicable). After requesting accommodation from PMC, meet with me to ensure accommodation arrangements are made. Please consult the PMC website for the deadline to request accommodations for the formally-scheduled exam (if applicable) at http://www2.carleton.ca/pmc/new-and-current-students/dates-and-deadlines

Religious Obligation

Write to the instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details visit the Equity Services website: http://www2.carleton.ca/equity/

Pregnancy Obligation

Write to the instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details visit the Equity Services website: http://www2.carleton.ca/equity/

Medical Certificate

The following is a link to the official medical certificate accepted by Carleton University for the deferral of final examinations or assignments in undergraduate courses. To access the form, please go to http://www.carleton.ca/registrar/forms