Visualization based Intelligent Tutoring System (ITS) for Greedy Algorithms: GATutor. By Meenakshi Verma Mukund Lahoti. Guided By: Prof. S.R. Iyer. INTRODUCTION. - PowerPoint PPT Presentation
Citation preview
Visualization based Intelligent Tutoring System (ITS) for Greedy
AlgorithmsBy
INTRODUCTION
We have presented a framework for effective teaching of greedy
algorithms and implemented that framework as an Intelligent
Tutoring System to prove its usage named as GATutor.
NEED
Earlier Algorithms have been taught in schools in a passive
way.
Researchers want teaching to become more interesting.
To do so it is require to visualize algorithms and make students
play with it[3].
It is necessary to guide them at each step so that they do not
divert from right path.
Greedy algorithms are the most common design techniques. Though
they are simple but their learning objectives demand tough
teaching.
MOTIVATION
Yes the solution seems to work,
it appears to be correct;
but how is it possible to invent such a solution?
How could I invent or discover such things by myself?
According to us with some pre-requisite knowledge, stimulating
questions, providing hints can help a student to bring an algorithm
right from scratch.
Demo
GREED-EX SYSTEM[4]
It is a algorithm tutor based on discovery learning approach
This system mainly focuses on greedy algorithms.
It teaches two greedy algorithms-Activity selection problem and
Knapsack.
They uses a didactic method to teach greedy algorithms. The
didactic method asks the student to could characterize an optimal
greedy algorithm for a given optimization problem.
There has been no guided approach followed by them.
It might be possible that sometimes student might get mislead if he
does get right direction.
They have also not given any questions on which student can be
assessed. Main features of this system are students discover by
himself, results table and history is provided to compare different
functions.
ALGO-TUTOR SYSTEM[9]
Algo-Tutor contains Visual Algorithm Tracer and Program Pad
embedded in it.
It is a basic tutor which encourages learning programming through
algorithmic design.
It teaches students basic programs including while loop, for loop.
It was tested over a group of students.
The results were significant. It stated that teaching programming
through algorithmic approach is beneficial rather than just making
them learn for and while loops. It gives a option of drag and drop
through which student can construct a new algorithm using some pre
code generated by the student.
It basically consist of three components as
1. building the algorithm
3. program pad
ANIMAL SYSTEM[8]
It uses animation to visualize algorithm with simultaneous code
view provided.
As the system is not interactive with the user, it make it somewhat
bore.
It supports Backtracking algorithms, Compression algorithms,
Cryptography algorithms, Data structures, Graph algorithms,
Graphics algorithms, Hashing algorithms, Mathematics which is a
good collection.
But providing only animations of algorithms cannot seek the
attention of a student for a longer and it is also difficult to
enhance their learning process and to check whether they have
learned it or not
JHAVE SYSTEM[6]
It aims to animate algorithms which concludes that visualization of
a algorithm increases its understanding rather than just reading
the code of it.
They are not interactive with student which makes it a little
boring as student can get diverted while working on it.
It supports many algorithms including graphs, Sorting, Hashing and
miscellaneous.
ALGOVIZ SYSTEM[1]
It contains animation of Algorithm and a portal where a collection
of links to algorithm visualizations exists.
It Integrates many algorithm visualization systems.
Only animation is included.
Teaching Strategies of Other Systems
Many algorithms tutor exist but some mainly focus on theoretical
material(JHAVE) while other mainly focuses on visualization of the
algorithm(ANIMAL).
There does not exist any system which checks learning of the
student at each phase.
The GreedEx system focuses on Discovery learning and uses the
concept of discovering optimal selection function by
experimentation approach but other learning goals have not been
taught such as to give the proof of wrong choice.
Mainly systems focuses on animation of the greedy
algorithms(algoviz).
There exist no system which focuses on interactive learning of
greedy algorithms and help in giving the proof of wrong selection
functions. System also implement only understand and analyze level
of Bloom’s Taxonomy.
Our Teaching Strategy-1
A rule based framework for teaching greedy algorithms.
Our system follow recall, understand, apply, analyze and evaluate
level of Bloom's taxonomy[4] .
1. Basic understanding of what are greedy algorithms(Understanding
level)
2. Understanding of specific greedy algorithms(Understanding
level)3. Analyzing which selection function is optimal(Analyze
level)
4. Proving its optimality by showing counter examples for
non-optimal functions(evaluate level)
5. Solving different such problems(Apply level)
Our Teaching Strategy-2
We are using guided discovery learning approach.
There have been many variations of definition of discovery
learning[2]. Discovery learning occurs whenever the learner is not
provided with the target information or conceptual understanding
and must understand it independently and with only the provided
materials.
Within discovery-learning methods, there is an opportunity to
provide the learners with intensive or, conversely, minimal
guidance, and both types can take many forms (e.g., manuals,
simulations, feedback, ex-ample problems).Sweller reported that a
better alternative to Discovery Learning was Guided
Instruction.(Kirschner, Sweller, Clark, 2006).
Our Teaching Strategy-3
Guided Instruction produced more immediate recall of facts than
unguided approaches along with longer term transfer and
problem-solving skills as per Sweller.
Support for the regulation the learning process in discovery
learning includes various measures:
1. Model progression, such as step-by-step model expansion (e. g.
expanding the complexity of the model).
2. Planning support (e. g. using guiding questions, quests or even
assignments).
3. Monitoring support (e. g. show what has already be done in the
simulation)
4. Structuring the discovery process (e. g. providing students with
a sequenced structure such as "set-up, do, reflect").
FRAMEWORK
Visualize satisfying condition
Again select option
Evolving a theoretical framework on which the system will be
designed
-meenakshi
Implementation of Prim’s, Activity Selection Algorithm and
Dijkstra’s-meenakshi
Login module and Statistical Analysis Module-mukund
System Modules
System Modules
Login module and Statistical Analysis Module
Evolving a theoretical framework on which the system will be
designed
Implementation of Prim’s, Activity Selection Algorithm and
Dijkstra’s
Implementation of Kruskal’s Algorithm, Knapsack Problem
DETAIL DESIGN
Text Book Material not suffice
2. Passive way of teaching
3. Student just rode them
4. Difficult for them to construct a new algorithm by
themselves
LOGIN AND STATISTICAL ANALYSIS
New users are supposed to sign up before using the system.
A Sign up jsp page is created to take user input.
A servlet takes this input and stores in a mysql database through
jdbc.
No part of the user input is directly used as an Sql command
Registered users login into the system.
A CheckUser servlet verifies user credentials in the database and
redirects accordingly.
Checking into the database is with limited privileges for further
security.
Instructor or admin can also log in to view activities of the
users..
This is further explained in detail.
Statistics
Instructor can check the overall progress of class and also
detailed progress of each student.
Overall progress of the class shows statistics like how many
students have registered for this system, how many have attempted
it, how many have completed doing the work.
Instructor can also view email-ids of all the users.
Instructor can choose for the detailed progress of any
student.
Screenshot stat1
Statistics
Here instructor can see the no. of parts of the tutor completed by
the user.
Instructor also sees the flow of student through the system.
This tells him the misconceptions in the mind of student.
Screenshot Stat2
Screenshot Stat3
Technologies used
All the web pages are java servlet pages.
All pages contain an inline header to send the details to mysql
database.
The details that get entered include the user who is browsing the
page and the date at which it is browsed.
For logging in and registering new user a form field is used which
gives the user input to CheckUser and SaveUser servlet.
They connect the database through jdbc drivers.
JSP
CheckUser
For styling of the webpage css is used.
A base template was taken from free sources then it was tweaked for
our purpose.
SVG
Scalable Vector Graphics are used for making puzzle drawings.
They are lightweight and do not require any settings on the part of
browser for them to run.
They are based of pathElements which can be accessed by JavaScript
objects.
Their attributes can easily be changed for our need on the client
side itself.
JavaScript
For this JavaScript must be enabled in browsers.
JavaScript according to user input like mousehover or mouseclick
changes the attributes of svg elements.
It is also used for making timer or time limit within which the
puzzle is to be solved.
Overall client side interactivity is managed by JavaScript.
jQuery
jQuery is used for making the quiz module.
Styled progress bars were tweaked for our purpose available from
the open sources.
jQuery was used as it serves many purposes like
Student cannot jump to any random question by just observing the
url pattern and then by manually typing that pattern.
The calculation of the marks on the server side without user
control and without the use of database.
MySql
MySql is used to serve as a database on the server side.
The connection to it is through a secured user with limited
privileges. So it cannot be manipulated through the client
side.
Two tables are maintained one for the registered members and other
for keeping the log.
No part of the user input is made a direct sql command to prevent
any sql injections.
Color Scheme
To maintain the consistency and to be able to relate to the user's
sub-conscious mind a color coding scheme is followed
throughout.
Click-ability feature
All the svg images are made clickable wherever possible, to come to
an answer user has to click on appropriate parts of the
image.
Thus user is not just sitting and watching some "movie" but is
actually doing the things.
Finding Satisfying Condition
Explanation of Satisfying Condition along with choices provided
which are close to what a user can think.
User has to select one of them, and is visualized according to
his/her respective choice.
Finding Optimal Selection Criteria
We want student to find the optimal selection criteria by
himself.
This will not make learning boring as student himself will have to
discover the optimal function apart from the fact that he will be
guided if he goes to the wrong path.
To make the design process explicit, we list some selection
functions initially and ask learner to discover the optimal
one.
Visualization of Contradicting Examples
1. A controller has been provided which will visulaize the wrong
functions based on the user input.
2. It helps in finding the proof of wrong functions and will help
in removing common misconceptions from user's mind.
REAL LIFE EXAMPLE
Implementation
We took 20 students, from B.tech 2nd year from IIT Bombay who were
not knowing about this algorithm before.We asked them to ll a
survey form to evaluate our system on dierent parameters.
Sample
Our sample is B.tech 2nd year students as design and analysis of
algorithms is taught in 2nd year of B.tech.
Data Collection
1. Survey
• Test Score
• 4 point likert scale
2. we interacted with student to know their general view about the
system.
Data Analysis
1. Survey
Test Score - is used to identify whether student has learned the
algorithm or not.
Attempts - helpful to infer that in how many attempts was student
able to learn
and perform.
Open ended Feedback - we qualitativly analysed the text in
consultation with
education technology researchers to verify the quotes that we
obtained from the
qualitative analyses.
4 point likert scale - We have used it to deduce inferences.
2. we interacted with student to know their general view about the
system.
Results
Following are the inferences we drawn from the qualitative
analysis:
Intelligent Tutoring System has been effective in learning as
students were able to understand the algorithm as they answered and
can be deduce from the test results.
ITS was interesting as students and it to be fun working with
it.
It build up confidence in students to apply same algorithm in other
example also.
Student would like to study other topics also in these kind of ITS
as it helps in fast learning, teaches more in less time, easy to
learn and interesting.
It increases the understanding of how to approach a problem.
It was beneficial as it is good to learn new things from basics,
better than class passive ways.
Re-attempts embedded in the test has been proved useful as almost
all have improved their score using that.
Interface
Content was crisp and attracting user's attention as well.
Using it, understanding was developed in gradual manner giving
answers to all the questions in mind.
The improvements suggested to us are:
The arrows were taking time to click as they were thin.
More theory should be embedded.
In Quiz, option to jump to other questions should be
provided.
Usability Evaluation
Implementation
We have used System Usability Scale(SUS) to measure the usability
of the system.We took 20 Btech 2nd year students for testing our
system.
SAMPLE
We took 20 students, from B.tech 2nd year from IIT Bombay who were
not knowing about this algorithm before.We asked them to ll a
survey form to evaluate our system on dierent parameters.
DATA COLLECTION
We asked the students to ll System Usability Scale(SUS) question
are based on 4 point likert scale that is Strongly agree, Agree,
Disagree and Strongly Disagree. Following were the
questions[11]:
1. I think that I would like to use this system frequently.
2. I found the system unnecessarily complex.
3. I thought the system was easy to use.
4. I think that I would need the support of a technical person to
be able to use this system.
5. I found the various functions in this system were well
integrated.
6. I thought there was too much inconsistency in this system.
7. I would imagine that most people would learn to use this system
very quickly.
8. I found the system very cumbersome to use.
9. I felt very condent using the system.
10. I needed to learn a lot of things before I could get going with
this system.
Challenges:
Effective
Interesting
Results:
SUS score was 86.8
From the graphs we can gure out students would like to use the
system for other topics also and would prefer to use this system
for studying algorithms. System was overall easy to use and user
friendly which can be depicted from questions 2 and 3.The system
can be used independently and it was homogeneous too. It increased
students understanding of a the topic
Future work and Conclusion
Our system to teach Greedy Algorithms to students through
visualization is ready. It contains most of the popular greedy
algorithms.
We have used the approach of guided discovery learning along with a
interactive interface which makes this system unique in the area of
Computer Science.
Through Pilot experiments conducted in rst phase of this project,
we were able to detect the minor faults which existed in the system
and it helped us to make the system more eective.
We tested the system on a bunch of students to know its eectiveness
and we were proved right. The system is eective overall in teaching
greedy algorithms in an active way. In near future, we would like
this system to contain almost all popular algorithms of computer
science with this general framework.
It would be really helpful for students to study from this system
as they will gain condence while working on this system as it will
make them feel that they themselves have explored the
algorithm.
Bibliography
AlgoViz.org. ”the algorithm visualization portal,” http://
algoviz.org/, 2012.
Louis Aleri Patricia J. Brooks and Naomi J. Aldrich Harriet R.
Tenenbaum Kingston University City University of New York. ”does
discovery-based instruction enhance learning?”.
M. Ashraf Iqbal and Sara Tahir. ”does discovery-based instructions
should we teach algorithms?,iranian journal of electrical and
computer engineering, vol . 2, no. 2, summer- fall 2003”.
IEEE Computer Society J. Angel Velazquez-Iturbide, Member.
”greedex: A visualization tool for experimentation and discovery
learning of greedy algorithms”.
I Escuela Tcnica Superior de Ingeniera Informtica Universidad Rey
Juan Carlos C/ Tulipn s/n 28933 Mstoles Madrid Spain J. ngel
Velzquez-Iturbide Departamento de Lenguajes y Sistemas Informticos.
”the design and coding of greedy algorithms revisited”.
Bibliography
T.L. Naps. ”jhave: Supporting algorithm visualization,” ieee
computer graphics and applications, vol. 25, no. 5, pp. 49-55,
sept. 2005.
Polya. ”how to solve it; a new aspect of mathematical method
,princeton university press, 1988.”.
G. Roling and B. Freisleben. ”animal: A system for supporting
multiple roles in al- gorithm animation.” j. visual languages and
computing, vol. 13, no. 2, pp. 341-542, 2002.
[Jungsoon Yoo Chrisila Pettey Suk Seo and Sung Yoo Middle Tennessee
State University USA. ”teaching programming concepts using
algorithm tutor”.
[J.A. Velazquez-Iturbide, A. Perez-Carrasco Proc. 14th Ann. Conf.
Innovation, and 2009. Technology in Computer Science Education
(ITiCSE 09), pp. 119-123. ”active learning of greedy algorithms by
means of interactive experimentation”,.
en.wikipedia.org/wiki/System_usability_scale
java.util.Date().getTime());
access) " +
"VALUES(
java.util.Date().getTime());
access) " +
ps.setString(1, s1);
ps.setString(2, s2);
ps.setString(1, s1);
ps.setString(2, s2);
== 0) {
var ans = jQuiz.userAnswers = [];
ans.push(arr[i].getAttribute('id'))
{
is ' + results[i] + '</div>'
$('#resultKeeper').html(resultSet).show();
== 0) {
var ans = jQuiz.userAnswers = [];
ans.push(arr[i].getAttribute('id'))
{
is ' + results[i] + '</div>'
$('#resultKeeper').html(resultSet).show();
</html>"+"<br><br>");
String query = "select count(*) from (select distinct
case when page like 'k%' then 'k' when page like 'g%' then
'g'
when page like 's%' then 's' when page like 'd%' then 'd' end
from log where userid=?) x;";
PreparedStatement ps = con.prepareStatement(query);
"+total_did);
</html>"+"<br><br>");
String query = "select count(*) from (select distinct
case when page like 'k%' then 'k' when page like 'g%' then
'g'
when page like 's%' then 's' when page like 'd%' then 'd' end
from log where userid=?) x;";
PreparedStatement ps = con.prepareStatement(query);
"+total_did);