|
CSE-2041A
Net-Centric Computing
York University
Fall 2012
|
Syllabus
|
|
|
Instructor:
|
Parke Godfrey
|
Office:
|
#2050 LAS (CSE)
|
Office Hours:
|
We 2–4pm
|
& by appointment / availability
|
Ph#:
|
416-736-2100 x66671
|
e-mail:
|
godfrey@cse.yorku.ca
|
|
|
T.A.:
|
Nikolay Yakovets
|
e-mail:
|
hush@cse.yorku.ca
|
|
|
|
Term:
|
Fall 2012
|
Time:
|
[Lecture]
|
Mo, We, & Fr 11:30-12:30pm
|
[Lab]
|
Tu 11:00-14:00pm
|
Place:
|
[Lecture]
|
CB #129
|
[Lab]
|
LAS (CSE) #1002A
|
|
|
Textbook:
|
Jeffrey C. Jackson
|
Web Technologies:
A Computer Science Perspective
|
Prentice Hall, 2007
|
ISBN-10: 0131856030
|
ISBN-13: 9780131856035
|
Class URL:
|
http://www.cse.yorku.ca/course/2041/
|
|
|
|
|
The Topic (from the academic calendar)
Introduction
to computer networks, databases, client-server computing,
web technologies, and mobile apps.
Applications include
- developing simple webapps;
- connecting to databases via JDBC and SQL;
- creating HTML pages with CSS and JavaScript; and
- building apps for mobile devices such as the BlackBerry.
Issues related to computer security are covered throughout.
|
|
Expected Learning Outcomes (ELOs)
Using
interactive pedagogy in lecture and experiential learning
in the lab, the course covers the following topics.
- Infrastructure
Networks, Databases, and Markup Languages
- Server-side
Servers, Webapps, and Architecture
- Client-side
CSS,
JavaScript, and
DOM
- Mobile Apps & Web Science
Mobile Apps and Web Science
The expected learning outcomes (ELOs) are broken down
per topic below.
After completing a topic, the student is expected to be able
to achieve the tasks listed after it.
All assessment tools in the course are based on these ELOs.
- Infrastructure
- Networks
-
Name the five layers in the Internet model
(that is, TCP/IP Protocol Suite),
describe the role that each plays, and
provide examples of the protocols.
Justify the use of layers and explain the terms:
protocol, MAC address, IP address, port number, DNS,
state-less protocol.
-
Given a computer, use tools to answer questions about
its connectivity.
The tools may include: wireshark, ping, tracerout;
ip / if config, netstat; and DNS commands.
-
Explain how HTTP works and describe its syntax, methods,
and various headers.
Use telnet to connect to a given http server and
capture its response.
Use firebug to analyze http traffic.
-
Describe the four main goals of network security and
provide a few examples of security attacks.
- Databases
-
Justify the need for DBMS,
given that programming languages come
with rich I/O libraries,
and define the meaning of the terms:
DDL, DML, DBA, multi-tier DBMS architecture, and concurrency.
-
Describe the syntax of the SQL SELECT statement and
explain the significance of the various keywords,
clauses, and functions associated with it;
e.g., distinct, where, order by, group by, having, like,
count(), length(), substr(), etc.
-
Given the URL of a database,
use a frontend to connect to it and generate
a report based on a given requirement.
-
Given the URL of a database,
write a Java program that connects
to it via JDBC and retrieves information
from, or adds a row to, a given table.
- Markup
-
Describe the syntax rules of HTML and explain
the difference between well-formed and valid.
State the meaning of the html-related terms:
element, attribute, root, whitespace,
entity and character references, and an empty element.
-
Explain the difference between semantic markup (HTML)
and presentation (css).
Define the terms:
article, section, header, footer, aside, nav, address,
and time.
-
Create an HTML page with a specified content and structure.
The specs may involve lists, tables,
and a variety of fundamental elements
such as anchors and figures.
-
Create an HTML page that contains forms.
Each form may include buttons, various input elements,
and template text.
- Server-side
- Servers
-
Describe in general what web servers do,
and explain in detail the steps taken by a web server
when a request for a static page arrives.
-
Configure a directory so that Apache
can serve its content when requested.
-
Add confidentiality to the above configuration.
-
Add authentication to the above configuration.
- Webapps
-
Compare and contrast serving a static page
versus a dynamic one.
Explain the steps that a web server takes
to respond to a dynamic page request.
-
Write a CGI script that responds
to a FORM according to a given functionality;
e.g., determine if a parameter is a prime number
after validating it.
-
Describe how a code injection attack works
and demonstrate by building an example.
-
Explain the meaning of the terms:
phishing and spoofing
in the context of web security
and demonstrate by building examples.
- Architecture
-
Explain how cookies can be used to maintain a session
over a stateless protocol.
Describe other mechanisms for managing
and persisting sessions.
-
Describe multi-tier computing and state its advantages.
Apply by building a 3-tier webapp that involves forms,
session management, and a database.
-
Describe how a SQL injection attack works
and demonstrate by building an example.
-
Explain the MVC Design pattern
and the three approaches to developing web applications.
-
- Client-side
- CSS
-
Describe in general terms the capabilities
of style sheets and the main advantages of using them.
-
Explain the syntax of CSS rules and define
its associated terminology.
In particular, describe how selectors can be
combined and provide examples that use
tags, IDs, classes, and pseudo classes.
-
Given one or more style sheets and an HTML document,
use cascading and inheritance rules to determine
how a particular element should be styled.
-
Create a CSS so that a given HTML document
will be rendered in a specified way.
- JavaScript
-
JavaScript is a dynamically typed language.
Explain the meaning of this by contrasting JavaScript
with a statically typed language.
Provide examples of JavaScript types
and how they are determined and converted.
-
JavaScript supports functional programming.
Describe the functional capabilities of this language
and show how functions can be used to implement abstraction.
-
JavaScript is object based but is different
from traditional object-oriented languages.
Explain this difference and provide examples
of JavaScript objects, object creation,
and object-related capabilities.
-
Write a JavaScript program that implements
a given functionality.
- DOM
-
Explain the DOM view of a document and
provide examples that demonstrate the DOM API.
-
Describe the event model and provide examples
of intrinsic and DOM events.
-
Build a client-side system capable of displaying
a form and validating its fields before submission.
Use a variety of events (such as onsubmit and blur)
and a combination of alert and DOM to display error messages.
-
Create a JavaScript program to implement
a given user interface functionality.
The functionality can include displaying
or modifying the DOM tree of the current document.
- Mobile Apps & Web Science
- Mobile Apps
-
Explain the difference between AJAX and form submission.
-
Create a BlackBerry widget that uses AJAX to communicate
with a server-side webapp which,
in turn, communicates with a database server.
-
Explain the widget development cycle including
the use of simulators, widget signing, and app loading.
-
Build a widget the uses local features
on the BlackBerry smartphone.
- Web Science
|
|
Required Textbook / Reading
Course
materials will be primarily drawn from the assigned readings
from the course textbook (Jackson, 2007).
Supplimental readings made available will be assigned.
|
|
|
|
Grading Criteria & Course Requirements
|
|
Components
What
|
%
|
When
|
Test #1
|
15%
|
Tu 2 Oct.
|
#2
|
15%
|
Tu 23 Oct.
|
#3
|
15%
|
Tu 13 Nov.
|
Lab Reports
|
7 × 1%
|
seven, due at end of lab
|
Issue Essays
|
8 × 1%
|
eight, due before each Wednesday's class
|
Project
|
20%
|
due last day of classes (Monday 3 Dec.)
|
Final Exam
|
20%
|
In Dec. during the exam period
|
|
|
Tests
Tests
take place on Tuesdays during the scheduled lab time
at the lab's location (CSE #1002).
They will test you in a hands-on way
on the material that you have covered in the labs, reading,
and lecture.
|
|
Labs (& Lab Reports)
Labs
are central to this course.
At the end of each lab will be a small deliverable,
as a proof that you have done the lab exercise,
and understand the concepts.
|
|
Discussion Wednesdays (& Issue Essays)
Wednesdays
are dedicated to special issues related
to what we are studying.
Wednesdays' “lectures” are meant
to be particularly interactive with discussion.
Before each Wednesday discussion,
a small reading or challenge related to the issue
will be posted.
Also, a question related to the issue
will be asked.
You are to address the question in up to half a page
(an "essay") and turn it in before Wednesday's lecture.
|
|
Project
The
project will pull together much of what is covered in the course.
It will involve developing and fielding a mobile app for a blackberry
smart phone.
|
|
Final Exam
The
final exam
will take place in the lab,
and is the same format as the tests.
It is cumulative, however.
|
|
|
|
This
schedule is a static copy,
for reference,
as of the first day of classes.
See the active schedule on the class's home page
for links to notes, modifications, etc., as the term progresses.
week#
|
days
|
topics
|
lab
|
issue
|
readings
|
I. Infrastructure
|
#1
|
5 Sept.–11 Sept.
|
Introduction
Networks
|
Lab #1: Networks
|
|
Sections 1.1–1.6
|
#2
|
12 Sept.–18 Sept.
|
Databases
|
Lab #2: Databases
|
Issue #1
|
Database & SQL notes
|
#3
|
19 Sept.–25 Sept.
|
Markup
|
Lab #3: Markup
|
Issue #2
|
Sections 2.3-2.7
Markup Notes
|
II. Server-side
|
#4
|
26 Sept.–2 Oct.
|
Web Servers
|
Test #1
|
Issue #3
|
Web Server Notes
|
#5
|
3 Oct.–9 Oct.
|
Web Apps
|
Lab #4: Server-side I
|
|
Section 2.9
Web-App Notes
|
Monday 8 Oct.: Thanksgiving (no class)
|
#6
|
10 Oct.–16 Oct.
|
Architecture
|
Lab #5: Server-side II
|
Issue #4
|
Architecture Notes
|
III. Client-side
|
#7
|
17 Oct.–23 Oct.
|
CSS
|
Test #2
|
Issue #5
|
Chapter 3
CSS Notes
|
#8
|
24 Oct.–30 Oct.
|
JavaScript
|
Lab #6: Client-side I
|
|
Chapter 4 as reference &
Chapter 5
|
Reading Week: 31 Oct.–4 Nov.
|
#9
|
5 Nov.–6 Nov.
|
JS &
DOM
|
Lab #7: Client-side II
|
|
JavaScript Notes
|
#10
|
7 Nov.–13 Nov.
|
DOM
|
Test #3
|
Issue #6
|
DOM Notes
|
(Last day to drop is Friday 9 Nov.)
|
IV. Mobile Apps & Web Science
|
#11
|
14 Nov.–20 Nov.
|
Mobile Apps
Widgets
|
Widgets, Project I
|
Issue #7
|
Widget Notes
|
#12
|
21 Nov.–27 Nov.
|
Mobile Apps
Infrastructure
|
Project II
|
Issue #8
|
BB Notes
& Project Notes
|
#13
|
28 Nov.–3 Dec.
|
Web Science
|
no lab
|
|
Web Science Notes
|
|
|
|
|
Exams & Attendance
Exams
must be taken when scheduled unless the student has a medical
documentation or can demonstrate special circumstances for a
need for a rescheduled exam. The student must obtain approval
from the instructor.
Lecture attendance is useful and encouraged as the student will have an
opportunity to ask for clarification of course and text material.
Topics will be discussed in lecture,
and examples shown.
Lab attendance is really needed to gain a strong working knowledge
of the material,
and to earn the lab-report marks.
|
|
Grading
Conversion
from numeric to letter grade is applied
to the overall mark only according
to York University's following standard:
F |
E |
D |
D+ |
C |
C+ |
B |
B+ |
A |
A+ |
< 40 |
≥ 40 |
≥ 50 |
≥ 55 |
≥ 60 |
≥ 65 |
≥ 70 |
≥ 75 |
≥ 80 |
≥ 90 |
York University's official interpretation of grades.
|
|
Academic Integrity / Honesty / Plagiarism
The
Department of Computer Science (& Engineering)
Academic Honesty Guidelines
are in effect for this course,
as, indeed, they are for any CS&E course.
Plagiarism is defined as taking the language, ideas, or thoughts
of another,
and representing them as your own.
If you use someone else's ideas, cite them.
If you use someone else's words, clearly mark them as a quotation.
Note that plagiarism includes using another's computer programs or pieces
of a program.
All noted instances of plagiarism will be reported.
These policies are not intended to keep students
from working with other students.
One can learn much working with others,
so this is to be encouraged.
Should you encounter any situations for which you are uncertain
whether the collaboration is permitted or not,
please ask.
|
|
|
|
|