Fundamentals of Web Applications (Fall 2024): Difference between revisions

From Soma-notes
 
(25 intermediate revisions by the same user not shown)
Line 3: Line 3:
[[Fundamentals of Web Applications: Fall 2024 Course Outline|Here]] is the course outline.
[[Fundamentals of Web Applications: Fall 2024 Course Outline|Here]] is the course outline.


==Lectures and Exams==


==Schedule==
<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0">
  <tr valign="top">
    <th>
    <p align="left">Date</p>
    </th>
    <th>
    <p align="left">Topic</p>
    </th>
  </tr>
    <tr>
      <td>
      <p>Sept. 5
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 1|Lecture 1]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 10
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 2|Lecture 2]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 12
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 3|Lecture 3]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 17 (async)
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 4|Lecture 4]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 24
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 5|Lecture 5]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 26
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 6|Lecture 6]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 1
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 7|Lecture 7]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 3
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 8|Lecture 8]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 8
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 9|Lecture 9]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 10
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 10|Lecture 10]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 15
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 11|Lecture 11]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 17
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 12|Lecture 12]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 24, 11:35-12:55
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Midterm QA|Midterm Q & A (opt.)]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 29
      </p>
      </td>
      <td>
      <p>Midterm Exam (in class, online) [https://homeostasis.scs.carleton.ca/~soma/webfund-2024f/solutions/comp2406-midterm-2024f-sol.pdf (solutions)]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 31
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 13|Lecture 13]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 5
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 14|Lecture 14]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 7
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 15|Lecture 15]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 12
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 16|Lecture 16]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 14
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 17|Lecture 17]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 19
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 18|Lecture 18]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 21
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 19|Lecture 19]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 26
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 20|Lecture 20]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 28
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 21|Lecture 21 (US Thanksgiving)]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Dec. 3
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 22|Lecture 22]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Dec. 5
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F Lecture 23|Lecture 23]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Dec. 12, 9 AM
      </p>
      </td>
      <td>
      <p>Final Exam
      </p>
      </td>
    </tr>
</table>


Full schedule will be posted soon.
==Tutorials==


Key dates:
For each tutorial you will get a progress grade from 0-4, given to you by a TA.  If you are being diligent, you should be able to get 4's every week.  The easiest way to get your grade is to come to tutorial and meet with your TA; alternately, you can meet a TA in their office hours. You may discuss with your TA in person or online, but the conversation should at least involve a voice call.


First class: Sept. 5, 11:35 AM via Zoom.
<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0">
Tutorials start: Sept. 12.
  <tr valign="top">
    <th>
    <p align="left">Release Date</p>
    </th>
    <th>
    <p align="left">Show By</p>
    <th>
    <p align="left">Tutorials</p>
    </th>
  </tr>
    <tr>
      <td>
      <p>Sept. 12
      </p>
      </td>
      <td><del>Oct. 7</del> '''Oct. 9'''</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 1|Asynchronous Code in JavaScript]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 19
      </p>
      </td>
      <td><del>Oct. 7</del> '''Oct. 9'''</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 2|Simple web server]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Sept. 26
      </p>
      </td>
      <td>Oct. 17</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 3|Form Demo]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 3
      </p>
      </td>
      <td>Oct. 17</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 4|Database Demo]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 10
      </p>
      </td>
      <td>Nov. 13</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 5|DOM Demo]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 31
      </p>
      </td>
      <td>Nov. 13</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 6|Tutorial Validator]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 7
      </p>
      </td>
      <td>Nov. 15</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 7|Submission Demo]]
      </p>
      </td>
    </tr>
    <tr>
    <tr>
      <td>
      <p>Nov. 14
      </p>
      </td>
      <td>Nov. 29</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 8|Authentication Demo]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 22
      </p>
      </td>
      <td>Dec. 6</td>
      <td>
      <p>[[WebFund 2024F: Tutorial 9|Fresh Demo]]
      </p>
      </td>
    </tr>
</table>


Please join the class Teams (via the link in Brightspace), you'll have to request access and it will be granted soon after.
==Assignments==
<table style="width: 100%;" border="1" cellpadding="4" cellspacing="0">
  <tr valign="top">
    <th>
    <p align="left">Due Date</p>
    </th>
    <th>
    <p align="left">Assignments</p>
    </th>
  </tr>
    <tr>
      <td>
      <p><del>Oct. 7</del> '''Oct. 9'''
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F: Assignment 1|Assignment 1]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Oct. 16
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F: Assignment 2|Assignment 2]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Nov. 20
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F: Assignment 3|Assignment 3]]
      </p>
      </td>
    </tr>
    <tr>
      <td>
      <p>Dec. 4
      </p>
      </td>
      <td>
      <p>[[WebFund 2024F: Assignment 4|Assignment 4]]
      </p>
      </td>
    </tr>
</table>


==Lecture Recordings==
==Resources==


This page will be reformatted soon!
===JavaScript===


* Lecture 1: [https://homeostasis.scs.carleton.ca/~soma/webfund-2024f/lectures/comp2406-2024f-lec01-20240905.m4v video], [https://homeostasis.scs.carleton.ca/~soma/webfund-2024f/lectures/comp2406-2024f-lec01-20240905.cc.vtt subtitle file], [https://homeostasis.scs.carleton.ca/~soma/webfund-2024f/lectures/comp2406-2024f-lec01-20240905-notes.txt in-class notes]
* A good book is [http://eloquentjavascript.net/ Eloquent JavaScript: A Modern Introduction to Programming] by Marijn Haverbeke. A version of this book is available online for free, but you can also purchase a copy.
 
* A more in-depth book series is [https://github.com/getify/You-Dont-Know-JS?tab=readme-ov-file You Don't Know JS Yet].
Note the subtitle files can be used with VLC or similar players, just download the files and watch locally.
* A standard reference for JavaScript is [http://shop.oreilly.com/product/9780596805531.do JavaScript: The Definitive Guide] by David Flanagan.  It is a big book, but it is comprehensive. (You'll probably have to buy this one.)

Latest revision as of 14:19, 22 November 2024

Course Outline

Here is the course outline.

Lectures and Exams

Date

Topic

Sept. 5

Lecture 1

Sept. 10

Lecture 2

Sept. 12

Lecture 3

Sept. 17 (async)

Lecture 4

Sept. 24

Lecture 5

Sept. 26

Lecture 6

Oct. 1

Lecture 7

Oct. 3

Lecture 8

Oct. 8

Lecture 9

Oct. 10

Lecture 10

Oct. 15

Lecture 11

Oct. 17

Lecture 12

Oct. 24, 11:35-12:55

Midterm Q & A (opt.)

Oct. 29

Midterm Exam (in class, online) (solutions)

Oct. 31

Lecture 13

Nov. 5

Lecture 14

Nov. 7

Lecture 15

Nov. 12

Lecture 16

Nov. 14

Lecture 17

Nov. 19

Lecture 18

Nov. 21

Lecture 19

Nov. 26

Lecture 20

Nov. 28

Lecture 21 (US Thanksgiving)

Dec. 3

Lecture 22

Dec. 5

Lecture 23

Dec. 12, 9 AM

Final Exam

Tutorials

For each tutorial you will get a progress grade from 0-4, given to you by a TA. If you are being diligent, you should be able to get 4's every week. The easiest way to get your grade is to come to tutorial and meet with your TA; alternately, you can meet a TA in their office hours. You may discuss with your TA in person or online, but the conversation should at least involve a voice call.

Release Date

Show By

Tutorials

Sept. 12

Oct. 7 Oct. 9

Asynchronous Code in JavaScript

Sept. 19

Oct. 7 Oct. 9

Simple web server

Sept. 26

Oct. 17

Form Demo

Oct. 3

Oct. 17

Database Demo

Oct. 10

Nov. 13

DOM Demo

Oct. 31

Nov. 13

Tutorial Validator

Nov. 7

Nov. 15

Submission Demo

Nov. 14

Nov. 29

Authentication Demo

Nov. 22

Dec. 6

Fresh Demo

Assignments

Due Date

Assignments

Oct. 7 Oct. 9

Assignment 1

Oct. 16

Assignment 2

Nov. 20

Assignment 3

Dec. 4

Assignment 4

Resources

JavaScript