CR: COMP 2405 Learning Objectives: Difference between revisions
Line 25: | Line 25: | ||
* Understand how to create and use databases as a persistent store for distributed, online applications such as web applications, including how to design schemas that are both scalable and reliable. | * Understand how to create and use databases as a persistent store for distributed, online applications such as web applications, including how to design schemas that are both scalable and reliable. | ||
* | * Be able to choose whether an SQL or a NoSQL-type database is appropriate for a given application. | ||
* Learn how to create efficient code (in time and space) in dynamic languages such as JavaScript and PHP. | |||
* Be able to implement a simple yet responsive (low-latency user interaction) web application consisting of client side code, server side code, and a database for a persistent store. | |||
* Be able to create distributed applications that do not contain common security vulnerabilities such as cross-site scripting, cross-site request forgery, and SQL injection attacks. | |||
=Topics= | =Topics= |
Revision as of 02:32, 13 April 2011
Calendar Description
Current description:
Internet Application Programming
Design and implementation of Internet application programs. Topics include: fundamentals of the Web, introduction to client/server architectures, Internet programming, Web browsers, hypertext links, network programming.
New description:
An introduction to the upper computational stack: language-based virtual machines, desktop environments, and web applications. Topics: dynamic libraries, scripting and functional languages, interpreters, compilation, databases, remote procedure calls, and performance and security concerns in modern distributed applications.
Assumed Background
Learning objectives completed before this course.
Learning Objectives
- Be able to partition distributed application functionality between client and server in order to make appropriate trade-offs for latency, bandwidth, reliability, and security.
- Learn how to use closures and other meta-programming methods to create efficient, expressive programs in a distributed systems context.
- Understand how to create and use databases as a persistent store for distributed, online applications such as web applications, including how to design schemas that are both scalable and reliable.
- Be able to choose whether an SQL or a NoSQL-type database is appropriate for a given application.
- Learn how to create efficient code (in time and space) in dynamic languages such as JavaScript and PHP.
- Be able to implement a simple yet responsive (low-latency user interaction) web application consisting of client side code, server side code, and a database for a persistent store.
- Be able to create distributed applications that do not contain common security vulnerabilities such as cross-site scripting, cross-site request forgery, and SQL injection attacks.
Topics
Topic 1
Learning objectives for topic 1
Topic 2
Learning objectives for topic 2