The ep5 Educational Broadcasting Foundation

educational content for public radio and television

“The Art of Programming”

This page is currently undergoing extensive revision.

Technical advisor: Dr Axel T Schreiner

How we will do it.

The public face of “The Art of Programming” will be the public television series itself, with twenty-six hours of broadcasting. These episodes will address the core elements of programming, those aspects which all JavaScript programs will require. However, the body of the project lies in the much greater amount of tutorial content presented on the Web. Here, we will be able to provide the viewer with additional topics covered in more depth and detail.

Increasingly, the public television norm is to make broadcast episodes available on the WWW for access at any time, and this is a splendid idea. Unless, of course, it is done behind a paywall of some sort. That takes all the fun out of it. The entire program, whether a one-off or a series, should be viewable at will. For free. And permanently, not for a limited time only.

But, why leave it at that?

The WWW offers enormous potential that can take the scope and depth of a pub-tel series far, far beyond what is possible on ordinary television. The rigidly constrained time and scheduling of broadcasting mean that the series seen on air must follow a tightly defined format and thread. As a series, it requires a consistent “look & feel”. If the theme is teaching programming in JavaScript, then the program cannot wander off into a three episode long investigation of various operating systems, with extended discussions of which works best where. It has fifty-six minutes; neither more nor less. It has thirteen episodes per semester, twenty-six per series.

Why accept such a confining set of boundaries?

Enhancing the television series with extensive additional content for the WWW lifts the series over all of these barriers. It allows us to:

  • make as many episodes as we wish, subject to funding availability
  • let each episode run as long as it needs to
  • discuss anything that relates usefully to learning to program small computers
  • bring in industry experts, including those from series underwriters
  • be more…entertaining than is customary on public television
  • add deeper and broader content over time without being bound to broadcast schedules
  • accommodate audience participation via questions and complaints (What? Complain about us?? Outrageous!!!)
  • use a less well-known and more affordable presenter, thus getting much more mileage from the available funding
  • range farther afield in the selection of topics to explain, such as JSDoc for program documentation

A television program must necessarily operate within the limits imposed by a discrete series. Not so on the WWW, where we can go on making episodes for as long as the funding lasts. Once the production process is under way, then adding incrementally to the episode inventory proves remarkably inexpensive and fast. The full television series runs twenty-six one-hour episodes. The WWW version of the program can run riot, limited by only our own imagination and the underwriters’ generosity.

These platforms will be used in demonstrating JavaScript programming:

  • Windows
  • Mac OS X
  • Linux Mint

Additionally, various real-time operating system platforms will be examined for hosting the applications built during the course. The selection of RTOS platforms will be driven by the availability of free or very-low-cost OSes for popular hardware alternatives, such as x86, amd64, ARM, and others.

The series will demonstrate JavaScript programming for the popular pocket-sized computers, such as the Raspberry Pi. It will discuss the merits of such tools as Rhino, Node.js, VS Code, and others suitable for beginners. For those baffled by procedural versus object-oriented versus functional programming, we promise clarity and understanding.

This syllabus represents our initial view of how to structure the series. Naturally, once development begins, the course design will benefit from improvements as more experts contribute to production. Underlying the presentation of JavaScript code will be the explanation of how the programmer thinks through the problem before deciding how to reduce it to code. That is, how does the programmer devise and develop the algorithm with which the problem domain can be resolved?

Always, what we say will be demonstrated in functional and understandable examples. To accomplish this, we intend to use very simple games which allow the student to interact with the JavaScript in real time. Moreover, the JavaScript code can be changed and experimented with, quickly and easily, taking full advantage of the JavaScript interpreter.

For a working illustration of how we’ll present JavaScript, click here.

The following content is incomplete and subject to considerable revision.

First Semester

Episode 1: Introduction to the Series

Explanation of the series’ objectives, with examples of everything that will be covered throughout the course. Since the entire series will be completed prior to broadcast of the first episode, we can use selected clips from all episodes to illustrate our discussion of what the course covers. Discuss the “cookbook” approach, outlining how this will enhance the students’ ability to put to good use what is taught in each episode.

Demonstrate the extraordinary ease of finding the resources required for programming in the current version of JavaScript. Demonstrate both running JavaScript in the browser and using the run-time from the command prompt.

Show how a functional and realistic program can be created by starting with boilerplate sample program fragments that are then built up through modification and adaptation to achieve the desired results. Try to find an imaginative alternative to the ghastly “Hello, world” first example. (Preferably, for the very first program, create something brief and straightforward that shows one or two of JavaScript’s particular strengths.) Say something of the language’s history and its availability as free software. Offer a prediction of the role that it may play in future. Explain how trivial “installation” is, including how to install the run-times on the various operating systems.

Demonstrate how JavaScript programs implement the “write once, run anywhere” principle. Discuss limitations in JavaScript’s operating system agnosticism.

Explain how the broadcast course content is substantiated and expanded by additional material on the series web-site. This includes longer and more specialized videos, links to other resources, book-lists, examples and samples, opinion pieces, as well as an actively moderated users’ forum.

For a working illustration of how we’ll present JavaScript, click here.

Episode 2: First Principles

Episode 3:

Episode 4:

Episode 5:

Episode 6:

Episode 7:

Episode 8:

Episode 9:

Episode 10:

Episode 11:

Episode 12:

Episode 13:

Second Semester

Episode 14:

Episode 15:

Episode 16:

Episode 17:

Episode 18:

Episode 19:

Episode 20:

Episode 21:

Episode 22:

Episode 23:

Episode 24:

Episode 25:

Episode 26:

Say goodbye to the audience and urge them to encourage their local public television stations to carry subsequent series of “The Art of Programming”.

Web-site by Dreadnaught Steam Traction & Electric Broadcasting Works, Ltd