Home Catalog Evaluate Download

Catalog Of Programs

This page lists the individual Windows programs that are distributed on the Computer Science Lab CD-ROM. All of these programs are compatible with Windows 7/Vista/XP and even with Windows 98/ME. Click on each hyperlink below to read more about that program.

The Computer Programming Series

RPN Calculator 8051 Microprocessor C++ IDE

3 Languages with complete tool set
(editors, compilers, and debuggers) and
in-depth self-study guide

The computer programming curriculum consists of 3 programming environments of graduated complexity that allow a beginner to comfortably and enjoyably learn to program. Whereas most schools introduce beginners to a high-level language, I feel this approach leads to too many topics which are explained with hand waving and vagueness. Computers aren't so complicated that you can't learn their technology from top to bottom. In fact, to be a really good programmer, you need to understand both low and high level languages. Low level languages make a good starting point for beginners because they allow you to start writing your first programs during your first half-hour of instruction. Everybody prefers this learn by doing approach over the alternative where you have to sit through days of syntax and grammar rules before you can start writing programs. Click on each hyperlink above to learn more about these 3 programming environments. Note that each one comes complete with a program editor, a compiler, and a debugger; all integrated into what programmers call an integrated development environment (IDE).

Perhaps you wonder why I chose these particular languages. You might particularly wonder about the absence of Java, which now dominates most introductory programming courses required in college of engineering majors. The following chart shows the breakout of which computer programming languages are actually employed to construct today's devices:

Programming Language Market Share
Language Market Share 0 10 20 30 40 50 60 70
C 62 %
C++ 24 %
Assembly 5 %
Java 2 %
Basic 2 %
All Others 5 %

Source: TechInsights 2009 Embedded Market Study

"Hello John. Thank you very much for the CD-ROM. This is the BEST program I have seen so far for teaching kids how to start computer programming. Not only will my 12 year old will benefit from this wonderful and well developed curriculum, my self (with an Ph.D in Physics) will also enjoy it."
a parent in Rochester, NY
" I have been assigned the task of getting a computer science program into our private high school. I really like what I see in your computer science lab. There is nothing out there quite like it, and it is impressive in what it teaches... I am a math major who programmed in C for 5 years, and I am a little intimidated by your program, but mostly, I am excited - because I am learning so much. I could get excited teaching this curriculum."
a teacher in Washington state
" Just wanted you to know that we received your CD. I have been extremely impressed with the material so far, and coming from someone who was a computer science major at the University of Waterloo and product manager for IBM's educational software in the 80's, that's saying a lot. I've always loved simulations as a perfect learning facilitation tool."
a retired IBM manager in Canada

Supplemental Programs

GraphIt Computer History

The RPN Calculator program employs a second top-level window called the cGraph window whereby the calculator can generate two-dimensional (i.e., x/y) plots. This software is so useful that I have spun it out into its own program, called GraphIt. You can use this program to generate both hard-copy plots (that is, printed paper) and to generate .BMP or .GIF files that you import into word processor documents. You have complete control of the formatting of the plot as the software allows you to choose the pen colors, the range of the axes, the font used for the annotations, the color of the background, the presence or absence of grid lines, etc. etc. You can manually enter the data to be plotted or import a CSV (comma separated value) file prepared by Notepad, Excel, or various other applications.

The "Illustrated History of Computers" is not a program, it is a white paper describing the stranger-than-fiction history of computers. It includes over 50 photos of the earliest computing machines from famous inventors such as Pascal and Charles Babbage.

Click on each hyperlink above to learn more about these supplemental programs.

Advanced Tutorials

Direct3D Multithreading

Direct3D is the component of Microsoft's DirectX technologies that enables the kind of immersive 3D worlds you see in video games. Click on the hyperlink above in order to read more about Direct3D and to download a Visual C++ .NET 2003 workspace that includes the source code and the finished executable for a Direct3D8 program that allows you to fly through a three dimensional model of the Munsell color solid which is one artist's attempt to categorize all the colors that humans perceive.

Multithreading is an advanced technique that allows your programs to accomplish more in less time. The trick is to switch to other useful work every time your program would otherwise have to wait on a slow resource (such as a read or write from the hard disk). Threads encapsulate these separate activities and the operating system switches between threads just as it switches between processes. This programming technique is going to become even more important now that home computers will routinely include more than one microprocessor (i.e., a dual-core processor). Only a program which employs multiple threads will be able to keep both cores busy. Click on the hyperlink above in order to read more about multithreading and to download a Visual C++ .NET 2003 workspace that includes the source code and the finished executables for five different examples of multithreaded programs.