COMP 2406 B Winter 2018

COMP 2406 Fundamental of Web Applications


Lectures Tue,Thu 4:00-5:30 location: Richcraft Hall 2200

(A1) Wed 11:30-1:00 location: HP 4155
(A2) Tue 8:30-10:00 location: HP 4155
(A3) Mon 2:30-4:00 location: HP 4155
(A4) Mon 1:00-2:30 location: HP 4155
(A5) Thu 11:30-1:00 location: HP 4155
(You MUST attend the session you are registered in)

Instructor Louis Nel
TA/Lab Co-ordinator Dave McKenney

Calendar Description:

Introduction to internet application development; emphasis on computer science fundamentals of 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.

Precludes additional credit for COMP 2005 (no longer offered), COMP 2006 (no longer offered), COMP 2405 (no longer offered). Prerequisite(s): one of COMP 1006, COMP 1406, SYSC 2004, with a minimum grade of C-. Students in the industrial applications internship option register in COMP 2406 Z*.

Course Description:

The course covers the principles involved in the design and implementation of web-based applications. Our primary programming language in this offering will be Javascript (on both client and server side). The course will examine programming concepts as they relate to building web applications and will emphasize the computer science fundamentals. Our aim is for the course to be as OS agnostic as possible so that you can choose your OS: Windows, Mac OS, or linux. The technologies in this course are intended to work on all those platforms though slight variations may occur.


The follow are the topics we covered in the last offering and will be adjusted and updated as the course proceeds.

  • Web Concepts, HTTP
  • Javascript
  • Client and Server side coding (in javascript)
  • Markup Languages (HTML, CSS, XML, Bootstrap)¬†
  • Javascript execution environments: Browswer, Node.js and Express.js framework.
  • Node.js and the NPM echo-system.
  • Client-Sever data exchange with JSON and XML
  • Functional Programming and Closures¬†
  • Synchronous vs Asynchronous function calls.
  • JSON databases (using MongoDB), SQL databases (using SQLite)
  • Developing (RESTful) Web API's
  • Server Side templating (using Handlebars, PUG, etc.)¬†
  • Session Storage and Cookies, AJAX, Web Sockets
  • Competing techologies (e.g. Apache,PHP,SQL)


This course will be taught from many sources and much of the content is available freely online. Some recommended texts will be provided in the resources section of the course web site. The resources section will be updated as the course proceeds and students are encouraged to contribute to the resources list.

Course Material Copyright Notice:

We remind you that lectures and course materials, including power point presentations, outlines, code examples, and similar materials, are protected by copyright. The professor is typically the exclusive owner of copyright and intellectual property of the course materials unless otherwise noted. You may take notes and make copies of course materials for your own private (educational) use. You may not and may not allow others to reproduce or distribute lecture notes and course materials publicly for commercial purposes without my express written consent.

(This notice has been added because course content has ended up on public sites (like OneClass and Course Hero) without permission.)


We will attempt to keep the course as OS agnostic as possible. The primary programming language we will use is Javascript. On the server side javascript will be executed in the Node.js environment and use the Express.js framework for some assignments. Node.js runs in Windows, Linux or Mac OS. On the client side javascript will be exectuted primarily in the broswers (Chrome, Firefox, IE, Safari). In this course you will be free to work on whichever OS you prefer. The computers in our undergrad labs (HP4155) are running Windows 10 this term and also include the VirtualBox an Open Stack virtualization environment and a Ubuntu linux image should be available which you can use if you prefer Linux. Mac OS is not supported on the lab machines. You are encouraged to use your own laptop and can use them at the tutorials instead of the lab computers if you want.

The assignments and tutorials all involve programming.


This class has compulsory tutorials that you must attend once a week. The tutorials are an important part of the course and make up a substantial portion of the marks. The tutorial exercises will be posted ahead of time and you are expected to work on them before you come to the tutorial. At the tutorial you will demonstrate your results to the supervising TA's and likely be asked to make minor modifications and demonstrate those. Because you will be there to demonstrate your work it will enable you to work on your operating system of choice.


We will be using electronic submission of assignments using the new CULearn system culearn. Electronic submission enforces strict deadlines. Only assignments submitted through culearn will be accepted for marking. No assignments will be accepted late or directly by email or in other forms. TA's are instructed not to accept assignments directly.

Lab/TA Co-ordinator:

We have a lab/TA co-ordinator, Dave McKenney, assigned to this course offering.

The lab coordinator is responsible for organizing and overseeing the tutorial sections of the course and also imposing submission rules to help ensure that marking goes smoothly. If you notice any mistakes within a tutorial, have issues with a tutorial teaching assistant, or have any other tutorial related questions, the lab coordinator should be your first point of contact. The lab coordinator is also responsible for distributing assignments to teaching assistants for evaluation. If you are missing an assignment grade or are unsure about the status of your assignment, you can contact the lab coordinator.

Teaching Assistants:

A schedule for TAs will be posted on the course web site.

Marking Scheme:

deliverable value comment
Tutorials 25%

10 tutorials. Count best 8/10
(completed individually)

Assignments 25%

5 assignments equally weighted
You may work in pairs on assignments if you want. All assignments count.

Midterm 10% In class (Thu. Mar. 1 in class). (If your final exam mark is better than the midterm mark, the midterm mark will be replaced by the final exam mark)
Final Exam 40% Formally scheduled exam during exam period


There are no make up tutorials. You may miss two tutorials for medical or other reasons without penalty (we count the best 8/10). After that you will lose the marks for the missed tutorials.

Missed assignments score 0 unless it is for a medical, or similar, reasons and is accompanied by official medical documentation. You will be excused from an assignment for medical reasons if accompanied by proper documentation presented within two weeks of the assignment due date. There are no assignment extensions.

If your final exam mark is better than the midterm mark we will replace the midterm mark with the final exam mark. Midterm or Exam marks will not be used to make up for missed, or poorly done, assignments or tutorials.

IMPORTANT: If you wish to appeal a mark (assignment, tutorial or midterm) you must make the appeal within two weeks of the mark being posted on culearn. After this we will not be obliged to entertain appeals or change marks.

Collaboration is encouraged but cheating, or copying, is not allowed. You may work together and consult but any work you hand in must be your own and judged to be unique. Any two assignments judged to be too similar will both receive a grade of 0, and will be handled as a formal academic offence -see calendar for details.

Course Web Page:

As well as being announced in class, all important information, such as course news, assignments, TA hours, instructor office hours, will be available on the course web page at It is your responsibility to check this web page frequently for new information and announcements. Paper copies of outlines and assignments will not be provided.


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, Section 14, Page 59.


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 refer to the course outline statement or the instructor concerning this issue.

Academic Accommodation

You may need special arrangements to meet your academic obligations during the term because of disability, pregnancy or religious obligations. Please review the course outline promptly and write to your instructor concerning 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. It takes time to review and consider each request individually, and to arrange for accommodations where appropriate. Please make sure you respect these timelines particularly for in-class tests, midterms and final exams, as well as any change in due dates for papers. You can visit the Equity Services website to view the policies and to obtain more detailed information on academic accommodation at

Students with Disabilities Requiring Academic Accommodations Register with the Paul Menton Centre for Students with Disabilities (PMC) for a formal evaluation of disability-related needs. Documented disabilities could include but are not limited to mobility/physical impairments, specific Learning Disabilities (LD), psychiatric/psychological disabilities, sensory disabilities, Attention Deficit Hyperactivity Disorder (ADHD), and chronic medical conditions. Registered PMC students are required to contact the PMC, 613-520-6608, every term to ensure that I receive your Letter of Accommodation, no later than two weeks before the first assignment is due or the first in-class test/midterm requiring accommodations. If you only require accommodations for your formally scheduled exam(s) in this course, please submit your request for accommodations to PMC by the deadlines published on the PMC website:

Religious Obligation

Write to your instructor concerning 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

Pregnancy Obligation

Write to your instructor concerning 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

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