0% found this document useful (0 votes)
61 views

Cscc09F Programming On The Web: Instructor: Alan Rosselet Office: IC-494 E-Mail: Rosselet at CDF Toronto Edu

This document provides an overview of the CSCC09F Programming on the Web course. It discusses why the web has become a popular development platform, characterizes web programming, and outlines the course learning outcomes, themes, technologies covered, evaluation criteria, and conduct. The goals are for students to develop an understanding of web concepts and build commercial-caliber applications using standards-based technologies.

Uploaded by

janet
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Cscc09F Programming On The Web: Instructor: Alan Rosselet Office: IC-494 E-Mail: Rosselet at CDF Toronto Edu

This document provides an overview of the CSCC09F Programming on the Web course. It discusses why the web has become a popular development platform, characterizes web programming, and outlines the course learning outcomes, themes, technologies covered, evaluation criteria, and conduct. The goals are for students to develop an understanding of web concepts and build commercial-caliber applications using standards-based technologies.

Uploaded by

janet
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

00 Course Overview

03 Sept, 2014

CSCC09F
Programming on the Web

Instructor: Alan Rosselet


Office: IC-494
E-mail: rosselet @ cdf toronto edu
http://www.utsc.utoronto.ca/~rosselet/cscc09/
00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

the Web as Development Platform




Why has the Web become the most popular platform for
deploying applications?









ubiquitous browsers every computer, smart phone and tablet is a


potential client, billions of potential users!
efficiency / reuse write-once deploy-everywhere (almost)
code always up to date, no installation / patching overhead
app debugging facilitated by complete (runtime) data access
UI-design issues greatly simplified
native support for massive-scale collaboration (e.g. social nets)
the most effective platform for mobile apps (arguable)

There are some gotchas though:




although the Web is based on standards, these are not uniformly


implemented, so the ideal of write once, deploy everywhere is not
quite achievable in practice
offline-use still presents challenges; HTML5 adds support for it

01 - World Wide Web

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Characterizing Programming on the Web




you already know how to


program, so whats different
with Web programming?
coordinating large cast of
characters (languages, tools) to
build a compelling app more
like a system than a program
most of these characters are
moving targets, constantly
evolving
debugging complicated by
code hidden beneath layers
benefit from hardware and O/S
independence, but not always
browser independence
00 - Course Overview

CSCC09: Programming on the Web

on the client side you will experience:


 a somewhat unusual programming
language (JavaScript) and new kinds
of data (Web docs expressed e.g. as
XML, HTML, HTML5, JSON)
 a different style of programming:
event-driven powerful, but can
be hard to debug
 reliance on external data/resources
(requests from the Web)
on the server side youll need to worry
about: server setup/config, databases,
sessions with users, concurrency,
interaction with other systems,
security, performance and scalability

CSCC09

00 Course Overview

03 Sept, 2014

Learning Outcomes


Develop working (experience-based) understanding of


concepts, principles, and practices underlying todays Web


understand whats going on behind the scenes on both


client and server, as well as in between (on the net),
and how it all fits together


you will know what youre talking about

develop the competence to build commercial-calibre


Web applications, using standards-based technologies
that are widely used in industry

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Learning Outcomes: Competencies




create Web documents with reasonable styling using


standards-based markup languages

develop realistic Single-Page App (SPA) using a client-side


framework to support:


rich application behavior, including event handling and


incremental updating from network resources (Ajax)

implement RESTful API on the server side, through


interaction with a persistent data store such as a DB

use of 3rd-party Web service(s) to build an app

awareness of security vulnerabilities of Web apps and


mitigating steps

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Learning Outcomes: Developer Skills




improve ability to apply: incremental/agile


development, debugging , refactoring

learn to work with complex system requirements that


may not precisely specify every detail of what you are
required to implement and for which there is no specific
solution (as in the real world)

increase self-sufficiency in mastering new technologies


we will rely on many technologies to build Web sites,
and not all can be covered in complete detail

gain experience working as part of a programming team


(optional, but encouraged)

sense of accomplishment - to counterbalance hard work

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Themes for this Term




Single-page Apps (SPAs) and inversion of control

Leveraging frameworks to organize client-side code

RESTful Web services

HTML5

Security matters!

Reference-able experience

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Whats New/Different this Term?




Previous iteration of C09: Chrome browser,


jQuery, most business logic implemented with
MVC Java Servlets/JSP/JDBC, MySQL DB

This iteration:

client-side takes over responsibility for most


business logic: JavaScript, SPAs, MV*, jQuery,
Backbone framework, Underscore library

server-side RESTful APIs implemented using


Node.js, noSQL DB (Mongo)

Uncharted waters surprises lie ahead!

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Technology Coverage


Static Client Content




Dynamic Client Content (Web 2.0, RIA, SPAs)




JavaScript, DOM, jQuery, forms, Ajax, JSON, MV*, Backbone,


Underscore, Bootstrap

Dynamic Server Content




(X)HTML, CSS, HTML5, XML, DTD*, XSL with Xpath*, i18n*

HTTP, CGI, Node.js server, Mongo DB, RESTful Web Services,


SOAP-Web-services (time permitting), Java-based servers (time
permitting)

Operational Concepts


network protocols (esp. HTTP), Web servers, concurrency, security


(SSL, HTTPS, XSS and CSRF attacks)

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

00 Course Overview

03 Sept, 2014

Preparation


CSCB09: systems-oriented topics such as tar files, file


permissions, s/w installations





not rocket science, but easy to get tripped up by little mistakes

CSCC43: database design, schemas, SQL query language


no prior knowledge of Web technologies is
assumed (not even HTML!)
but prior experience helpful
 typical class has wide range of expertise, so if this is
your first time working with Web technologies dont
feel as though you are the only newb


00 - Course Overview

CSCC09: Programming on the Web

CSCC09

12

10

00 Course Overview

03 Sept, 2014

References


Textbook (see course info sheet for details)


recommended not required
 Web Programming Step by Step, 2nd Edition, Stepp et
al, 2012
 "Programming the World Wide Web", 4th Edition,
Robert Sebesta, Addison-Wesley, 2008
 background reading, another perspective, review





Lecture handouts (see lectures Web page)


Other references
some will be listed for you on the course Web site,
many from http://www.w3.org
 others you will discover on your own:


online references, tutorials, examples, etc.

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

13

11

00 Course Overview

03 Sept, 2014

Evaluation


3 programming assignments (cumulative 40%)


this is a programming course, with many technologies
to master (plan to budget sufficient time)
 a1 (15%): XHTML, CSS, JavaScript, DOM, jQuery,
Backbone, Ajax, JSON
 a2 (15%): Node.js, Mongo DB, Concurrency, Sessions,
secure authentication
 a3 (10%): RESTful Web Services, Ajax, security
 details posted on assignments Web page





mid-term test (20%)


final exam (40%)

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

14

12

00 Course Overview

03 Sept, 2014

Assignment Policies


you may develop assignment solutions with (at most) one


other student read the policy on collaboration from the
Course Information Sheet posted on the course Web site

pair programming pros and cons

an assignment cover sheet must accompany all


submissions (submit at course drop box IC-Building
4th floor); without a signed cover sheet your assignment
will not be marked

late submit policy: see the Course Information Sheet


posted on the course Web site.

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

15

13

00 Course Overview

03 Sept, 2014

Assignment Preparation





assignments are submitted and marked on the


mathlab.utsc Linux system, using submit command
can do all work in UTSC labs
can work at home as well, via remote login to UTSC server
or use your own server. In the latter case:


pro:
 convenience, good systems-oriented learning experience
con
 additional setup and configuration
 extra effort and risk to shift your solution to the mathlab
reference environment and to test to ensure everything works
properly in that environment - NO EXCUSES !

00 - Course Overview

CSCC09: Programming on the Web

CSCC09

16

14

00 Course Overview

03 Sept, 2014

Conduct of the Course




Lectures


background, conceptual explanations, high-level examples

Tutorials


assist with the practical aspects of completing assignments

more technology details; more complicated, worked-out


examples

step-by-step instructions on how to get necessary


technologies up and running

Lectures and tutorials not always in sync tutorials may have


to sprint ahead to deliver info you need for assignments
before lectures catch up
00 - Course Overview

CSCC09: Programming on the Web

CSCC09

17

15

You might also like