1 Introduction

Google site search


1.1   Preface        

1.2   Goals of this document        

1.3   A Brief History of Computers and Information Technology        

1.4   Information Technology Theory        

1.4.1   Logic        

Logic Theory tells us that it is trivially easy to ask questions that do not afford an answer. It is equally easy to ask questions which can be reworked endlessly to no clear result or purpose. These results give some insight into the mechanics of discursive religious and philosophical debate. The results are also important in helping us understand what computers can be expected to do. And they allow us to recognise the limitations of rational debate.

1.4.2   Language Theory        

This topic gives us some understanding of what the common elements of computer (instructional) languages are. The simpler forms of language structure such as regular expression are now parts of most programming languages. More elaborate structures are context free and context sensitive languages. It is important to be able to recognise the character of a language that is being used in any particular situation in order to be able to understand its capabilities or inherent complexities. Instructional language is a subset of natural language, and we learn a lot about natural language in the process of studying instructional language.

1.4.3   Set Theory        

Basic set theory and boolean algebra are often taught at Y9. But the real issues in set theory are related to Logic. It is easy to misuse set theory if the underlying assumptions are transgressed. For example, when we talk about ''everybody'' in relation to implementing some social policy, who do we really mean?

1.4.4   Graph Theory        

This is recommended in the curriculum at Y12-13. An understanding of basic theory as well as minimal cost and maximal flow problems. In addition some practical projects are recommended. This is an important management skill for even a non-maths person to have some knowledge of. For example: These issues are perhaps properly placed directly in the ICT curriculum, and should be coordinated with the Maths curriculum so students taking maths have covered the basic theory first. The types of school projects that require the use of project control are for example major Social Studies projects which may last 2 to 4 terms. They will involve complex issues that require mature judgement and so are appropriate for Y12-13. This indicates Graph Theory should be taught in Y12 Term1 if such projects are being attempted.

1.4.5   Function Theory        

Function Theory has barely made it out of Post-graduate studies yet, but it is the key aspect in Artificial Intelligence (AI). Relation theory is also a precursor component to Function Theory. Relation theory is used in a mainly descriptive way in Relational Database Theory. It is important in showing us how to organise information so that it is easily accessed and updated.

Function theory on the other hand deals with how operations can be combined together. Function Theory has some important results which will eventually do for computer programs what relation theory did for the computer information. It gives us a set of rules which provide a rigourous framework for computer programs that will provide the basis for Artificial Intelligence in about 10 years.

1.4.6   Finite Mathematics        

This topic covers the topics which we need to determine the efficiency of computer programs. It includes counting combinations of things, which is closely related to probability theory, and recursive functions, summation algebra, and convergent sequences and algorithms.

1.4.7   General Topology        

This is a more highly structured aspect of relational and set theories. Similarly it tells us how to organise data. There are various results which centre around the idea of neighbourhood or close assocciation. An example is a computer's file structure where files are collected in directories as an indication that they are associated. General Topolgy gives us useful results about how to organise and manipulate collections of things and also what the pitfalls are. It also tells what basic precedure we should need to do this, that is to say what constitutes a complete set of tools.

1.4.8   Probability Theory and Stochastic Processes        

This is closely allied to Finite Mathematics and is used to calculate the efficiency of programs. Stochastic Processes are used to calculate the load on servers to make sure they can meet demand. Both of these topics have great use in Social Studies. Probablility theory will likely be in demand at Y10. The mathematics of stochastic processes is very complex requiring a strong maths background so it is unreasonable to ever expect it to be covered before Y12.

1.5   What should teachers know?        

The above topics could be pertinent in any curriculum area depending on what sort of projects might be attempted using ICT. The arrival of ICT in schools means that students are now able to attempt tasks that were previously resource prohibitive. Both students and teachers need to learn the basic theory in order to use ITC tools properly.

1.6   What software should teachers use in class?        

1.7   Tcl and the Programming Projects        

1.7.1   Why Tcl        

Tcl was invented around 1988 as a distillation of the fundamentals of programming language which had been learnt over the previous decade. Tcl represents perhaps the most concise distillation of what a programming language needs to be, and as such is never likely to be improved on. It is so simple its rules can be written on the back of a postcard with no fineprint.

Tcl was quickly picked up in tertiary and some scientific establishments by non-programmer technicians who wanted a good language with liitle learning curve. Acceptance beyond this circle has been slow, partly because its initial platform was unix which was mainly used in the same educational and scientific world. So the future of Tcl has been somewhat tied to the future of unix which has been slow and steady.

The development of the net has pushed unix into the forefront of operating systems. Also Tcl has been generalised to Windows and Mac platforms with no major crinkles, and with only a few limitations naturally dictated by the new platforms. In the race to be part of the net the language perl beat Tcl to the post and became the default cgi script language used by servers. This was mainly because perl was a very limited language that could be used safely in the net without providing doors for hackers. Tcl was then issued in a form in which its more powerful features could be controlled, safe Tcl so that hackers could not use its powerful features to create havoc. However Tcl is still trying to recover ground in its position on the net. The Tcl plugin while readily available, is not yet a bundled feature provided with major web servers, as perl is.

However the position of Tcl in the computer community is slowly consolidating as more home users discover it and its potential to solve seemingly insurmoutable tasks with ease as many of the projects in this course will demonstrate.

Tcl comes with an extension which gives ready access to windows programming features, this is the Tk part of Tcl/Tk. Tk has ensured the continued survival of Tcl by allowing graphical interfaces for any application program to be written easily.

The definition of Tcl is very simple, but is amenable to being extended in any direction your imagination choses. These extensions are numerous and readily available to increase the power of Tcl to do specialist tasks, but they are not included in the base configuration of Tcl. Components are only incorporated into the base edition of Tcl when a major general need is seen to be met. This means that Tcl/Tk remains a managably small environment to learn and use, though it is not all that small as a glance at any book on Tcl/Tk will indicate.

Tcl is an interpreted language which is ideal for learning applications which require the following properties:

Compiled languages such as C++ are used for other reasons such as: But these benefits are only sought when a program is going to be used massively over a long period of time. Programming exercises are generally not expected to be used beyond their test phase. Compiled languages tend to have disadvantages for the education sector:

Historically interpreted languages such as Basic have been used in education to sidestep these problems.

The Tcl Advocacy page gives a brief outline of the features which Tcl has in common with some other scripting languages. We are of course interested more in the differences and the advocacy page assumes readers understand the issues behind such phrases as ''great regular expression''. I will explain the significance of some of these:

One area where Tcl is of particular relevence is in the area of Infrastructure between the Ministry of Education and Schools. As an example, there is now a call out to actually assess whether the Ministry of Education is meeting its defined aims of raising educational levels. This will require an assessment system. What that system should be is still under debate. But developing a system involves some major hurdles.

1.7.2   Why Use Tcl Programs        

In this course I take the opportunity to use programs written in Tcl in order to teach students how to use various applications, whether it is simple text editing, using a compuer for drawing and so on.

1.8   Reinventing the Wheel        

1.9   Assessing Programming Assignments        


©2000 - 2006 WEBSCOOL This page last updated 26 Jun 2006. All rights reserved - including copying or distribution of any portion of this document in any form or on any medium without authorisation. For more regarding the copyright.