Advanced Web Programming With JavaScript & AJAX

Faculty
Commerce & Business Administration
Department
Computing Studies & Information Systems
Course Code
CSIS 3380
Credits
3.00
Semester Length
15 Weeks
Max Class Size
35
Method Of Instruction
Lecture
Lab
Seminar
Typically Offered
To be determined
Campus
Online

Overview

Course Description
This course provides the fundamental knowledge necessary to design and develop
dynamic Web pages using JavaScript. Students will learn the fundamental aspects of the JavaScript programming language and how to program using document object model application programming interface (DOM API) to modify, traverse, and append nodes to web documents. The course will also introduce students to client-side JavaScript libraries (e.g., jQuery), frameworks (e.g., Angular.js), and design patterns (e.g., MVC pattern) and how client-side scripts interact with server-side programs using Ajax. Furthermore, the course will introduce students to back-end concepts and tools for end-to-end (i.e., full-stack) JavaScript web development, including back-end JavaScript frameworks (e.g., Node.js), REST concepts and NoSQL databases. Students will learn how to architect, develop, test, secure, deploy and manage a RESTful Web Service. Comprehensive hands on exercises are integrated throughout the course to reinforce learning and develop real competency.
Course Content

1.  Introduction

  • Overview of client-side versus server-side scripting 

  • Review of HTML and CSS

 

2.  The Core JavaScript Language

  • Introduction to JavaScript

  • The Building Blocks: Data Types, Literals, and Variables

  • Expressions and Operators

  • Functions

  • Conditionals and Loops

  • Objects and Arrays

  • Working with Form and Images

  • Handling Events

  • Client-side Storage

  • Debugging and Error-handling

 

 3. The Document Object Model (DOM)

  • The DOM Trees and Nodes

  • Walking the DOM

  • Modifying the DOM (Appending, Copying, and Removing Nodes)

  • Event Handling and the DOM

 

4.  JavaScript Design Patterns

  • Introduction to JavaScript Design Patterns

  • The MV* Patterns

  • Modern Modular JavaScript Patterns

 

5.  JavaScript Libraries and Frameworks

  • jQuery Libraries

  • Design Patterns in jQuery

  • Dynamically Accessing and Manipulating Web Pages and Building Web Applications with JavaScript and jQuery

  • JavaScript MVC Frameworks

  • Building Web Applications with Client-side JavaScript MVC Frameworks

 

6.  Ajax

  • Introduction to Ajax

  • Ajax implementation using a server-side scripting language (e.g., PHP), JavaScript, and JavaScript Framework (e.g., jQuery)

  • Using Ajax to Make Asynchronous Calls to a Web Server (both within and across Domains) to Fetch Information and Display It on the Web Page

  • Creating Web Applications with Ajax

 

7.  Full-stack JavaScript Web Development

  • Full-stack JavaScript Web Development Concepts

  • Introduction to Back-end JavaScript Frameworks

  • End-to-end Web Development using JavaScript Frameworks (e.g., MEAN Framework)

  • RESTful web services and APIs Development

Methods Of Instruction

Delivery will be by lecture, lab, assignments, and project(s)

Means of Assessment

Assignments/Project(s)

10% - 30%

Quizzes

5% - 20%

Midterm Examination

25% - 35%

Final Examination*

30% - 40%

Total

100%

* Practical hands-on computer programming exam

In order to pass the course, students must, in addition to receiving an overall course grade of 50%, also achieve a grade of at least 50% on the combined weighted examination components (including quizzes, tests, exams).

                             

Learning Outcomes

At the end of this course the successful student will be able to:

  • Explain client-side concepts and compare and contrast client-side versus server-side scripting.
  • Use JavaScript to add dynamic content to pages.
  • Write well-structured, easily maintained JavaScript code following accepted good practice.
  • Write JavaScript code that works in all major browsers.
  • Program using DOM API to traverse, modify, and append nodes to documents.
  • Use event handlers to handle user-triggered events.
  • Use JavaScript to validate form data and to manage state information.
  • Effectively debug JavaScript code, making use of good practice and debugging tools.
  • Use frond-end JavaScript libraries (e.g., jQuery), frameworks (e.g., Angular.js), and design patterns (e.g., MVC) to create dynamic pages.
  • Use Ajax to fetch information from the server and display it on the web page.
  • Create web applications with Ajax.
  • Demonstrate an understanding of server-side (i.e., back-end) concepts and server-side scripting (e.g., using either PHP or a JavaScript framework)  for web development.
  • Build and configure a back-end server using a JavaScript framework (e.g., Node.js).
  • Build a RESTful API for the front-end to access back-end services.
Textbook Materials

Custom courseware, class notes provided by the instructor, and online resources or other textbooks as approved by the department

Requisites

Prerequisites

CSIS 1280 with grade C or better

Corequisites

No corequisite courses.

Equivalencies

No equivalent courses.

Requisite for

None

Course Guidelines

Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.

Course Transfers

Institution Transfer Details Effective Dates
Athabasca University (AU) AU COMP 266 (3) 2014/09/01 to -
Coast Mountain College (CMTN) CMTN CPSC 1XX (3) 2014/09/01 to -
Coquitlam College (COQU) No credit 2014/09/01 to -
Kwantlen Polytechnic University (KPU) No credit 2019/09/01 to -
Langara College (LANG) LANG CPSC 1045 (3) 2014/09/01 to -
Okanagan College (OC) OC COSC 219 (3) 2014/09/01 to -
Simon Fraser University (SFU) SFU CMPT 2XX (3) 2014/09/01 to -
Thompson Rivers University (TRU) TRU COMP 3XXX (3) 2014/09/01 to -
University Canada West (UCW) UCW CPSC 3XX (3) 2006/01/01 to 2014/08/31
University Canada West (UCW) No credit 2014/09/01 to -
University of British Columbia - Okanagan (UBCO) UBCO COSC 360 (3) 2014/09/01 to -
University of British Columbia - Vancouver (UBCV) No credit 2014/09/01 to -
University of Northern BC (UNBC) UNBC CPSC 2XX (3) 2014/09/01 to -
University of the Fraser Valley (UFV) UFV CIS 245 (4) 2014/09/01 to -
University of Victoria (UVIC) UVIC CSC 2XX (1.5) 2014/09/01 to -
Vancouver Community College (VCC) No credit 2014/09/01 to -

Course Offerings

Winter 2021

CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
15076
Tue
04-Jan-2021
- 12-Apr-2021
04-Jan-2021
12-Apr-2021
Virani
Rahim
Open
Online
This course will include some synchronous on-line activities. Students should plan to be available on-line at scheduled course times. Synchronous on-line activities may include lecture, or they may not. In some courses, synchronous class time may be used instead for active learning components (e.g. discussions, labs).
Max
Enrolled
Remaining
Waitlist
35
32
3
0
Days
Building
Room
Time
Tue
15:30 - 18:20
CRN
Days
Dates
Start Date
End Date
Instructor
Status
Location
16281
Wed
04-Jan-2021
- 12-Apr-2021
04-Jan-2021
12-Apr-2021
Virani
Rahim
Open
Online
This course will include some synchronous on-line activities. Students should plan to be available on-line at scheduled course times. Synchronous on-line activities may include lecture, or they may not. In some courses, synchronous class time may be used instead for active learning components (e.g. discussions, labs).
Max
Enrolled
Remaining
Waitlist
35
6
29
0
Days
Building
Room
Time
Wed
15:30 - 18:20