3/4 lab groups (~15 students/group)
Steven + 1/2 Lab TAs
Lab Group 4, Mon, 4-6pm is closed
The course material was first created by Arnold Rosenbloom, a visiting lecturer from University of Toronto, Canada who taught the first edition of CP3101B in NUS on Jan-Apr 2014
CP3101B was the old module code of CS3226
The current set of lecture note has been updated three times in Jan-Apr 2015/2016/and now 2017, thus they are now more up-to-date than the forked Arnold's 2014 version
Previously standalone program or offline | Now available on the web |
---|---|
Office softwares | Google Docs |
Integrated Development Environment | ideone.com |
Marking of programming assignments | Online Judges, e.g. uHunt*, Kattis |
Counting Indonesian (presidential) election results | KawalPemilu.org (technical background) |
Even 3D :O games are making their way to browser | Some demos, this one is cool |
What is common in no 1-5 of the list above?
*Terms and Conditions apply
Some* web programming components have well-established standards, e.g. HTTP, HTML5, CSS3, JS (ECMAScript-262)
So how the developers survive?
Some of the drawbacks are...
e.g. The functionalities of Google Slides or this reveal.js are still limited compared to the more established Microsoft PowerPoint
DoS, SQL injection, Clickjacking, stolen passwords,
you name it...
It is (very) easy* to look at the "source code"
of the (client-side) web applications
For example, if you want to know how to do this kind of web-based presentation (and replicate it), simply right click this page and click 'View page source'
For example, currently a web application (e.g. a web-based image editing software) is not allowed to directly access the host's file system for security reasons
Therefore, the user has to explicitly upload their file(s) to the web server to allow the file(s) to be accessible by the web application
Other than the current standards of HTML5, CSS3, JS, and a few more, there are many other web technologies out there, each with their own strengths and weaknesses, and this number increases daily, especially the rate of 'new frameworks' appearing here and there...
PS: And once someone is 'imprinted' towards a certain framework (a certain technology stack), it will be super hard to try other framework (technology stack)...
What is "new" today (e.g. HTML5, CSS3, jQuery 3.1.1, Bootstrap 3.3.7, Laravel 5.3) may be outdated as soon* as this course is over...
We need the ability to learn, relearn, unlearn...
Compared to offline apps, we have to also consider:
Can your web app generates the intended traffic?
Why don't we just outsource?
WordPress, Joomla, WiX, Strikingly, Squarespace, etc
Via MPE or via CORS
for any :O NUS students who have passed CS1020
Quota: 60 students
It was 57 and 57 in the last two years...
Most likely it is 50 in Sem2 2016/2017
Details at CS3226 Lesson Plan
Details in CS3226 Capstone Project section
The idea is to reserve the last 5 weeks of this course for students to do one medium-sized web programming project in a team setting of 5-6 students with mixed strengths
The capstone projects of CS3226 will be presented to public on the 10th STePS on Wednesday, 12 April 2017 (Week 13)
There is no specific textbook for this course, GIYF*
But you can check these NUS Libraries (or NLB) books:
You don't have to print these lecture notes (now) as I may update some (minor) parts of it on the spot... :O
But if you are an old-school type, see reveal.js documentation for an easy way to print this lecture note :)
It is best to wait until Theoretical Test on Week11
(open book) before you print these notes
The weightage of various course assessments:
Steven has NOT learned these yet (as of early January 2017):