CSC309 Programming on the Web. Amir H. Chinaei

Announcements:

  • April 04: Optional review session on April 7 from 3 to 4 in SS 1071; the session will be repeated from 4 to 5 too.

  • April 02: I hold my office hours on April 3 from 1:30 to 3:30 due to another event.

  • April 01: Projects live demo on Tue, April 4, 11:30-1:30 and 1:30-3:30 in Atrium.

  • March 15: Assignment 2 Office Hours:
      March 174:10-5:50BA3201
      March 204:10-5:50BA3289
      March 214:10-5:50BA3201
      March 224:10-5:50BA3289
      March 235:10-6:50BA3201

  • March 10: Peer Instruction is now available. Find it in the menu on the left.

  • March 07: Grades for Lab2-Lab7, A1, and Phase0-Phase2 are available in CDF.

  • Feb 28: Phase 3 & A2 spec/repo are already available. A2 requires individual work.

  • Feb 17: Final exam is scheduled on April 13, 7-10

  • Feb 15: Phase 2 is extended to Feb 24, 10:00pm. Teams submitting it on Feb 17 receive bonus points.

  • Feb 06: Exra office hours for Assignment 1: Wed Feb 8, 3:00-5:00 in BA3289.

  • Feb 05: Phase 2 spec/repo is available in your project repo.

  • Feb 01: Grades for Lab2, Lab3, and Phase0 are available in CDF.

  • Jan 27: A1 spec/repo is now available. requires individual work

  • Jan 15: Guest lecturere on Project Management this Mon 10-11 and 6-7: Q/A sessions in BA7172 at 1-2 and 4-5.

  • Jan 14: If you have not received the Project Specification, please (re)complete Survey 1. Instructions are in lec01_1p.pdf below.

  • Jan 07: Welcome to CSC309, Spring 2017! Lectures and labs start from Jan 09. Meanwhile, please make sure to read the information sheet, on the left.

Schedule:

The following table will be updated regularly with more details.
Students are encouraged to complete the lecture notes by their own, during the lectures and/or shortly after.
W Topics LecturesMore Readings and Resources
1 class plan, architecture
lec01_1p
lec01_6p
warmup: 15-minute Git, Pro Git book
web history, w3c concortium, w3c school
lec01 annotations, course syllabus, lab01
2
Ph0
project management, fe:html
lec02A1p
lec02A6p
lec02B1p
lec02B6p
html history (from whatwg)
html history (from w3c)
lab02
3 fe: css, responsive design
lec03_1p
lec03_6p
media querries, css reference
lab03 sol (html, css, slides)
4
Ph1
fe: javascript, html forms
lec04_1p
lec04_6p
js history, thin & dumb or fat & smart
js callback, dom
graceful degradation & progressive enhancement
lab04 sol (html, css, slides)
5
A1
database: structured, semi-structured
lec05_1p
lec05_6p
xml dom, db-engine rankings Not only SQL
mongodb & js via mongoose: useful links 1, 2
mysql and js: useful links 1, 2, 3
lab05 sol (tapp.html, server.js, scripts
data model, slides)
6
Ph2
be: http, rest, node
lec06_1p
lec06_6p
simple guide to rest, creating a rest api
lab06 (slides)
7 be: jquery, ajax
lec07_1p
lec07_6p
jquery (tutorial, another tutorial, selectors
traverse, ajax methods, complete tutorial, api)
lab07 sol (index, styles, server, package
.gitignore, scripts, slides)
8 be: hosting, dns
lec08_1p
lec08_6p
learn more about dns
lab08 (slides)
9
Ph3
event loop, jsonp
lec09_1p
lec09_6p
jsonp, optional: w3c recommendation cors
lab 09 sol (index, app, slides)
10
A2
security, attacks: xss, code injection
lec10_1p
lec10_6p
on code injection, xss tutorial, and
server side js injection
lab10 (slides)
11
Ph4
digital signature, certification, keys
lec11_1p
lec11_6p
public-key certificate, is RSA secure?
lab 11 sol (gulpfile, package, s1, s2, s3
s1.js, s2.js, s3.js)
12
Ph5
projects demo, review
none
past exams: 1, 2, 3, 4
A2 sample solution for backend and tests