Fundamentals of Web Applications: Fall 2024 Course Outline

From Soma-notes

Course Information

  • Course Number: COMP 2406
  • Term: Fall 2024
  • Title: Fundamentals of Web Applications
  • Institution: Carleton University, School of Computer Science
  • Instructor: Anil Somayaji (anil.somayaji at carleton.ca): By appointment via Zoom; message on Teams to schedule.
  • Lectures: Tuesdays and Thursdays 11:30-1 PM online via Zoom and asynchronously, September 5th through December 5th.
  • Teaching Assistants (w/ office hours):
    Alexis Udechukwu: Wednesdays 2-3 PM, online
    Alireza Choubineh: Wednesdays 3-4 PM, online
    Danyal Haji: Thursdays 1-2 PM, in person (HP4125)
    Isaiah Aganon: Mondays 3-4 PM, online
    Josiah Mak: Tuesdays 7-8 PM, online
    Lavesh Nama Kamalesh: Tuesdays 4-5 PM, in person (HP4125)
    Maria Villagomez: Fridays 11:30-12:30 PM, online
    May Wang: Fridays 3-4 PM, in person (HP4125)
    Omar Abdelhadi: Wednesdays 10-11 AM, in person (HP4125)
    Pooja Patel: Mondays 5-6 PM, online
    Tobechi Nwachukwu: Tuesdays 3-4 PM, online
    Yanran Guan: TBA
    Yuntian Ye: Mondays 1-2 PM, in person (HP4125)
  • Tutorials: (Rooms are in Carleton Central)
    A1: Thu. 2:30-4 PM (Alireza, Tobechi, Pooja)
    A2: Thu. 4-5:30 PM (Tobechi, Danyal, Alexis)
    A3: Tue. 1-2:30 PM (Alireza, Lavesh, Alexis, Omar (online))
    A4: Mon. 11:30-1 PM (May, Danyal, Isaiah, Neyha)(one TA online)
    B1: Fri. 2:30-4 PM (Yutian, Omar, Maria, Josiah (online))
    B2: Fri. 4-5:30 PM (May, Yuntian, Pooja, Josiah (online))
    B3: Mon. 1-2:30 PM (Lavesh, Maria, Isaiah, Neyha)(one TA online)
  • Course Website: http://homeostasis.scs.carleton.ca/wiki/index.php?title=Fundamentals_of_Web_Applications_(Fall_2024)

(All times above are offset by the customary 5 minutes, so starting 5 minutes after and ending 5 minutes before.)

Official Course 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.

Includes: Experiential Learning Activity

Precludes additional credit for SYSC 4504.

Prerequisite(s): (COMP 1006 or COMP 1406 or SYSC 2004) with a minimum grade of C-. Lectures three hours a week and tutorial one and a half hours a week.


Grading

Grades for this course will be divided as follows:

  • 20% for tutorial participation
  • 16% for assignments (four total, every 2-3 weeks)
  • 10% for lecture quizzes (one per lecture)
  • 24% for the Midterm Exam
  • 30% for the Final Exam (formally scheduled during the exam period)

Learning Objectives

By the end of this course, you should understand the basics of the following key technologies associated with the World Wide Web:

  • HTML
  • CSS
  • JavaScript
  • SQL

With this knowledge, you will be able to build simple database-backed web applications; but, more importantly, you will understand enough about how they work to be able to debug them.

You will also learn how performance and security issues constrain web development and must be taken into account in any production web application. As part of learning this, we will cover technologies such as high performance language runtimes, browser architecture, and the basic structure of distributed applications.

Communication

While coursework will be submitted through Brightspace, most class material and interactions will occur through other platforms.

The course web page is the canonical source of information on this course. Please refer to it for updates. When significant changes are made to this document it will be either announced in lecture and/or posted in the course discussion forum.

Lectures will occur through Zoom via a link supplied through Brightspace. Lectures will be recorded and will be available to view via a Zoom repository and the course wiki. The course wiki page will also include notes and source code from lectures.

Course discussions will be on Microsoft Teams. While you may discuss assignments there, do not post answers to assigned questions.

Required Textbooks

There are no required textbooks for this course. However, links to online resources will be provided throughout the term via the course wiki.


Course Notes/Multimedia

Video from lectures will be available via the course wiki and via a Zoom video repository. The class wiki will also contain any notes written during class.

Collaboration

Collaboration on all work is allowed except for the midterm and final exams. Collaboration, however, should be clearly acknowledged. Further, all submitted work should be your own. While you may get help from others and even collaboratively solve technical problems, the code and answers should all be your own work. For example, you may not divide an assignment into parts, give a part to another student or anyone else to solve, and then submit that work as your own. You have to have participated in the creation of every part of your submitted work.

An easy way to make sure this happens is never share files regarding coursework or copy and paste answers into email. Instead, meet together to work on an assignment and then separate to write up your solutions.

Using AI: The use of artificial intelligence systems, particularly large language models, is permitted for everything except the midterm and final exams. However, they should be used sparingly, as the work you submit should still be your own. In other words, have the LLM help clarify your understanding of the problem rather than have it answer the problem for you.

Metacognition: To help ensure intellectual honesty and improve learning outcomes, many tutorials and assignments will require you to do metacognition, i.e., to reflect on how you know what you know. Specifically, you will be asked to explain how you came up with your answer, how you verified that your answer is correct, and to outline issues that confused you in some way. We will expect these answers to document a consistent journey of your learning in this course. Students will be selected for interviews during and at the end of the semester to verify that their knowledge reflects that in the submitted work. Interviews will be both targeted and random; thus, if you are selected for an interview, this in itself does not mean that we suspect any wrongdoing.

Wikipedia currently states that "Plagiarism is the representation of another person's language, thoughts, ideas, or expressions as one's own original work." You are to be graded on your own understanding of the material, not the understanding of another (or the answers that can be generated by an AI). If the distinction between your work and the work of others becomes unclear in anything you submit, your work will be used as documentation in a potential case of plagiarism and the Dean will determine potential disciplinary action.


Undergraduate Academic Advisors

The Undergraduate Advisors for the School of Computer Science are available in Room 5302HP; or by email at scs.ug.advisor@cunet.carleton.ca. The undergraduate advisors can assist with information about prerequisites and preclusions, course substitutions/equivalencies, understanding your academic audit and the remaining requirements for graduation. The undergraduate advisors will also refer students to appropriate resources such as the Science Student Success Centre, Learning Support Services and Writing Tutorial Services. Graduate Academic Advisors The Graduate Advisors for the School of Computer Science are available in Room 5302 HP; or by email at grad.scs@carleton.ca. The graduate advisors can assist with understanding your academic audit and the remaining courses required to meet graduation requirements.

SCS Computer Laboratory

Students taking a COMP course can access the SCS computer labs. The lab schedule and location can be found at: https://carleton.ca/scs/tech-support/computer-laboratories/. All SCS computer lab and technical support information can be found at: https://carleton.ca/scs/tech-support/. Technical support staff may be contacted in-person or virtually, see this page for details: https://carleton.ca/scs/tech-support/contact-it-support/.


University Policies

Academic Accommodations

Carleton is committed to providing academic accessibility for all individuals. Please review the academic accommodation available to students here: https://students.carleton.ca/course-outline/.

Academic Integrity

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 sanctioned with penalties which range from a reprimand to receiving a grade of F in the course, or even being suspended or expelled from the University. Examples of punishable offences include plagiarism and unauthorized collaboration. Any such reported offences will be reviewed by the office of the Dean of Science. More information on this policy may be found on the ODS Academic Integrity page: Academic Integrity | Faculty of Science (carleton.ca).

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. More information and standard sanction guidelines can be found here: https://science.carleton.ca/students/academic-integrity/. Please note that content generated by an unauthorized A.I.-based tool is considered plagiarized material. Unauthorized 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".