Here’s the curriculum for the Digital Boot Camp. The boot camp will run for three weeks full time from September 5th 2011 and the fee is £1000.
Week 1: Text
– Lab 1: Editors and Shells
Using Emacs; using Bash; using Python interpreter; using
SpiderMonkey (a JavaScript interpreter); using FireBug (a Firefox
plugin for working with JavaScript); using IELM (an Emacs Lisp
interactive mode); brief overview of other text editors.
– Lab 2: Text Operations
Regular expressions; sorting (using one-liners in Bash, Python,
JavaScript, Elisp); Emacs keyboard macros; encoding (UNICODE,
DOS/UNIX/MacOS); Emacs search/replace.
– Lab 3: UNIX Operation
Files and directories (listing, finding, making, touching,
permissions); users and groups; text environment (input/output
re-direction, pipelining); remote sessions.
– Lab 4: Procedural Abstraction
Writing scripts; using functions; using control structures;
scripting together some text processing concepts from the week’s
labs; each concept is practiced in: Python, JavaScript, Elisp.
– Week 1 Project:
Week 2: Markup
– Lab 5: Tagging and Semantics
XML syntax, adding tags to documents, using attributes;
well-formedness, testing for errors using a parser, understanding
problems with documents; designing tagging schemes, document
semantics; Emacs nxml-mode for assistance in authoring XML
documents; xmllint as a useful parser/checker; introduction to
HTML; uTidy for cleaning HTML.
– Lab 6: Documents and Objects
Introduction to W3C (and FF and IE) DOM using JavaScript;
introduction to DOM using Python ElementTree; writing scripts to
generate and inspect document trees.
– Lab 7: Documents in Pipelines
Processing XML documents as streams of events: SAX (simple API
for XML), Genshi; extracting content from XML using XPath;
transforming XML using XSLT; writing scripts to process markup
content (aggregate, transform, search).
– Lab 8: Data Abstraction
Common primitive data types (numbers, strings); Python lists,
tuples, dictionaries (possibly classes); JavaScript arrays,
objects; Elisp lists, association lists; writing scripts that
manipulate these data types; treating XML like a database.
– Week 2 Project:
Week 3: Web
– Lab 9: Web Servers
Anatomy of an HTTP request; understanding URIs; configuring
Apache to serve static content; using templates to serve dynamic
content (Genshi).
– Lab 10: Web Clients
More HTML; styling HTML using CSS; altering documents using
JavaScript; responding to user actions using JS.
– Lab 11: Data on the Web
Data encoding for the Web: XML, RSS, JSON; extracting data from
Web-delivered sources: HTTP APIs and scraping, using Python;
Yahoo Pipes; creating a mashup.
– Lab 12: Abstractions over the Web
Techniques for developing a Web-delivered API; designing URI
structure; specifying required parameters; processing calls on
the server; returning correctly encoded responses; documenting
your API.
– Week 3 Project