carleton svg logo       COMP 2406 A Fall 2018

COMP 2406 Fundamental of Web Applications

COURSE OUTLINE

Lectures Tue,Thu 1:00-2:30 location: Minto Centre 2000
Tutorials

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

Instructor Louis Nel
TA/Lab Co-ordinator Sean Benjamin
SeanBenjamin@cunet.carleton.ca

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.

Topics:

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

  • Web Concepts, HTTP, HTTPS
  • Javascript
  • Client and Server side coding (in javascript)
  • Markup Languages (HTML, CSS, XML, Bootstrap) 
  • Javascript execution environments: Browser, Node.js and Express.js framework
  • Javascript evolution (ES5, ES6) and modularization features (require vs. import)
  • Node.js and its NPM echo-system
  • Client-Sever data exchange with JSON and XML
  • Functional Programming and Closures 
  • Synchronous vs Asynchronous function calls.
  • JSON and Relational databases (using MongoDB and SQLite)
  • RESTful Web API's
  • Server Side templating (using Handlebars, PUG, etc.) 
  • Session Storage and Cookies, AJAX, Web Sockets.

Textbook:

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 website. The resources section will be updated as the course proceeds and students are encouraged to contribute to the 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, in part, because course content has ended up on public sites like OneClass, Course Hero, or GitHub without permission. Many students are eager to post there work on GitHub but you must be careful not to include copyrighted material.

Software:

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 of the later assignments. Node.js runs on Windows, Linux or Mac OS. On the client side javascript will be exectuted primarily in the browsers (Chrome, Firefox, IE, Safari). Chrome will be our "official" browser. 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.

Tutorials:

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 may be asked to make minor modifications to demonstrate your understanding.

Assignments:

We will be using electronic submission of assignments using Carleton's culearn system. Electronic submission enforces strict deadlines. Only assignments submitted through culearn will be graded. No assignments will be accepted late or directly by email or in other forms. TA's are not allowed to accept assignments directly.

Lab/TA Co-ordinator:

We have a lab/TA co-ordinator, Farah Chanchary, 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 culearn and on the course website.

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. Nov. 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 that 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. If you are working with a partner on assignments you must submit only one copy but have both your names on the assignment.

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 http://www.scs.carleton.ca/~ldnel/2406fall2018. 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. We will not send mass emails for routine announcements -emails will be used for exceptional circumstances.

Information on University Academic Accommodations

Requests for Academic Accommodation

You may need special arrangements to meet your academic obligations during the term. For an accommodation request, the processes are as follows:

Pregnancy obligation

Please contact your 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: carleton.ca/equity/wp-content/uploads/Student-Guide-to-Academic-Accommodation.pdf

Religious obligation

Please contact your 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: carleton.ca/equity/wp-content/uploads/Student-Guide-to-Academic-Accommodation.pdf

Academic Accommodations for Students with Disabilities

If you have a documented disability requiring academic accommodations in this course, please contact the Paul Menton Centre for Students with Disabilities (PMC) at 613-520-6608 or pmc@carleton.ca for a formal evaluation or contact your PMC coordinator to send your instructor your Letter of Accommodation at the beginning of the term. You must also contact the PMC 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 your instructor as soon as possible to ensure accommodation arrangements are made. carleton.ca/pmc

Survivors of Sexual Violence

As a community, Carleton University is committed to maintaining a positive learning, working and living environment where sexual violence will not be tolerated, and is survivors are supported through academic accommodations as per Carleton's Sexual Violence Policy. For more information about the services available at the university and to obtain information about sexual violence and/or support, visit: carleton.ca/sexual-violence-support

Accommodation for Student Activities

Carleton University recognizes the substantial benefits, both to the individual student and for the university, that result from a student participating in activities beyond the classroom experience. Reasonable accommodation must be provided to students who compete or perform at the national or international level. Please contact your 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. https://carleton.ca/senate/wp-content/uploads/Accommodation-for-Student-Activities-1.pdf

For more information on academic accommodation, please contact the departmental administrator or visit: students.carleton.ca/course-outline

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.

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