elo
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
alertand 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
elo.txt · Last modified: by roumani
