Frequently Asked Questions
What are the license restrictions on these programs?
You may install the contents of the Computer Science Lab CD-ROM on any computers you have in your household. All members of your household may then use these programs. You may not copy the CD-ROM or distribute it beyond your household.
What warranty or guarantee comes with your software?
This software is provided "as is" without any warranty of any kind, express or implied. In no event shall I be held liable for any direct, indirect, incidental, special or consequential damages arising out of the use of or inability to use this software.
However I do promise that the software will install and operate on your Windows computer substantially in accordance with the description given on this web site. That phrase "substantially in accordance" is weasel talk that basically means there may be bugs. However I know of no bugs, and if a bug should ever be reported to me I will either fix it or refund your money.
I would like to explain why Windows programs in particular are tough to warrant. Intel and Microsoft were able to dominate the home computer market by undercutting their competitors on price while offering close enough on performance. They won on price because they championed an open architecture that allowed all comers to sell hardware. Your computer was probably purchased from a different vendor than mine, probably has a different microprocessor chip, a different amount of memory, a different clock speed, a different version of the Windows operating system, a different service pack, a different video card, etc. etc. This competition drives down the cost but also means that there is no such thing as a standard Windows computer. And this means I can't test my software on a standard Windows computer.
Microsoft sold software developers on the idea that they could write programs that were hardware independent, meaning that their programs did not need to be aware of all these hardware differences. The vagaries of the hardware actually present in a computer are supposed to be hidden from the application program thanks to the presence of device drivers which are yet more software not written by either Microsoft or the application developer. You've undoubtedly heard the phrase, "You need to get the latest driver." In short, your computer has a collection of device drivers that I don't have access to and hence can't test with.
I do want to assure you that my software will perform substantially in accordance with the description that I offer on these web pages and in the on-line Help documentation that comes with the software. The most detailed description can be found in the on-line Help documentation as it contains step-by-step instructions in the operation of the software and numerous screen shots illustrating what you will see while operating the software. This on-line Help documentation is contained within .CHM files which are displayed using Microsoft's Internet Explorer browser.
Because of the importance of these .CHM files for documenting the features and use of my software, I make these .CHM files freely downloadable from this web site. Please download and peruse these .CHM files before purchasing my software as they are your best guide for deciding whether my software will meet your objectives.
I am committed to making my software the best that it can be. If you inform me of a problem I will attempt to get you a fix. And I haven't failed yet as evidenced by the fact that there are no known bugs in any of these programs. Since the day when I first started distributing these programs from this web site only 1 bug has been reported to me by a customer. Every disc I shipped from that day forward included the fix.
What are the minimum requirements for your software to be able to run on my computer?
All of my programs are designed to be compatible with all of Microsoft's Windows operating systems. Specifically, my programs are compatible with:
I have personally tested my software on each of these operating systems.
My programs are very tolerant of old hardware. If you purchased your computer within, say, the last 10 years you will have no trouble. These programs were thoroughly tested under Windows 95, 98, and Windows NT 4. They were tested on Pentium I and Pentium II hardware.
These programs are also compatible with Microsoft's latest operating systems such as Windows 7, Vista, and XP (all flavors). They are compatible with all Intel and AMD microprocessors, including the newest multi-core versions.
All of my programs are designed for a screen resolution of at least 800 by 600 pixels but only the RPN Calculator program insists upon having at least this many pixels. You can adjust the screen resolution of your computer by right-clicking an empty portion of the desktop and then selecting the Properties entry from the pop-up context menu and then going to the Settings tab.
What does your installation program do to my computer?
As little as possible. Because I am all too familiar with the fragility of the Windows operating systems, I designed my installation program to make as few changes as possible. My installation program does not overwrite ANY of the .DLL files on your computer! I do not contribute to the infamous Windows DLL Hell problem in any way. My installation program does not place ANYTHING into the C:\Windows or C:\Windows\System32 folders.
My installation program does only the following items:
If your computer has a version of Internet Explorer older than Internet Explorer 4 then my installation program will prompt you to upgrade to Internet Explorer 5.5. If you accept, my installation program will install Internet Explorer 5.5 . Note that you don't have to make Internet Explorer your default browser (the one you use to surf the web), you just need it on your computer in order to gain the full functionality of my on-line Help documentation. Even if you refuse to upgrade your version of Internet Explorer, you will still be able to read my on-line Help documentation, but you will be lacking the index and the full text search capability.
If you are running Windows 95 then all the above statements apply but there is 1 more action taken by my installer. Windows 95 did not include the RICHED20.DLL which is required for my 8051 Simulator and C++ IDE. Consequently, if you are running Windows 95 and elect to install the 8051 Simulator or CPPIDE then my installer program will execute the Microsoft provided INSTMSI2A.EXE program which installs Microsoft's Windows Installer technology. That is an awful lot of "installs" in one sentence! The Windows Installer is a Microsoft standard that has been included in all their operating systems since Windows ME. We don't need the Windows Installer itself, but the action of installing the Windows Installer has the nice side-effect that a latest and greatest version of the RICHED20.DLL file will be placed onto your computer.
For those of you with other Microsoft operating systems, you too might like to install the Windows Installer in order to get a newer version of RICHED20.DLL than the one that shipped with your operating system. Those of you running Windows 95/98/ME can manually execute the INSTMSI2A.EXE program found in the RichEd20 Folder of my CD. Those of you running Windows NT/2000 can manually execute the INSTMSI2W.EXE program found in the RichEd20 Folder of my CD. Those of you running Windows 7, Vista, or XP already have Microsoft's latest and greatest version of this RICHED20.DLL file.
What is the difference between a minimum install and a complete install?
The only difference is that a complete install will place a few additional .WAV files on your hard drive. These .WAV files hold music. These files are not essential to the operation of the 8051 Simulator but give you some alternative songs you can experiment with when the 8051 Microprocessor's Output Window is configured for the audio peak detector.
How thoroughly does your software clean up my computer when I request an uninstall?
My uninstaller will definitely remove all the files and Registry entries and Start menu entries that it created. It will also remove all of the directories (folders) that it placed onto your computer, unless you have placed additional files into these folders. That is, let's suppose you install both the RPN Calculator and the 8051 Simulator. And then you modify one of the RPN Calculator's sample programs to create a new RPN Calculator program named MYPROGRAM.TXT which sits in the same folder as all the other RPN Calculator programs. You then uninstall both the RPN Calculator and the 8051 Simulator. In this case, all of the 8051 Simulator's files and folders will be removed. All of the RPN Calculator's files and folders will be removed with the exception of the MYPROGRAM.TXT file that you created and the folder that holds it. This strategy protects you from the loss of your own original work. If you really don't want MYPROGRAM.TXT any longer than you can delete it (and its folder) after the uninstall. Or you could delete it prior to the uninstall in which case the uninstall will be able to remove its folder.
Does the C++ portion of your curriculum require a prior knowledge of the C language?
I have designed my curriculum to be a first introduction to programming. Therefore I do not assume that you have had any prior exposure to either the C or C++ languages, or any other programming language for that matter.
Since your third course is described as an Introduction to the C and C++ languages, what topics are not covered?
The following C++ concepts are not covered in my materials:
I can recommend two books that cover these topics and all the other dark corners of the C++ language:
These are such good books that I have taken the time to develop the infrastructure (namely, the .PRJ and .MAK files) that allow you to use CPPIDE (my C++ IDE) to compile all 754 example programs demonstrated in these books. For full details on how to accomplish this proceed to the hyperlinks listed above.
What computer programming language do you use to create your Windows software?
I employ Microsoft's Visual C/C++ 6.0 professional compiler and write my programs in C++ using the WIN32 API (application programming interface). I do not employ MFC. The WIN32 API is a very low-level interface and consequently Windows programs are huge. Both my RPN Calculator and my 8051 Simulator required 15,000 non-comment source statements.
Why did you create these programs?
I am an electrical engineer and computer programmer by profession. I have a Masters degree in EE and another in CS and I have taught software engineering at both the undergraduate and graduate level. I have been programming for many decades.
When my daughter expressed interest in learning about computer programming, I looked around for good teaching materials. When I failed to find anything I liked, I decided to develop my own. In accordance with the "think globally, act locally" slogan, I decided to make these teaching materials available in my community. I organized an after-school Computer Club at my kid's junior high. That first year I only had the RPN Calculator and the 8051 Simulator available, but these low-level languages were a good match for this age group. By the next year I had added the high-level C++ language and moved the after-school Computer Club to our local high school.
Originally the software lacked on-line Help documentation (the explanations that you can get from most Windows programs by selecting Help from the menu). This was a problem because when one of the students was absent he then had no means of catching back up with the others. So I decided to write down everything I typically say when I teach this material live. This documentation grew to the size of a book (which I am arranging to have published). But Windows Help pages are even better than a book because they provide hyperlinks which allow you to make arbitrary jumps between the topics and they provide full text search capability. With the addition of the on-line Help documentation my programs were now self-study materials that could benefit kids and adults living beyond my own community. To facilitate the dissemination of these materials I then obtained this www.computersciencelab.com web site.
It became clear that I hadn't watered down the subject matter when I observed that most of my sales were going to engineers already working in industry. A surprising number of the people employed in the "information technology" field have never had a chance to learn to program.
Who can I contact for further questions?
You can reach me, John Kopplin, at: