Java has become, according to many sources, the world’s foremost full-featured programming language.
Oracle, the owner of Java, notes that some three billion devices of all kinds, sizes, and degrees of complexity run Java. While software developers bicker endlessly about which language best suits one task or another, Java clearly does qualify as both a highly useful general-purpose programming tool readily applicable to a broad range of real-world tasks and one that can be learned with reasonable effort.
Mastering Java to the extent of correctly and appropriately utilizing all of its features requires a long-term commitment and a huge amount of hands-on experience over many years. Our objective is to enable the beginner with interest but no experience to write fairly simple Java applications that actually accomplish useful work. These programs will be written in genuine Java code, not put together graphically in pre-written symbolic form. That is, it will be real source code, compiled into real applications.
Our proposal outlines a series of thirty-nine one-hour (as well as a half-hour option) public television broadcast episodes (in three trimesters) plus another forty to fifty hours of WWW-only additional content. It has the working title of “The Art of Programming” and uses the freely available Java language. All coding tools will be available at no cost to users of Windows, Mac, and Linux. Assuming a television set, an Internet connection, and a computer, anyone can participate in this course at no cost. The project will be subject to on-going revision as series development progresses.
As presently envisioned, the on-camera cast will consist of one presenter and nine students. Off-camera production personnel should be in the vicinity of perhaps fifteen part- and full-time specialists, including the language expert. Although some details of the production design, scripts, and syllabus remain to be worked out, we do have a coherent and comprehensive project structure at this point.
Questions, comments, and suggestions should be sent to firstname.lastname@example.org for consideration; all submissions will be acknowledged. Some of them cheerfully.
Currently, the eighteen-month project is anticipated to cost 4.32 million dollars. This comes from our target limit of $54,000 per hour for the entire series. We believe that this compares spectacularly well to other television series made to broadcast television standards of quality.
We take special pride in noting that all episodes of the series, including those on the WWW, will be made with the same production values that characterize the finest of both commercial and public television.
Public television originated as a means of education as well as a source of entertainment. It is certain folly to attempt a television series that fails to provide any entertainment value, but it’s equally wrong to assume that entertainment and education must be mutually exclusive.
In recent years, the number of people interested in computer programming has grown, and public broadcasting has thus far failed to keep up. That there exists a void waiting to be filled may be inferred from the number of programming-related tutorial videos made by amateurs and exhibited on YouTube.
Public television now offers how-to and instructional programs dealing with painting, woodworking, wood turning, innumerable styles of culturally uplifting travel, music, pre-school education, arts & crafts, kids’ moral growth, stained glass, the yuppie lifestyle, horse riding, metal spinning, photography, cultural diversity, ethnic tolerance, stringing beads, hunting and fishing, gardening, home economics, home improvement, composting, psychology, knitting, crocheting, sewing, and quilting.
Oh, yeah . . . scrapbooking.
Along with an endless stream of cooking programs. And we mean endless.
Doubtless, there are numerous other fields which have been and will be acknowledged by public TV, yet the absence of educational and documentary content on the creation of software becomes increasingly conspicuous with each passing year.
We believe that the time has come to remedy this deficiency. And, we are hardly alone in believing in the necessity for and value of teaching programming more widely. To quote from a BBC news article , “...the Hong Kong government aims to make computer programming a required subject for students as young as 11 years old.”
Further, we believe that success in such an undertaking requires understanding the audience extremely well. At ep5, we draw on our own experiences in self-taught Java, C#, and other languages in making the promise that public television has something of genuine value to offer the millions of Americans with a degree of interest in coding.
After all, plenty of other countries see the value in teaching programming literacy.
In this proposal, we explain why a public television series on software development with Java should be made, offer some insight into how this can be accomplished, and add a few words on why we should be the organization to do it.
We propose having the entire series of episodes stress the simple and beautiful fact that a piece of software has the capability of accomplishing something of value, precisely according to the intent and wishes of its creator.
We explain how the premise of teaching computer programming on public television is transformed from an iffy and debatable idea into a sound and defensible proposal by the incorporation of a series web-site for which the television program in effect serves as the front end. Moreover, we propose an unusual, if not unique, bit of experimental research into how television can teach programming.Return to top
The question may occur to you, what can we offer in this series that is not available anywhere else? Perhaps even more germane is the question, how can we avoid the fate that befell that darling of the day, MOOCs?
An examination of the dynamic of learning a programming language, taken to its logical extreme, reveals that everything in the process is fixed and known, save for one critical core component of the process: the mechanism by which the ability to use language-specific complexity is conveyed to the student. The beguiling simplicity of this premise explains why it is routinely and predictably ignored by those who take it upon themselves to provide the resources available to and usable by students.
In conventional schools, teachers assume that the qualifications which enabled them to secure employment sufficiently establish their bona fides, while, elsewhere, amateur teachers do not even question their own ability to teach: they assume it as self-evident. In this document, we challenge this latter assumption and offer a better way.
In addition to the thousands embarking on a Computer Science program at university and additional thousands taking formal training courses, an uncountable number of people with an interest in programming undertake to learn it on their own. Evidence of this? The number of so-called tutorials on YouTube and the seemingly unlimited number of incredibly overpriced paperback books purporting to teach Java programming in hardly any time at all.
Is it not time that the resources available to them rose above the level of the haphazard and the amateurish and attained some degree of parity with those enjoyed by full-time students?
In this project, The ep5 Educational Broadcasting Foundation will work with expert Java specialists to develop a simple and replicable methodology of effective self-learning of software development. Specific teaching practices will be proven through real-world testing and validation. We will then demonstrate these techniques in practice, in the form of this public television series.
Speaking of practice, how much of an economic burden will this course be to the student? All of the software is free: the Java development kit, the programming tools, even the operating system that all of this runs on. On the cheap, one can find a used monitor, mouse, and keyboard and plug them into one of those cute little fifty dollar single-board computers. Then, with an Internet connection of some sort, even if it’s a high-jacked Wi-Fi link to the neighbor’s cable modem, one is all set.
A bit of methodology
When someone out in the real world, far from the coccoon of the academic environment, determines upon learning a programming language on her own, there is generally a particular and specific objective that she needs to accomplish. To this end, she will look for features in the programming language which directly address what needs to be done and then attempt to find and adapt code to her own application. This typically results more in frustration than in accomplishment, leading to wasted time and energy, as well as, all too frequently, giving up in disgust on the idea of learning to code.
It’s easy to repeat the old mantra about learning to crawl, then to walk, then to run, and then to compete in marathons, but making this actually happen is neither simple nor easy. We assert that the universities, with their insatiable appetites for money and time, ought not to own the monopoly on effective training in software development. Our method entails creating a series of steps by which the beginner can make solid progress, fast enough to generate the positive feedback that encourages adhering to the program — you should pardon the expression — but with no time or effort avoidably devoted to distraction or irrelevance. It is one thing to learn how to do straightforward create/read/update/delete operations in a simple database and altogether another to spend a week on the philosophy of Edgar F Codd.
The university has to pad the process out to make it last for four years and does so with the doctrine of the “well rounded student” as well as with deliberately slow progress through intensely detailed programming training. For a baccalureate in Computer Science, this is what it is. For someone who is already as round as she needs or wants to be, focus and concentration on the matter at hand, along with a path (or, as Oracle calls it, a trail) through the thicket of the Java language, will yield the desired end result far more effciently, albeit on a more modest scale.
When all is said and done, as if it ever is, the only path to genuine competence in programming is experience, time and effort devoted to writing and testing as much Java code as one can. Our television-and-Web course will prove a direct and efficient path.Return to top
A practical benefit
Every good programming language course utilizes a simulated real-world project of some kind as a teaching exercise. Ideally, this project involves constructing and testing a program which both incorporates as close to all as possible of the concepts taught and has practical value outside the learning environment.
In the full version of our proposal, we explain how this series can be built upon and expanded through the development of a Java-coded building automation system. In so doing, we make a substantial contribution to the greater good of the nation’s economy through the creation of a new industry with many jobs, as well as an equally meaningful contribution to solving the energy crisis.
How do we substantiate such a grandiose claim?
Of the uncounted billions of instances of Java in use today, most are in some form of automation, and automation has long been understood to be the key to saving energy and other resources. When the efforts of a full-capability software bureau are brought to bear on a complex system, great things can be accomplished. But, what about the vast number of smaller projects that never happen simply because the business, farm, or individual cannot afford the extremely high prices commanded by such software vendors? In many instances, a simple application, if tailored to the specific circumstances, can effect non-trivial savings. These add up, making the business owner’s ability to write his own software a valuable one.
We have a good deal of in-house experience in creating such automation, meaning that we know what we are talking about. When a non-programmer, such as the owner or an engineer or technician normally tasked with non-software responsibilities, can write, implement, and debug a control application, all manner of things become both possible and plausible.
What kind of application would be made feasible by our Java course? Consider the turning on and off of lights, HVAC, steam plant boilers, and other commercial and industrial energy-consuming functions. One of our staff once owned a large metal-finishing company, an energy-intensive business in the best of times. To have steam pressure ready and tanks hot for the start of work at 0700 each day, one of the millwrights had to get up each morning at 0300 in order to arrive at the plant early enough to turn on the boiler. If left on overnight instead, much energy would have been wasted. A simple timer wasn’t a viable option, as it would provide no safety interlocks at all, and that was not acceptable. A program, written in Java and connected to the factory machinery via garden-variety, readily-available, inexpensive industrial I/O hardware, would have saved a great deal of energy and thus money.
It would also have made for a happier millwright.
This type of application is hardly limited to the smokestack part of town. Building automation systems have proved their worth for many years, but they remain complex, costly, and out of reach for huge numbers of small facilities. We certainly do not claim that, after completing our public television and WWW course, a non-programmer will suddenly be able to automate a full-scale oil refinery. She will, however, have the skill-set required to design, assemble, install, and debug a simple but nonetheless useful building automation system suited to a residence, farmstead, store, or shop.
Even better, our series will feature a forum in which all interested individuals can exchange ideas and programs, help each other through the hard spots that seem a permanent part of the software landscape, and benefit from the expertise and experience of others. Think of it as a specialized version of Stack Overflow.
The rudimentary building automation system created in the ep5 Java course can and very well might become the heart of an open-source BAS available to all at no cost, supported by a growing community of programmers, both commercial and amateur. More than ample precedent exists for such a progression, in the public interest and kept vigorous and evolving rapidly by the participation of as many individuals as possible.
This aspect of the course, working title ep5BAS, is made far more practicable by the exceptionally capable and free scheduling utility, Obsidian.
The creation, testing, and evolution of such programming is well within the scope of our series. Much more to the point, we will show precisely how this kind of system can readily be done using the cookbook approach. The widespread application of this kind of ad hoc software development would, by itself and over time, save enough to more than justify the cost of producing this series.
But . . . but . . .
It will be argued that a little knowledge is a dangerous thing. This is nonsense. Knowledge is neither dangerous nor fraught with any other type of peril. What one does with the knowledge that she possesses determines outcomes. Knowing that a house should not smell of smoke cannot be dangerous. Rushing into the closed room from which the smoke is billowing may indeed carry avoidable risk, but dashing outside and calling the fire department is probably pretty smart. Both actions derived from the same knowledge. This is, of course, equally true of amateur programming. The untrained programmer who builds a controller for a gas-fired heating system and neglects all the safety devices and features will hardly constitute a lesser threat to public safety by virtue of not writing Java code. The thing about dangerously stupid people is that not knowing how to do something is more the source of the problem than any means of averting it.
Statistically, the greatest threat to life and limb in the first world is driving on the public highways. Writing your own programming in Java or any other software development toolset carries truly exiguous risk of injury or damage to property. Set against this we have the genuinely substantial benefit of bringing useful and reliable automation to processes currently done manually or not done at all. Nowhere is it or should it be written that the benefits of software specific to one’s own circumstances and requirements must lie exclusively within the purview of the computer science degree program graduate.
As we were wont to yell on the barricades of ’48, “Down with elitism!”
More than any other quality, public and commercial television share high production values. Defined as “the combined technical qualities of the methods, materials, or stagecraft skills used in the production of a motion picture or artistic performance”, this attention to workmanship, entirely separate from the editorial content and æsthetic value, makes a television production rewarding to watch and hear. Both the broadcast episodes and all the additional content for the WWW are made to the single high standard of public television. Some of this is expressed in the technical properties of the video images and sound recordings, such as using high-resolution digital cinema cameras rather than ordinary television cameras.
However, the real quality inheres in the presentation, the writing, the individuals appearing on screen and conveying the story they are there to tell. It’s expressed in that wisecrack of long standing in the movie industry, the producer who tells the director that, “I may not be able to describe what I want, but I’ll know it when I see it!” When the audience for “The Art of Programming” finishes watching an episode with the firm conviction that the next episode cannot show up soon enough, this goal will have been achieved.
By the way, we think we have devised a cure for the cheap and nasty trick favored by broadcasters to squeeze in extra advertising. But, don’t tell ’em!
What will the finished episodes look like?
For broadcast, we’ll offer both half-hour and full-hour episodes, the latter covering the entire course and the former going halfway through. This gives the public television stations greater flexibility in scheduling the series. These episodes will have a substantial human interest value, with active participation by the nine students in the on-screen classroom. The WWW episodes will have greater emphasis on the teaching, with (provisionally) no student appearances. If we succeed in attracting noted personalities as lecturers, they will appear in the broadcast content only. The comparative “unknowns” who teach the WWW episodes will have equal charisma, appeal, and style, but they won’t be even slightly famous. Sorry about that…
Is this series really a good deal?
In the public television business, as everywhere else, nothing of substance happens unless and until money is made available to do it. To produce the series, including a basic level of distribution, we will need to arrange $4,320,000 in funding. This should be regarded as the minimum; funding in addition to this will enable other features of the series.
The series’ thirty-nine episodes provide a nominal thirty-nine hours of on-air time, but the web episodes are essentially unlimited. For planning, we assume that the web episodes will amount to thirty-nine hours of the as-broadcast programs plus another forty to fifty hours of original supplementary content. We are, therefore, budgeting for a total production of at least eighty hours of finished content. (We are not adding the on-air thirty-nine half-hour episodes because they are edited from the same original source footage.) Briefly, then, we have thirty-nine ½-hour and thirty-nine 1-hour on-air episodes, the equivalent on the Web, and several dozen additional variable-length web-only supplemental episodes.
Our proficiency in cost control means production budgets smaller than typical for television. How good are we? A quick, informal, and probably unscientific survey of industry production cost data revealed these per-hour costs (not inflation-adjusted) for a variety of program types (ours are in blue).
|“Game of Thrones” final episodes||$15,000,000 (per episode)|
|Netflix “The Crown”||$10,000,000 (per episode)|
|CBS prime-time situation comedy||$3,000,000 - $7,000,000|
|“Battle Creek” crime drama pilot (actual datum)||$3,564,567|
|MTV scripted programming||$750,000 - $1,000,000|
|“Native America” on PBS||$750,000 – $1,000,000|
|Typical PBS documentary||$300,000 - $500,000|
|SyFy programming||$275,000 - $500,000|
|MTV reality programming||$175,000 - $400,000|
|“The Art of Programming”||$54,000|
|“Wow! I Didn’t Know That!” radio series||$8,850|
At first glance, the reader of this document will be forgiven for experiencing a degree of skepticism about the per-hour cost for “The Art of Programming”. Even with our exceptional efficiency and fiscal self-discipline, doesn’t that figure beggar belief? It is spectacularly lower than the others.
First, the production is itself fairly modest, and we certainly will not be carrying a heavy payroll or the mortgage and taxes on a Hollywood studio. Top management at The ep5 Educational Broadcasting Foundation draws no salary: they’re volunteers.
That’s not the key, though. If you compare “The Art of Programming” to any ordinary full-length series on public television, you’ll find that our overall budget, relative to the actual resources and labor required, is not radically out of line with industry norms. We differ in producing a great deal more content than that initial on-air thirty-nine hours. In terms beloved of the economist, we have a fairly conventional fixed cost and a remarkably low unit cost. The great mass of the project budget sets up the process and gets things rolling. To roll (the cameras) for an extra hour adds unusually little expense. This is why the choice between a 39-episode series and a conventional one-hour/one-off heavily favors the series.
In short, then, don’t ask us to do the series on any less. But feel free to ask us to add more hours of program content for that same buck or very slightly more.
(Here’s the good bit!)
The chart above conspicuously omits production costs for very high-end television commercials, a universe all of its own in terms of cost. How bizarre is it?
Let’s make some assumptions and then run the numbers.
For a 30-second advert featuring a very famous celebrity peddling the goods, with classy music production, upwards of one hundred cameras (no, that is not an exaggeration), dozens of production personnel, an extravagant set, dancers, cars, and lots of motion graphics effects, the bill might come to, oh, say, three million dollars. Remember, this gets the ad made. It does not include the quarter million dollars that buys you a single airing on national prime-time television. (To air a 30 second ad on Super Bowl television, figure $5,250,000.)
Multiply that thirty seconds by 120 to bring the time up to our standard of comparison, one hour.
Multiply the $3,000,000 cost for thirty seconds by 120 to see what a full hour of high-end ad production runs.
It’s a little over a third of a billion dollars. That’s the estimated production cost of the movie, “Avatar”, which ran for two hours and forty-two minutes.
At that rate, our series would cost a blistering $28,800,000,000.
Enough to buy Uncle Sam six new super-carriers for the Navy.
The paltry $4,320,000 that we’re requesting for our series suddenly looks pretty reasonable, doesn’t it?
A closing thought
The average public television program is broadcast once and then, if it’s fortunate, repeated a few times before being consigned to dead storage. The entire investment in its cost of production has to be recouped in just a tiny number of forays out into the real world. The Art of Programming, by virtue of its intrinsic nature and because of how we propose to structure and present it, will continue to provide substantial public benefit for years. Please keep this in mind when considering both its merits and its price.
While only a few technical topics will prove to be a good fit for broadcast on public television, the educational resource represented by the web-site extends far beyond this limitation. The free availability of thorough, extensive, high quality training in skills having considerable vocational potential can leverage the funding spent on the production of this series into an asset of substantial value to the nation’s economy.
To the extent that the nation’s economic future depends upon mastery of high technology skills by those willing and able to learn, there will always be an on-going need for well thought-out and well-implemented tutorial content, delivered via a medium accessible by the greatest possible number of people aspiring to better themselves through education.
For this reason, while the underwriting requested for “The Art of Programming” will pay for this one series of thirty-nine broadcast episodes and forty to fifty hours of additional content, it will also create the foundation atop which can be built a long-term, on-going, singularly useful educational asset of real value to the American public.
There already exists an abundance of avenues, including public television, by which the public can be told about high technology. There already exists a structure of institutions which provide formal education and training to those able to commit to the time and the extraordinary expense of a university curriculum. Isn’t it time to create a means of giving hands-on, practical, usable training to those who want much more than to watch others using technology, yet cannot afford to devote four years and enormous expenditure to a degree program?
Please give this proposal the attention that the idea of a television series on computer programming warrants, and feel free to direct any questions, comments, and concerns to us.
Thank you.Return to top