DESIGN AND DEVELOPMENT OF
ALGORITHMS FOR AN MP DRIVER
ASSOCIATED WITH A LEARNING
MODEL – A CASE STUDY
PROF. DR. P. K. SRIMANI
Former Chairman, Dept of Computer Science and Maths, BU, Director, R&D, B.U., Bangalore, India
ANNAPURNA S KAMATH*
Former H.O.D, MCA Department, Mount Carmel College, Director, Shishulok, 42, Satyashri, Sampigehalli,Jakkur,Bangalore 560064
ABSTRACT
This paper deals with the design and development of algorithms for a Mathematical Pathway driver. The MP driver is a network of Finite State machines [FSM] used to transit a child through the various learning levels in Mathematics. The purpose of the algorithms is to drive the FSM. A child makes a transition from one level to another on completion of learning at that level else it remains in the same state. The FSM saves the status of the machine and retrieves this and continues from this state when the child is ready to transit. The algorithms also build databases collecting significant data that can be used for performance analysis and learning analytics. The necessary data structures and databases are also designed. The MP driver forms the core component of the learning model and provides data to many other components. Design and development of algorithms using Computer based techniques to optimise learning is a novel approach.
Keywords:, Mathematical Pathway Driver, Algorithm, Finite State machine, Learning Analytics, Performance Analysis
1. Introduction
Among the subjects learnt at primary level the most interesting and challenging is Mathematics. It is a core subject with wide applications in all fields specially Engineering, Astronomy, Commerce, Industry and Research. A systematic approach to learning mathematics will enhance the quality of learning and also reduce math phobia. The purpose of the Learning model is to optimise the Mathematical Pathway in children to ensure learning is faster and smoother. Mathematics, unlike other subjects has concepts that are very much interrelated yet some can be learnt in parallel. In the Mathematical Pathway the child has scope to make parallel progress in different independent paths and at times has to wait to finish a particular task before moving on to another as he is required to fulfil a prerequisite. The concepts that a child needs to learn between 0 to 12 years are represented as Concept flow graphs [CFG] and Concept Framework Tables[CFT][1][2]. The CFG and CFT represent the progressive way of learning a concept. The Mathematical Pathway is a Network of these CFG and CFT. To learn mathematics in an optimal way a child has to transit through this pathway. Using the CFG and CFT a Finite state machine [FSM] is designed for each concept using automata theory. Each of this is a Nondeterministic FSM and also a Moore machine. These are called Learning Finite State Machines [LFSM][1]. Here each LFSM represents one concept. If a child has completed the prerequisite it transits to this new state. It remains in this state till the learning process is completed. The child then has to do a test which determines readiness for transition. If the child completes the test it moves to the next state else continues in the same state. To transit through this a Mathematical Pathway driver [MP driver][1] is constructed. It is a network of the LFSM. It is an integral part of the Learning model and is used to transit a child through the various levels of learning. The MP driver not only is responsible for transitions but also collects data required for performance analysis and learning analytics.
1.1 Literature Survey
teaching [6][7][8] has been used to make teaching learning effective, use of Mathematical or computer based approach has not been considered for design and development of these Learning Pathways. Though Automata has been used in Knowledge spaces and machine learning [9][10][11][12] no attempt to use it in education for the purpose of learning has been made. Absolutely no work in the area of application of automata theory and development of algorithms for learning finite State machine is available to optimise learning in children especially in the area of Mathematical learning. Therefore the present investigation is carried on to get qualitative as well as quantitative results.
2. Materials and Methods 2.1 Data Set Description
The data used for the development of the automata machine for the MP driver is the Mathematical content to be learnt between 0 and 12 years at the primary level. The primary source of data was obtained from educators and experts in Mathematics through interviews and questionnaires. Data was collected across India and also the ICSE, CBSE and State boards. Observation method was also used to understand the learning progression of children. The secondary source was the syllabus and frameworks defined by the various boards followed by the different schools across the globe. A global perspective was considered to ensure the learning model is generic in nature. The National Curriculum Framework of the Department of Education was the backbone for this work. Data collected was then categorized into different areas of mathematics. About eighteen concepts were identified broadly: Whole numbers, Addition, Subtraction, Multiplication, Division, Fractions, Decimals, Number system, Length, Weight, Volume, Time, Money, Geometry, Mensuration, Algebra, Data Handling and Ratio & Proportion. These concepts were used to construct the CFG and the LFSM.
2.2 Methodology
The MP Driver which is a Network of LFSM is the core component of the learning model used to optimise Mathematical learning in children. The learning model needs to drive this through algorithms which will not only transit a child through the Mathematical Pathway but also collect information that can be used for performance analysis and learning analytics[13][14]. The algorithms are designed by taking into consideration standard algorithmic features and the concepts of automata. The temporary data structures required for this are constructed and databases for permanent storage of data for later use by the other components of learning model are also designed. Appropriate techniques of database design are adopted.
3 Experimental Results and Discussion
The MP Driver which is a Mathematical Pathway Network of Learning Finite State Machine of the various concepts of Mathematics was implemented using algorithms. The automated component of ‘Ganitha Vithika’ has a Concept Teaching and Learning module which includes Concept Learning through Lesson Plans, Teaching Resources, Gifted Learning and Remedial Learning; Progress Tracking module which assesses the progress of a child through the Mathematical Pathway; Performance Analysis module which analyses the learning trends and patterns based on the progress data which can be used to refine the learning model.
First the data structures required for the implementation are identified. The algorithms were designed using these data structures. Databases were designed for permanent storage of the MP Driver status and the Progress Tracking data.
3.1 Data Structures for the Learning model
The following data structures were used:
Data structures required for traversing through the MP Network:
The Network can be represented as a linked list. Each node has two components NETWORK data Structure:
o Concept [Information about concept represented by the node] o Successor [Nodes to which transition is possible]
o Predecessor [Nodes that are prerequisite to this node]
Here node information actually contains information of the concept represented by the node and will be a data structure containing the following information.
CONCEPT data structure:
Concept code [This takes value from 1 to 18]
Level number[This takes value from 1 to 7]
Maxgrade [Grade by which the concept must to be learnt ]
Minage [Earliest age at which the concept has been learnt]
Maxage [Latest age by which the concept must be learnt]
The predecessor and successor nodes of a network node are represented using linked list. LINKNODE data structure:
Concept code [concept code of the successor or predecessor node]
Level number [level number of the successor or predecessor node]
Next link [link to the other predecessor or successor node] STUDENT data structure:
Student id [Unique code]
Student DOB [Date of birth]
Learning status [List of states at which the child stopped last]
The learning status is represented using linked list. It gives the list of all possible states that the child is eligible to explore.
LEARNSTATUS data structure:
Concept code
Level number
State number
Link [Link to the next node] Data structures required for the LFSM:
The LFSM for each level is represented using a linked list. The start trigger is stored in a two dimensional array accessed using the concept code and level number as index. Trigger [Concept code, Level code] triggers the LFSM corresponding to that level of the concept.
The states are represented by nodes having the following structure STATE data structure:
State number [Number representing that state]
State status [0 – regular, 1-Final, -1 Optional]
Next state [link to next state]
3.2 Design of the Mathematical Pathway Database [MPDB]
The Mathematical pathway is defined over a longer duration of time. A child takes a couple of years to complete this pathway. Hence data needs to be stored permanently and accessed from time to time. Tables 1 to 2 Constitute the Mathematical Pathway Data Base [MPDB].
The LFSM database [Tables 1 to 2] contains the data used to construct and drive the LFSM. The MP Network database [Tables 3 to 7] consist of data used to construct and traverse through the MP Network. The PROGRESS TRACK database [Tables 8 to 9] consists of data pertaining to performance of children and is used in the performance analysis[13][14]. The STUDENT database [Tables 10 to 11] consists of data pertaining to students. The CONCEPTTL database [Tables 13 to 16] contains data that is needed for the teaching and learning process.
Table 1 LFSM datatable
FIELD DATA TYPE
Concept code Integer
Level number Integer
State number Integer
State status Integer
Next state Integer
Table 2 TEST datatable
FIELD DATA TYPE
State number Integer
Question type Integer
Table 3 TOTAL LEVEL datatable
FIELD DATA TYPE
Concept code Integer
Total levels Integer
Table 4 LEVEL START datatable
FIELD DATA TYPE
Concept code Integer
Level Number Integer
Start state Integer
Table 5 NETWORK NODE datatable
FIELD DATA TYPE
Concept code Integer
Level number Integer
Mingrade Integer Maxgrade Integer Minage Integer Maxage Integer
Table 6 SUCCESSOR NODE datatable
FIELD DATA TYPE
Concept code Integer
Level Number Integer
Successor concept code Integer
Succesor Level Number Integer
Table 7 PREDECESSOR NODE datatable
FIELD DATA TYPE
Concept code Integer
Level Number Integer
Predecessor concept code Integer
Predecessor Level Number Integer
Table 8 LEVEL TRACK datatable
FIELD DATA TYPE
Student id Integer
Concept code Integer
Level number Integer
Age Integer
Table 9 LEARNING OBJECTIVES datatable
FIELD DATA TYPE
Student id Integer
Concept code Integer
Level number Integer
State number Integer
Age Integer
Table 10 STUDENT datatable
FIELD DATA TYPE
Student id Alphanumeric
Student name Alphanumeric
School Text City Text
School Type Number
Date of birth DATE
Grade Integer
Table 11 LEARNING STATUS datatable
FIELD DATA TYPE
Student id alphanumeric
Concept code Integer
Level number Integer
State number Integer
Table 12 GRADE AGE datatable
FIELD DATA TYPE
Grade Integer Age Integer
Table 13 LESSON PLAN datatable
FIELD DATA TYPE
State number Integer
Lesson Plan Alphanumeric
Table 14 GIFTED LEARNING datatable
FIELD DATA TYPE
State number Integer
Activity Alphanumeric
Table 15 REMEDIAL LEARNING datatable
FIELD DATA TYPE
State number Integer
Activity Alphanumeric
Table 16 TEACHING RESOURCES datatable
FIELD DATA TYPE
Concept code Integer
Level Number Integer
State Number Integer
Activity Alphanumeric
3.3 Algorithms for the MP Driver [MPALG]
The MP Driver consists of the Mathematical Pathway Network [MP Network] that lets a child traverse through the Mathematical Pathway and the Learning Finite State Machine [LFSM] that tracks the completion of levels of learning. Automata algorithm based on state transition, pushdown automata, Mealy and Moore logic are relevant to the problem under consideration. An appropriate algorithm was designed by modifying the standard algorithms. Here the non deterministic LFSM was made deterministic by eliminating transitions made to the final state in order to skip an optional node. The concept of skipping optional node was incorporated using the state status which stores status as optional for optional nodes. So these nodes can be skipped if there is a time constraint during learning. Performance analysis is done using DM techniques[13][14].
In the algorithms local variables are typed in bold italics and the global variables in bold. The user defined data structures are typed in BOLD UPPERCASE, programming constructs in UPPERCASE. Database names are given in UPPERCASE and use the keyword database or datatable after the name. Database fields are underlined.
Some programming constructs used are:
ACCEPT: receives a variable from the calling program RETURN: return variables to calling program
BEGIN <database> : Points to the first record in the database;
WRITE <variables > TO <database> : Writes the variables values to the fields in the database.
READ <variables> RECORD <key> FROM <database>: Reads the fields from the record in the database which matches the key to the variables.
FOUND RECORD <Key> IN <database>: Finds a record in the database from the current position that matches the key. Moves the record pointer to this record if found.
COPY <variables> TO <fields> IN <database>: Copies the values of the variables to the fields in the current record of the database.
CREATE node <data structure>: Creates a new node of the type data structure.
POINTER <data structure> : Points to the address of the data structure CONTENT <pointer>: Refers to data structure pointed by the pointer
The aim is to design an algorithm for the MP Driver. This calls for construction of the Network and LFSM for each concept as MP driver is a network of LFSM. Once this is ready a child needs to transit through this. So algorithms to move through the pathway and individual FSM are designed. During transition learning status of each child as well as data pertaining to each child has to be recorded for use during performance analysis. Based on the performance analysis the Mathematical pathway has to be refined to reflect the current learning trends. State transition Algorithm:
The LFSM has the following components:
An input function test(state number) which tests the accomplishment of the learning objective represented by the state. It returns a 1 if the child successfully finishes the test and returns a 0 if the child fails to complete the test.
A transition function transit() which take the machine from the current state to next state.
An output function output(state) that tracks the child’s progress in the PROGRESS TRACKING database.
Algorithms for the progress tracking module: These set of algorithm create the LFSM and let a child transit through the LSFM.
Algorithms for the LFSM: PROCEDURE CREATE LFSM START
FOR concept code = 1 to 18 DO N = totallevel[concept code]; FOR level = 0 to N-1 DO
State number = levelstart[concept code, level]; state = CREATE node STATE;
node = state; DO
READ
node:: state number, node:: state status, node:: next state,
RECORD concept code, level number, state number FROM LFSM datatable;
IF node::state status is not final THEN node::link = CREATE node STATE; node = node::link;
state number = node::next state; ENDIF
WHILE node::state status not final;
Trigger[Concept code, Level number] = state; Node::link = NULL;
ENDFOR ENDFOR STOP
FUNCTION TEST START
ACCEPT state number;
Administer test corresponding to that state number; [This is done using a GUI and the TEST datatable] IF a child passes the test THEN
RETURN 1 ; ELSE
ENDIF STOP
PROCEDURE OUTPUT START
ACCEPT state;
State number = state::state number; IF state :: state status is final THEN
WRITE student id, concept code, level number, student age TO LEVEL TRACK datatable; ELSE
WRITE student id, concept code, level number, state number, student age TO LEARNING OBJECTIVE datatable;
ENDIF STOP
FUNCTION LSFM TRANSITION START
start = Trigger[concept code, level number]; currstate = start;
WHILE currstate: state number not equal to state number DO currstate = currstate :: next state;
ENDWHILE;
WHILE currstate:: state status not final DO Input = test(currstate :: state number); IF input = 1 THEN
Output(currstate);
currstate = currstate :: next state;
[ inline transit()function] ELSE
IF currstate :: state status is optional THEN state number = currstate::state number; RETURN optional;
ELSE
state number = currstate::state number; RETURN regular;
ENDIF ENDWHILE
RETURN final;
STOP
Algorithms for recording Student Data: These algorithms store student learning status to be used for future transitions and also records student progress in the database. This data is used for performance analysis to understand the learning curve of an individual child as well as the learning trends of a group of children based on various parameters.
FUNCTION STUDENT DATA START
ACCEPT student id;
student = CREATE node STUDENT; IF FOUND RECORD student id
IN STUDENT DATABASE not end of file THEN COPY Date of birth TO student::dob
FROM STUDENT datatable;
status = POINTER student::learning status; WHILE FOUND RECORD student id
IN LEARNING STATUS datatable not end of file DO node = CREATE node LEARNINGSTATUS; COPY concept code, level number, state number TO node::concept code, node::level number,
node::state number
FROM LEARNING STATUS datatable; CONTENT status = node;
CONTENT status = NULL; ELSE
INPUT student name, school, school type, city, dob, grade; mp complete = 0;
WRITE student name, school, school type, city, dob, grade, mp complete TO STUDENT datatable;
student::dob = dob;
student:: learning status = Network[0,0]; succ= Netwrok[0,0]::successor;
WHILE succ DO
node = CREATE node LEARNINGSTATUS; node:: concept code = succ::concept code; node:: level number = succ::level number; succ = succ::next link;
CONTENT status = node;
status = POINTER status::link; ENDWHILE
ENDIF
student:: student id = student id; RETURN student;
STOP
Algorithms for the Network: These algorithms create the MP driver Network and also let a child choose their path through the Mathematical pathway based on fulfilment of prerequisite.
PROCEDURE CREATE NETWORK START
FOR concept code = 0 to 19 DO
FOUND RECORD concept code IN TOTAL LEVEL datatable; COPY Total Level TO totallevel[concept code]
FROM TOTAL LEVEL datatable;
FOR level = 0 to totallevel[concept code] DO FOUND RECORD concept code, level
IN LEVEL STARTdatatable; COPY Start state TO levelstart[concept code, level];
FROM LEVEL START datatable; ENDFOR
ENDFOR
FOR concept code = 0 to 19 DO N = totallevel[concept code]; FOR level = 0 to N-1 DO
node = CREATE node CONCEPT; READ
node:: concept code, node:: level number, node:: mingrade, node:: max grade, node:: minage, node:: maxage,
FROM RECORD concept code, level NETWORK NODE datatable; Network[concept code, level]::concept = node;
succ = POINTER Network[concept code, level]:: successor; pred = POINTER Network[concept code, level]:: predecessor;
BEGIN SUCCESSOR NODE datatable; WHILE FOUND RECORD concept code, level
IN SUCCESSOR NODE datatable not end of file DO CONTENT succ = CREATE node LINKNODE; COPY successor concept code, successor level number
TO succ :: concept code, succ :: level number
FROM SUCCESSOR NODE datatable;
CONTENT succ = NULL;
BEGIN PREDECESSOR NODE datatable; WHILE FOUND RECORD concept code, level
IN PREDECESSOR NODE datatable not end of file DO CONTENT pred = CREATE node LINKNODE;
COPY predecessor concept code, predecessor level number TO pred :: concept code, pred :: level number
FROM PREDECESSOR NODE datatable;
pred = POINTER succ::link; ENDWHILE
CONTENT pred = NULL; ENDFOR
ENDFOR STOP
FUNCTION PREREQUISITE START
ACCEPT learning status;
concept code = learning status::concept code; level number = learning status::level number; curr = Network[concept code, level number]; prerequisite = TRUE;
pred=curr:: predecessor;
WHILE prerequisite and pred DO
BEGIN LEVEL TRACK datatable;
IF FOUND RECORD student id, pred::concept code,
pred::level number IN LEVEL TRACK datatable THEN
pred = pre::link;
ELSE
prerequisite = FALSE; ENDIF
ENDWHILE RETURN (prerequisite); STOP
FUNCTION DISPLAY UI START
ACCEPT learning status; WHILE learning status Do
IF prerequisite(learning status) THEN
Display UI for learning status:: concept code; ENDIF
[This is done using a GUI where options for selection correspond to the concept code]
ENDWHILE
WAIT FOR INPUT; [GUI input recognition]
student choice = POINTER learning status of the UI selected; [GUI returned. Returns NULL if choice is quit] RETURN student choice;
STOP
PROCEDURE DELETE LEARNING STATUS START
ACCEPT node;
curr = POINTER student::learning status;
WHILE (CONTENT curr)::link not equal to node DO curr = POINTER ((CONTENT curr)::link);
ENDWHILE
CONTENT curr = (CONTENT curr)::link; STOP
curr = student::learning status; ls = curr;
WHILE curr::link DO curr = curr::link;
succ = Network[concept code,level number]::successor; WHILE succ DO
found = 0; p = ls; WHILE not found and p DO
IF (p::concept code equal to succ::concept code) AND (p::level number equal to succ::level number) THEN
found = 1; ENDIF;
p = p::link; ENDWHILE;
IF not found THEN
node = CREATE node LEARNING STATUS; node:: concept code = succ::concept code; node::level number = succ::level number;
n = level start[succ:concept code,succ: level number]; node::state number = n;
WRITE student id, node:: concept code,
node::level number, node::state number TO LEARNING STATUS datatable;
curr::link = node;
ENDWHILE STOP
PROCEDURE MP START
ACCEPT student id;
student = student data( student id); student age = system date() – student::dob;
create network();
create lfsm();
FOR concept code = 1 to 18 DO
READ Total levels[concept code]
FROM TOTAL LEVELS datatable; ENDFOR
FOR concept code = 1 to 18 DO
FOR level number = 0 to Total Levels[concept code] DO READ Level start[concept code, level number]
FROM LEVEL START datatable;
ENDFOR ENDFOR
learning status = student :: learning status; curr = POINTER student::learning status; DO
student choice = display ui(learning status); IF student choice THEN
concept code = student choice::concept code; level number = student choice::level number; state number = student choice::statenumber; currnode = Network[concept code, level number];
fsastatus = lsfm(concept number, level number, state number); IF fsastatus is final THEN
DELETE RECORD concept code and level number FROM LEARNING STATUS datatable; delete learning status(student choice);
add learning status(); ELSE
IF fsastatus is optional THEN
delete learning status(student choice); ENDIF
ELSE
student choice::state number = state number; BEGIN LEARING STATUS datatable;
FOUND RECORD concept number, level number IN LEARNING STATUS datatable;
COPY state number TO state number
IN LEARNING STATUS datatable;
ENDIF ENDIF
WHILE student choice; STOP
Algorithms for Refinement of the Mathematical Pathway: This algorithm is used to refine the Math Pathway based on the inputs obtained from the progress data and performance analysis.
PROCEDURE REFINE MP START
FOR concept code = 1 to 18 DO
FOUND RECORD concept code IN TOTAL LEVEL datatable; COPY Total Level TO total levels[concept code]
FROM TOTAL LEVEL datatable;
ENDFOR FOR grade = 1 to 7 DO
FOUND RECORD grade IN GRADE AGE datatable; COPY Age TO minage[grade];
ENDFOR FOR concept code = 1 to 18 DO
FOUND RECORD concept code IN NETWORK NODE datable; COPY Minage TO min FROM NETWORK NODE datatable; BEGIN LEVEL TRACK datatable;
FOR level number = 1 to total levels[concept code] DO
WHILE FOUND RECORD concept code, level number IN LEVEL TRACK datatable DO COPY Age TO minage FROM LEVEL TRACK datatable;
IF minage < min THEN min = minage; ENDIF
ENDWHILE mingrade = 0; FOR index = 1 TO 7
IF minage[index] is equal to min then mingrade = index; ENDFOR
COPY min, mingrade TO Minage, Mingrade
IN NETWORK NODE datatable;
ENDFOR ENDFOR
STOP
3. Conclusion
Acknowledgement
One of us, Annapurna Kamath is grateful to the Bangalore University for providing the research facilities to carry out the research program.
References
[1] Annapurna, S. Kamath, 2011. “Design and Development of a Learning Model to Optimize the Mathematical Pathway Using
Mathematical Modeling and Computer Based Techniques”, Ph.D. Thesis, BU, India.
[2] Srimani, P.K., & Annapurna S. Kamath. 2012 “Graph theoretical and Networks approach for the development of a learning model – A
case Study”, IJEST, Vol 4, No. 08, pgs 3804-3823
[3] Knisley, J. 2002. A four-stage model of mathematical learning. Mathematics Educator, 12(1), 11-16.
[4] Kolb David, 1984, ‘Experiential Learning: Experience As The Source Of Learning And Development'
[5] Sarama, Julie., Clements, Douglas H., „Learning Trajectories for young children‟ ,2009, research paper, University of Buffalo, State
University of New York
[6] Ravaglia, Raymond., Alper, Theodore., Suppes, Patrick., Stillinger, Constance., 1994. Computer-based Mathematics and Physics for
Gifted Students. Education Program for Gifted Youth, Stanford University.
[7] Banerjee, A., S.Cole, E.Duflo, and L.Linden, 2007. “Remedying Education:Evidence from two randomized experiments in India,”
Quarterly Journal of Economics, 122, 1235-1264.
[8] Mayer, R.E.;R.Moreno,1998. “A Cognitive Theory of Multimedia Learning:Implications for design Principles
[9] Narendra K., Thathachar M.A.L.,1974. learning automata – a survey, IEEE Transactions on Systems, Man, and Cybernetics, July
1974, Vol. SMC-4, No. 4, pp. 323–334.
[10] Doignon, J.P., Falmagne, J.-Cl.,1985, "Spaces for the assessment of knowledge", International Journal of Man-Machine Studies 23 (2): 175–196
[11] Shalyto A., 1991. “Software implementation of control automata,” Ship-building industry. Series “Automata and remote control”, vol.
13.
[12] Dowling, C. E., & Hockemeyer, C.,2001. Automata for the Assessment of Knowledge. IEEE Transactions on Knowledge and Data
Engineering, 13(3), 451–461.
[13] Srimani, P.K., & Annapurna S. Kamath. 2012. “Neural Networks approach for the performance analysis of the learning model – A
case Study”, International Journal of Current Research, Vol. 4, Issue, 04, pp.236-239, April, 2012.
[14] Srimani, P.K., & Annapurna S. Kamath. 2012. “Data Mining techniques for the Performance Analysis of a Learning model – A case