Title: Q for Smarties

Dennis Shasha
New York University
shasha@cs.nyu.edu

The goal of this three day 18 hour course is to take programmers
who are strong in some language and make them proficient Q programmers.
The course is structured as a hands-on course in which students
are introduced to elements of Q and then asked to work on exercises.

Before the course begins:
i) Students should have q loaded on their machines, the free
version is ok. 
ii) Downloaded the zip files corresponding to the parts
of the course [I will email these directly once I have
the mailing list of all attendees].
iii) Read the following short primer:
http://www.kx.com/q/d/primer.htm


The entire class consists of the following parts:

1. Statistics, simple finance calculations, monte carlo simulation,
date arithmetic on in-memory data.

2. Input/Output, inter-process communication, single client-multiple server.

3. Creating tables, computing volume weighted average price (SQL semantics),
computing moving averages (ordered table semantics), generating large
random data for simulation, bulk insert, foreign key joins, stored procedures,
scrape a website and fill a server, load-balanced data server.

4. Large data storage, left joins, temporal joins (asof, window join,
precise window joins).

5. Tickerplants data, pubsub, building data access languages of your
own, machine learning, advanced programming problems.



