Faculty of Science and Technology
Department of Mathematics and Computing
COMP 3512 Course Outline
Web II: Web Application Development
Winter 2025
Territory Acknowledgement
Mount Royal University is located within the traditional territories of the Niitsitapi (Blackfoot) and the people of the Treaty 7 region in Southern Alberta, which includes the Siksika, the Piikani, the Kainai, the Tsuu t’ina, and the Iyarhe Nakoda. We are situated on land where the Bow River meets the Elbow River, and the traditional Blackfoot name of this place is “Mohkinstsis,” which we now call the City of Calgary. The City of Calgary is also home to the Métis Nation.
Course Calendar Description
This course focuses on the concepts and technologies needed to develop web-centric applications. The overall architecture of Internet applications is examined at a high level. Special emphasis is given to server-side programming, including the creation of multi-tier and multi-layer web applications and using Web Services to integrate web applications with other IT applications.
Table of Contents
- Section Details
- Instructor
- Course Delivery
- Course Materials
- Dates & Deadlines
- Educational Outcomes
- Assessments
- Being Successful in This Course
- Tutorials
- Required Technology
- Misc Course Policies
- University Policies
- Notifications
- Academic Accommodations
- Student Resources
Section Details
The course will be delivered in-person as per this schedule:
Type | Section | Day | Time | Location |
---|---|---|---|---|
LEC | 001 | MW | 4:00 pm - 5:20 pm | Lincoln Park T225 |
TUT | 401 | F | 10:00 am - 10:50 am | Lincoln Park B223 |
TUT | 402 | F | 9:00 am - 9:50 am | Lincoln Park B223 |
Note: If you need to attend a different tutorial time, I'm fine with that - if there are enough vacant stations. There probably will be.
Instructor
name: Masoud Karimi Fatemi
email: mkarimifatemi@mtroyal.ca
Getting Help
Best time and place to get help is during the tutorials.
Course Delivery
Unless otherwise specified, this course will be delivered synchronously and in-person during the scheduled course times. Regular attendance is expected and encouraged but not required.
Concepts will be explored and tested during lectures.
Tutorial times will be used as a time where you can practice honing your skills with your instructor nearby to provide assistance.
The instructor will use MRU Gmail exclusively for email communications.
Students will be expected to regularly monitor the course’s Brightspace site, and other online resources for course communications. I put announcements on D2L regularly.
Course Materials
The course materials will be posted on the course website. The website will be posted on D2L.
There is no textbook for this course.
Dates & Deadlines
Important MRU Dates & Deadlines
What | When |
---|---|
First Day of Classes | 2025-01-07 |
Add/Drop Deadline | 2025-01-15 |
Withdraw Deadline | 2025-03-21 |
Last Day of Classes | 2025-04-07 |
Final Exam Period Starts | 2025-04-09 |
Final Exam Period Ends | 2025-04-22 |
Other important dates at MRU can be found here.
Educational Outcomes
Mount Royal College had identified six college-wide learning outcomes that it believes are critical in order to prepare its graduates for workplace success and a life of continuous learning. Generally speaking, “outcomes” are goals, results, objectives that you should derive from the College, from a program of study, and from a particular course. This course will emphasize the following outcomes:
Computer Literacy
- Knowledge of basic computer concepts and terminology (lectures, exams).
- Competence in basic computer operations and hardware (tutorials).
Thinking Skills
- Problem-solving (tutorials, quizzes, exams).
- Analytic thinking appropriate to discipline of information systems (tutorials).
Communication
- Convey ideas and information through writing and images (tutorials, quizzes).
- Use available technology as an aid to effective written, verbal, and visual communication (tutorials, quizzes).
Course and Discipline Outcomes
- How the internet works.
- How web applications work.
- Developing with server-side technology.
- Developing with Javascript, React, and Node.js.
- Using databases in web applications.
- Software design in web applications. This includes layered software architectures.
- Mechanisms for maintaining state in web applications.
- Building and Consuming REST web services.
Assessments
Assessment Name | Weight |
---|---|
Quiz 01 | 7% |
Quiz 02 | 8% |
Quiz 03 | 10% |
Project | 25% |
Midterm | 25% |
Final Exam | 25% |
Grading System
All assessments follow the MRU standard conversion as shown below. Final grades in all courses will be represented by a letter grade corresponding to the percentage equivalents.
Grade | GPA | Percent | Description |
---|---|---|---|
A+ A A- | 4.00 4.00 3.70 | 95–100 85-94 80-84 | Excellent. Superior performance, showing comprehensive understanding of subject matter. |
B+ B B- | 3.30 3.00 2.70 | 77-79 73-76 70-72 | Good. Clearly above average performance with knowledge of subject matter generally complete |
C+ C C- | 2.30 2.00 1.70 | 67-69 63-66 60-62 | Satisfactory. Basic understanding of subject matter. |
D+ D | 1.30 1.00 | 55-59 50-54 | Marginal performance. Generally insufficient preparation for subsequent courses. |
F | 0.00 | < 50 | Fail. Assigned to students who: a) do not meet the academic requirements of the course, or b) cease to continue in the course, but do not withdraw as per Mount Royal University policy. |
Project (25%)
You will build a web application for the project. This is a group project. The details will be posted on D2L.
Written Quizzes (25%)
Written quizzes will be held during lecture times and take some portion of the class (likely 30 minutes). The remaining portion of the class will be used to go over the quiz or lecture.
The quizzes will focus on understanding and applying the concepts taught in class. They will primarily be made up of multiple-choice, true-false, short answer style questions, and coding on paper.
Quizzes will be cumulative: skills assessed in previous quizzes are fair game in future quizzes as well!
Students will not normally be permitted to write a missed written quiz at a later date. If a quiz is missed, the weighting of the missed quiz may be shifted to a future quiz - but only at the instructor's discretion, based on the situation.
Date of each quiz will be posted on D2L, normally one week prior to the date.
Midterm (25%)
The midterm exam will be some time after reading week. The exact date will be posted on D2L. The exam will be held during lecture time.
Final Exam (25%)
The final exam will be a 3-hour exam and will consist of a combination of written questions and coding done on paper.
Being Successful in This Course
This course has a rep for being challenging. That's because it is - there is a lot of material covered and a lot of hours need to be put in to gain necessary skills and to create a satisfactory project.
There are some habits you can build to increase your chances of being successful in this course.
Good Habits
- reviewing lecture notes on the website
- punctually attending lectures and tutorials
- communicating with your instructor during the lectures and tutorials
- checking in on D2L regularly
- coming prepared for tutorials
Consistent behaviour is the secret to success.
Tutorials
Tutorials are where you'll be practicing the skills talked about in lecture, working on exercises that should be completable within your allotted tutorial time.
Tutorials are not themselves worth any marks; however, neglecting to work on tutorial exercises is a sure path to doing poorly on the Project, quizzes, midterm, and final exam.
Required Technology
Third-party Tools and Accounts
Rather than submitting the assignments to a university submit drive, you will be submitting code for marking on third-party sites such as GitHub and Netlify.
You will need to create accounts with these third-party sites and tools and accept the terms of service for developer access to these services. Students are advised that, if the site allows it, to limit personal information entered into the software as the data resides with the software company outside of the University.
In the event you do not wish to use a particular third-party party tool you can opt out. Do note that this will require you to research and suggest an alternative service, which may be acceptable depending on the characteristics of the tool. You agree that the instructor will have sole authority to decide if an alternative is acceptable.
If any of this gives you pause, you should consider withdrawing from the course now, while you can still have your fees refunded.
Hardware
You'll need a computer over which you have administrative control, since you'll be installing some software on it.
The tools we'll be using are cross-platform, so it won't matter whether you're using a Windows, Linux, or Mac machine. The system requirements for these tools are pretty low, so most machines purchased within the last 4 years or so should be perfectly fine. If you have any concerns, it's best to reach out to me and we'll talk.
Software
Visual Studio Code
Visual Studio Code is a free, cross-platform text editor that has become very commonly used in our industry. I strongly recommend that you install it and use it for your coursework.
If you wish to do your work with some other editor, I won't stop you - but I won't provide any tech support either. :)
Git Client
We'll be using GitHub (and therefore Git) in this course. Tutorials will be posted on GitHub Classroom, and you will submit your project on GitHub.
All this means you need to be able to run Git commands on your computer. You can follow these instructions to get your computer Git-ready, if it's not already. If you have an older version of GitHub on your machine, I would recommend updating it.
Docker Desktop
Docker Desktop is a free containerization software for developers. Follow the instructions for installation here.
Node.js
Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Misc Course Policies
Attendance
There is no attendance requirement in this course - I won't deduct marks if you don't show up for lectures or tutorials.
That being said, education research shows - conclusively - that just showing up and paying some attention is one of the best things you can do to be successful in any course.
I won't repeat the lectures if you decide not to attend.
You may receive extra points by being active during the lectures and answer questions. Note that by just attending the lectures you won't receive any extra points.
Technical Issues
A student’s technical difficulties will not usually be an acceptable excuse for late submissions. Start early, back up your work, and don't tempt fate.
MRU'S technical difficulties may warrant modifications to due dates/times. This is at the instructor's discretion and modifications will be communicated as soon as reasonably possible once the issue has been examined.
Illness and Unforeseen Circumstances
Serious illness or other unforeseen circumstances that might have an effect on submissions will be handled on a case-by-case basis. Communicate with me early and clearly if something serious is happening in your life and we'll work something out.
Last-minute communications will likely be met with rejecting the request.
Technical Questions
Technical questions can be asked during the tutorials. I won't answer them over email as they often require checking your system and code.
University Policies
Student Code of Conduct
Students and faculty at MRU share an important responsibility to maintain the integrity of the teaching and learning relationship. This relationship is characterized by honesty, fairness and mutual respect for the aim and principles of the pursuit of education. Students are expected to be familiar with and abide by MRU’s regulations described by the Code of Student Academic Integrity and the related Code of Student Academic Integrity Procedures which set out the kinds of actions that constitute academic misconduct, non-academic misconduct, students’ rights and responsibilities.
Academic misconduct impedes the activities of the university community and is punishable by appropriate disciplinary action. Academic misconduct includes: plagiarism, cheating, falsification, fabrication, misrepresentation, and/or engaging in actions that provide unfair academic advantage. Inappropriate actions include copying or allowing one’s own work to be copied, use of unauthorized aids in examinations and tests, submitting work prepared in collaboration with others OR with artificial intelligence agents, and other such actions. A lack of familiarity with MRU’s regulations on academic conduct does not constitute a defense against its application. Additional resources and tools for students can be found at the Office of Student Community Standards.
I really like what Harvard's CS50X course has to say about academic honesty. It's a bit easier to digest than some of the official MRU policies and makes sense to my brain:
The essence of all work that you submit to this course must be your own. Unless otherwise specified, collaboration on assessments is not permitted except to the extent that you may ask classmates and others for help so long as that help does not reduce to another doing your work for you. Generally speaking, when asking for help, you may show your work to others, but you may not view theirs, so long as you and they respect this policy’s other constraints.
The AI Wrinkle
Recent advances in AI-based software designed to suggest/complete lines of code - or entire solutions to a problem - are making things...interesting for many educational institutions.
Just so we're clear: the use of AI tools is considered a form of plagiarism! If you are found to be using such tools on your project, it will be considered academic misconduct and I'll proceed accordingly.
Notifications
Grade Disputes
Disputes or concerns about student grades need to be immediately directed to the instructor responsible for assigning grades. If no resolution can be reached, students have the ability to appeal their final grades following the Appeals and Grievance process outlined in the Academic Calendar.
Matching Software
In this course, your code submissions will be compared using compare50. This is a program that checks textual material for originality. MRU authorizes the use of text matching software for educational purposes. Submitted data resides on University servers and is used to provide comparisons that promote academic integrity. Anonymized versions of these submissions may be retained for comparison in future semesters.
More information can be found by reading the University’s matching software policy.
Third-party Apps
Students will be using third-party vendor software applications: both downloaded to a student’s computer and as online services.
You are advised that by using them you are consenting to the potential disclosure of your personal information to external vendors which fall outside the custody and control of Mount Royal University. Limited identifiable personal information should be entered into these applications to protect your personal privacy.
Students have the right to opt out of using the matching/third-party software. Alternative forms of originality checking and academic participation are subject to the agreement of the instructor. Students must notify their instruction of their intention to opt out explicitly (an email from your MRU Gmail account) by the end of the first month of classes.
Academic Accommodations
Disability-Related Accommodations
Students registered with Access and Inclusion Services and have an Academic Accommodation Letter should schedule a private conversation with me, as soon as possible, to discuss how your accommodations will be implemented into the design of this course. A conversation may take place in-person, online, or over the phone. Requests to discuss accommodations during or between classes will not be accepted. Acknowledgement of your accommodations will then be provided via email or Faculty Acknowledgement Form, depending on course delivery method.
If you are a student who experiences disability-related barriers and has not registered with Access and Inclusion Services, you may wish to inquire about services by contacting the Access and Inclusion Services office directly.
Non-Disability-Related Accommodations
Students requiring non-disability-related academic accommodations (as related to the protected grounds in Human Rights Legislation) are encouraged to contact Access and Inclusion Services to explore what academic accommodations may be available to assist them in order to participate fully in their academic studies.
You may wish to inquire about services by contacting the Access and Inclusion Services office directly.
Student Resources
MRU has a lot of resources available for students. You really ought to familiarize yourself with them - there are folks out there paid to help you:
- Early Support
- FST Academic Advising
- Student Learning Services
- Wellness Services: including support for Mental Health, Student Counselling, Dating/Domestic and Sexual Violence
- Support for Indigenous Students (Iniskim Centre)
- SAMRU Programs and Services
- Office of the Registrar and Student Awards and Financial Aid
- Library Access and Resources
- Office of Student Community Standards
- Career Services