Java has become, according to many sources, the world’s foremost full-featured programming language.
Oracle, the owner of Java, notes that several 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 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, one Java expert, and approximately two dozen students. Off-camera production staff should run in the vicinity of perhaps twenty to twenty-five personnel (both part- and full-time). 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 email@example.com for consideration; all submissions will be acknowledged. Some of them cheerfully.
Currently, the project is anticipated to cost three and a half million dollars. This is under $90,000 per broadcast episode, not counting the Web-only episodes, and less than $44,000 per episode for the entire series. We believe that this compares spectacularly well to other television series made to public broadcast 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 best of 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.
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
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 three to four billion 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!”
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