MAT1101
> Discrete Mathematics for Computing  
| Departmental Course Homepage | Resource download site | USQConnect | Helpline
Return to Homepage
 
 

Click here
to expunge 
informal view

Synopsis

This unit introduces the basic elements of discrete mathematics which provide a foundation for an understanding of algorithms and data structures used in computing. Included are aspects of the machine representation of integers and floating point numbers, algorithms for lists, recursive and iterative functions, logic, proof,  graphs and trees. 

How are numbers represented in a computer? 

How can this representation be used to perform arithmetic operations? 

The unit, Discrete Mathematics for Computing, introduces the mathematics underlying the engineering solutions to these questions. 

Binary representation and arithmetic based on a place value system with a base of 2 using the symbols 0 and 1 (corresponding to on or off) and some of its limitations are considered for both whole numbers and fractions.

The nature of the circuitry required to give the results of adding two numbers is also considered.

The half adder (above) takes two binary digits such as p and q, each of which could be either 1 or 0 (meaning that there is, or is not, a current flowing in the corresponding piece of wire) and delivers the correct outputs for addition. 
The outputs could come from any of 
     0+0 = 0;  0+1 = 1;  1+0 = 1  or  1+1 = 10. 
In the last case a two digit output is produced, so, in terms of two digits, the possible outputs are  00,  01  or  10 
The first digit is called the carry and the second the sum. 
The correct output is that there will, or will not, be current flowing in the pieces of wire marked sum and carry as given by the addition process. 
 To analyse what is required in computer circuitry, we need to be able to analyse combinations formed using the logical operators and, or and not
This unit therefore also deals with logic. 

Try Smullyan's book for a taste of logical deduction. 

The design of computer networks motivates the study of what technically are called graphs. Trees, which are a special kind of graph, have applications in decision making, in the interpretation of expressions for calculation sequences and in codes. Including the many applications for the Travelling Salesman problem, graphs are significant not only in computer science but in areas of operations research as well. The final module of the unit is devoted to graphs.  Historically, the original graph theory problem was that of the Koenigsburg Bridges (see below) and was solved by Euler.
Underlying all is the idea of relationships between various sets of objects.  In particular, there are equivalence relationships, ordering relationships and functional relationships. Proving things about relationships is an important part of this unit. 

Functional relationships are particularly important for computer professionals, since the relationship between input data and computer output is a functional one. Functions applied to lists of objects are fundamental and the unit devotes some time to considering them. Some time, too, is devoted to writing clear instructions for executing the operations required to achieve the effect of particular functions. Written effectively these algorithms can be translated into code for high level computer languages. 

When the running of a computer program (function) calls for the running of that same program on smaller data in the process of its execution, we have what is called a recursive function. Recursive processes (functions) are well illustrated by the Tower of Hanoi problem (the design of the original box for this puzzle is shown at left).  Recursive functions are closely related to iterative procedures (procedures that are repeated over and over) and to the Principle of Mathematical Induction.

 Hopefully this description makes it easier to understand the unit synopsis : 
This course introduces the basic elements of discrete mathematics which provide a foundation for an understanding of algorithms and data structures used in computing.  Included are aspects of machine representation, algorithms and data structures, logic, proof, recursive algorithms, graphs and trees.