Bill's Tutorials

on programming


JavaScript is similar in many respects to Java but it is easier to learn and a good place for beginners to start programming, or coding. With the introduction of HTML5, JavaScript has become a graphical web programming language and has replaced Flash and Java as the main browser programming language. Unlike these languages it is compatible with a wide range of delivery systems including laptops and mobile devices which only have lightweight browsers without Flash or Java plugins. JavaScript can run in any browser.

HTML5 is the latest version of the HTML that is used to write web pages. It is a major advance on previous versions in that it has built-in audio and video as well as a canvas element. The canvas is what makes graphical displays possible. So, to learn how to program in JavaScript you also have to learn how to code HTML and style sheets.

Start Programming with JavaScript

For a more complete introduction to JavaScript and HTML5 you can read my book, "Start Programming with JavaScript". This can be purchased from the Amazon bookstore in Kindle or paperback format. It is an introduction to HTML, style sheets and JavaScript programming for complete beginners, culminating in the development of a number of JavaScript applications. These include a calculator, a clock and a chess board.

JavaScript Tutorials: Here are some tutorials on JavaScript and its associated web technologies:-

HTML5 is the latest version of HTML with full graphics and audio and video capability..

Style Sheets are important as a means of styling web pages and making them attractive and consistent..

JavaScript is the means of adding dynamic functionality to a web page.

JavaScript Examples: To get you started here are some examples that you can add to your own websites.

JavaScript examples , a fully functioning analog clock, a calculator, a set of bouncing balls and a board game that you can add to your own web pages. You just have to copy the JavaScript code into your web page html source code. You can modify and resize the applications any way you like.


Android Java

Android apps are written in two languages. One is a version of XML that is used to create user interfaces for Android mobile devices and the other is the Java code that provides the programmed action.

Start Programming Mobile Apps with Android Java

Java is a very widely used programming language and comes in several varieties. There is Java for desktops, Java for web servers, Java for web pages and Java for Android mobile devices. Android Java has to be coded in a particular structure which is sometimes described as a framework. This provides the structural component classes and other helper classes in an API (an application programmers interface). These are imported into the app as required.

You can learn how to develop and publish your own Android app by reading a book. Again I can recommend my own book, "Start Programming Mobile Apps with Android Java". This is available on the Amazon bookstore in Kindle and paperback format. It is aimed at beginners to programming and to Android development. To make life easier and more interesting for beginners, it concentrates on Java coding with very little need for XML and develops a series of real extendable apps. The last of these is a game called Getball which is available for free download from the Google Play Store and described in more detail here.

Android IDE: To develop software applications you need another software package called a development environment. This provides all the Java classes you need and if it is an Integrated Development Environment (an IDE), it also lets you compile your source code into an executable app and test it. There are several IDEs available for Android apps of which Eclipse has been the most widely used for some time. However, Google, the provider of Android, has withdrawn support for the Eclipse plugin and now recommends Android Studio. Here are tutorials on how to use two IDEs.

Android Studio lets you develop apps on a computer and test it on a device emulator or on a real connected device..

AIDE lets you develop apps on the Android device itself and test it on that device.

Android Graphics: Further tutorials are available for Android Java Graphics, that is, graphics produced with Java code rather than the XML layout files. There is a summary of all the Android tutorials here and currently there are four tutorials, as follows:-

Graphics Shapes, an introduction to Android graphics and the graphics classes.

Scaled Graphics, a summary of methods of producing graphics presentations that will scale to any screen size.

Path Graphics, an introduction to the Android Path class that can be used to create complex figures.

Graphics Color, a summary of the use of color in Android graphics and computer systems generally.

Android Apps: I use the the Android framework to produce Android apps for educational and entertainment use. These are published under the Debden label. You can look through a summary of these apps here. Currently they are published on the Amazon App Store and the Google Play Store from which you can download them directly into your Android device. They include the following:-

Deb Draw is a useful drawing app. You can use it like a pen and paper and save the images as jpg files. There are three versions. One is a free version called Deb Draw Free. Another is the premium version called Deb Draw with a number of enhancements, and the third is the Amazon Underground version, Deb Draw Underground. This is exactly the same as the premium version but entirely free.

The Underground version is only available through the Amazon App Store but this can be downloaded from the Play Store and used in all Android devices. From the App Store you can download Amazon apps including the free Underground apps. To run underground apps you also have to download a free app from the App Store. This allows Amazon to pay developers a small commission instead of expecting them to charge for their apps or include ads. So it is a very good deal for the user.

Getball is a small game app that involves trying to retrieve a ball from an opposing team. It is mainly intended to illustrate my book on Android Java but is also a viable app in its own right. The idea is that you should be able to extend the app to create your own game after going through the book.



Scratch Cat

The easiest way to learn how to code is to use the MIT Scratch programming software. You can write Scratch programs online by registering on the MIT website. Then you can share your work with a global community of Scratchers. Or, if you prefer to code offline, you can download the Scratch 2 version and upload your work to the website if and when you feel like it.

Scratch programming is easy because there is no text input required and no need to learn a complicated coding syntax. Typing errors are not a concern. Instead the Scratch programming environment lets the programmer simply drag blocks of code into position like jigsaw pieces and create a program that way. You only have to learn the logic of programming and that is transferable to other languages.

The only downside of Scratch is that your programs can only be published to the Scratch community via the MIT website or distributed to other Scratchers who have the development software installed in their computers. But you can entertain your friends and family on your own computer.

Scratch Tutorials: Here are some links to my tutorials. First there is an up-to-date summary here. Then there are currently three tutorials as follows:-

Introduction to Scratch - a general introduction to the Scratch development environment.

Bat and Ball application - the traditional example of Scratch animation and user interaction.

Clock application - an analog clock that shows current system time as another example of Scratch animation.

Drawing application - an app that allows the user to draw pictures on the Scratch screen and save them as JPG files.

Dodger - a game in which a cat sprite doges falling dog sprites.



Class diagram

Before you start programming a software application you should try to design it. This means finding out what the users would like the application to do and deciding what is the best way to give them what they want. This is a vital stage in the development of large to medium software products and is even useful for quite small applications. Good design work can save a lot of time and effort at the coding and testing stages.

Even if you are developing a relatively small JavaScript web application or an Android app you should try to anticipate who the potential users might be and what they would like the software to do. Some design work would be very useful.

The most widely used basis for object oriented software design is UML, the Unified Modeling Language. This is a formal language, mostly based on diagrams, that is now the standard tool for software development.

UML Tutorials: You can find a summary of my current UML tutorials here. More tutorials will be added from time to time. At present they are as follows:

Requirements Analysis, the preliminary to a software design process.

Analysis and Design, Moving from the analysis stage to the design stage

UML State Diagrams, sometimes describes as state machine or statechart diagrams


More tutorials will be added from time to time. If you would like to contact Bill you can do so through the email link here.