Using QBasic to learn or teach computer programming and computer programming principles

 Aussie John's Site                   This Page Last Updated and Links Checked: 29 June 2003  

QBasic 1.1 And QuickBasic 4.5

Description, Tutorials, Links And Downloads

Page Contents        
Download QBasic 'N' Go!

1.  Introducing QBasic And Quick Basic
        Background Of QBasic And QuickBasic
        What Is QBasic And QuickBasic
        Compiling QuickBasic And Making Executable Files
        Permission To Use QBasic 1.1 And Quickbasic 4.5

2.  QBasic And QuickBasic As Teaching And Learning Programs
        Strengths Of QBasic and QuickBasic As Learning Programs
        Weakness Of QBasic And QuickBasic As Learning Programs
        Modular, Top Down And Object Orientated Programming
        QBasic, Visual Basic And Excel's VBA

3.  Making The Move To Qbasic Or QuickBasic
        Getting Started With QBasic Now
        How To Type Programs Into Qbasic  -"The Caps Lock Rule"
        A Good QBasic Program Example To Start You Off
        How To Present Or Obtain QBasic Material Using The Internet  
        Providing And Obtaining Qbasic Examples On The Internet
        Problems With Internet Downloading Or Getting Files ?

4.   Downloads, Links And Tutorials For QBasic And QuickBasic
        Download The QBasic And QuickBasic Programs And Help Files Now!
        Download QBasic And QuickBasic Related Material
        Links To Qbasic And QuickBasic Websites
        Forums For Qbasic And QuickBasic
        Links To On-Line Programming Tutorials Using Q(uick)Basic
        Thoughts About An On-Line QBasic Glossary Project  

5.   Programming Languages Other Than QBasic And QuickBasic
        Turtle Style Programs and Teaching The Very Young
        A Reference To Using Visual Basic In A Teaching Role
        Some Interesting Basics Other Than Q(uick)Basic
        What Are C/C++, Visual Basic, Java, And Delphi?
        Object Orientated Programming With SmallTalk Or Eiffel
        Pascal
        For The Linux Operating System
        Just For Apple-Macintosh Users  
        Links To Additional Programming Languages Resources

6.   My Computing Course Overviews
        Computing Course Work
        Experimental Linux Page

1.  Introducing QBasic And Quick Basic

Background Of QBasic And QuickBasic

Basic was written in 1964 at Dartmouth College as an aid for teaching programming. It was a subset of Fortran which was the programming language of scientists and engineers of the day and was unsuitable for teaching programming. Today, Basic is still the most widely used beginners first programming language.

Basic contributed to the introduction and acceptance of PC's and is part of PC history principally because the first real use of PC's was to run Basic in order to be able to write programs to make your computer useful. The programs you wrote you could use, give away, swapp with others or sell for a modest price through clubs or meets (that's where 'shareware' was born. Vendors provided Basic as a utility installed with the operating system in order to sell the computer and did so right up to 1996 by which time commercial software was widely available and the character of typical computer users had changed to be more consumer orientated with little interest or need to be able to program their computer.

Windows is the dominant operating system, and although Qbasic is still supplied on the CD, it is no longer automatically installed, so young people exploring the uses of their computer are denied the opportunity to discover computer programming. Worse, many parents and educators with QBasic experience from the days when it was automatically installed on the computer have come believe this important learning tool is no longer available and are unaware it is both on the Win CD and has also been made public domain and is available for download off the internet from many sources.

Microsoft left QBasic up on their website for anyone to download after they made it public domain, but with the passing of time, it was taken down. There is no agenda, they had made it public domain and no longer supported it, or it's bigger brother QuickBasic and were making room for newer commercial products. Software manufacturers and IT professionals don't regard QBasic as relevant anymore. They probably have genuinely forgotten that they wrote their first computer programs using Basic and don't appreciate it's continuing important role in introducing young people to programming and the need for students and educators to have ready access to the same software.

With the increasing complexity and size of professional software and the disinterest of companies to either produce new software, or continue to distribute older software that is suitable for teaching programming principles to school and college students, it defaults to educators to preserve and dissemeninate teaching languages. Basic, which was first written in 1965 by educators for learners and, which was taken up as a source of profit and then abandoned when more profitable opportunities built on the success of Basic emerged, has been passed back to educators. With the help of a growing community of supporters and the internet community QBasic and QuickBasic will be preserved for the future.


What Is QBasic And QuickBasic

Qbasic 1.1 is Microsoft's last (1996) version of Basic. It is a translated language and needs to be present to run the programs written with it. It is accepted by all interested parties as freeware and can be downloaded and used at will (two files 315K total and will work from the disk drive only if required).

QBasic has all the necessary facilities to teach a first computer course in math based problem soving programming, data filing and management, vector based graphics, pixal level raster graphics, sound, and more.

Now, years after Qbasic is no longer supported, the publishers of the well known 'For Dummies' series have just released, another book 'Beginning Programming For Dummies -An Introduction to QBasic and Beyond' by Wallace Wang. How many QBasic books is that now which use QBasic to teach programming? The book devotes some chapters to showing how to commence the transition from QBasic to other programming languages such as C++ and Java. This encapsulates the whole arguement and philosophy of a teaching programming language. You cannot teach (or learn) programming principles using the huge top end programming packages which are the tools of trained and experienced computer professionals who, themselves learnt QBasic in their earlier years.

QuickBasic 4.5 is a more advanced version that is a compiled language. It has has library files and other features more suited to teaching those who have completed an introductory course and may require to be taught more advanced principles with an emphasis on teaching how to produce functional software or how produce software to solve specialist tasks. The capacity to teach how to make library and produce 'executables' (ie programs converted to machine code that can be run on a computer without the QuickBasic program being present), using software that fits on a diskette (940K zipped or 2.2 meg installed) makes the software unrivalled for teaching advanced computer programming principles for Senior High School or College technical disipline students. There is no other software that comes remotely close. You can teach a beginner's first course using Quickbasic if you want to. The interface is the same as Qbasic, you just don't mention the additional features.


Compiling QuickBasic, Making .exe Files And Supplying Source Code

Using QuickBasic allows you to make a stand alone .exe file that can be distributed and used by others on it's own without the code being able to be seen. This is normally associated with commercial software and muddies the water as to wether it is training software or not. However the larger programs produced as part of engineering or specialist computer training have to be compiled and a .exe made in order for the programs to run properly. If you make your work available to others, as is often the case in the internet and education communities, make sure you always send a copy of your uncompiled program (ie the 'source code') along with your .exe version. This aids others who are learning or teaching computer programming or in other ways trying to help keep Basic alive as a learning language. It also defuses any arguement that creation of an .exe file is evidence of commercial use of the software.

Webmasters! Don't accept programs written using QuickBasic for review or downloading unless the source code is provided If you feel it is in the interests of preserving and promoting Quickbasic, at least put it in a separate list of downloads where it is stated that the source code is not provided. Don't endanger our continued use of abandoned (but still technically copywrited) software as a computer programming hobby cum training medium for young people by encouraging the appearance of commercial use that the unavailability of the source code implies.

There has to be some functional end products about (usually games) that will serve to encourage young people to want to learn and programming and that their work has to be showcased. Everything on a site can't be tutorials. It is a matter of balance, with preservation and promoting of computer programming training languages as the fundamental objective.


Right To Use QBasic 1.1 And Quickbasic 4.5

Microsoft have stopped supporting QBasic, although it is still supplied on the Win 95/98 CD, and no longer supply a Basic programming utility. It was never actually sold as a stand alone product. QuickBasic, which had more features and could make .exe files, and was only sold as a stand alone product, just disappeared off the shelves. QBasic and QuicklBasic and have been abandoned by Microsoft to the extent that neither have been sold or supported since about 1996. Microsoft have stated they regard QBasic as an operating system utility which is now public domain and have no objection to it being supplied or downloaded web. They also raise no objection to QuickBasic being downloaded for personal and educational institution learning and teaching use, but object to it being used for a commercial purpose.

Considering the role of Basic in the evolution of personal computers, and that every version was built on the work of prior versions back to the original Basic written at Dartmouth College for educational purposes and given to the world, Microsoft is being reasonable not putting blocks in the way of Q(uick)Basic being made available to students of computer programming. Bill Gates and Paul Allen, wrote the forerunner of QBasic (which became the reason for forming Microsoft) in 1975 when they were in College. They must have had a good understanding of existing versions (if not their code of spread out all over the table) when they did it. I doubt if they have any objection to students of computer programming using it either.

Microsoft only complain and write letters when people say, right up front that they are 'professionals' and proceed to base their activity around software that is made available to the community as a community gesture.

The bottom line is that Qbasic 1.1 is part of the public domain and is now freeware. Quickbasic 4.5 may be used for learning or personal use and the copywrite holder will leave you alone because it promotes acceptance and future sales of their more advanced professional products which are not as suited for teaching purposes.


Even More About Qbasic

QBasic 1.1 came free with MS Dos 5 and 6, Windows 3.x and Win 95. It does not automatically install with Win 95 but you can find it on the CD under .. other/oldmsdos/qbasic.exe ..don't forget to get the qbasic.hlp file as well. You can also run Qbasic directly from there (or maybe from anywhere on the CD) just by entering 'QBASIC'.

I've written a number of practical and fun programs in QBasic 1.1 and introduced it to others who have enjoyed writing their own computer programs and have been amazed that the whole program and it's help files is barely 315 K and can be carried around, along with any number of programs that have been have been written, on a 1.44Meg floppy.

In the olden days I use to put the boot files (start up files) on the disk as well, so I could just put it in a computer, turn the computer on, do my work and get out without engaging the hard drive. I do it for fun these days to show off and is considered quite a party trick by people raised all their lives on bloatware.

Alternatively you can select the A drive if the computer is up and running and either work from the A drive or copy the program files and any programs you have written across to the C drive and run it from there. Create your own QBASIC folder off the root directory and put a shortcut to it from your Windows Desktop, or if you want to, just find qbasic.exe with Microsoft Explorer and click on it.

QBasic runs fine on the older 286, 386 and 486 series of IBM compatables as well as all of the Pentium series that folowed the 486's. So dust of the old boxes lying and dedicate one to programming. As long as you have a boot disk lying a round you can put the boot files on and use an old machine with a non-functional harddrive (It will run on the A Drive alone remember!).


2.  QBasic And QuickBasic As Teaching And Learning Programs

Strengths Of QBasic And QuickBasic As Learning Programs

The strengths and advantages include:-



Weakness Of QBasic And QuickBasic As Learning Programs

The main failing in Basic (up to and including QBasic and QuickBasic) is the presence of the instruction GOTO. It's use now is considered poor programming at best, or evidence that you don't know how to program. The answer is simple, when using Q(uick)Basic don't use GOTO. Use LOOP's.

A second issue is the presence of GOSUB. While subroutines are still in Qbasic they have been replaced by sub-programs and functions. Again the answer is just don't use GOSUB.

Pascal was derived from Basic and was promoted as a suitable language to use to teach computer programming for a number of reasons including, by design, not having instructions equivalent to GOTO or GOSUB.

Deficiencies attributed to Q(uick)Basic are levelled in terms of comparison with the superior capabilities and industry acceptance of other software that comes on three CD's. When I ask the critic how they can disparage Q(uick)Basic if they have never used it, they are usually quick to point out they have used it back in their early days before moving into C++, Java, Visual Basic or Delphi or whatever. Which is, of course, my whole point.


Modular, Top Down And Object Orientated Programming

All the above are all good things. How does the Qbasic fit in? Well modularity is a way of thinking or doing things in small chunks. That way, something a big which is hard to do is reduced to a lot of little things each of which is easy to do. Very often a some of the chunks can be re-used, not only in the current task, but be filed away and re-used in other tasks. It's a way you go about doing things rather than something specific to Qbasic or even computer programming.

Modularity is primarily achieved in Qbasic with sub-programs and functions that can called and repeatedly used within one program or for that matter filed away and re-used in other programs. Even the ability to provide comment's and to use clear space between blocks of code allow the principle of modularity to be taught to beginners from day one. Indeed when such a block or related group of blocks gets a bit big, I use it to introduce sub-programs, and move it 'out of the way' to a sub-program.

QBasic has all the necessary looping facilities to permits 'top down programming' (tdp). This means the program starts at the top and works down toward the end perhaps looping back higher to re-read code that has to be repeated but, on the whole, proceeding downwards to the end of the program. This method of programming means the flow of the program is logical for both the writer and for others to be follow the code.

With the introduction of Windows, the object orientated programming (oop) became more important. The user selects what they wish to do from the options displayed and became necessary to program objects that can be selected and used individually rather than have all the code run irrespective of what the user wanted to do as in the traditionally coded program. Believing the promotional material that came with the release of Visual Basic, we started to think top down programming (tdp) has been replaced by object orientated programming (oop). This was prematue, topdown programming still has to be applied to the individual segements of code developed, no matter in what order the segements are called, or not called, by the user.

It turns out we were also premature in thinking Microsoft were being honest in their promotion. With the fullness of time, It transpired that if you want to do pure object-orientated programming you need the features of SmallTalk, Eiffle or, to some extent, Java. Visual Basic has been tortured to offer some (but not all) features of object-orientated programming and at best offers a way of rapidly designing a Windows user interface and is catagrised by experts as a RAD (Rapid Application Development) tool based on the (Q)Basic language. The description 'hybrid language' has been used to describe a conventional language such as C++ modified to give some object orientated programming capability. Interesting.

Experts who evolved object orientated programming since 1964 say it is a state of mind like modular programming and can be pursued using conventional languages as well as with the languages which were modified (hybrid) or written from the ground up (pure) to make it easier to apply object orientated principles. QBasic is a conventional language, like Pascal or C, not an object-orientated programming language hybrid, pure, or otherwise, but we can use QBasic to introduce the theory underscoring object oriented programming in a number of ways:-

  1.  Use of Control Statements that select what part of the code (in a simple program) is executed depending on user selection. See my OOP1.BAS or TWONUM1.BAS for user selection of the code to be run in a simple program.
  2.   By making a program where sub-programs each perform an independantly selectable task such as add two numbers, draw two lines, play a tune, color some pixels or whatever. This is fitted in to a teaching program by the expedient of getting students to combine small programs already written, and then to run whatever individual part they choose. See my OOP2.BAS or SUBPROG2.BAS
  3.   Even more directly I get them to write a small menu program that lists the various example programs the have already written which are stored on the same drive and then they can select and run any program they have made throughout the course from their menu. see my OOP3.BAS or DRVMENU3.BAS


QBasic, Visual Basic And Excel's VBA

I usually teach a burst of Visual Basic toward the end of a first computing course fairly economically by copy-pasting algorithms from one of our Qbasic programs into Visual Basic then make the necessary changes and create the input-output code to run it. In the last lessons, particularly with students who already know and use the Excel Spreadsheet, we use the Visual Basic editor in Excel's VBA (Visual Basic for Applications ..Excel's macro language) and run the same Qbasic algorithms (by now been modified for the Visual Basic enviroment), with no reference to the spreadsheet cells. We conclude by altering the input/output method to utilise the the spreadsheet cells (Note: I refer to Senior High School or first year College students).

Aside from obligations to teach a range of skills to students, I find it easier to write an algorithm in Qbasic for a practical task or to teach problem solving. Usually once you have validated an algorithm worked out how to solve a problem using QBasic ..it's done! Pasting it into Visual Basic is done only to practice amending the syntax for Visual Basic and doing the extra coding required by Visual Basic to design a particular Windows user interface, which is what Visual Basic does best. This can be done not only to practice using Visual Basic, but as part of teaching the concept of prototyping in program design (if you pusued this concept you would now consider converting all or part of the working Visual Basic program to C++ .. or at least explain to the students that this is what would be done).

I sometimes put an algorithm which has been made up and validated quickly using QBasic into Visual Basic for Applications (VBA) because either I want to use Excel spreadsheet facilities, or utilise the algorithm in any of the other Windows based programs that use VBA as their macro language such as AutoCad, for example. The truth is I often use VBA because it offers more options than working in a single program enviroment like Visual Basic, not to mention that the computer you find youself using is more likely to have Excel (giving access to VBA) than Visual Basic. Equally from a teaching point of view, the student may have Excel (hence VBA) on the family computer, but rarely Visual Basic.

Excel's power is such that any general course of computer programming training must, at some point demonstrate how Excel's extended capabilities can be utilised.

It's happened!! 10 September 2001. Microsoft have released another language named VB.Net to address deficiencies in VB. See vbnet.htm for a rundown.


3.  Making The Move To Qbasic Or QuickBasic

Getting QBasic From The Win CD Rom Or By Downloading And Getting Started!

1.   Start with QBasic 1.1, which is on your Win 95/98 CD (say your CD drive is D) in the D:\other\oldmsdos folder, and copy QBASIC.EXE and BASIC.HLP to a folder called say QBASIC, on your C drive. Alternatively you or can conveniently download from this page or many others internet sites. While your there get QuickBasic 4.5 and keep it stored away for later.

Ensure qbasic.exe and qbasic.hlp are in the folder as your QBasic programs. Open Explorer and double click on qbasic.exe (ie the application) to run QBasic. Click No for QuickBasic Parameters (Windows thinks you are in QuickBasic), then press Esc to get remove rid of the next message box. You are now in the Qbasic Editor. It looks plain but you are a programmer now, not a user.

Use ofAlt->Enter. Pressing Alt->Enter puts Qbasic in it's own screen which you can re-size and move to one side so you can refer to tutorial material. Alternatively, the Windows controls are now present allowing you to minimise QBasic down onto the Start Bar if you wish. To exit Qbasic if you did create this screen, get back to the Editor (by pressing the Spacebar if you have just run a program), and selectFile->Exit. You can now Click on the Windows control (the X in the top right hand corner) to close the Window

Not usingAlt->Enter. If you choose not to use Alt->Enter then just work on in QBasic and, to exit Qbasic, get back to the Editor (press the Spacebar if you have just run a program), and selectFile->Exit.

Windows 95/98

Q - How can I tell if QBasic is installed on my computer?
A - Open a command prompt window and type QBASIC. Then press Enter. If this doesn't show you a 'Welcome to MS-DOS QBasic' screen, then QBasic is probably not installed in your computer.

Q - Which versions of Windows come with QBasic?
A - Most copies of Windows (except XP) that came on a CDROM include QBasic, which can usually be found in one of these directories in the Windows CDROM disk: \OTHER\OLDMSDOS or \TOOLS\OLDMSDOS If your computer did not come with a Windows CDROM it may not have QBasic.

Put the CD in the drive, go to Windows Explorer, select the CD-ROM drive. I found it on my Windows 95 CD under the 'Other' folder, and under that in the 'oldmsdos' folder. In Windows 98 the 'oldmsdos' folder should in the 'Tools' folder under Windows 98 CD-ROM directory.

If not in those locations, keep clicking. You're looking for 2 files, qbasic.exe and qbasic.hlp.

Once you find them, copy them (drag and drop them) to the Command folder under the Windows folder on your hard drive.

Q - I cannot seem to find QBasic on my computer or on my Windows CDROM. Is there some other place I can get a copy?
A - Only Microsoft has the legal right to give you a copy. Thankfully, if you cannot find a copy on your Windows CDROM, you can download QBasic and other DOS utilities from Microsoft's public FTP site. Here is a direct link to a self extracting file containing QBasic and other DOS utilities:
ftp://ftp.microsoft.com/softlib/mslfiles/olddos.exe


Windows 2000

There are some differences in using QBasic1.1 under Win 2000 which I will list here as I become aware of them.

* Qbasic1.1 and it's Help file are in a file (zipped) that contains a number of older Dos utilities on the MicroSoft website. You have to download it, unzip it and delete all the other files except the qbasic.exe and qbasic.hlp that you want. Easier just to download these two files directly from any website offering them as downloads.

* Qbasic1.1 and it's Help file are on the Win 2000 CD but the path to it probably (most likely) will be different to path quoted for the Win 95 CD. Again it's easier just to download these two files directly from any website offering them as downloads.

* If you choose to double click on qbasic.exe using Windows Explorer the resulting Qbasic Editor screen comes up as a relatively small window.

* My standard Windows 2000 installation apparently did not provide any mouse driver that would work with QBasic because I had to rely on key board entry (which is not really an issue if your doing computer programming)

* I did find references to using Qbasic1.1 with Win 2000 using a Google search of the net but did not absorb the specifics being happy at the time that it would work and went on to whatever else I was worrying about at the time I was converting over from Win 95 to Win 2000 (ensuring various CAD, graphics, website building and other software ran ok for example).

*I gather going to Start->Run then typing c:\qbasic\qbasic.exe\h where qbasic is the name of the folder that the qbasic program and files are kept in and h (evidently) causes the window to be opened at full size.

*Q - QBasic runs on my Windows desktop in a little window. How can I make it fill the whole screen?
A - Hold down the Alt key and hit the Enter key to make QBasic fill the whole screen, and to switch back to QBasic in a window, press Alt and Enter again.

www.libertybasic.com/qbwindowsfaq.html The Liberty Basic's QBasic Windows FAQ page that provided the Q and A's above.
libertyqbfaq.html My local copy at 30Sep02.

2.   Do not use the control statement GOTO   (or GOSUB for that matter). Don't type in full capitals (discussed later).

3.  Learn by copying examples from the Help Index into QBasic and running them. Go into Help ->Index and choose a word like CIRCLE, color or any term that that you can relate to comfortably. There will be some hard to read description and a short working example (ie a 'snippet') of code. Highlight the code example only (don't include the heading ' Example' abovethe example!), then select Edit->Copy and press Esc to get back out of Help back into QBasic, press Enter a few times to bring the cursor down from the top of the Qbasic screenand then select Edit->Paste to paste the working example into QBasic. Nowsave using Save->As immediately as, say, color1.BAS or CIRCLE1.BAS and run it! (Pressing F5 is the quickest way to run a Qbasic program, otherwisepressAlt->Run->Start.)

4.  Choose statements from the example you have just run. Choose ones that you partially understand from the context of the example, then go back Help Index and bring out the example for this related term, review it, learn a little more, then pick the next statement to pursue from either your first example or this latest one ..and so it keeps going with possible learning trails radiating out in all directions.

There will be lots of statements and examples that make no sense, except to an expert. These should not cause frustration, they are just dead ends. Forget them and keep following trails you can comprehend such as PRINT, INPUT, CLS, SLEEP, color. When the learning thread stops, just scroll back through the index until you see another statement that makes sense to you. Bring out the example and run it then start chasing down statemements that appear in that example. In effect you have gone back to 3.

Qbasic Help is also context sensitive, which can assist you to chase down further keywords in the example you have up, or at any other time. Place the cursor under the keyword then press F1 and the Help Screen will open for that keyword. If the cursor already happens to be under the word you may have to press the right arrow button then the left arrow to convince QBasic you are selecting keyword.

It is important to gain confidence copying and pasting examples from the help file to the main program and then running them because the QBasic program with it's Help file, is your primary learning and teaching resource due to it's contant availability. If you are going to teach Qbasic, the first thing you have to do is show your students how to use the Help files. You might make using it your first lesson because it introduces QBasic using just word processing skills, runs programs and introduces Help. Certainly don't answer a question on a key word unless the student has the Help screen up for that keyword.

Realistically there are only about 20 statements of the 200 odd available you would use in a first course for younger High School students. Older students might use three times that, but its all about creativity and broadening the application to different areas of interest rather than learning more statements. It is possible for a College student to use exactly the same statements as a Year 8 student, in a math or graphics for example. The difference would be in the sophisticated use of the statements and the relative difficulty of the programming problem.

Thinking about this, I will create a list of the statements you need in order of priority and function rather than the complete alphabetical listing or even the listing by function. Yes, this would be good as a class room training aid. The students can be tasked to bring out the example programs for the more commonly used statements. This introduces the Qbasic Editor, The Help File, copy pasting and some key statements and running a program all together. Here is a link to XBasic and QBasic keywords to start thinking about things.

5.  Use the introductory text based tutorial shown below. You can print it out out or refer to it on-screen. The tutorial is pretty much your whole course for younger students and the programs are well laid out within the text and can be copy-pasted into QBasic and run. Of course nothing beats typing the code in for learning but small programs copy-pasted in which can be modified to observe the effects and then combined with elements of other copied in small programs is a valid approach. What you start with run's first time, so you can focus on learning rather than fixing typing mistakes.

by QP7

 qbasicqp7.txt   Excellent introductory course complete with examples. (60K) Author: QP7 (S. Marcus Litchfield qp7@pobox.com). (His name was not on the text version but I put it on).

 dwnldsqb/qbasicqp7.zip   Zipped up version of the text file above (21K). Must be from Kaswoj because I saw his name. Kaswoj displays the txt file only, which permits saving or copying the individual programs. He does not provide the zip file to download. I got the .zip file from www.programmersheaven.com who said it was source unknown. You can go to QP7's site and see it well presented in html format with an interactive index at the bottom. He says there it is also available in .txt format (which does not have his name on it).

  dwnldsqb/qbasicqp7.doc   Word 6 version of above. (60K) Easier to read (lines wrap to your screen size). Easier to modify for your needs (don't alter his ..make a copy with a different name and modify that!.) Please make any work you put in available to me and I will add it to the various supporting Qbasic Tutorial websites.

 Qp7's Website   Go here to use the on-line html version of the tutorial with a hyperlink appendix at the end. His presentation of the same tutorial material in a number of different ways, is a tutorial in itself.

6.   Get the summary by function summary.txt which can be printed out and kept by the computer. This is an excellent a reference (2Kb) Author: J.P. Brown (UK).

7.  Now experiment modifying the various code examples you have accumulated. Maybe even cut and paste portions together. Insert SLEEP 3 (3 sec pause) in between signifigant events so you can see them unfold on the output screen or even use SLEEP on it's own (press the spacer bar to continue running the program).

Either way you you have to start typing code lines lines now, so ensure you are complying with the 'Caps Lock Off Rule' namely, always type in lower case and only use the Shift button to create a capitol if one is required for clarity of reading on-screen text or important computer variables. QBasic will convert statements into capitals once you have finished typing the line of code. The capitalisation will not occur if you have made an an error in the spelling of the statement or in the syntax somewhere on that line.

This invaluable error detection cum teaching aid is defeated if you type in capitals. Further, no words should be in all capitals in the program except the self-capitalising QBasic statements because this makes it hard for you or others to read your code. As you don't need runs of capitals it is easier to think in terms of 'Caps Lock Off Rule'.

8.   Buy an up to date book. At some stage you should have got a book to refer to. If not, get one and start typing in code examples. Some people would say this is what you should have done in the first place. Careful you don't get a very old library book with examples that do not comply with good stuctured, top down coding practice.

I am happy to start a new class off running programs from copy and paste examples, probably from the Help files. The running programs can then be modified, which involves some line entry work and the introduction extra statements. I do this so the first lesson is initially an introduction to the editor, the help file, running a program and observing the effect of small changes. If you give out a small program to copy in, they all make various mistakes you are running around trying to debug individuals work because they have no idea ..suddenly the lesson is over and it was a disaster. No, you want running programs first up, and deal with introducing entering code with one or two line modifications that you can deal with if problems arise.

9.   Learn to type. Schools, parents or individuals that pay $2000 for a computer without putting a $20 typing tutor on it, are beyond me. If there should be a word like 'illiterate' or 'inumerate' to describe those who can't type, then institutions may have to address it. A student who may have great potential, but only entering 10% of the material being input by the others (and concentrating on the mechanics of typing, not the teaching points) is going to be in the bottom 10% of the class by definition. The pervasiveness of computers today means that those who can't drive them efficiently will become increasingly disadvantaged.


How To Type Programs Into The Qbasic Editor - 'The Caps Lock Rule'

Entering the examples directly into the Qbasic Editor is a good way to start learning to program. But first a rule about entering the code.

When you type lines of QBasic code into the QBasic Editor, keep the Caps Lock off so you are typing in lower case. You only put capitals where they are needed to give emphasis to words you are using in the program for readability. QBasic will capitalize the program statements for you!

Typing the program statements in lower case and having them leap up into capitals when you press Enter at the end of the line to go to the next line may feel funny at first, but it is a valuable feature of QBasic. If the statements don't leap up into capitals, QBasic is letting you know you made an error in that line somewhere, so you can go back and fix it straight away. This is much better than having to find and fix the error when the program won't run later.

This is an outstanding feature of QBasic.


A Good QBasic Programming Example And Some Pointers To Start You Off

Here is an example of a QBasic to make the point you don't have to be a computer whiz to introduce programming to young people. It's basic maths, English language, and a few rules of presentation that I like to emphasize.

It is written as a professional educator or programmer would, so that it is easy to read, understand and change if necessary, as well as providing a good example for the learner to follow. It complies with most of the rules of computing that you hear about like good structure, modularity, commented, documented, self-documenting, plenty of white space, readable, author name, date written, why written, outline of content ..you have a computer lesson here, and perhaps the basis for a short course! You can see you don't need to be a rocket scientist to follow it.

After looking at it, you might conclude that anything after a single apostrophy (ie   '  ) is a comment for someone reading the code (includes the author!). Comments are ignored by QBasic and are part of 'program documentation'. Using variable names that describe what the variable is being used for like 'Total' or 'Name$' and writing clear on-screen instuctions like 'Enter the first number to be added ..' is called writing 'self-documenting' code because it it helps the person reading the code to understand and follow what is going on.

The additional CLS's, PRINT's, and SLEEP's improve on-screen presentation, increase the satisfaction of the learner and providing easy options for experimental change. Eventually control of layout, color, sound and animation will make both the teacher and the learner QBasic addicts for life, and prepare the learner to be able to progress into the many areas of trade and professional life where being able to program a metal cutting machine, make a mathmatical model of an engeering design or use programming skills to help record and put together dinosoar fossils (and then make a realistic on-screen dinosaur image!) are just some examples applied programming skills. Oh! ..and the Computing and IT industries as well .. I always forget, they use computers too!


'adder2.bas
'Aussie John 6/6/01  
'Done on fly in Notepad to show a simple QBasic program. 
'START
  'header
  CLS
  PRINT
  PRINT "  Aussie John's Little QBasic Computer Program" 
  PRINT "  ********************************************"
  PRINT
  'greet user and input 
  INPUT " Please enter your name .."; Name$   
  PRINT
  PRINT " Hello "; Name$ 
  SLEEP 2
  PRINT " I will add two numbers for you."
  PRINT
  INPUT " Enter the first number to add ...."; Num1	
  INPUT " Enter the second number to add ..."; Num2
  SLEEP 2
  'calculations
              LET Total = Num1 + Num2
  'output 
  PRINT 
  PRINT " The two numbers add to .." ;Total
  SLEEP 2
  'termination message and termination
  PRINT
  PRINT 
  PRINT " Thanks for visiting"; Name$
  SLEEP 2 
  PRINT
  PRINT " Goodbye"
  SLEEP 2
  CLS
END

Note: I cannot ensure the indenting of the code in html will appear the way I want it to due to both popular browsers applying their own indent rules within the <pre>... </pre> tags. Using these tags is an efficient way for me to present code on the fly. It also assists those who wish to copy-paste from the html itself, directly into QBasic by not having it cluttered with html tags provided they select the text between the <pre>... </pre> tags. To achieve nice professional looking indenting in the html render would require a lot of tags which would all have to be removed (unless you just highlighted and copy-paste from the rendered screen, which not many people know how to do.)

To take code from the rendered screen you use Shift -Arrow Down (or just left-lick and drag with the mouse) to highlight the code you want on the rendered screen. You then copy it onto the clipboard and get up Notepad (any 3rd part text editor or html editor is better than Notepad) and Paste it in and do a Save As. If you did use Notepad it won't let you save with a .bas extension ..you will have to save as .txt and change it. Use Explorer (there are other ways to change it on the fly) and change the extension from .txt to to .bas. You get warning messages saying you should not change extensions (a good point! changing changing .xls to .dwg does not turn a Excel Spreadsheet into an AutoCad Drawing). But this is computer programming and all work is done in a text files. It is just that diferent extensions are used by the different editors to help the various editors recognise their own flavour text files, so change it and then open it in Qbasic and run it. Alternatively, Qbasic which is just Notepad with a few bells and whistles, will open the saved .txt file and the you can Save As a .bas file which will run. Don't forget to delete the unwanted .txt file.

The methods outlined in the previous two paragraphs assume you are just searching the net and see some QBasic code presented on screen and you just want to get it into a folder or on disk for later. There might not even be QBasic on the computer (put it on ..with an icon on the desk top and,put a zipped copy in the folder as well!). If you have Qbasic and you know in advance you will be copying displayed program examples, you could have got QBasic up, opened an new file, pressedAlt->Enter to minimise it onto the Start Bar and then instead of copy pasting into NotePad or another editor, you can copy paste straight into Qbasic, run it, and when your happy it is all cleaned up, do a final save.


How To Present Or Obtain QBasic Material Using The Internet  

The way examples of Qbasic code are presented on the internet (or intranet) needs to be understood by both the learner trying to obtain the programs and the teacher or author making them available.

While typing in code is the best way to learn initially, it is important for a learner to collect examples to run, make experimental alterations, and to add their own lines of code to, as part of a dynamic learning process. People who can't type so they can rapidly carry out the associated word processing and file management tasks, are at a disadvantage trying to learn to programming at Senior High School and College (this disavantage not only extends to other applications of computing, but to general education itself where computers are increasingly used as a tool).

One College I know requires electrical engineering students enrolling in introductory computer programming to have completed a standard typing test at a minimum of 20 WPM at 97% accuracy. Another community college teaching AutoCad requires completion of an introductory computer course first unless you can pass a keyboard and file management skills exemption test. It sounds cruel but in public education you can't use scarce resouces teaching C++ to someone who has to to look to see where the C is on the computer. In case people want to send me more abusive emails, I have put in my time teaching computer skills to people with disadvantaged backgrounds. I start every lesson with a half hour burst on the typing tutor. The reward messages are addictive and they can see the progress being made which is often their first experience of success in an educational undertaking.


Providing And Obtaining Qbasic Examples On The Internet

ZIP FILES

Providing:   Make a zip file from the bas file so that adder2.bas is now also available in the form of adder2.zip. It is good practice to limit the name of the bas or zip file to to eight characters (eg 'adder2' is 7) and do not use capitals or spaces.

Place the zip file in your website folder, preferably in a downloads folder (good file management). Then place one of the following two lines of code in your html file (the second line assumes you used a downwnloads folder):

<p>Adding program <a href="adder2.zip">adder2.zip</a> Uses DO..UNTIL.</p>

<p>Adding program <a href="downloads\adder2.zip">adder2.zip</a> Uses DO..UNTIL.</p>

To the user, both would appear on screen as:

Adding program adder2.zip Uses DO..UNTIL.

Obtaining:   You must left-click on the zip file hyperlink as shown above. A screen message will appear advising that you have elected to download a zip file and asking you select a location. Browse for the folder you keep your QBasic programs in and then press Save. The zip file will be downloaded into that folder. Now double left click on the zip file and, if you have Winzip or PK Zip installed the file will unpack and the folder will contain the unpacked QBasic programs ready to run and the original zip file. It may be a single program or perhaps a 'packet' of several programs. If it is a number of programs it may be best to put them in their own folder so you don't have to find them from among your existing programs.

BAS FILES

Providing:   Save your Qbasic program to you web folder (again probably in a programs folder ..mine is 'qbasicprogs') or just copy a your Qbasic file into that folder using Explorer or whatever. Now you write virtually identical lines of code in your html file as in the previous example

<p>Adding program <a href="adder2.bas"> adder2.bas</a> Uses DO..UNTIL.</p>

<p>Adding program <a href="qbasicprogs\adder2.bas"> adder2.bas</a> Uses DO..UNTIL.</p>

To the user, both would appear on screen as:

Adding program adder2.bas Uses DO..UNTIL.

Obtaining:  Unlike the zip file which downloads to your computer, when you left-click on the bas file hperlink as shown above, the file will not be downloaded but appear on your screen. You must right-click in the browser screen and and the select View Source and save the file to a folder.
In the case of Internet Explorer, the bas file will come up in Notepad (unless the file is large then it will come up in Wordpad). You then do File->Save As .. browse for the folder you want the Qbasic program in, and press Save. You may wish to change the file name to a more suitable name before you press Save. Be careful you don't overwrite a program which has the same name. Note that the .bas extension will be preserved when you save but if you delete the .bas extension it will save in the default .txt format.
In the case of Netscape 4.0 to 4.7

TXT FILES

Providing:

Obtaining:

RENDERED HTML

Providing:

Obtaining:

SOURCE CODE OF HTML

Providing:

Obtaining:

OTHER METHODS ('Reserved')

Providing:

Obtaining:


Problems With Internet Downloading?

If you have problems with the download business or there are no help files, look in a Windows 95 CD (say your CD drive is D) in the D:\other\oldmsdos folder and copy QBASIC.EXE and BASIC.HLP to a folder called say QBASIC on your C drive.

If you are not into the internet and computing scene but still want to get the stuff for young people, or to drop on the desk of a collegue or superior who is only going to look up and listen when can shoe them everything needed to walk into a classroom and teach with then I will try to help you. Depending on where you are, and how many requests I get, I'll organise something even if it has to be diskettes and outlines sent sent by snail mail.



4.   Downloads, Links And Tutorials For QBasic and QuickBasic

Download The QBasic And QuickBasic Programs And Help Files Now!

  QBasic and QuickBasic -Download Now!

If you want to help preserve and promote QBasic and QuickBasic for teaching and learning programming principles then download them now. Put them on the school, college or library computers. Add them to the downloads on your educational website. Start a website to promote QBasic ..nothing like a free download to kick a website off!

The two zip files will fit on a single floppy disk. I prefer to carry them around on two diskettes, a ready-use one with the QBasic.zip file, the unpacked QBasic.exe and QBasic.hlp files along with some programs on it and a second with just the QuickBasic zip file and some sample programs.

Q(uick)Basic Download Box
File NameDescriptionZipped/Actual
qbasic.zipQbasic 1.1 and Help Files.
(Can be found on the Win95 CD).
280Kb Download.
(Expands to 315Kb)
qb45.zipQuickBasic 4.5
(For more advanced learners but get it now!).
940Kb Download.
(Expands to 1.3Meg)

mcphee.bas
mcphee.txt
mcphee.zip

          See next section below for tutorial or other downloads.

  Advice for new users of QBasic 1.1
Create a folder 'QBasic' on the C drive and download qbasic. zip file into that folder. Go into Explorer and double left click on it to unzip it and put the two files QBasic.exe and QBasic.hlp alongside the downloaded zip file. That's it. You can now open Explorer any time and double left click on QBasic.exe and up comes QBasic (select No for Parameters and press Esc to remove the message window that follows). Either start programming in QBasic, run a program you already have written in QBasic or selectHelp->Index and copy-paste an example back (press Esc to get from Help back to QBasic) into the QBasic screen and run it by pressing F5. ** See elsewhere on this page for how to create a separate screen that can adjust in size and minimise down onto the Windows Start Bar.

  Advice for new users of Quickbasic 4.5
Download it now (920kB zipped). But leave it until you are proficient with QBasic and then talk to someone with experience installing QuickBasic 4.5, using library files, compiling and making executables. When you do get around to using it, the only advice I have read is 'don't start up in MS Dos, go into MS Dos from Windows to install it'.


Download Qbasic And QuickBasic Related Material

QBasic Version 1.1 (ie QBasic) Stuff
qbasic.zip Qbasic 1.1 and Help Files (can be found on Win95 CD). 287K/315K
qbasict.zip Qbasic Tutorials. Pretty Good. 96K/ ?
qbasicqp7.zip Qbasic Tutorials by QP7 (S.Marcus Lietchfield).
Excellent.  Zipped.txt file
21K/60K
qbasicqp7.txt Qbasic Tutorials by QP7 (S.Marcus Lietchfield).
Again but just the the .txt file above (not zipped).
***/21K
qbasicqp7.doc Qbasic Tutorials by QP7 (S.Marcus Lietchfield).
Same again but in MS Word .doc format.
***/76K
summary.txt Quick Summary (by function). Very Useful.
Everything on a few pages.
***/17K
coll2.zip QBasic Mini Encyclopedia by Hur. Good
Probably the same as the QuickBasic one.
145K/343K


QuickBasic 4.5 (ie QB) Stuff
QuickBasic 4.5 QuickBasic 4.5.   940kB/2.2Meg qb45.zip
Icon based on the cover of the QB4.5 manual. qb45.ico
GIF Viewer Modified version of a QB program by Rich Geldreich.
Faster on large files than QBGIF.BAS
Updated 10/4/99 and improved to load 16 color gifs in Screen 12.
Exceptional!
degif.zip


Links To Qbasic And QuickBasic Websites

You can download the actual Qbasic 1.1 and Quickbasic 4.5 programs (zipped) from many of the links below (or find by searching the internet).

qb4all.cjb.net
QBasic 4 All. Was the biggest collection of Basic compilers on the net but now only offering QBasic 1.1. While many sites offered downloads of and QBasic tutorials and programs written using QBasic, this site offered a complete list of the actual 'QBasic Programs' that you need to be able to write or run QBasic programs or do the tutorials. I downloaded QBasic 1.1 (the familiar version that can be found on the Windows CD) and Quickbasic 4.5 to have a look at. You don't want the versions older than Quickbasic 4.5 and and the later Quickbasic 7.1 (9 Meg) is a bit big and, for many reasons, people prefer QuickBasic 4.5.

** There use to be MS Dos related instructions provided on the page for unzipping and and installing these programs. These instructions boiled down to telling you to select MS Dos from Windows rather than start your computer in MS Dos mode. This must be required for QuickBasic 4.5 because I just downloaded QBasic 1.1 and used it in Windows like any other Windows based program starting it from Explorer.

First create a folder 'QBasic' on the C drive and downloaded QBasic1.1 as a zip file into that folder. Double left click on it to unzip it and place the two files, QBasic.exe and QBasic.hlp alongside the downloaded zip file. That's it. You can now open Explorer any time and double left click on QBasic.exe and up comes QBasic (press Esc to remove the opening message window). Either start programming in QBasic, run a program you already have written in QBasic or select Help->Index and copy-paste an example back (press Esc to get from Help back to QBasic) into the QBasic screen and run it by pressing F5.

I copied two graphics tutorials (by Mallard) because they answer some questions for me so if you can't get onto their site refer to:-
qbasicgraphicstut.html 2D tutorial (still on the site) and qbasicgraphics3dtut.html 3D tutorial (could not see as at 25 Sep 02).

He refers to a qbasic graphics editor he wrote which would assist in doing the 2D tut. I have since found reference to others but I don't feel 3rd party aids fit in with teaching programming principles in a first course but they may have a role later.

** Included on the end of the list of QBasic and QuickBasic downloads are downloads of Pascal and C. You can't do everything but you should learn how to write a 'Hello World' program in them if you want to broaden your knowledge of programming langauges and understand the case for Qbasic 1.1. In addition, Pascal is a suitable training language in a path to C/C++ for College Electrical/Electronic Engineering students for example.

www.qbasic.com
Mallard's site. Has option to choose framed or non-frame version. Not updated since Jan 1999. Active forum. You submit your own link.

eagleperch.net
Download site for QBasic 1.1, Quickbasic 4.5 (25 Sep 02 Quickbasic 4.5 not offered anymore) and Quickbasic 7.1. Qbasic 1.1 and its Help File are unzipped and they downloaded and worked ok for me (through the firewalls or whatever where I work!). He says he contacted Microsoft and they said go ahead and download and use QBasic which was just a utility file on the Windows CD. No tutorials. Not many links. Active forum.

www.oocities.com/CapeCanaveral/Cockpit/3406/index.html
A third site to download Qbasic 1.1 or QuickBasic 4.5, and some excellent games written by Kaswoj that show what QBasic1.1 can do.
There are 109 games graded 1 to 3 (best) from various sources. But click on 'Screenshots' you get screen shots and download links to 12 good games written by Kaswoj in QBasic. I downloaded Rosedit, Planet and Golf to learn a bit more about Qbasic 1.1 programming.
Golf is based on gorilla.bas with it's bannana throwing apes. It's 17kB compared to 29kB for gorilla.bas, so it may be easier follow.
Neat site. Excellent links. Tuts and examples have a math component.
Not updated regularly. I sent him an email about some broken links. If he fixes them fine, if not ..the QBasic/QuickBasic compiler downloads, the tuts, and his own game programs with source code that the site is designed to showcase are plenty of reason to visit.

toshi.tekscode.com
Toshi's Project Page. A .edu type at Berkeley, and ring master of the Qbasic Webring.
All the technical programs written by him are available for download, plus others by guys he says are cool. Many are suitable for Senior High School, College math, mechanics or other sciences students.
Good links, lists of forums, tips, tutorials and games with everything easy to browse through in a no nonsense .edu type website.
Excellent site for commited QB people. Not for QBasic newbies unless they are engineers or physical sciences people.

www.qbasic-cafe.com
Excellent German site. Select English version. Active Forum. Involved Webmaster. No inactive Links. Can download QBasic 1.1 and QuickBasic 4.5 (compiler).

www.schools.ash.org.au/cbhs/qbasic.htm
Qbasic page of a website for teachers or students in NSW, Australia.
Note: www.schools.ash.org.au will give a school or a teacher 10Mb of free webspace.

www.oocities.com/SunsetStrip/Alley/5859/New_Moon.html
Downloads of the very best in Qbasic graphic programming. Excellent if you want to see what advanced programming techniques and a better understanding of the Qbasic language can do.

dmoz.org/Computers/Programming/Languages/BASIC
The DMOZ Basic page. Has (incorrectly) some Q(uick)Basic entries. From this page you can go to the QBasic and QuickBasic page or go there direct from the link below.
dmoz.org/Computers/Programming/Languages/BASIC/QBasic_and_QuickBasic DMOZ's QBasic and QuickBasic page. You can look at the links provided on this page or go to the other QBasic and QuickBasic listing sub-groups such as Tutorials or Resources.

members.aol.com/radiohands/tutors.html
Web site of Vic Luce. A very bright guy. You can work through his 20 odd tutorials on-line or down load the lot as a zip file. Newbie to very (very) advanced.
Some tutorials are on aspects required for games writing.
You need QuickBasic 4.5 for some of the advanced tutorials.
He also gets into RPG (role playing games) and assembly langauge.
He has written his own Visual version of Qbasic he calls VBQ which he asserts is not based on Qbasic. This could maybe be great for preserving QBasic (into the New Millenium) or just one more almost completed project that a beginner should stay away from. Here's hoping. (There is still XBasic and Liberty Basic to think about.)

**He puts his case for using AOL as his website host. Like having up to seven site addresses in 84 Mb total allowed space and no ads.

www.qbasicnews.com
A good site. First entry in DMOZ's QBasic and QuickBasic page.
Has links to good affiliated sites. Features the tuts of Vic Luce above. They say they have 'exclusive' permission from 'radiohands' (ie Vic Luce) but do not appear to state his name, website address or give his site a link (there may be a link but it's not obvious).
And they call themselves 'professionals' which is always a worry and is particulaly sad if you are working with QBasic and QuickBasic. I think they have already run foul of Microsoft ..with some justification.

www.qbtop50.com
Lists the top 100 (US?) Qbasic sites based on visitor voting. One of the affiliated sites of www.qbasicnews.com above.

www.fortunecity.com/underworld/loading/135/index.html
Steve's Web Page. 900 QBasic Programs (aiming for 1000!). They all seem zipped so you have to download them to look at them.
Bit worried about this approach, you could waste a lot of time. Maybe ok if gems are being swept up and saved.
Newbies should ignore old spaghetti code programs using GOTO and GOSUB (and maybe just stay away from this sort of site for a while).

web.nstar.net/~oasys/ABT.HTM
Fred Buffington 'Buff' is Good People. Committed to QuickBasic.
Links to the forums he frequents and a list of good websites.
Some links are dead but he is working on many fronts for Q(uick)basic.

members.aol.com/mkwebsite
M\K Productions. Not updated much because they are now in college.
A repository of QBasic software including their own original work.
I got a good 6kB expression solver and in just a short look around.
They point out that they don't use GOTO or GOSUB. Safe for Newbies.

www.curlyj.co.uk/Pages/q_basicr.htm
I was directed to site when searching for 'Qbasic' in www.downloads.com and elected to download their freeware Quicklaunch 1.0 (QbL.zip, 426K). This software allows full use of QBasic while windows is running. (I don't have any trouble ..do they mean Quickbasic?). It has an uninstaller.
The site is interesting. Some program downloads at my level. Curiously he downloads Qbasic but not the helpfile. He refers to his launcher as QB Launcher.

www.oocities.com/Area51/5967/qbasic.html
Compilers for Qbasic are listed (they may mean QuickBasic). Can download QBasic 1.1 (in olddos.exe).
From this site I downloaded the excellent qbasic course/tutorial by S. Marcus Litchfield (Qp7) in both .txt and Word 6 format and looked at a tutorial link which explained MOD and the use of  \   in QBasic. I have made all of these available as downloads from my website, and have added a link to Qp7's website (first link below these two combination geocities links).
He draws my attention for because, sadly he uses GOTO in his first chapter examples. Later he introduces DO .. LOOP which removes the need to use GOTO. GOTO was never required in Qbasic, it was just passed on from ealier line Basics (like an infection).

www.oocities.com/SiliconValley/Bay/5707/index.html
Qp7's website. Excellent Qbasic tutorials in html and txt (see rererence to Qp7 in the geocities link above and earlier reference to using Qp7's tutorials up in the Getting Started With QBasic Now section).

www.oocities.com/SiliconValley/Park/4504/index.html
Qp7's friend. Offering 20 Meg of free webspace.

www.neozones.com
Has excellent rated links (has MP3 Music downloads section as well!). Many people involved with Admins and projects etc.

www.vpsource.com/programming-quickbasic.html
Newer site with interesting links that I'm not familiar with (appears to be European based).

www.allbasiccode.com
A vast repositry of code and information about the various flavours of Basic.

www.basicguru.com/abc
The All Basic Code Archieves section of the recently formed www.basicguru.com website.
Represents 5 years of work by William Yu to accumulate and make available a huge repository of Quickbasic and Qbasic programs, snippets and information. He has declared time out in 2001 and I waggle my wings in salute.
It is the third entry listed ( 22/4/01) on the search page (Computers -> Programming -> Languages -> Basic). Elsewhere on DMOZ there is a link to William Yu's original All Basic Code Archieves website, no longer being updated, which provides a link to www.basicguru.com.

Note:   I've taken some programs from the site, and I'm working through a couple of tutorials. The link to the webpage of the author of the best tutorial (gtutor1.bas), is dead so I'm considering putting this tutorial up on my site to preserve it.


Links To On-Line Programming Tutorials Using Q(uick)Basic

A number of Q(uick)Basic links offer a forum as part of their site. Some with more active forums are re-listed here as well as one or two forum only sites I have found

Forums within sites already listed:-

www.network54.com/Hide/Forum/13959 Mallard's The QBasic Page forum.

www.icon.net/~oasys/ABT.HTM Buff's links page which starts with his forum links. See Tips and Files also.

Forums (stand alone) not in sites already listed:-

www.tek-tips.com/../ Tek-Tips Q(uick)Basic forum.

qbasic.proboards6.com Board where I posted without registering.

Sites where I have seen you can download Q(uick)Basic:-


www.oocities.com/SiliconValley/Byte/8317/downloads.html QBasic1.1, QB4.5, QB7.1
qbutil.hypermart.net QBasic1.1, QB4.5, QB7.1 (Files->Compilers).
www.gbgames.com/root2 GB Games. QBasic1.1, QB4.5 (Downloads->QBasicIDE/Compiler).
www.qbasic.tk QB4.5 only (Downloads).
www.oocities.com/aliphax Alipha's Website. QB4.5 only (Files).
www.oocities.com/shashiraja_1/spmake.html QB4.5 only (DownloadQB4.5).

*www.sdservices.net/students/qbasic_download.htm QB4.5 only.
** Has instructions on where to put the various files so it all works! **
Worked for me (1Aug2002). (My c:\qbsds\qbasic).
qb45install.html Local copy of sdservices installation instructions with my notes.

*webpages.csus.edu/~sac19488/qbasic.htm
** Has instructions refering to 27 files in the compressed file qbsc.exe which contains QBASIC. File size is 1,137K ! **
Did not work for me (2Aug2002). Just get Qbasic1.1 (was included). QB.exe gives Qbasic1.1 also. Still looking at it. (My c:\tools\qbasic).
qbsc_install.html Local copy of California University Sacremento installation instructions with my notes.

startingqb.txt local copy of reference to installing and running QB4.5 by Pickers of Picker's Games (his site is under re-construction). Basicall it says put all the files in a folder and click on QB(blah).exe

users.csionline.net/~smith/basic Interesting. Where I saw Picker's lesson startingqb.html.
users.csionline.net/~smith/basic/docs/tutorials.html Worthy of being included in the Programming Tutorials in the next section. Just an ordered layout of lessons picked up but good. Possible rip (in the interests of QBasic). Check Site for activity (abandoned?).

www.raysw.com/qbasic/getstarted.html Found while seaching for info on making .exe using BRUN45 (needs brun45.exe) or Stand Alone (does not need brun45.exe present but runs slower) option choice. Explains on one page all the drop-down menu functions. Another likely rip possibility (hard work).
getstartedqb.html Local copy of getstarted.html (Not uploaded yet. Backup only.)

members.fortunecity.com/manixtt Patrick Chan. QBasic1.1, QB4.5 (see 'Get QBasic 4.5' badge on entry page -worked for me! ..see C:\qbpc at work).

keithqb.digitalrice.com (says he is moving to new page and will put up QBasic1.1, 4.5 and 7.1 'sometime soon')


Links To On-Line Programming Tutorials Using Q(uick)Basic

www.colchsfc.ac.uk/computing/manuals/qbasic
University of Colchester   -School of Physics.
QuickBasic (same as QBasic at this level) tutorial.
Progresses faster than the excellent Chortle beginners tutorial below.
Good, hype free .edu style professional stuff.
Can't use as a reference because you can't move between chapters.

** Replacement (has download) **

chortle.ccsu.ctstateu.edu/cs113/index.html
QuickBasic (QBasic) Tutorial.
Central Connecticut State University -Computer Science Department
Complete set of tutorial notes to teach an introductory computer programming class using QuickBasic (applies equally to QBasic).
Starts assuming you know nothing. They are self-paced so can can gallop through to refresh your memory then proceed a bit more slowly as necessary.
Done in Quickbasic. You don't need to have the QBasic or QuickBasic up and running (or even on your computer), it all seems to be done from their end. Don't worry about QBasic vs QuickBasic. At this level the code, the syntax and the screen shots are all the same. So you are learning both (or either one ..whatever makes you feel easy).
There are 25 chapters each of 20 odd pages which seems a bit daunting but a fair bit is like 'flash card' learning ..ie the example is thrown up, the teaching point made, then the next screen asks you a question to confirm you and understand the teaching point. So you can move along fairly smartly.
The chapters are linked to a contents index on the entry page allowing you to do the chapters progessively in your own time or do specific chapters as a refreasher.

This is good .edu hype free, professional stuff.
Note: If you hit their home button you will see they have two other on-line computing courses:

1.   chortle.ccsu.ctstateu.edu/VectorLessons/vectorIndex.html
Vector Maths for 3D Games. This looks like the same vectormaths (or matrix algebra) that is done in the first year of any math based course such as engineering or the physical sciences. But it seems that you also need it as part of graphics training for a computer programming qualification or to be able to do serious computer game writing. So go for it ..you can't lose!
I've always used row vectors while this tutorial uses column vectors. Could someone tell me why people in maths, science and engineering have two such different conventions. Are column vectors a particular convenience for working with computer graphics? Could some .edu person who know this stuff tell me please.

2.   chortle.ccsu.ctstateu.edu/cs151/cs151java.html
An introduction to Java. They said that Java would make all other computer programming languages and a lot of programmers redundant. If Java is still the way to go then this is a good place to start.



    Thoughts About An On-Line QBasic Glossary Project    

The concept of a type of glossary with examples was commenced in a rudimentary way in the www.cosmosqb.com ( ## Did not come up 2Sep02 to 29 June03 ## .Another search on 'cosmos' leads to Ben Black of England who says in a (neozones) bio that his website is www.cosmosqb.com and his email is cosmos.qb@btinternet.com. Sadly a further search leads to an immature posting in September 2002 on www.qbgames.com trying to encourage everyone to give up on QBasic and go to Java!

He had an interesting sort of glossary based on the QBasic Help Index concept where he re-states in his own words what a key word really means and provides further small examples of code.
This really fits in with what I think is required for beginners relying on Help. He's only done some key words but that is ok because a lot in the QBasic Help Index is really reference material for experienced people.

It could be developed as a sort of QBasic Newbies Primary Help Index. It could be referred to before using, or used to supplement, QBasic's own Help Index (which does sometimes introduces complex statements and example code to explain a fairly simple statement).

Perhaps it could be organised so it could be worked through like as tutorial as well as being a reference. Qp7's html version of his tutorial comes to mind as one mechanism. By having, as he does, an appendix of statements hperlinked to their occurence in his tutorial you could equally consider putting it in front and then it would be a glossary (sort of). Alphabetical order, functional grouping, logical learning order, or presenting all these possibilities for the user to choose from, has to be considered.

It would be a project, and thought has to go into it's function, (tutorial, reference or both?), how it should be presented, how the beginner will use it and what it should be done in (eg html, qbasic, text?). The finished format could take a number of forms from the beginner usability point of view:-
  Form 1.   Word 5 Doc file(s)
Put first, after some thought, because of the number of people who are comfotable working with Word. Use Word 5 so the files can be used by people with Word 5 only, as well as people with later Word versions. If it is decided that the user will be instructed how to copy the program code example off the rendered screen, then an experienced Word user may be able to produce a tutorial that can be read on-line, provide program code examples with the advantage that it can be published in print.
If kept simple it could also be brought into Wordpad and saved as a text file. Perhaps it could also be made into an html file, from either the text file or the doc file.
Perhaps it should just be done in Wordpad and saved to .txt, .doc, and made into a html file from there. This may result in files with a minimum size (ie less overhead). Interesting because I never thought about producing a Word document using only Wordpad. My Wordpad on Office 2000 only saves to Word 6. Even if the document is kept simple I don't think it can be read by Word 5. I would have to find out.

  Form 2. Text file(s)
It can be read and example programs can be copied and pasted using Notepad (or Wordpad?) as .txt and then changed to .bas to run as in QBasic when required or, pasted into Qbasic, saved as .bas, and run directly.

  Form 3. Html file(s)
Can be used on-line, be downloaded as either zip files or the single file could could be saved down to the users computer with File->Save->As. Alternatively the examples only could be copied for running off the screen or the code from View Source. As html it would just be a reference but if we put the examples in a distinctive colored box (QBasic blue!) with either a) everything between <pre> and <\pre> tags (with some indenting browser permitting) or b) Use only <br> and  's on the ends of the line, then that portion of html showing the working code can be easily stripped of html tags. Course of action b) is a compromise that provides for between taking off the screen and taking code and stripping tags while still providing fair layout for those just reading or referring to the material

People will have to can be told how to highlight, and copy to the clipboard, only the text component on the rendered screen of a html file (and all the other copying or downloading options as part of the glossary files themselves). Then how to either:

  1. Edit Paste as text into Notepad, File Save (it will be .txt) into the folder where you keep your qbasic files change the file extention from .txt to .bas using Windows Explorer for example. You will get a the message 'Changing the extension may interfere with the program running', but that does not apply to us ..it's all just text files we are talking about here.
(I do have a trick where I re-name with a .bas extension in a second use of Save As (or use a File Open) window then Cancel out of the command but that will have to keep for the time being because it's confusing the issue with a varient of, what is still, method 1.)

or, more conveniently;

  2. You could Edit Paste directly into QBasic (which itself is just another version of Notepad ..true!) and Save As directly as a .bas file into your qbasic programs folder.

or, even much more conveniently (for me anyway);

  3. You could Edit Paste directly into your html editor (which is just another text editor!) and Save As directly as a .bas file into your qbasic programs folder. This is what I do because I always have my html editor (and Windows Explorer .. ) open and minimised down onto the start bare when I'm sufing the net incase I see anything juicy to snaffle (OK so I rip off other sites ..but that makes them good sites and I give a link because they are good sites. Fair's fair. re-named in using Widows Explorer (or renamed en-passent using my party trick in the Save As or File Open window).

Whatever is discussed, html, as the language of the web cannot be discounted. The most impressive tutorial I've seen from the Computer Dept of Central Conecticut State University chortle.ccsu.ctstateu.edu/cs113/cs113basic.html is done in 500 html pages in a no nonsense way and is pretty effective complete course for a beginner with no experience. It's designed to work straight through ..you can pick your chapter but that's it, you can't jump about in 500 pages without exponentially increasing the size and complexity of the task. Of course you have to copy an example to run it but you have to copy your examples in the QBasic Help Index as well ..it's just you are not in the Qbasic enviroment in the tutorial course.

  Form 4.
Some fourth format that must exist but that involves, say javascript or .bas or an .exe file or a dos .com file or whatever.

  There is always the concern that if you are going to start doing development work, it should be only after a hard look at where things may go. That may be 32bit Basic like XBasic, Liberty Basic or accepting the idea of giving students a crippled (non .exe making) Visual Basic 5 version to take home. This would mean Visual Basic could at least be discussed, as opposed to being dismissed out of hand as I do at present because the students don't have access to it.


5.   Programming Languages Other Than QBasic And QuickBasic

Turtle Style Programs (Teaching The Very Young)  

www.softronix.com.
For a free copy of MSWLogo. A Windows version of the Logo programming language.

www.ugcs.caltech.edu/~dazuma/turtle/index.html
For a free copy of Turtle Tracks. A Macintosh version of the Logo programming language. Written in Java.
This entry is duplicated in 'Just For Apple-Macintosh Users'.

kidsfreeware.com
Look at Programming for downloads of programming enviroments that rely on visual interaction with the screen using a mouse.
Also more advance programming requiring reading skills.
Also cheak out the internet and website building, all for kids.

www.schools.ash.org.au/CBHS/logo.htm An Australian School teachers website. Good links.


A Reference To Using Visual Basic In Teaching Role  

www.abscott.com.au
Home page of A and B Scott, ex-High School teachers with math, science, and Quickbasic computing backgrounds, selling modestly priced educational software for Australian and New Zealand schools. Doubtless good anywhere. They offer samples to download.
Their courses on diskette utilise Visual Basic in a way that provides a positive experience and avoids some of Visual Basic codeing complexity. I have to find out more, but it is the only reference I can find to teaching young people using Visual Basic.

www.tain.com.au
Tain Electronics P/L, Victoria, Australia. For equipment referred to in A and B Scott's Visual Basic Training Method page above.


Some Interesting Basics Other Than Q(uick)Basic 

No computer program language has been written specifically to facilitate teaching a first course in computer programming principles since the original Basic was written in 1964. Q(uick)Basic remains the most widely used current Basic.

However some folk, do maintain and develop other versions of Basic that have been around for sometime or are developing new Basic versions written from the ground up to utilise the 32 bit Windows system. My difficulty is I know little about them.

I have selected three other Basics to look at. There are more. I mention these to open discussion and thought about possible alternatives to Q(uick)Basic. They are:-



1.   PowerBasic

PowerBasic is an alternative to QuickBasic and has a strong following. It's most evolved form is 9 Mb PowerBasic shareware compiler (which compares with QuickBasic 7.1 which I discount on size).
The FirstBasic or PowerBasic Compilers can also convert your 'QBasic' programs into actual MS-DOS programs.
The PowerBasic for Windows shareware compiler can convert PowerBasic (or QBasic) programs to Windows programs.
Freeware versions are available which fit onto a diskette when zipped, which compares with QuickBasic 4.5 for size (eg PowerBasic3.2).
It is being maintained and promoted while Q(uick)Basic is abandoned by Microsoft and relatively static so it is attractive to those Q(uick)Basic users who want to transfer to a supported enviroment where you can pay money and get manuals and support.

For those who care to know, PowerBasic's pedigee is very good. It was originally Borland's TurboBasic until Borland sold it to a company who renamed it PowerBasic at about the same time Microsoft lost interest in Q(uick)Basic with the introduction of Visual Basic.


PowerBasic Websites

www.powerbasic.com
The PowerBasic Website. For PowerBasic.
Like Quickbasic 4.5 it is a DOS based product that zipped, fits on a floppy.
PowerBasic 3.2 is, downloadable from www.oocities.com/SiliconValley/Park/4504/basic_compilers.html (the webmaster of the site speaks positively of FirstBasic which can also be download).
PowerBasic 3.5 costs US$99 and can be down loaded from this site with electronic manual. Large printed manual option (2 Volume 700 page same as electronic version) US$29 extra.
The bits and pieces all seem to be there to work with windows for a few extra bucks or as free downloads from the PowerBasic company or their keen users (or Microsoft themselves?). I just dont understand it all. I do understand I can't get a manual for QuickBasic 4.5.
Look for their First Basic or PowerBasic shareware compilers that can convert QBasic Programs into MS-Dos (executable?) programs or the PowerBasic For Windows compiler that can convert QBasic programs into Windows (executable?) programs.



2.   XBasic

Note XBasic allows you to write programs for the Linux operating system as well as Win 95/98/NT/2000. Linux is expanding quickly and is the only operating system that looks like challanging the global domination of Microsoft's Windows. So if you would like to contribute to Linux and the Open Software movement without isolating yourself from Windows then maybe XBasic is for you! (sorry Macintosh people but blame the management of Apple-Macintosh ..don't snap at me)

XBasic was designed from the ground up as 32 bit software and can be used to write programs that can run on Win 95/98/2000 and NT as well as the rapidly emerging Linux operating system. It has been moved into the Open Development arena which protects it from being copywrited by dishonest commercial organisations. Open Development is attractive to many who want to work for a community purpose without indirectly working for, or finding themselves in a conflict with, corporate interests as independant User Groups often find themselves.

Anyway the bottom line is the software is being continuously developed by a competant, motivated community of programmers and can be used and handed out to students freely.


XBasic Websites

Note XBasic allows you to write programs for the Linux operating system as well as Win95/98/NT/2000

www.maxreason.com/software/xbasic/xbasic.html
The XBasic page of the website of Max Reason, the original author of XBasic.
The Menu repeats at the top of each page.
See the rest of the site for an idea of Max Reason's experience and interests.
A number of people and organizations now work on XBasic's development and promotion.

xbasic.sourceforge.net
The Source Forge Xbasic page. This page by Eddie Penninkhof (wizball) has Max Reason's approval.
You can download the latest working version or help develop the next release.
Links for XBasic beginners and a project page for the more advanced.

www.xbasic.net
A beginner's link found in Eddie Penninkhof's xbasic.sourceforge.net page above. The 'Windows' page has no information on it and the 'Linux' page is a dead link (** email sent to Eddie Penninkhof re dead link 12 Oct 02 **).

www.xbasic.org
News, Download XBasic, Download Documentation, Links and Resources.
The resources is specifically www.jgsoft.com The website for EditPad, an excellent general-purpose Windows editor (Postcardware).
It is very useful for XBasic editing because it is able to convert tabs to spaces (and vice versa), convert to uppercase, convert to lowercase and convert to title.

gnetools.sourceforge.net/xbsupport
Vincent Voois' webpage on SourceForge. Offers Tutorials and Tips n Tricks. (XB Online Documents -> HTML Documentation ..leads to framed page within a framed page. Maybe a case for use of target="_blank" to set up a second independant window that can be closed afterward.)

xbnotes.freehosting.net
Ken Minogue's notes from his own experience with XBasic (last update: 11Apr02).

groups.yahoo.com/group/xbasic
A Yahoo Programming Languages->Basic ->XBasic discussion group page.



3.   Liberty Basic

You can utilise your existing Qbasic programming skills with Liberty Basic which is billed as 'QBasic For Windows'. Liberty Basic is 16 bit but was designed to write programs that can run on Win 56/98, 2000 and NT.
Liberty Basic Version 2.02 (1.7Mb/***) is US$40 and can be ordered electronically.

So, unlike XBasic, Liberty Basic is not free but like XBasic it is also being continuously developed by motivated programmers and supporters. I have been in contact with the author and he says that providing the teacher has a purchased copy it may be copied for students and it is up to the students to register their copy. He also says a 32 bit version is in the pipeline and that he wrote Liberty Basic in SmallTalk.

The reference to using SmallTalk to write Liberty Basic and other positive comments about SmallTalk by Bjarne Stroustrup (inventor of C++) and Wallace Wang (author of Visual Basic 6 For Dummies) and other considerations has led to my creating the section Object Orientated Programming With SmallTalk Or Eiffel


Liberty Basic Websites

Saw goto and gosub in the statement listing. Sad.

libertynow.webjump.com
Max Reason says this is an XBasic and Liberty Basic site. ** Appears to be a Liberty Basic only website now. **

world.std.com/carlg   or
www.libertybasic.com
You can download Liberty Basic Version 2.02. 1.7Mb  US$40. Links to other Liberty Basic sites
The site is a member of a K-12 Resource webring. Interesting.

www.libertybasic.com
You can download a free unlimited time trial version of Liberty Basic (2.33/?Mb). $29.95 to register.

libertybasic.swiki.net/1
A community website (a 'wiki' server). Any one can work on it.
Teachers Lounge confirms what author told me, Pay for one copy then supply copies to your students. It's up to them to register.
A lot happening. You can learn Liberty Basic from scratch.


What Are C/C++, Visual Basic, Java And Delphi  

C/C++

C was one of the one of the first general-purpose high-level programming languages to gain almost universal use. It's goal was to be easier to read and write than assembly language, still allow programmers to access all parts of the computer like assembly language and provide the means, through easily written compilers, to be able to run the programs on different computers. Assembly and machine language programs had to be virtually re-written for each different computer. Today you can program in C on almost any platform and machine. It was created by Denis Ritchie in 1971, as the successor to the 'B' compiler, for UNIX systems.

C++ was written to allow programmers to leverage their knowledge of C with the use of Object Oriented (OO) concepts, to more easily create better quality larger programs and re-usable code. (Java was written for the same reasons but was designed to be pure object-orientated and to shield programmers from the computer). C++ contains all of the concepts of C (and a C program can be run using a C++ compiler). Not withstanding it's power, learning to use C++ will take a very long time, and then writing a Windows application with it will take a long time. It was created by Bjarne Stroustrup in 1980.

A quote going around I like is:-

"C++ gives you the power of assembly programming with all of the ease of assembly programming".

C++ Builder (Borland) and Visual C++ (Microsoft) were developed from C++ to provide a Rapid Application Development (RAD) tools to aid writing windows applications. Visual C++ is pretty much the standard language for professionals writing Windows programs and despite the term 'Visual' is still quite complicated and is not truely the RAD tool that Borland's C++ Builder is. C++ Builder will help you design the user interface visually with much more ease than Visual C++. Visual Basic (Microsoft) was also developed as a RAD tool built on BASIC (ie QBasic/QuickBasic). It is much easier to learn, and to use to visually design the user interface (although you can't write a program as good in all respects as you could with any other of the popular RAD's ..it's just easier to use!).

Visual Basic

Visual Basic (VB) is a RAD (Rapid Application Development) tool, that allows programmers to create Windows applications in very little time. Some authors argue it is the most popular programming language in the world, with more lines of code written and with more programmers than any of it's nearest competitors. Other authors argue that if you discount trivial code written by less able programmers then C++ is the principle programming language in use by the majority of (real) programmers. Whoever you believe, an application done in Visual Basic will run slower, have much more overhead and be less portable than if it were created using C++, or either Microsoft's RAD Visual C++ (yes! Microsoft keep their foot in the C++ door), Borland's RAD C++ Builder. Even Borland's Pascal based RAD Delphi would produce a faster more efficient program in about the same time as in Visual Basic (but the program, like a program written in Visual Basic would not have any portabity).

Some regard Visual Basic as a toy language that is useful to make a prototype program to get the screen appearance, user controls and other program design goals correct before getting a C++ specialist programmer to convert, either the whole program, or the parts contributing the most inefficiency, over to C++. The conversion to C++ could continue while the program was in use and any additional development to the, now proven, program could be done directly in C++.
The other RAD's are not as easy to use as Visual Basic and so are not as attractive in a prototyping role (although producing a faster more efficient end product than Visual Basic if there was no intention of eventually converting to C++).

It's happened!! 10 September 2001. Microsoft have released another language named VB.Net to address deficiencies in VB. See vbnet.html for a rundown.

Java

Java was created by Patrick Naughton, Bill Joy and James Gosling of Sun Micrososystems and is the latest programming language to gain widespread popular support. It is regarded as one of the three popular pure object-orientated programming languages along with SmallTalk and Eiffel (see the section Object Orientated Programming With SmallTalk Or Eiffel) but because of it's C history it is probably the less pure of the three. Sun Microsystems will not allow others to use the word Java, which can be inhibiting, and a number of people have a 'let's wait and see attitude' before using it on a big job.

Java is a language created to allow one piece of code to run on different types of machines without rewriting. In reality you have to test it on all the machines you want to run on which means you often spend surplus time confirming it will run on various platforms rather than trying to improve the program itself. It was based on C++ and has the look and feel of C++ without many of the advanced features that often get programmers into trouble. On the other hand this shielding from the computer means Java programs can never be as fast or as efficient as C++ programs.

One of the earliest and fastest Java programming enviroments for Windows is Symantec's www.symantec.com Visual Cafe which includes a true compiler to convert to machine language so the Java program will run fast under Windows. Borland's www.borland.com JBuilder probably has more third party books written about it than Visual Cafe (which may or may not be particularly relevant) but I am unable to comment in any futher depth abut JBuilder except to emphasize it comes from Borland who have a track record of providing good programming tools.

Learning Java still has to be compared with C++ for difficulty. While Java has not achieved the emminence that was earlier predicted, it is still evolving and many are taking a 'wait and see' attitude before using it to write large programs. It is supported by both of the major Internet browsers and is a driving force in Internet web development where it is being used for larger applications or smaller programs known as 'applets'.

JavaScript was derived from Java. It is a scripting language used to create interactive web pages. Though less powerful than Java, it is also much simpler to learn. An increasing number of math functions and other considerations are blurring it's status as a mere scripting language.

Delphi

Delphi is the third of the three popular RAD (rapid application languages) and is based on Pascal. The other two RAD's being Visual Basic (derived from Basic) and C++ Builder (based on C++). The aim with RAD's is to design how you want the program to look (the user interface) then write the necessary code to do allow the user interface to do something useful. This pretty much sums up why I teach programming principles with QBasic, Visual Basic involves you too heavily with on screen effects.

Delphi is harder to learn than Visual Basic but easier than C++. While having nearly all the power and speed of C++ the programmer is shielded from the complexity of the computer in the same way as Visual Basic does. Delphi only runs under Windows so, like Visual Basic, offers no portability.


Object Orientated Programming With SmallTalk Or Eiffel

        Hybrid and Pure Object Orientated Programming Languages
        My Criteria for Comparing SmallTalk and Eiffel
        SmallTalk Overview
        SmallTalk And Eiffel Comparison
        SmallTalk Links
        Eiffel Overview
        Eiffel Links
        SmallEiffel (renamed SmartEiffel) Links


Hybrid and Pure Object Orientated Programming Languages

A statement by Mike Bray, Lockheed-Martin Ground Systems (10 Jan 97).

"Object-oriented applications can be written in either conventional languages or object orientated languages, but they are much easier to write in languages especially designed for object-orientated programming. Experts divide object-orientated programming languages into two categories, hybrid and pure. Hybrid languages are based on a conventional language that has been enhanced with object-orientated concepts and permits programmers to write a mix of conventional and object-orientated code that would be doubly hard to follow. Pure, implies designed from the ground up as a object-orientated program and the programmer, obliged to work within the restrictions of the language, produces code complying with object-orientated programming principles."

A statement by Wallace Wang, author of Visual Basic 6 for Dummies (Aug 98).

"C++ and Visual Basic are examples of hybrid languages, that is, conventional programming languages with some object orientated capability added to facilitate programmers making the transition from conventional programming to object orientated programming. In particular, Visual Basic has been tortured to give it an object orientated capability. It does not even support heirachy."


MyCriteria For Comparing SmallTalk And Eiffel

Factors I have to consider when choosing between SmallTalk and Eiffel to teach object-orientated programming (or choosing any software to teach programming principles) include:-

*Must be able to be distributed freely and relatively easily to students.
*Must be (relatively) easy to teach with teaching resources available.
*Must be a good book available to refer to and use as a textbook.
*Must be able to use it to teach the range of necessary general principles.
*The student should gain some vocational advantage from the software selected either by it having some direct applicability in industry or, because it is stepping stone toward eventually gaining specific skills which are attractive to employers.


SmallTalk Overview

First made public in the now famous August 1981 Byte Magazine issue which was totally dedicated to SmallTalk (inventor Alan Kay). SmallTalk, which was the inspiration and technical basis for the MacIntosh and subsequent windowing based systems such as Microsoft Windows, was designed to implement object orientated programming concepts and is one of the three popular pure object orientated programming languages, the other two being Eiffel and Java (well maybe Java just squeezes in ..AJ). It has fewer keywords than C++ (or Eiffel), and has a strong following amongst those who believe it is easy to work with, including Cincom (link provided below), one of the largest independant software companies, who make their current Smalltalk software available to download free for non-commercial use. They provide versions for Windows, Macintosh, Linux and others. Some educators use SmallTalk to teach object-orientated programming and design.

I was intrigued to discover that SmallTalk was used to write Liberty Basic and saw positive references to it by Bjarne Stroustrup (author of C++), 'Getting From The Past To The Future' , p. 23 C++ Report, SIGS Nov/Dec 1999 Vol1 No.10 and Wallace Wang (author of Visual Basic 6 For Dummies).
My interest as an educator wanting to introduce object orientated programming instruction was sealed after discovering on-line courses in the US and UK that directed me to the independant software company, Cincom, which was using and developing SmallTalk and making it available to download free for non-commercial use.

SmallTalk is human friendly, using a simplified version of English with nouns being the objects and verbs being the messages between the objects which means it is not as cryptic as C++ and has a much smaller set of keywords. It has been used to do, some substantial computing projects and I found it was being used to teach object orientated programming and design in at least one American University and one UK University (the UK University course did not assume prior computing knowledge!).

But, SmallTalk does not talk with C and, as elegant as it's syntax is, it has to be learnt. It is an interpreted language (which is not as bad as it sounds for the way it works). It has been described as being a more visual tool than Eiffel. It was invented at Xerox PARC, which puts it in good company, but was a pioneer, and the design of Eiffel ..which came later, was in a position to benefit from lessons learnt by SmallTalk.


SmallTalk And Eiffel Comparison

These two links compare and contrast the smalltalk and Eiffel from one perspective or another.

www.doc.mmu.ac.uk/STAFF/J.Gray/oopslang/aoblnts/langcomp.htm Compares C++, SmallTalk and Eiffel. No nonsense .edu stuff.

www.eiffel.com/doc/manuals/technology/oo_comparison/page.html
Interactive Software Engineering (ISE), a leading Eiffel provider compares Eiffel with C++, Java and SmallTalk. Well laid out and readable. It raise some matters about Java and Sun Microsystems that could explain Java's current state.
Note: York University says the best place to start looking for Eiffel-related information is the ISE page www.eiffel.com. ISE was founded by Bertrand Meyer, a key figure in the design and development of Eiffel.
An introduction www.eiffel.com/doc/manuals/language/intro


SmallTalk Links

www.smalltalk.org
Focuses the Smalltalk computer language and environment. Interesting articles and some links to other SmallTalk sites.

www.cincom.com/smalltalk

www.cincom.com
The link I found to Cincom.
I only found VisualWorks 5i3NC (25Mb/***) documentation (~11.5Mb/***) although there was also Object Studio Enterprise 6.4 (15Mb/***) documentation (15Mb/***).
They also offer the option under 'Cincom SmallTalk 2001' to download an image containing VisualWorks NC 5i.3 and ObjectStudio NC 6.4 (185.5Mb). This image can be burned to a CD. I assume, due to it's size it is unzipped and includes options and goodies ready to use. You are directed to the same Documentation Download screen used when downloading VisualWorks NC 5i.3 or ObjectStudio NC 6.4 as zip files.
Is Object Studio Enterprise 6.4, the '3' referred to by Illinois Uni?

www.fja-odateam.com/links/smalltalk/s_tutori.html
A good history, FAQ's and links to SmallTalk tutorials.


Eiffel Overview

There are comparible training links and and free downloads links for Eiffel which has a strong following in both industry and academia also. I have decided to include Eiffel at the last moment and will add some some more comments as I learn more about the language

I am gaining the impression that, as useful and simple as SmallTalk is, it has a unique syntax, and will not talk to C based programs. It seems the Eiffel compiler compiles to C code which can be edited and then re-compiled with a C compiler so you can end up with C code without working in the universal but difficult and arcane C language. Using C code you can and go to Java or any platform ..you have all the advantages of having C or Java code via a compiler while you work in the easierEiffel enviroment.

I have decided to go with a no-frills text based ISE Free Eiffel and then move to the more expanded modern free graphical version of Free Eiffel in time. This could be a wrong decision and I am worried by the fact that some educational institutions do use SmallTalk. I am hoping that they do so for simplicity sake while I am factoring in generality and the need to be able to interact with the C/C** and Java world and offsetting the relative extra difficulty by starting with the simple no-frills version and progressing to the graphical version in time.


Eiffel Links

www.ariel.cs.yorku.ca/~eiffel
The York University Eiffel document page referred to above. Very extensive information, examples, links and tutorials. See the Java-Eiffel comparison.
It is a goldmine of information. I think they use a more recent graphical version than the simple no frills (text) Free Eiffel for Windows Ver 3.3.X I am going to use due to the direct applicability of the UTS notes that assume no prior programming experience.
If the free download of (graphical) Eiffel ver 4 available from ISD corresponds to these York University notes then they will be invaluable although I'm sure some of is generally applicable to object orientated programming using Eiffel.

   Bingo!

www-staff.it.uts.edu.au/~rist/eiffel/index.html
Universty of Technology Sydney (UTS)
Free Eiffel for Windows (text) Version 3.3.7.
Non-graphical. Does not have all the Bells and whistles.
Can be downloaded onto six floppies (or download it from ISE).
The book, Object-Oriented Programming In Eiffel is available for download in both Microsoft Word 6.0 for Macintosh and Microsoft Word 97 for Windows formats.
An example case is available for download for both Macintosh and Windows.
www-staff.it.uts.edu.au/~rist
Home page with contact info and more on Eiffel as a first language.

26 Sep O2. Was asked for password to download onto the floppies so until it's sorted you can down load here:-
  Click here to go to the Free Eiffel page I patched together from the UTS site using the 3.1.X (..I should replace them with the 3.3.X above) zip files from the ftp.cs.rit.edu/pub/eiffel/ise-3/text site. It's learning object orientated programming using Free Eiffel.
**Stop ..I have seen that 3.3.9 was dated 1996 and 3.3.7, which did not download from Rist's UTS site, is 1995. I've got the 3.1.X! and now the link above to 3.3.X. Maybe all too old and I have to go with graphical 4.0 (or higher) and York Uni notes after all. The material in the Free Eiffel page I cobbled together is still very worth reading (I put a lot of time into editing it). I might have to take down the 3.1.X (or the 3.3.X if I've replaced 3.1.X) just as UTS may have taken down 3.3.7, because it's all getting too behind old even for first principles. (But then again, nothing has ever downloaded for me from UTS. Even their mirror for IES does not work.)

The UTS page said the program could also be downloaded from from the developer's site (ISD) at www.eiffel.com. It may be there, but I was not patient enough to find it (2000 page site!). I could not see anything attractive (to me) under Downloads, but when I clicked as if to buy something, a promo screen said who wonderful Eiffel 4.5 was, and invited you to download (graphical) Eiffel 4 for free! That will be interesting eventually, but I want no frills at this stage.

www.eiffel.com ISD home page (refering to themselves now as 'Eiffel Software'. The download page I saw asked for your details (Note theFTP link below does not require your details).

ftp://ftp.eiffel.com/pub/download/windows
From a news group posting by B Mayer. Download page for 4.2, 4.3, 4.4, 4.5, 5.0 and other stuff.
Note 4.2 is 7Mb cf 4.5 is 17Mb. I have downloaded both. They are .exe files.
ftp://ftp.eiffel.com/pub/download
It is interesting to start the ftp exploring process here.

www.eiffel.com/eiffel/page.html A helpful page.

Mayer says nice things about Monash's Beth (and UTS's Rist) and you can download Eiffel 4.5 from the following Monash link so it would pay to carry out a full fpt exploration of the Monash ftp site as well (takes time for download to commence!).
ftp://ftp.csse.monash.edu.au/mirrors/eiffel.com/windows/4-5/Eiffel45.exe and work back or modify, it to see what they provide. For the record, I down loaded EiffelBench + EiffelCase (16.7MB) which comes down as Eiffel45.exe (not a zip file!) ok but note the ISD (ie now Eiffel Software Inc) download page was also provided! Obviously you don't have to fill in any forms once you know these download site URL's

The University sites (especially Monash and UTS) used as mirrors may be good sources of Eiffel information and other useful downloads.

ftp://ftp.cs.rit.edu/pub/eiffel/ise-3/text **gives 400 msg but comes up ok if you wait! **)
Rochester Institute of Technology. To download six, Version 3.1.X, Free Eiffel for Windows (text version) zip files that each fit on a 1.44Mb diskette. Choose 32bit (Win95/98/NT/2000) or 16bit (Win3.1). Note the UTS page offers Ver 3.3.7

www.faqs.org/faqs/eiffel-faq Eiffel news group faq.

groups.google.com/../ Google's comp.lang.eiffel forum.

www.object-tools.com/products/ve ** Looks like least confusing and most direct way into Eiffle -aj **
For Visual Eiffel and the RAD tool DM (Display Machine).
Free Visual Eiffel Lite, DM Lite and a popular shareware version.
www.object-tools.com/products Products page (includes reference to Eiffle for Mac and Shareware).
www.object-tools.com Home page.

www.simtel.com
SimTel for freeware, shareware and public domain downloads.You can select up to 600 Mb and they will mail it for US$10. Enter 'eiffle' in the search box for a free version placed by Object-Tools.

www.eiffel.demon.co.uk
British site to download Free Visual Eiffel Lite and DM Lite. but better yet they tell you how to get going at the command line with a hello world program.
www.eiffel.demon.co.uk/ve/getting.html
Getting Started (from the command line)
www.eiffel.demon.co.uk/ve/getting_v.html
Getting Started with the Visual Eiffel Workbench

www.cetus-links.org/oo_eiffel.html
Good material on Eiffel and Eiffel spin offs.

www.eiffel.ie
Short introduction to Eiffel and a beginner's page.


SmallEiffel Links (renamed SmartEiffel Dec 2002)

www.loria.fr/projets/SmallEiffel
SmallEiffel The GNU Eiffel compiler is the fastest and the slimmest multi-platform Eiffel compiler. It is FREE! Version - 0.75 was released 19 July 2001. Version 1.0 released December 2002 and renamed SmartEiffel.


New links under SmartEiffel name (announced 6 Dec 2002):-

To download release 1.0, visit
http://smarteiffel.loria.fr/general/download.html

For more information about SmartEiffel, visit
http://smarteiffel.loria.fr

The home page for the ELJ project is here:
http://elj.sf.net/

For more resources and information on Eiffel in general, visit one of these sites:
http://eiffel.com
http://www.cetus-links.org/oo_eiffel.html


www.elj.com/elj-win32
For Windows Version of SmallEiffel.

elj.com ** Site in process of being shut down. Check it out **
Eiffel Liberty Journal. Many quality links and articles.



Pascal Programming Language

Discounting the turtle style LOGO language which was primarily a math/geometry teaching aid that generated code or script that the child eventually learnt to enter directly, Pascal is the only programming language used on microcomputers that was specifically designed for teaching or learning programming other than Basic. It addressed a number of deficiencies that existed in the Basic language of the day as well as incorporating library files and other features that prepared students to make the transition to C.

No Pascal links provided yet.


For The Linux Operating System

The Linux operating system is growing in popularity all the time and is the only serious challanger to the the domanance of Microsoft Windows. In the early days people swapped the code they wrote with others but then commercialism took over. But with Linux the idea of sharing source code has taken hold again in the form of the 'Open Source Movement'.

There are a number of versions of Linux including Red Hat, Caldera, SUSE and Debeian and although there are not as many applications available as there is for Windows or Macintosh the are a number of compilers that can be used for free and a growing number of other programs

www.everythinglinux.com.au Everything Linux -The Alternative Operating System Store.
Located at 40 East Street, Five Dock, NSW 2046. Open Mon-Fri: 10:30am-4:30pm.
Phone (Std Ph Rates): 0500 500 EMU (0500 500 368) or 02 9712 1799

www.slug.org.au Sydney Linux Users Group
Note use of CSS in page layout

www.wslug.org.au Western Sydney Linux Users Group
Undergoing a bit of a re-org at present.

www.yabasic.de
For YABasic (Yet Another Basic!). A small (~210kB) free Basic Interpreter. Originally Windows but now has a Linux version. There is now also a Sony Playstation 2 version so millions of (European/Australasian?) young people have an opportunity to be exposed to programming like Win users with QBasic. Unlike Q(uick)Basic it appears to require installaion as opposed to just being able to run off the disk (but they do say you can send your 210kB program along with a game you wrote on a disk). No internal editor, have to use NotePad or similar (suggest Edit Pad?) Good html on-line (or copy off) Manual (need zip version ..consider alternate freezip?). Small community.

www.omnibasic.com OmniBasic. Basic that compiles to C (and hence portable to anywhere). Develop a program on one platform (Windows) - recompile on the other platform (Linux). The identical program now runs on both platforms. Statements made imply you can reverse this ie develop on Linux and compile on Windows. **Has on-line and downloadable manuals. Has older graphics free version. Very Interesting.

www.rapideuphoria.com
For Euphoria v2.2. Another current, supported language that could have a role in teaching. Euphoria is free, although you can get some advanced features by registering (~US$70 Interpreter and Translator). DOS, Win 32 (60kB zipped), Linux and Free BSD versions. Uses a translator to produce C.

Linux Users! See also XBasic in Some Interesting Basics Other Than Q(uick)Basic for info, links and downloads of XBasic which can be used to make programs for Linux or Win95/98/NT/2000.

Linux Users! See the section Object Orientated Programming With SmallTalk Or Eiffel for links and downloads of versions of SmallTalk (see Cincom ..free for non-commercial use) and Eiffel (see ..) that will run on Linux


  Just For Apple-Macintosh Users

www.softronix.com
For a free copy of Turtle Tracks. A Macintosh version of the Logo programming language (it was written in java if you are interested).
Entry duplicated in 'Turtle Style Programs (Teaching The Very Young)'.

www.rahul.net/rhn/cbas.page.html
For a free copy of the Chimunk Basic Interpreter. A well esablished program for Macs that equates with QBasic (that is, has to be present for the program to run and a beginner can't cause crashes or anything in error or while experimenting). ** suspect cbas.page.html ..suggest cbas/page.html

www.nicholson.com/rhn/basic
Another source of the free Basic Interpreter called Chimunk Basic. Note that while Chipmunk Basic is not quite identical to QBasic, programs written for QBasic should run under Chipmunk Basic with a little modification.

www.stazsoftware.com
For Future Basic (formerly ZBasic) which closely resembles QBasic but like QuickBasic 4.5, can compile programs into machine language (ie 'translate' or make an 'executable') so anyone who owns a Macintosh can run your program without having Future Basic on their computer.

www.realbasic.com
For RealBasic. Resembles Visual Basic; you design the user interface and then write the Basic code to make your program work. You can use RealBasic to write programs for Windows as well as Macintosh. Write your program in RealBasic and then RealBasic is able to turn it into a Windows program and a Macintosh program. If you want, RealBasic can convert Visual Basic source code to run on Macintosh. Converting Visual Basic to RealBasic to run on Macintosh won't be 100% accurate, which means you might have to modify the programs slightly.

www.metroworks.com. **metroworks or metrowerks ??
For Code Warrior. Well named, it helped Macintosh to survive a bad time. Code Warrior enables you to write programs in four languages: C, C++, Java and Pascal. So rather than buy four separate compilers ..just get Code Warrior.
There's more, Metrowerks sells special versions of Code Warrior so that you can write programs for Win95/98/NT/2000, Windows CE, Solaris, Linux, Sony Playstation, Nintendo and the popular handheld computer, the Palm Pilot.
Code Warrior does not support Basic. See the four Basic entries above.

Macintosh Users! See the section Object Orientated Programming With SmallTalk Or Eiffel for links and downloads of versions of SmallTalk (see Cincom ..free for non-commercial use) and Eiffel (see ..) that will run on Macintosh


Additional Links To Programming Languages Resources

Some Further Programming Languages Links Worth Visiting:-

www.schools.ash.org.au/cbhs/programming.htm
Descriptions of languages that could be used in Schools and links to sources.

www.codeguru.com
Code for languages including C++, Visual Basic and Java.

www.planet-source-code.com
A useful site for information on Visual Basic and Java.

www.basicguru.com/abc
Code for many Basics including Q(uick)Basic and Visual Basic.

javascript.internet.com
Lots of Javascript code.

www.cprogramming.com
Lots of C/C++ source code.

www.programmingtutorials.com/main.asp
They list on-line tutorials for all the programming languages.
Use drop-down box to select QBasic, C, Java or html, for example.
The last QBasic tutorial (16 Chapters) is very readable with examples well presented in html. You can copy them off the screen and save as .txt (then re-save or change to.bas) or, directly as .bas, depending on the techniques you are using, and the indentation and layout is preserved. Unfortunately it uses some GOTO 's. I would like to fix it because it is worth the effort. Perhaps it could showcase GOTO versus LOOPing.

dmoz.org/Computers/Programming/Languages/BASIC
The DMOZ Basic page. From this page you can go forward to the QBasic and QuickBasic page or go back to the preceeding DMOZ's Programming Languages page for other programming languages (direct link provided below).
dmoz.org/Computers/Programming/Languages
Note: DMOZ is really very useful. At the bottom of their search pages they provide links to the major search engine's page for the same search. DMOZ is unique because it is non-commercial and relies on input from users to directly add or remove links. If you have some expertise in an area, you might consider becoming a volunteer editor with DMOZ.
In any event the current situation with overloaded, unedited search engines can't go on, and some are considering charging to list websites. Charging for listing will mean you would be able to find good prices for dogfood but Isaac Newton won't be listed. Please consider using and supporting DMOZ.

www.latech.edu/~acm
Sample programs written in a varity of high level languages telling the computer to display 'Hello World!'.


A Catalogue of Compilers For Experts Or Historians

www.idiom.com/free-compilers
This list catalogues freely available software for language tools, which includes the following: compilers, compiler generators, interpreters, translators, important libraries, assemblers, etc. -- things whose user interface is a language. Natural language processing tools may also be included.

This list is primarily aimed at developers rather than researchers, and consists mainly of citations for production quality systems. There is some overlap of coverage between this document and other lists and catalogs. (See the references section for a list.)

For the latest catalog version: ftp://ftp.idiom.com/pub/compilers-list/free-compilers ** Gives 400 msg but link is OK! **



 BACK       TOP       HOME     

Contact:  Aussie John  wpsmoke@yahoo.co.uk

1