Difference between revisions of "CR: COMP 2405 Learning Objectives"

From Soma-notes
Jump to navigation Jump to search
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 22:32, 12 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