Course Outline
General Information
Program | Computer Science Technology 420.B0 |
Course Title | Web Programming II |
Course Number | 420-4W6-AB |
Timetable and Classroom | Section 1: Mon 08:30-10:00, Tue 10:00-11:30, Thu 08:30-11:30, P322 Section 2: Mon 10:00-11:30, Tue 08:30-10:00, Fri 08:30-11:30, P322 |
Ponderation | 2 hours lecture + 4 hours laboratory + 3 hours homework |
Number of Credits | 3.00 |
Competency and Code | Develop transactional Web applications. 00SU. |
Prerequisites | 420-3W5-AB, 420-3D6-AB |
This course is a prerequisite for 420-5W6-AB and 420-5N4-AB | |
Semester | Winter 2024 |
Teacher Name | Vikram Singh |
Office | Penfield 311 |
Phone | (514) 457-6610, local 5961 |
Internet | vikram.singh@johnabbott.qc.ca |
Office Hours | Posted on office door. Appointments can be made outside of the posted hours when the need arises. |
Introduction
By the end of this course, the student will be able to fully develop a transactional web application. After mapping out the requirements of the business logic, the web apps will be organized using Model-View-Controller architecture. The application’s state will be persisted using a database. They will be able to handle HTTP requests using a REST API. The code will be robust by having the student evaluate the web application’s quality through software testing. The course will be taught using PHP and/or NodeJS.
Course Objectives
Competency 00SU. Develop transactional Web applications
Achievement Context
- For transactional Web applications: reservations, registrations, collaboration, inventory management, e-commerce, etc.
- For new applications and applications to be modified
- Based on design documents
- Using images
- Using issue tracking and version control procedures
Elements of competency | Performance criteria |
---|---|
00SU.1 Analyze the application development project. | |
ď‚·Accurate analysis of design documentsď‚·Proper identification of the tasks to be carried out | |
00SU.2 Prepare the computer development environment. | ď‚·Proper installation of the Web development platform and the development database management systemď‚·Proper installation of software and librariesď‚·Appropriate configuration of the version control systemď‚·Proper importing of the source code |
00SU.3 Prepare the database. | ď‚·Suitable creation or adaptation of the databaseď‚·Proper insertion of initial or test dataď‚·Compliance with the data model |
00SU.5 Program the server-side application logic. | ď‚·Proper programming or integration of authentication and authorization mechanismsď‚·Proper programming of interactions between the Web interface and the userď‚·Appropriate choice of clauses, operators, commands or parameters in database queriesď‚·Correct handling of database dataď‚·Appropriate use of data exchange servicesď‚·Proper application of internationalization techniquesď‚·Precise application of secure programming techniques |
00SU.7 Control the quality of the application. | ď‚·Precise application of test plansď‚·Thorough reviews of code and securityď‚·Relevance of the corrective actionsď‚·Compliance with issue tracking and version control proceduresď‚·Compliance with design documents |
00SU.8 Participate in the deployment of the application on the Web host. | ď‚·Accurate identification of the domain nameď‚·Appropriate configuration of the application on the Web hostď‚·Proper application of the procedure for migrating the service onto the Web hostď‚·Precise application of security measuresď‚·Compliance with search engine indexing requirements |
00SU.9 Produce the documentation. | ď‚·Proper identification of the information to be written upď‚·Clear record of the work carried out |
EVALUATION PLAN
|
|
00SU.1
|
00SU.2
|
00SU.3
|
00SU.5
|
00SU.7
|
00SU.8
|
00SU.9
| | --- | --- | --- | --- | --- | --- | --- | --- | | Assignments (4-6) 35% total (each <= 9%) | X | X | X | X | X | | | | Test 1 (Week 6) 20% | X | | X | | | | | | Test 2 (Week 12) 20% | X | | X | X | | | | | Project (Week 15) 25% | X | X | X | X | X | X | X |
(Note: Weeks indicated for Tests and Project are tentative)
Final evaluation consists of the tests, the project, and the assignments.
COURSE CONTENT
General Learning Objective | Specific Learning Objective |
---|---|
1 Handle errors and exceptions. | 1.1 Enable different levels of error reporting. |
1.2 Differentiate the main types of errors. | |
1.3 Define exception handling. | |
1.4 Differentiate errors and exceptions. | |
1.5 Handle exceptions using try/catch blocks. | |
1.6 Assess potential application-specific problems for which to write custom exceptions. | |
2 Organize a web application using Model-View-Controller architecture. | 2.1 Explain Model-View-Controller architecture. |
2.2 Use a template engine to encapsulate all view-related code. | |
2.3 Transact data to and from a database using models. | |
2.4 Interface between the views and models using controllers. | |
3 Route HTTP requests using a REST API. | 3.1 Define REST and for what it is used. |
3.2 Rewrite URLs to conform to REST protocols. | |
3.3 Route to the proper controller based on the HTTP method and resource requested. | |
4 Evaluate web application quality through testing. | 4.1 Explain why software testing is important. |
4.2 List the different types of software tests. | |
4.3 Compare and contrast the main types of software tests. | |
4.4 Write unit tests for a web application. | |
4.5 Determine whether the application has been thoroughly tested by looking at the code coverage. | |
5 Map out the requirements of a web application. | 5.1 Outline the software development life cycles. |
5.2 Collect information on the number & type of users, degree of interactivity of the application, and the information distribution mode. | |
5.3 Deduce and justify the application’s use cases. | |
5.4 Write an analysis report based on the gathered requirements. | |
5.5 Produce a web application proposal prototype. | |
5.6 Write documentation for a web application. | |
6 Develop a transactional web application. | 6.1Outline the web request-response cycle. |
6.2 Set up a development environment configured for coding a web application. | |
6.3 Load text, images, and data asynchronously to update a web page. | |
6.4 Manage application state with sessions & cookies. | |
6.5 Authenticate users to access the web application. | |
6.6 Determine when to use GET, POST, PUT, and DELETE requests. |
TENTATIVE SCHEDULE
Week 1 | Development Environment Setup |
---|---|
Week 2 | Autoloading & Namespacing |
Week 3 | Models |
Week 4 | Errors & Exceptions |
Week 5 | Controllers |
Week 6 | Routing, Test 1 |
Week 7 | REST API |
Week 8 | Views & Templating |
Week 9 | Authentication |
Week 10 | Testing |
Week 11 | Testing |
Week 12 | JS Fetch, Test 2 |
Week 13 | JS Fetch |
Week 14 | Project |
Week 15 | Project |
SUGGESTED TEXT
TBD
COURSE COSTS
TBD
TEACHING METHODS
This course consists of 90 hours of scheduled lectures and lab work. In addition, each student will be required to do 45 hours of personal study that includes research, personally booked computer time and work at home. Léa, the course management system within Omnivox, will be used in this course.
DEPARTMENTAL LATE POLICY
All assignments and projects are expected to be submitted by the required due date. A late penalty of up to 10% per day might apply to assignments submitted late up to a maximum number of allowed late days. The exact percentage and the maximum will be indicated on the instructions specific to that assignment. Any work submitted after the maximum number of allowed late days has been reached will not be graded.
DEPARTMENTAL ATTENDANCE POLICY
See Article 4 of the IPESA, Policy-7-IPESA.pdf
Due to the COVID-19 health crisis, attendance policies may need to be adjusted by your teacher. The normal attendance expectations are outlined below and your teacher will inform you of any modifications as needed. Please note that attendance continues to be extremely important for your learning, but your teacher may need to define it in different terms based on the way your course is delivered during the Winter semester.
Active learning of competencies requires hands on learning with interactive classroom work, which requires no more than 20% absences.
Attendance is compulsory for the following program activities:
-
Stage participation. Competency 016V, 016Y.
-
Stage evaluation meetings. Competency 016Z.
-
In-class group or project integration.
Unexcused absences of more than 20% of any of these activities will result in a grade of 0 for the assessment related to that activity.
COLLEGE POLICIES - IPESA, Institutional Policy on the Evaluation of Student Achievement: Policy-7-IPESA.pdf
â–ˇ Changes to Evaluation Plan in Course Outline (Article 5.3)
Changes require documented unanimous consent from regularly attending students and approval by the department and the program dean
â–ˇ Religious Holidays (Articles 3.2.13 and 4.1.6)
Students who wish to miss classes in order to observe religious holidays must inform their teacher of their intent in writing within the first two weeks of the semester
Student Rights and Responsibilities: (Articles 3.2.18 and 3.3.6)
â–ˇ It is the responsibility of students to keep all assessed material returned to them and/or all digital work submitted to the teacher in the event of a grade review. (The deadline for a Grade Review is 4 weeks after the start of the next regular semester.)
â–ˇ Students have the right to receive graded evaluations, for regular day division courses, within two weeks after the due date or exam/test date, except in extenuating circumstances. A maximum of three (3) weeks may apply in certain circumstances (e.g. major essays) if approved by the department and stated on the course outline. For evaluations at the end of the semester/course, the results must be given to the student by the grade submission deadline (see current Academic Calendar). For intensive courses (i.e. intersession, abridged courses) and AEC courses, timely feedback must be adjusted accordingly;
â–ˇ Academic Procedure: Academic Integrity, Cheating and Plagiarism (Article 9.1 and 9.2)
Cheating and plagiarism are unacceptable at John Abbott College. They represent infractions against academic integrity. Students are expected to conduct themselves accordingly and must be responsible for all of their actions.
College Definition of Cheating :
Cheating means any dishonest or deceptive practice relative to examinations, tests, quizzes, lab assignments, research papers or other forms of evaluation tasks. Cheating includes, but is not restricted to, making use of or being in possession of unauthorized material or devices and/or obtaining or providing unauthorized assistance in writing examinations, papers or any other evaluation task and submitting the same work in more than one course without the teacher’s permission. It is incumbent upon the department through the teacher to ensure students are forewarned about unauthorized material, devices or practices that are not permitted.
College Definition of Plagiarism :
Plagiarism is a form of cheating. It includes copying or paraphrasing (expressing the ideas of someone else in one’s own words), of another person’s work or the use of another person’s work or ideas without acknowledgement of its source. Plagiarism can be from any source including books, magazines, electronic or photographic media or another student’s paper or work.
For PowerPoint on cheating and plagiarism refer to the JAC Portal: My JAC Communities / Academic Council / Curriculum Validation Committee (CVC) / Course Outlines – Reference Documents / Academic Integrity.
For link to interactive tutorial on how to cite sources correctly: http://citeit.ccdmd.qc.ca