CR: COMP 2405 Learning Objectives: Difference between revisions

From Soma-notes
Line 35: Line 35:
=Topics=
=Topics=


==Topic 1==
==Dynamic languages==


Learning objectives for topic 1
JavaScript, PHP


==Topic 2==
==Databases==


Learning objectives for topic 2
SQL vs. noSQL
 
==Distributed application architecture===
 
AJAX, latency and bandwidth
 
==Security==

Revision as of 02:34, 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

Dynamic languages

JavaScript, PHP

Databases

SQL vs. noSQL

Distributed application architecture=

AJAX, latency and bandwidth

Security