September 15, 2013
What is "Beginning Small Basic * " and how it works.
*Plus a Porting Guide to Microsoft Visual Basic, C# and Java
These lessons are a highly organized and well-indexed set of lessons in the Microsoft Small Basic programming environment. Small Basic is a simplified version of the many BASIC (Basic All-Purpose Symbolic Instruction Code) programming languages of the past. Small Basic has only 14 keywords (premised upon preexisting classes) - each providing their own set of commands (methods) and variants (overloads).
The Small Basic language is simple enough to allow programs to be written with keyboard driven input and text-only output, but powerful enough to create eye-catching graphical user interface (GUI) applications where input may come from a keyboard, a mouse, or even a touch-screen.
The Small Basic programming environment is very user-friendly - providing a context-sensitive command reference, so that the user learns the commands while typing. Each command has help on the side-bar providing an explanation of the syntax and the options available in order to complete the command. While the Small Basic environment is ideal for the youngest programmer, these tutorials are written to provide the best foundation to learn programming concepts in computer science - regardless of the language.
The tutorials provide the benefit of completed real-world applications - fully documented projects from the teacher's point of view. That is, while full solutions are provided for the teacher's (and learner's) benefit, projects are presented in an easy-to-follow set of lessons explaining concepts fundamental to all languages - data types, input and output, decision making, looping, built-in functions, the different types of errors (syntax versus logical), logical expressions, comparison operators, random numbers, arrays, and finally, and finally the GUI features of the language. An experienced teacher would recognize all of the above as a substantive list of topics in any first computer science course - whether for elementary, middle or secondary school students.
The learner may follow the tutorials at their own pace while focusing upon context relevant information. Every bit of the lesson is remembered as it contributes to the final solution to a real-life application. The finished product is the reward, but the student is fully engaged and enriched by the process. This kind of learning is often the focus of teacher training. Every computer science teacher knows what a great deal of work is required for projects to work in this manner, and with these tutorials, the work is done by an author who understands the classroom experience. That is extremely rare!
Graduated Lessons for Every Project ... Lessons, examples, problems and projects. Graduated learning. Increasing and appropriate difficulty... Great results.
With these projects, there are lessons providing a comprehensive background on the programming topics to be covered. Once understood, concepts are easily applicable to a variety of applications. Then, specific examples are drawn out so that a learner can practice with the Small Basic commands. Finally, a summative program for the chapter is presented. Problems are broken down into manageable parts - the logical solution to the problem, the design of the user-interface and supporting sub-routines (code modules) come together in the finished product.
By presenting lessons in this graduated manner, students are fully engaged and appropriately challenged to become independent thinkers who can come up with their own project ideas, design their own text-only or graphical user interfaces, and do their own coding. Once the process is learned, then student engagement is unlimited! I have seen student literacy improve dramatically as they cannot get enough of what is being presented.
Indeed, lessons encourage accelerated learning - in the sense that they provide an enriched environment to learn computer science, but they also encourage accelerating learning because students cannot put the lessons away once they start! Computer Science provides this unique opportunity to challenge students, and it is a great testament to the authors that they are successful in achieving such levels of engagement with consistency.
My history with the Kidware Software products.
I have used single license or shareware versions for over a decade to keep up my own learning. By using these lessons, I am able to spend time on things which will pay off in the classroom. I do not waste valuable time ensconced in language reference libraries for programming environments and help screens which can never be fully remembered! These projects are examples of how student projects should be as final products - thus, the pathway to learning is clear and immediate in every project.
By following these lessons, I was able to come up with my own projects - An Equation Solver which allows a student to solve any equation that they are likely to encounter in high school, a dice game of Craps, a Financial Calculator covering all grade 12 Financial Math applications, and finally, the game of Mastermind - where I presently have a "Mastermind Hall of Fame" for the best solutions by students over the years. I have made several applications for hardware interfacing in Computer Technology class. I could do all of this only because of these lessons by Kidware Software!
The exciting thing is that all of the above could also be done in other BASIC or Visual Studio languages - such as QBasic, Small Basic, Visual C# or Visual C++, though I first learned to do the programming using Kidware Software's "Learn Visual Basic". For me to go from one language to another is now an inevitable outcome!
With these lessons, I am able to concentrate on the higher order thinking skills presented by the problem, and not be chained to a language reference in order to get things done! In the Beginning Small Basic tutorials, the authors have provided a final chapter where 3 popular programs are presented in Small Basic, Visual Basic, Visual C#, Java and QBasic - just to emphasize how concepts and ideas are transferable from one language to another.
If I want to use or expand upon some of the projects for student use, then I take advantage of site-license options. I have found it very straight forward to emphasize the fundamental computer science topics that form the basis of these projects when using them in the classroom.
Quick learning curve for teachers! How teachers can use the product:
Having projects completed ahead of time can allow the teacher to present the design aspect of the project FIRST, and then have students do all of their learning in the context of what is required in the finished product. This is a much faster learning curve than if students designed all of their own projects from scratch. Lessons concentrating on a unified outcome for all make for much more streamlined engagement for first-time students of computer programming, as they complete more projects within a short period of time and there is a context for everything that is learned.
Meet Different State and Provincial Curriculum Expectations and More
Different states and provinces have their own curriculum requirements for computer science. With the Kidware Software products, you have at your disposal a series of projects which will allow you to pick and choose from among those which best suit your curriculum needs. Students focus upon design stages and sound problem-solving techniques from a computer-science perspective. In doing so, they become independent problem-solvers, and will exceed the curricular requirements of elementary, middle and secondary schools everywhere.
Useable projects - out of the box !
The specific projects covered in the Beginning Microsoft Small Basic tutorials are suitable for grade 6 and above:
Sub Sandwich Party
Guess the Number Game
and classic games such as
As you can see, there is a high degree of care taken so that projects are age-appropriate.
You can begin teaching the projects on the first day. It's easy for the teacher to have done their own learning by starting with the solution files. Then, they will see how all of the parts of the lesson fall into place. Even a novice teacher could make use of the accompanying lessons. The lessons will provide more than just the coding of the solution - they will provide the correct context for the coding decisions which were made, and provide help in the investigation of related functions. Students then experiment with projects of their own making.
How to teach students to use the materials.
Teachers can introduce the style of presentation (lesson, examples, end-of-chapter problems) to the students in such a way that they quickly grasp how to use the lessons on their own. The lessons are provided so that students may trust the order of presentation in order to have sufficient background information for every project. But the lessons are also highly indexed, so that students may pick and choose projects if limited by time.
How to mark the projects.
In a classroom environment, it is possible for teachers to mark student progress by asking questions during the various design and coding stages. Teachers can make their own written quizzes easily from the reference material provided, but I have found the requirement of completing projects (mastery) sufficient for gathering information about student progress - especially in the later grades.
Lessons encourage your own programming extensions.
Once concepts are learned, it is difficult to NOT know what to do for your own projects.
Once having done my own projects in one language, such as Small Basic, I know that I could easily adapt them to other languages once I have studied the Kidware Software tutorials. I do not believe there is any other reference material out there which would cause me to make the same claim! In fact, I know there is not as I have spent over a decade looking!
Having used Kidware Software tutorials for the past decade, I have to say that I could not have achieved the level of success which is now applied in the variety of many programming environments which are currently of considerable interest to kids! I thank Kidware Software and its authors for continuing to stand for what is right in the teaching methodologies which work with kids - even today's kids where competition for their attention is now so much an issue.
Alan Payne, B.A.H. , B.Ed.
Computer Science Teacher
T.A. Blakelock High School