Sunday, 22 June 2008

M.Sc Project Investigation Report A Boolean Logic /Logic Gates Computer Aided Learning System

M.Sc Project Investigation Report
A Boolean Logic /Logic Gates Computer Aided Learning System
Daramola, Ebenezer Adeyinka
2008



A report submitted as part of the requirements for the degree of M.Sc in Computing: Software Technology with Network Management at the Robert Gordon University, Aberdeen, Scotland
Acknowledgement

All honour, praise and adoration to God the Almighty for his grace and mercy and for the opportunity he gave to me to successfully carry out this investigation.

I wish to appreciate very profoundly, the immense and unquantifiable support, advice and contribution of my amiable and indefatigable Supervisor, Dr Roger McDermott to the success of this investigation. Thanks so much.

Also, I will like to appreciate the magnanimity and support of my sponsor, Petroleum Trust Development Fund (PTDF), Nigeria.

I wish to also thank my parents Pastor and Mrs. Daramola and my siblings for their support and love.

To you all I doff my cap.



Abstract

There is currently a requirement for a good computer-aided learning package that would facilitate the teaching of Boolean logic and logic circuit to high school students and first year undergraduate students. This report presents the result of the investigation carried to facilitate the development of such package that can be used on a computer system that will be able to interact with students or users who intends to learn the fundamentals of Boolean algebra and logic circuits.

The report addresses appropriately, the problem domain of the project, software evaluation and tools to be used, the programming concept and approach and a clear statement of the project requirements specification.

This report will serve as the bedrock for the implementation of the project in its next phase.


Table of Contents
Declaration. ii
Acknowledgement iii
Abstract iv
Table of Contents v
List of Figures vii
List of Tables viii
Chapter One……………………………………………………………………………………………………..1
1.0 Introduction. 1
1.1 Aims of the Project 1
1.2. Objective. 1
1.3 Related projects done in the past 2
1.4 Motivation. 2
Chapter Two. 3
2.0 Problem Domain Analysis 3
2.1 Computer Aided Learning (CAL) 3
2.1.1 Conscious or Direct Learning. 3
2.1.2 Subconscious or relative learning. 4
2.1.3 Computer Learning Methods 4
2.2 Event Driven Programming. 5
2.3 Human Computer Interaction (HCI) 6
2.3.1 Interaction Devices and Tools 6
2.3.2 Graphical User Interface (GUI) as a Tool for Effective and Efficient Human Computer Interaction. 7
2.3.3 Response Time in HCI 7
2.4 Boolean Logic/Algebra. 8
2.4.1 AND Operator 9
2.4.2 AND Gate. 10
2.4.3 AND Truth Table. 11
2.4.4 Venn Diagram Representation of AND operator 13
2.4.5 OR Operator 13
2.4.6 OR Gate. 15
2.4.7 OR Truth Table. 16
2.4.8 Venn Diagram Representation of OR operator 17
2.4.9 NOT Operator 18
2.4.10 NOT Gate (Inverter) 18
2.4.11 NOT Truth Table. 19
2.4.12 Referential Gates 20
Chapter Three. 24
3.0 Software Evaluation, Programming Concepts and Approach. 24
3.1 JAVA. 24
3.2 Development Methodology. 25
3.3 Design Approach by Previous Developers 25
3.4 Software Development Process 26
Chapter Four 28
4.0 Project Requirements Specification and Educational Concept 28
4.1 Design Objectives 30
4.2 Design Goals 30
4.3 Educational Concept, Audience and Lessons Creations 30
4.4 Prerequisite. 31
Chapter Five. 32
5.0 Conclusion. 32
Reference. 33
Appendix. 34



List of Figures
1.1 Traditional AND gate……………………………………………………………………….10
1.2 IEC AND gate…………………………………………………………………………………..11
1.3 Venn diagram representation of AND operator…………………………….13
1.4 Traditional OR gate………………………………………………………………………….15
1.5 IEC OR gate……………………………………………………………………………………..15
1.6 Venn diagram representation of OR operator……………………………….18
1.7 Traditional NOT gate……………………………………………………………………….18
1.8 IEC NOT gate……………………………………………………………………………………19
1.9 Venn diagram representation of NOT operator…………………………….19
1.10 Traditional and IEC NAND gate……………………………………………………….20
1.11 Traditional and IEC NOR gate…………………………………………………..…….21
1.12 Traditional and IEC EX-OR gate………………………………………………………22
1.13 Traditional and IEC EX-NOR gate……………………………………………………23


List of Tables
1.1 AND Truth Table with True and False as Inputs………………………….11
1.2 AND Truth Table with 1 and 0 as Inputs………………………………………12
1.3 AND Truth Table with High and Low as Inputs…………….….………….12
1.4 AND Truth Table with ON and OFF as Inputs……………….…….……….13
1.5 OR Truth Table with True and False as Inputs…………………………….16
1.6 OR Truth Table with 1 and 0 as Inputs………………………………………..16
1.7 OR Truth Table with High and Low as Inputs…………………………….…17
1.8 OR Truth Table with ON and OFF as Inputs……………………………….…17
1.9 NOT Truth Table……………………………………………………………………………..19
1.10 NAND Truth Table……………………………………………………………………………20
1.11 NOR Truth Table………………………………………………………………………………21
1.12 EX-OR Truth Table……………………………………………………………………………22
1.13 EX-NOR Truth Table…………………………………………………………………………23
Chapter One
Introduction

This project is meant to develop a good computer-aided learning package that would facilitate the teaching of Boolean logic and logic circuit to high school students and first year undergraduate students. The package would offer the user a comprehensive set of tutorial exercises that will help in learning the rudiments and fundamentals of Boolean logic/algebra and logic circuit.
The key techniques for this project which will be discussed further in the project investigation are:
· Computer aided learning(CAL)
· Event-driven programming Language
· Human computer interaction
· Software development
· Boolean Algebra and Logic Circuits

1.1 Aims of the Project
The aim of this project is to investigate the use of CAL in education and the use of an Event-driven Programming Language to:
· Develop a suitable set of tutorials that will teach users the basic fundamentals of Boolean algebra/logic and logic circuit.
· Develop a suitable logic circuit simulation
· Develop an application using an Event-driven programming Language.
1.2. Objective
The objective of this project is to develop a good interactive system that will be able to teach the rudiments and fundamentals of Boolean logic and logic circuits.
It is expected that after going through the lessons created, the users would have had a good fundamental knowledge of Boolean algebra and will have prepared the student to be able to proceed with the learning of advanced digital electronics.

1.3 Related projects done in the past
The Wake Forest University once designed an interactive system for teaching Logical circuit in 2000 through a group of scholars Jeremy, K. et al, “Design of an Interactive Tutorial for Logic and Logical Circuits”, which was published by The Association for Computing Machinery, Inc. in 2004. They achieved this by designing a java application for its implementation. Though, the complete work of their design is not yet available as at the time of compiling this report, it was seen that a GUI was designed as an interface through which the user can interact with the system.
Andreas Tetzl a Computer scientist has also done something in this line in the past. He also used Java programming language in achieving the project. The method adopted by him will be discussed in this report under software evaluation and programming concepts.

1.4 Motivation
I am quite challenged to do this project because; it will aid self learning of the subject area of this project. Student will be able to learn about Boolean algebra and logic circuit at their own pace and more easily since the system to be built will be quite interactive where the user can interact with the system via a graphical user interface.
It will serve as a good alternative to the existing modes of teaching the topic which are through slides or textbooks.















Chapter Two
Problem Domain Analysis

This project cuts across a wide scope and areas which are treated in this chapter.
2.1 Computer Aided Learning (CAL)
Computer aided learning has become a veritable system adopted in acquiring knowledge or information. The computer has become an effective tool that could be used in implementing virtually all required human endeavour with the appropriate software to backup such.
Learning as a process entails the acquiring of knowledge through various means which could range from direct human interaction where knowledge is directly passed from one person to the other or it could be inform of learning via a pre-designed system where such knowledge could be acquired whenever it is required.
Computer aided learning can come in various forms. I simply categorized these into two which are conscious or direct learning and subconscious or relative learning. Sissel, G. S. et al in their research identified two learning systems, implicit and explicit learning. (Sissel, G. S. et al., 2000).
2.1.1 Conscious or Direct Learning
This type of learning is more cognitive as it is rightly designed and channeled to a particular base. It is systematically structured to aid progressive acquiring of knowledge. This learning process is formalized and structured to follow a particular pattern or flow. “It is 'educative learning' rather than the accumulation of experience. To this extent there is a consciousness of learning - people are aware that the task they are engaged in entails learning” (SMITH, M. K., 1999)
2.1.2 Subconscious or relative learning
This mode of learning is not planned or arranged. Knowledge is acquired through performing some activities which inherently place some knowledge in the mind by virtue of the processes taken in the learning process. This gained knowledge is not directly sought for but comes as an unsolicited attachment relative to the process involved. The try and error method of solving a problem can also be said to fall into this category of learning system where a number of unstructured methods are adopted to arrive at a solution without initially conceptualizing the idea.
2.1.3 Computer Learning Methods
Various learning methods have been identified through the computer user interface. The user interface forms a very important aspect of the computer learning system. This interface is designed to aid the user interaction with the system for efficient and effective learning. The user interface is also said to be; "the parts of the system with which the user comes into contact physically, perceptually or cognitively." (Sissel, G. S. et al., 2000.).
Human computer interaction is seen as a method of relating with the computer in an interactive manner. It is analogous to a two way reaction where an action from a side triggers a reaction from the opposite site.
User interaction with the computer could be graphical which is known as Graphical User Interface, (GUI) where the user interact with the system by using the mouse in triggering an event or it could be through the command line where the user types the required command needed to perform the action. Example of GUI is the Microsoft Windows (XP or Vista) while Microsoft DOS is an example of command line interaction.
This project will be highly based on computer aided learning and all the principles and methods of it described above will be adopted in achieving the set aims and objectives of this project.
2.2 Event Driven Programming
Event driven programming is a programming paradigm in which actions are performed based on event occurrences.
A system that uses Graphical User Interface (GUI) in interacting with users such as windows has some tools via which users trigger events to perform certain actions. Events could be triggered on mouse click, mouse over, keyboard pressed or it could be triggered by other programs.
Users’ interactions with the GUI generate events. The interaction decides the sequence of events.
Graphical User Interface has some built in components called Objects such as, buttons, radio buttons, combo boxes, text fields and areas, menus, list amongst others. These objects are interacted with by the user either through the mouse or the keyboard to signal an event. Each of the objects is registered with an event listener to be able to sense when an event has been performed on it.
Event driving programming makes computer aided learning very easy and flexible. It aids user friendliness in the use of computer as users can interact quite easily with the system without having too much expertise of the system unlike the command line programming structure which is quite procedural where the user will have to remember all the commands required to perform certain action. In event-driven system, visual aids on the GUI are used where the user can merely click on an icon to perform a number of operations.
Any programming Language that adopts the use of events in performing actions at any point or level of its operation is said to be an Event-driven Programming Language.
There are number of programming languages that adopt the use of event driven programming. All the Object Oriented programming languages such as Java and C++ are event driven programming languages. Other programming languages that use this mode are: Visual Basic, JavaScript, Python and FoxPro amongst others.
An event driven programming language will be used in this project in designing the system. Details about this will be given under software evaluation.
2.3 Human Computer Interaction (HCI)
This project is highly based on human computer interaction because the learning process entails that, the user has a basic knowledge of computer and its tools to aid learning. The user is meant to request a specific action which the computer must respond to and at certain stages of the learning process; the computer will be coming up with some modal widows which the user is meant to respond to for the process to continue.
Human Computer Interaction (HCI) in definitive terms could be said to be a process where a person interacts with a computer to perform certain function or execute a process.
“Human-computer interaction is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them.” (Hewett et al., 1996).
2.3.1 Interaction Devices and Tools
The proposed system is meant to interact with the users via some of the computer tools. They include:
Keyboard: this will be useful in typing commands and inputting text or data entry required by the system to perform various tasks
Mouse: the mouse will be quite useful in dragging items, cursor movement, clicking icons and buttons, making selections in combo boxes, radio boxes and check boxes.
Monitor: this is the device for displaying information required by the user for the output of the system
The system I will be designing for this project will employ quite a number of the above techniques to aid friendliness of the system and to make the use quite easy and flexible.
2.3.2 Graphical User Interface (GUI) as a Tool for Effective and Efficient Human Computer Interaction
A well designed and structured GUI is a veritable tool at aiding proper HCI. It is a more friendly way of HCI compared to command line interaction.
For this project, a GUI will be designed to serve as an interface between the user and the computer.
2.3.3 Response Time in HCI
For effective interaction the response time of the system should be considerably low and this will be put into consideration in the design of the system.

2.4 Boolean Logic/Algebra
Boolean logic was developed by George Boole who lived between 1815 and 1864. It is said to be the foundation upon which digital electronics stand today.
In Boolean logic a statement could only generate two values of which only one of the two can be correct at a time. The two values are: true or false which could also be represented as high or low or 1 or 0 depending on where it is applied. Computer uses the Boolean logic to decide on the operation or action to perform. Most programming languages use the conditional statements to control event and occurrences in its application. These controlled statements use Boolean logic to arrive at a conclusion of what to do.
For example:
If (x==2) and (x==4), do something
Else, do something.
The above operation would either find x==2 and x==4 to be true or false and not both. If the statement is true, certain action is performed and if false, another action is performed.
The use of Boolean logic also finds application in our day to day activities and making personal decision or at reaching a logical conclusion.
Consider the following logic, an applicant is being considered for a job which required qualifications are, B.Sc Computing background and that the applicant must be a female. Decision on whom to employ is based on these qualifications. An applicant could either meet the qualification or not which could be true or false. If true, he meets the requirement and if false, requirements not met.
The use of these set of analyses will aid easy and quick arrival at conclusions.
Boolean logic uses a number of operators in making decisions. They are; AND, OR and NOT operators.
2.4.1 AND Operator
An AND operator is a Boolean operator that returns a value of TRUE or 1 or ON or High if both its operands are “TRUE or 1 or ON or High”, and “FALSE or 0 or OFF or Low” otherwise. Operands are the statements that are being compared by an operator. The AND operator is said to be a conjunction operator
The AND operator will only return true if and only if the two compared operands are true. If either or both the compared operands are false, the returned value will be false. When bits values are used, the operator returns 1 only if both operands are 1 and returns 0 for other combinations. When state of a circuit is being compared, the circuit is ON or HIGH when both inputs are ON or HIGH. The circuit is OFF or LOW for every other combination.
There are two types of AND operators:
Logical AND which is represented with two ampersand signs &&: when using the logical operator, the operands are evaluated from left to right. If the left operand returns a value FALSE, 0, LOW or OFF, the right operand will not be evaluated and the entire result will return a value, FALSE, 0, LOW or OFF. This reduces the run time or latency of a program as it makes the program run faster since it’s know that the AND operator can only return a TRUE value when both operands are TRUE.
Bitwise AND which is represented with one ampersand sign &: when using the bitwise AND operator, the two operands are evaluated irrespective of what the left side operand returns. This is useful when both operands need to be evaluated always. When using the bitwise AND operator, both operands must be integers. The output of a bitwise operation can only be either “1” or “0”.

2.4.2 AND Gate
The AND gate shown below is a digital gate that is used in digital circuit. It can have two or more inputs and one output. Its output is only true if all inputs are true.
This first symbol show the traditional way of representing the AND Gate and it is the most widely used symbol.
Input A
Input B
Fig 2.1: Traditional AND gate
Output Q



The other symbol used in representing the AND gate which is the IEC (International Electrotechnical Commission) symbol which is a rectangles with an ampersand sign (&) inside to show the gate function. This is not common in logic circuit despite its official status.


Input A
Input B
Fig 2.2: IEC AND gate
Output Q




2.4.3 AND Truth Table
This is the table that shows the results of all the possible combinations of operands in a Boolean expression. For logical operations using TRUE and FALSE, the following tables show all the possible combinations and outputs.
Input A
Input B
Output Q
False
False
False
False
True
False
True
False
False
True
True
True
Table 2.1: AND Truth Table with True and False as Inputs






For operations using bits 1 and 0, the following table is generated:
Input A
Input B
Output Q
0
0
0
0
1
0
1
0
0
1
1
1
Table 2.2: AND Truth Table with 1 and 0 as Inputs



For operations using HIGH and LOW, the following table is generated:
Input A
Input B
Output Q
Low
Low
Low
Low
High
Low
High
Low
Low
High
High
High
Table 2.3: AND Truth Table with High and Low as Inputs





For OR operations using ON and OFF, the following table is generated:
Input A
Input B
Output Q
OFF
OFF
OFF
OFF
ON
OFF
ON
OFF
OFF
ON
ON
ON
Table 2.4: AND Truth Table with ON and OFF as Inputs


2.4.4 Venn Diagram Representation of AND operator
The AND operation can also be represented using a Venn diagram as shown below:



A

AND
B

Fig 2.3: Venn diagram representation of AND operator



2.4.5 OR Operator
The OR operator is a Boolean operator that returns a value of TRUE or 1 or ON or High when either or both of its operands are TRUE or 1 or ON or High, and FALSE or 0 or OFF or Low only when the two operands are FALSE or 0 or OFF or Low. The OR operator is said to be a disjunction operator
OR operation can be represented with a plus sign “+” (e.g. A+B reads as A OR B).
The OR operator will only return FALSE if and only if the two compared operands are FALSE. If either or both of the compared operands are TRUE, the returned value will be TRUE. If bit values are used, the operator returns 0 only if both operands are 0 and returns 1 for other combinations. When state of a circuit is being compared, the circuit is ON or HIGH when either or both inputs are ON or HIGH. The circuit is OFF or LOW only when both inputs are OFF or LOW.

There are two types of OR operator. They are:
Logical OR which is represented with two vertical strokes sign “”: when using the logical operator, the operands are evaluated from left to right. If the left operand returns a value TRUE, the right operand will not be evaluated and the entire result will return a value TRUE. This reduces the run time or latency of a program as it makes the program run faster since it’s know that the OR operator will always return a TRUE value when either or both of its operands are TRUE.
Bitwise OR which is represented with one vertical stroke sign “”: when using the bitwise OR operator, the two operands are evaluated irrespective of what the left side operand returns. This is useful when both operands need to be evaluated always. When using the bitwise OR operator, both operands must be integers. The output of a bitwise operation can only be either “1” or “0”.
2.4.6 OR Gate
The OR gate is a digital gate employed in digital circuit to perform OR operations. The OR gate is represented with the following symbols:
The first symbol shows the traditional representation of the gate;

A
A + B
Fig 2.4: Traditional OR gate
B






The second symbol shows the IEC (International Electrotechnical Commission) symbol:
A
A + B
Fig 2.5: IEC OR gate
B






2.4.7 OR Truth Table
This is the table that shows the results of all the possible combinations of operands in a Boolean expression. For logical OR operations using TRUE and FALSE, the following table show all the possible combinations and outputs.
Input A
Input B
A + B
False
False
False
False
True
True
True
False
True
True
True
True
Table 2.5: OR Truth Table with True and False as Inputs


For OR operations using bits 1 and 0, the following table is generated:
Input A
Input B
A + B
0
0
0
0
1
1
1
0
1
1
1
1
Table 2.6: OR Truth Table with 1 and 0 as Inputs




For operations using HIGH and LOW, the following table is generated:
Input A
Input B
A + B
Low
Low
Low
Low
High
High
High
Low
High
High
High
High
Table 2.7: OR Truth Table with High and Low as Inputs


For operations using ON and OFF, the following table is generated:
Input A
Input B
A + B
OFF
OFF
OFF
OFF
ON
ON
ON
OFF
ON
ON
ON
ON
Table 2.8: OR Truth Table with ON and OFF as Inputs



2.4.8 Venn Diagram Representation of OR operator
The OR operation can also be represented using a Venn diagram as shown below:



A

OR
B

Fig 2.6: Venn diagram representation of OR operator



2.4.9 NOT Operator
The NOT operator is a Boolean operator that returns the opposite value of its input as output. The NOT operator unlike the AND and OR operators only evaluates one operand. If the value of the operand evaluated is TRUE, the NOT operator returns FALSE.
2.4.10 NOT Gate (Inverter)
The NOT gate is a logic gate that is also referred to as Inverter. The NOT gate has only one input and one output. The output is the reverse of the input.
The traditional symbol for the NOT gate is shown below:
Input
Fig 2.7: Traditional NOT gate
Output



The second symbol shows the IEC (International Electrotechnical Commission) symbol:

Output
Fig 2.8: IEC NOT gate
Input




2.4.11 NOT Truth Table

Input
Output
0
1
1
0
Table 2.9: NOT Truth Table


Venn Diagram Representation of NOT operator




A
B
NOT
Fig 2.9: Venn diagram representation of NOT operator

2.4.12 Referential Gates
Referential gates are gates that are derived from the three primary gates; AND, OR and NOT.
NAND Gate (Not AND)
The NAND gate is an inverted AND gate. Its output is an inversion of the AND output. When the output of an AND gate is connected to a NOT gate, a NAND gate is formed. For all possible combinations, the NAND gate produces a “1” only when both inputs are not “1”. When both inputs are “1”, a “0” output is obtained.
This is represented with a dot attached to the AND gate as shown below:

Input A

Fig 2.10: Traditional and IEC NAND gate
Input A
Input B





NAND Truth Table
Input A
Input B
Output Q
0
0
1
0
1
1
1
0
1
1
1
0
Table 2.10: NAND Truth Table

NOR Gate (Not OR)
The NOR gate is an inverted OR gate which has its output as the revise of the OR gate. For all possible combinations, the NOR gate produces a “1” only when both inputs are “0”. Other combinations produce an output of “0”. The following show the symbols for NOR gate and the NOR truth table.
Input A

Input A

Fig 2.11: Traditional and IEC NOR gate
Output
Input B
Output
Input B



NOR Truth Table
Input A
Input B
Output Q
0
0
1
0
1
0
1
0
0
1
1
0
Table 2.11: NOR Truth Table


Exclusive OR Gate (Ex-OR)
The Ex-OR gate can only have two inputs. It is like the OR gate but having a FALSE output for a combination of two operands with value, TRUE. The output is always TRUE if the values of the two inputs are different.
The following shows the symbols of an Ex-OR gate:


Input A
Input A
Output
Output
Input B
Input B

Fig 2.12: Traditional and IEC Ex-OR gate


Ex-OR Truth Table
Input A
Input B
Output Q
0
0
0
0
1
1
1
0
1
1
1
0
Table 2.12: Ex-OR Truth Table




Exclusive NOR Gate (Ex-NOR)
The Ex-NOR is an Ex-OR gate with an inverted output. The Ex-NOR gate can only have two inputs and one output. The output will always be TRUE if and only if the two inputs are of the same value.
The following shows the symbols for the Ex-NOR gate with the truth table.
Input A

Input A
Fig 2.13: Traditional and IEC Ex-NOR gate
Figure 1
Input B





Ex-NOR Truth Table
Input A
Input B
Output Q
0
0
1
0
1
0
1
0
0
1
1
1
Table 2.13: Ex-NOR Truth Table






Chapter Three
Software Evaluation, Programming Concepts and Approach

This project requires a very high level of programming mostly event driven programming for the human system interaction. There are number of options that could be adopted in achieving the set aims and objectives. They include: Java, C++, Visual Basic, PHP, JavaScript, Python and FoxPro amongst others.
For this project, I have decided to use Java as the programming language.
3.1 JAVA
Java was developed in 1991 by a group of Sun Engineers. This group was named the green team led by James Gosling.
“A Java application is a computer program that executes when you use the java command to lunch the Java Virtual Machine” (DEITEL & DEITEL, 2007, p. 38).
Java is an objected oriented programming language that looks like C++ but they are quite different. Java is platform independent meaning that, it can be run on any system that has the Java Virtual Machine (JVM). Java program is made of classes which has methods and attributes for specific functions.
I have decided to use Java due to the following reasons
Java is the main programming language that I have learnt so far and I believe it has all the facilities required to develop an event driven system.
Java has a rich collection of libraries called the Java APIs (Application Programming Interfaces). These are made of a number of classes that could be used in executing most required tasks.
Since the system to be developed is meant to be run on any machine, it is a good choice to use Java since it is platform independent and it can run on any machine.
Java can be made to run in a web browser and for this the developed program can be assessed and run online.
Java does automatic garbage collection; it supports encapsulation, inheritance, polymorphism and information hiding.
Java is portable and it supports high level of graphics.

3.2 Development Methodology
Java supports the use of classes for good abstraction. Several classes will be designed to handle various Boolean operations and gates for reusability. Graphics will be used to depict the various logic gates and circuit. Each gate will be designed on a panel that will form a complete card panel that houses all the gates and their equivalent truth tables.
Boolean theorems will also be handled by a number of java classes.
More of this design process will be extensively discussed in the project design and implementation phase.

3.3 Design Approach by Previous Developers
I was able to lay my hands on two past works done in this line by scholars. The first one was by a group of scholars of the Wake Forest University who designed an Interactive Tutorial for Logic and Logical Circuits. In their design, a GUI was used in interacting with the users where a number of logic gates and logic circuit were graphically displayed to indicate the processes. The report published after the work indicated they used Java programming language in designing the system but the software listings were not made available. The report only showed some screen shots of logic circuits and gates.
Also Andreas Tetzl a Computer scientist developed a Digital Logic Circuit Simulator which uses a GUI to display logic gates and circuits. The user can select any gate from the list of gates and form a complete circuit from this. Codes were written in Java to achieve this. In his design, a truth table can be completed by selecting certain checkboxes corresponding to the inputs of various gates. Different gates can be chosen from a list of gates to make a logic circuit and draw a line to connect the gates.

3.4 Software Development Process
This project shall be carried out in stages so as to give room for assessment of the ongoing work and also to help in tracking progress and processes involved in the project.
There are number of possible software development process models that could be adopted for the development process of the project. They include:
· Opportunistic model which is not a good approach to follow. It works without any clearly stated requirements
· Waterfall model: this allows the software to be developed in stages. It suffers the disadvantage that, design and implementation cannot be done until the total specification and requirements are gathered which most times is not feasible.
· Phased-release model: this model breaks the project into phases.
· Spiral Model: This model places importance on the use of prototype in the development process of the project to make sure the requirements are been met.
· Evolutionary model:
· Concurrent engineering model

Since I am in no way restricted to the use of any of the above model, I will be combining the best features of some of the models stated above depending on the particular need of the project as at when required.
From the waterfall model, I will be employing the concept of stages but will not require the concept that I can only go to the next stage, when the previous one has been completed.
I will be using Phased-release model to develop the several lessons and tutorial since this allows me to group the development into phases so, the tutorial development shall be in phases.
I will develop prototype using the spiral model approach during the software development to test the conformity of the software been developed to the stated requirements.





Chapter Four
Project Requirements Specification and Educational Concept

The project requirement specification is the users’ description of what the delivered system should do. It also includes the constraints on the development process of the system.
These requirements are grouped into two categories:
1. Minimum Functional Requirements: these are the basic functionalities of what the system is meant to achieve and also to provide for the users. The package when completed will offer the user a comprehensive set of tutorial exercises and laboratory simulation including a selection of the following facilities:
· Truth table completion for Boolean algebraic expression: the user of the system will be able to learn all the different truth table logic combination for the different gates. The GUI will have a card panel that houses all the different gates which the user can select from to learn about any of them.
· Creation of set of tutorials to teach the fundamentals of Boolean logic: a number of tutorials will be designed to aid further learning. Tutorials will be created starting from the basic fundamental to familiarize the user with Boolean algebra and subsequent tutorials will build on the lesson learnt from previous lessons.
· Creation of logic circuits from Boolean algebraic expressions: it is also expected that, users will be able to learn how logic circuit are created from truth table. For any given Boolean algebra, there will be the creation of an equivalent circuit to represent such
· Teachers should be able to add new set of tutorials as at when needed. There will be a teacher’s guide on how more tutorials could be added to the system so that at every point in time, the teacher could improve the standard of the tutorials.

2. Non-Functional Requirements: these are the constraints placed upon the development of the system. These are not system functions
· Time Constraints: this project is to be delivered within the stipulated given time. The deadline given will be strictly adhered to.
· Constraints on the development process: These include the features of the system to be delivered. It takes into consideration the following:
- Interface design: since this project is meant to be an interactive one where the user can interact with the system, a well designed graphical user interface with features to aid instructiveness and easy interaction will be required and this project will address and ensure this.
- Design of tutorials: the structure in which tutorials will take is quite important as such should be tailored towards effective and easy learning. This project will take cognizance of this ensure that tutorials are well structured.
- Efficiency and minimizing the chances of user error.
· Quality standard constraints: the quality of the delivered system is quite paramount and this deals with the conformity of the system to the specified requirements and that which could pass for an M.Sc standard.
· Software and Hardware Constraints: for this project, I will be using Java as the software developing tool for the system. Any of the standards Java IDE could be used but for this project I will be using textpad.

4.1 Design Objectives
· The developed system which is meant to be an interactive system will interact with the user through the keyboard and mouse.
· There will be a graphical user interface (GUI) to display designed lessons.
4.2 Design Goals
· The system will be designed to be user friendly in the sense that, user will be able to determine the pace of learning and navigation through the system will be made simple.
· The use of the system will also be made to be simple enough for every level of users to understand though user will be expected to have prior knowledge of computer as this project does not include the teaching of the use of computer.

4.3 Educational Concept, Audience and Lessons Creations
The lessons to be created in this project will be channeled towards teaching high school students who have little or no knowledge of Boolean logic or logic gates and first year undergraduates who chooses to learn the fundamentals of Boolean algebra.
The lessons will be made to be as interactive as possible to aid easy learning and that is why event driving programming will be used in creating the lessons so that the users can decide the sequence of events at their pace.
Lessons will be taken in a progressive way starting with the fundamentals to create a good background of the Boolean logic introducing the truth tables and gates, different gates combinations, theorems of Boolean algebra and circuits. The lessons are meant to advance as they progress.
Tutorials will be created in consonance with the lessons taken to aid more understanding of the concepts.
4.4 Prerequisite
To take this lesson, it is expected that the user has a basic knowledge of arithmetic algebra and computer. Since this lesson is channeled towards final year high school students and first year university undergraduates, it is expected that they would have been taught the fundamentals of arithmetic algebra which is part of the contents of high school mathematics curriculum for UK and Nigerian schools that may be the primary users of the proposed system. Knowledge of physics or basic electronics will also be required to aid the handling of circuits which will also be treated in this project.










Chapter Five
Conclusion

This project investigation process has afforded me the opportunity to understand the background of this project. I have been rightly aligned and positioned to appropriately implement this project. This investigation has also shed light into the problem domain of the project and the required specifications have been identified to aid proper execution of the project.
With the completion of this investigation, I can appropriately delve into the implementation of the project.











Reference

ANDERSON, J. A. 2001. Discrete Mathematics with Combinatorics. New Jersey: Pretence-Hall, Inc.
ANDREAS, T. 2005. Digital Logic Circuit Simulator. [online] Available from: http://www.tetzl.de/index.html [Accessed 20 May 2008]
DEITEL, P. J., DEITEL, H. M. 2007. Java How to Program.7th ed. London: Pearson Education Ltd.
HEWETT et al., 1996. ACM SIGCHI. Curricula for Human-Computer Interaction [online]. Available from: http://www.sigchi.org/cdg/cdg2.html [Accessed 31 May 2008].
JEREMY, K. et al., 2000. ACM. Design of an Interactive Tutorial for Logic and Logical Circuits. [Online] Available from: http://www.acm.org/crossroads/xrds6-3/tutorial.html [Accessed 25 May 2008]
Sissel, G. S. et al., 2000. Interaction for Computer Aided Learning. Interactive Multimedia Electronic Journal of Computer-Enhanced Learning [online] 2(1). Available from: http://imej.wfu.edu/articles/2000/1/03/index.asp [Accessed 26 May 2008]
SMITH, M. K. 1999 'Learning theory', the encyclopedia of informal education [online] Available from www.infed.org/biblio/b-learn.htm [Accessed 26 May 2008]
SHNEIDERMAN, B 1998. Designing the User Interface. 3rd ed. USA: Addison Wesley Longman, Inc.
university of new mexico, 2000. Boolean Logical Operators. University of New Mexico [online] 2(1). Available from: http://imej.wfu.edu/articles/2000/1/03/index.asp [Accessed 26 May 2008]


Appendix

Project Proposal
Title A Boolean Logic /Logic Gates Computer Aided Learning System
Proposer Peter Lowit
Type Simulation
Appropriate for MScCST / MScIS only
Key Techniques: Computer Aided Learning, Event-driven Programming
Languages, Human Computer Interaction, Software Development, Boolean Algebra and Logic Circuits.
Background
There is currently a requirement for a good computer- aided learning package that would facilitate the teaching of Boolean logic and logic circuits to undergraduate students. The package would offer the user a comprehensive set of tutorial exercises and laboratory simulations including a selection of the following facilities:
• Truth table completion for Boolean algebraic expressions
• Creation of logic circuits from Boolean algebraic expressions
• Derivation of Boolean algebraic expressions from logic circuits
• Workbench simulation allowing user to create own logic circuits and display such circuits in operation
Aims
• Investigate the use of CAL in education and the use of an Event-driven
Programming Language
• Develop a suitable set of tutorials
• Develop a suitable logic circuit simulation
• Develop an application using an Event-driven Programming Language.
References
[1] Ben Schneiderman “Designing the User Interface” Addison-Wesley 1998



No comments: