# A-level Computing/AQA/VB
## Why VB?

VB.NET is an industry standard development platform. It offers a simple syntax that is easy to learn by beginners, yet offering the latest programming constructs and functionality.
* The Visual Studio IDE provides a supportive platform for new programmers, flagging up errors before code execution, allowing for easy debugging and predicting code snippets. By predicting code snippets a new programmer can easily discover new program features that they probably otherwise wouldn't stumble across.
* Visual Basic is not as strict as other languages and can normally handle you declaring a variable with a capital letter and using it with a lower case letter (some people might say that this is a bad point!).
* Visual basic is also weakly typed, meaning that it won't cause new programmer so many issues when combining data types.
* For the second year project VB.NET allows for quick creations of database links and forms.
* Visual Basic .NET is currently the most popular language for A-Level Computing and wikibooks currently only supports VB.NET in its examples. (The official textbook supports all the languages)
* VB.NET is compatible with Mono, which is an open-source project by Xamarin (Previously Novell); an implementation of the .NET framework which is compatible with many other operating systems. This means your programs can be ported over with minimal effort. There is also a compatible IDE (Integrated Development Environment) previously named 'MonoDevelop', now named 'Xamarin Studio', which although is no longer open-source, there is a free version available. Mono is also compatible with MonoGame, which can lead on to game programming for both PC/Mac/Linux and mobile devices.
* VB.NET is a 'gateway' programming language which is easier to get to grips with the concepts of programming. VB.NET easily leads on to more powerful and advanced programming languages like C# .NET which are more commonly used in the industry.

### VB.NET or VB 6.0

VB 6.0 has a long history and lots of support in terms of teaching resources and available code. There are also Development Environments freely available. However, as of March 2008 VB6 has entered Microsoft's "non-supported phase" and no further development is being made on the language or the official development environment. VB 6.0 is largely looked down upon within Universities and thought by many not be be a good way to introduce programming.
VBA is a variant of VB 6.0 and is commonly used in Microsoft Office applications; especially Excel. This can be useful for automating tasks and creating programs/games within Excel.
VB.NET is a fairly new language built upon the .NET framework. This means it offers interoperability with languages such as C# and F#. The Development Platforms, Microsoft Visual Studio (Windows only) and Mono (cross platform), are being actively developed and the language is fully supported by Microsoft. VB.NET allows for easy Object Orientation and tools to create websites, console applications and phone applications. Many academics look down upon VB.NET, but it is unclear whether this might be a hang-over from their hatred of VB 6.0.
The code written for each is not compatible with the other. Microsoft provides a converter from VB 6.0 to VB.NET but it is not perfect.
Visual Basic.NET is currently the most popular language amongst centres running AQA A-Level Computing and all code in this wikibook is provided in VB.NET (there are plans to add python soon).

## Why not VB?

* Due to VB.NET being a young language that isn't used much in universities there are fewer learning resources than you'll find with the other three languages. There is very little in the way of extension materials for learning the command line code required for Unit 1.
* Students who don't have MS Windows at home might struggle to install the Mono development environment.
* There is no 'portable' version of the language
* VB.NET is used less by industry than Java and Python (though you should be teaching concepts and not syntax!)
* VB.NET is very much confined to Microsoft operating systems, and it is harder to port software over to GNU/Linux, OSX, BSD/other operating systems, due to its use of the Microsoft .NET Framework.

## Getting started

A free version of Visual Basic 2010 Express is available from Microsoft.
The multi-platform Mono project

## COMP1

COMP1 requires the student to sit an exam based around a command line program published by AQA. There are very few command line tutorials for VB.NET and the best currently available are:
* studyvb.com
* The Nelson Thornes AQA accredited textbook
* This wikibook has a tutorial matched to the specification
Another way to start learning VB.NET is by starting with Microsoft Small Basic as it is a simplified version of VB.NET: both these compilers are available free. I would recommended that only a few weeks are spent using this since there a number of differences, e.g., Visual Basic.NET uses Console where Small Basic uses TextWindow.
Small Basic comes with a Tutorial (PDF) which is an introduction to programming and the language. Reference Documentation is also available and displays all the built-in Objects with their Properties and Operations. Microsoft has also written a comprehensive curriculum. It has the feature to graduate to the full version and converts any Small Basic programs in the process. One of the language's most useful features is that it can publish any program online at a click of a button, providing a shortened URL, but Silverlight is needed for this. Silverlight is proprietary software and only officially works with Windows and OSX. SmallBasic is not available for Linux and there are no open-source alternatives (Like Mono and Xamarin Studio) and this may cause problems with students who do not use a Microsoft based system.

## COMP3

To complete the COMP3 theory exam students should have experience of programming many of the algorithms described. VB.NET allows for object orientation with a few minor quirks.

## COMP4

The COMP4 project requires that students undertake a project of their own. VB.NET offers the ability for students to build console apps, forms, websites or phone apps. Students should not use Visual Basic for Applications.
Microsoft has made video tutorials available on its Beginner Developer Learning Center which increase in complexity through three tiers. The first tier introduces the Visual Studio programming environment. The second tier focuses on the key features of the language through forms. Finally the third tier follows the development of an RSS reader, this can be useful for COMP4 projects. They also have an introduction document in the MSDN Library.
Home and Learn also offers useful tutorials on building a forms application, Visual Basic .NET Programming for Beginners.
The general wikibooks VB.NET article may also be useful.

## Books

Useful printed books are as follows:
| Title | ISBN | Suitable for |
| Sams Teach Yourself Visual Basic 2010 in 24 Hours: Complete Starter Kit | 978-0672331138 | Applications and databases |
| Visual Basic Game Programming for Teens (3rd edition) | 978-1435458109 | Games and Graphics |
| Sams Teach Yourself ASP.NET 4 in 24 Hours: Complete Starter Kit | 978-0672333057 | Websites |
| (no known command line books) | | |