Our public "Lua Programming" course takes you from the
basics of the language
to the more advanced features. It teaches you not only the language
but the techniques you can apply within the language to write powerful, easy
to maintain scripts with good code reusability.
Lua has been designed
to have a small footprint, yet you'll learn on this course how easy it is to
build on the basic structures to write code cleanly
The final afternoon of the course takes you through
a number of applications of Lua such as using it on the web, and heavy data
handling. You'll see the practical use of the facilities and
techniques you have learned about.
Some prior Programming experience. See
The Lua Programming language is a lightweight scripting language
which is becoming very popular in gaming and other applications. Its
closest relatives include Icon, and Python for its ease of learning and
use by non-programmers.
|Introduction to Lua. (module U101) What is Lua.
Hello Lua World.
Where is Lua used?
|Numbers and the Math library. (module U102) Variables and variable conventions.
Expressions. Operators. Rounding.
Type and Conversion Functions.
|Conditionals and loops (module U103) If while repeat break do and for.
Comparing numbers comparing strings.
Equality and nil.
|Strings and the String library. (module U104) Double and single quotes, square brackets and backslashes.
String concat, length, etc.
Formatting numbers in to strings.
String Conversion Functions.
|Tables and the table library. (module U105) Introduction.
Tables as arrays.
Table equality and copying.
Sort, Concatanate, remove and others.
Table Traversal Functions.
Building other structures from tables.
|Functions. (module U106) Defining and calling functions.
Chunks as functions.
Upvalues and Closures.
Variable Argument Lists.
Nesting and passing functions and recursion.
|Pattern matching (module U108) Anchors, literal characters, counts and groups.
Capturing matchs, capturing all the matches (global)
Pattern Based functions.
|Modules (module U109) The require function.
Module directory and environment variables.
Globals and Strict.
Other Module Functions.
|Object Orientation - the Lua way (module U107) Mutable and Immutable Values.
MetaMethods and functions as members.
Metatables, __index, __add and __lt.
Polymorphism and inheritance.
|Input / Output (module U110) Keyboard and screen at a lower level.
Opening and closing files.
Reading and writing files.
File status checks and file system operations.
Other file system functions.
|Trapping and handling errors. (module U111) Logic, syntax, runtime.
Assert and Error functions.
Error Containment Functions such as pcall.
|Other Standard Library features. (module U112) Maths functions - trig, log, random, geometric, etc.
Time and date functions.
Environment, Metatable and Chunk-Loading Functions.
|Installing Lua (module U113) Sourcing and building Lua (Linux, OSX, Windows)
Garbage collection and implementations.
|Threading and Coroutines. (module U114) Coroutines as co-operative programs.
Transferring control and maintaining state.
Concurrent tasks, and keeping them apart.
Event handling - event loops and yielding.
|Building and using community libraries. (module U115) gd - Graphics.
SQLite - Database.
Using MySQL from Lua.
LuaSocket - Network Programming.
|Network Lua. (module U116) Providing web content with Lua via CGI.
LuaSocket, Server and Client programming.
Application protocols such as http.
|Other Lua Subjects (module U117) Environment.
Using Lua and C together.
|Resources. (module U118) Books, Web Sites.
The Lua Wiki.
Mailing lists and Forums.
|New in Lua 5.2 (module U198) Yieldable pcall and metamethods.
Lexical scheme for globals.
Library for bitwise operations.
Light C functions.
Emergency garbage collector.
Finalizers for tables.
|Programming Standards in Lua (module U199) Commenting and Documentation strings.
Variable, function, object naming conventions.
Constant, module, package and class naming.
Block, function, class and module structuring and code reuse.
Indentation, contuation, spacing and other formatting issues.
A special note on end.
Design patterns and coding standards.
Algorithm robustness - limits, cardinal values and other issues.
Learning from the experience of other languages.
Applying standards to existing code.
Minimum release levels and requiring extra modules / packages.
, England. A taxi transfer can be arranged if you'll be
- our own
purpose fitted training centre and business hotel / conference centre in
|| 2 students
|| 3 students
|| For 4 or more students
from the same company,
please consider a private course.
| With hotel room
($2256.00 inc VAT) or
(£1392.00 inc VAT)
($1860.00 inc VAT) or
(£1140.00 inc VAT)
| With hotel rooms
($4452.00 inc VAT) or
(£2724.00 inc VAT)
($3660.00 inc VAT) or
(£2220.00 inc VAT)
| With hotel rooms
($6648.00 inc VAT) or
(£4056.00 inc VAT)
($5460.00 inc VAT) or
(£3300.00 inc VAT)
• Multiple discount applies to bookings for second and subsequent delegates on the same running of a course, and on same order.
• Hotel rooms are available for arrival the night before the course starts, for departure after the end of the course on the last day.
Upon completion of your course, you'll have online access to the source code of
all the examples from the course, and you'll have access to the
"Ask the Tutor" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropriate.
For more information about our public courses in general, such as class size, course times, materials provided, special requests, accommodation list, finding our centre, etc.
Covering topics such as delegate substitution, payment, cancellation policy and other matters.