elo
This is an old revision of the document!
Table of Contents
Expected Learning Outcomes
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 (aka 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 details 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
WEB SCIENCE
elo.1291161182.txt.gz · Last modified: 2010/11/30 23:53 by roumani