Tải bản đầy đủ (.pdf) (10 trang)

Using a project based-learning method in each advanced data structures – priority queues

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (122.62 KB, 10 trang )

JOURNAL OF SCIENCE OF HNUE
FIT., 2013, Vol. 58, pp. 179-188
This paper is available online at

USING A PROJECT-BASED LEARNING METHOD IN EACH
ADVANCED DATA STRUCTURES – PRIORITY QUEUES

Doan Thi Thu Huyen
Faculty of Information Technology, Hanoi National University of Education
Email:
Abstract. In this paper, we propose a new approach to teach advanced data
structures - priority queues to junior and senior Information Technology (IT)
students by applying the project-based learning method, a student-centered method
which aims to create a learning environment in which students work individually to
complete an open-ended project. To estimate how effectively project-based method
works in IT education and show how the method works in a specific IT project,
results are presented from a pedagogical experiment on group of 15 students
studying IT at Hanoi University of Science and Technology. Based on the results
of this experiment, the project proved that this new approach in teaching advanced
data structures to IT students was effective.
Keywords: Project-based learning, advanced data structures, priority queues.

1.

Introduction

Project-based learning (PBL) method, which consists of many ways to develop
a curriculum, allows for an active and constructive way to develop a central didactic
principle that integrates several skills and competences through real work tasks and
processes [1]. PBL is synonymous with learning in depth. A well-designed project
provokes students to encounter central concepts and principles of a discipline.


The use of projects in the university comprises several tasks that are usually
perceived as separate units: to do research and transfer projects, to teach project
management and dedicated subjects, to educate students to carry out research and do
practical work, and to achieve relevant results within student’s projects [1,4,3].
In computer science (CS) education and, more specifically, in the teaching of data
structures and algorithms, doing with each project, learners are forced to either modify
existing concepts or develop new ones. This helps them practice their abstract thinking
and algorithm thinking through levels of abstraction in an algorithm concept. Jacob C.
179


Doan Thi Thu Huyen

Perrenet [2] suggested that students study making use of 4 levels of abstraction: the
execution level, the program level, the object level and the problem level. They must
specify a problem precisely, analyze given problems, determine the basic actions that
are adequate to the given problem, construct a correct algorithm to a given problem using
the basic actions, think about all possible particulars and normal cases of a problem and
to improve the efficiency of an algorithm.
PBL has been used for multiple classrooms [9], groups [1,5] and individuals
[10,11]. Universities and colleges in Vietnam have widely utilized PBL in many subjects.
FPT Polytechnic designs a training program for each term include the PBL method, and
a case-study for every subject. They provide flexible engagement models which ensure
that the program will meet the diverse needs and requirements of society. The method
is used at the Hanoi National University of Education, Hanoi University of Science and
Technology (HUST) and others, with some practical subjects for senior students.
For our priority queue major, one of the interested abstract data types today, PBL
applied to individuals is a promising method since to become knowledgeable in this
field demands a profound background and it is difficult to utilize conventional education
method, when the presentation of programming and code are impossible. In addition,

abstraction, the ability to perform abstract thinking and to exhibit abstraction skills, one
of the fundamental principles of software engineering in order to master complexity, takes
an important role in computer science education [11,12,13], especially in studying these
data structures because the concept of queue only exists in real life, but computer. In
CS curriculum, heap and binary heap, however, are only presented to approach priority
queue data structures, whereas in many instances types of priority queue are used the most
popular being that of Van Emde Boas, which is presented in many English materials and
courses around the world [7,8].
We assume that some skills, including abstract thinking (especially at the object
and the problem level), algorithm thinking, research skills and some soft-skills related to
carrying out projects, can be best learned in authentic and student-centered projects by
making the suitable pedagogical environment that includes giving students the chance to
explore many questions based primarily on surmise - inspiring them to describe the way
they deal with problems - and teaching broad concepts in preference to just facts. This
paper describes a general curricular concept of PBL which can be applied to each student.
In one example, the goals and objectives as well as the organization will be described.
The focus of this paper is on the learning process for students carrying out projects.

180


Using project-based learning method to each advanced data structures...

2.
2.1.

Content
Project-based learning and design project example

2.1.1. Project-based learning method

The first documented effort of PBL can be found in the engineering curriculum at
the University of Aalborg (Denmark) in 1974.
Features of PBL, its roles and effectiveness have been widely researched from many
standpoints [3]. Basically, most approaches proposed that: PBL creates a "constructivist"
learning environment in which students construct their own knowledge. They are taught
about skills as well as content. These skills can be categorized as communication and
presentation skills, organization and time management skills, research and inquiry skills,
self-assessment and reflection skills, group participation and leadership skills. In addition,
PBL allows students to reflect upon their own ideas and opinions, exercise voice and
choice, and make decisions that affect project outcomes and the learning process in
general. PBL offers a wide range of benefits to both students and teachers. A growing
body of academic research supports the use of PBL in universities and colleges to
engage students, cut absenteeism, boost cooperative learning skills and improve academic
performance.
In a project, students have some choices in deciding what they will work on, they
plan their own project and participate in defining criteria and rubrics to assess their project
and they solve problems they encounter while working on their project and make some
sorts of final presentation of their project. Thus, students involved in projects take greater
responsibility for their own learning than during more traditional classroom activities.
Especially, with CS projects, they have opportunities to develop a different set
of skills: project management, time management, organization, research procurement
and debugging and complex skills, such as higher-order thinking, problem-solving,
collaborating and communicating.
In order to have a well-designed project, it’s important for lecturers to recognize
situations that would make for good projects, to structure problems as learning
opportunities, to collaborate with colleagues to develop interdisciplinary projects, to
manage the learning process, to integrate technologies where appropriate and to develop
authentic assessments[4].
In this method, the project is often divided into several steps and phases in a variety
of approaches [1,5,14]. To generate a curriculum, we apply a method that divides the

project design design into 7 major steps [5]. We utilize this direction to design a project
about advanced data structure.
Step 1. Preparation, getting involved: Students can get acquainted with the topic
181


Doan Thi Thu Huyen

to be worked on in two ways: with the tools of the divergence and of the convergence.
The introduction of the topic has to be from various angles. Participating in the project,
students must know clearly the requirements their teachers have for them.
Step 2. The examination of the topic: Information ought to be collected on the topic
or problem in as many ways and from as many sources as possible.
Step 3. The elaboration of the action plan: The distribution of the tasks to be
accomplished, the schedule and the definition of the key events must be given. In this
step, individual ideas can be developed, for original thoughts and unique solutions are
welcome, but it is also the most time consuming step. Each step has to be accomplished
within a certain deadline, and it must be done responsibly.
Step 4. The fulfilment of the action plan: The task assignment, the collection of ideas
and the preparation are followed by the fulfilment of the action plan. If the students find
joy and anticipation in their work, the project will be carried out developed appropriately.
Step 5. Presentation: Students don’t present an accomplished work, but the results
of their work.
Step 6. Evaluation, review, feedback: Students must experience success during the
project. We ought to appreciate originality, the precision of the execution, and the good
decisions made.
Step 7. Planning the future: This step is needed if there is to be continued work on
the project or if we transmit the results to other persons or groups.
Base on size, type and features of a specific project, lecturers should flexibly apply
these steps flexibly. Some steps may be grouped into one to reduce and simplify the

process.
2.1.2. Project example
Topic: Priority queues
Parts of the topic: Some specific abstract data structures can be used to implement
priority queues find a shortest path problem using the Dijkstra algorithm and solve other
problems, designing and implementing them with each data structure.
Target community: The junior and senior IT students
Project duration: 12 sessions
Aims: The core aims designated as fundamental to the project are:
- To practice abstract thinking and algorithm thinking in CS education.
- To understand the role of priority queues and study the implementation and
use of several abstract data structures, such as: Binary heap, Fibonacci heap, Trinomial
heap, Binomial heap, Relaxed heap, 2-3 heap, Skew heap, Van Emde Boas tree, Sorted
linked list, Splay tree, Calendar queue, Lazy queue, Henriksen’s data structure, Skip lists,
182


Using project-based learning method to each advanced data structures...

SPEEDESQ and Ladder Queue.
- To design Java applet simulations and some simple applications, for example,
heap sort, a container, a searchable container, Dijkstra algorithm, graph algorithms and
backtracking algorithms.
Methods and procedures: Study, discovery, analysis, design, presenting unsolved
problems, individual work, presentation, conversation, didactic play, seminars, learning
activities and the project itself.
Keywords: Algorithm, Data structures, Priority queues.
Background: In order to fully appreciate the requirement of data structures that
can be used to implement priority queues, it is important to have details on the followings:
Essentials of algorithm and data structure skills (array, linked list, stack, queue, tree and

operations on them), fluent use of programming languages (for example, Pascal, C, C++
or Java) and algorithm analysis techniques (worst-case, best-case, average-case, amortized
analysis).
Information Sources: References: Introduction to algorithms [7], Van Emde Boas
Queues [8] and some scientific papers; Alternative information sources, such as the
internet, newspaper articles, books, lectures of teachers, information furnished by firms,
other teachers’ and friends’ opinion; Java applet demos for data structures and class
templates support the programming process.
Participants: Junior and senior IT students.
The process:
Step 1: Preparation, introduction
Project ideas: Scheduling the unit-time task problem
“The problem of optimally scheduling unit-time tasks on a single processor, where
each task has a deadline, along with a penalty paid if the task misses its deadline. A
unit-time task is a job, such as a program to be run on a computer that requires exactly
one unit of time to complete. Given a finite-set S of unit-time tasks, a schedule for S is
a permutation of S specifying the order in which to perform these tasks. The first task in
the schedule begins at time 0 and finishes at time 1, the second task begins at time 1 and
finishes at time 2, and so on. We wish to find a schedule for S that minimizes the total
penalty incurred for missed deadlines.” [7]
The lecturer uses the brainstorming technique asks students to imagine problems to
which this abstract data type can be applied, and then gives them a few minutes to think
and then say what they think.
The lecturer make clear the basic differences between queue and priority queue.
The lecturer talks with the students about the role of priority queues in computer
science and in problems of the real life and its applications: Find shortest path
183


Doan Thi Thu Huyen


problem using the Dijikstra algorithm; manage limited resources such as bandwidth on
a transmission line from a network router, simulations, and in the implementation of
some algorithms (e.g., some graph algorithms, some backtracking algorithms); Huffman
coding; A* and SMA* search algorithms; schedule events; the procedure used by several
sorting algorithms, such as heapsort, smoothsort, selection sort, insertion sort and tree
sort,. . . Splay, Calender and skip list: they are not implemented in priority queue, but they
are used for binary search and binary tree search is applied in priority queue.
Continuously, the lecturer gives students keywords and main references and informs
them of the Project requirements. Project work for each topic consists of the following:
- Study data structures you chose.
- Design an application that demonstrates the Dijkstra algorithm for each data
structure.
- Design simple applications using data structures in the study and measure the
program running time and time complexity for each application.
- Write a report about your study and give a presentation that summarizes the
content of your study and the results you got.
The installation program must ensure these requirements:
1. Programming language: structural/ object - oriented language
2. Each element has a key ordered.
3. Install procedures for each data type (Insert, Delete, ext-min, min,
decrease key,. . . ).
4. Use console interface with selection menu.
5. Input: From keyboard and from file; Output: Display on the screen and
write to file.
Students are responsible for determining and conducting all of the intermediate
steps. The last half of each course is entirely devoted to project work, giving the students
plenty of time to complete and document the project. During this phase of the project, the
instructors act as coaches rather than as experts.
At the same time, a Project Charter that serves as a contract between the students

and the lecturer is given. All students must agree to the Project Charter that is a formal
demonstration of the student-centered approach used in these courses. In addition, by
asking the students to include evaluation criteria, it reinforces the idea that they are
responsible for the project in general and for their individual behavior in the course.
And lastly, the lecturer present Project evaluation planning. In this course, students
are allowed to determine the extent that their project determine their grades and its
generally worth 60% of the overall course grade. The rest is determined by the course
184


Using project-based learning method to each advanced data structures...

instructor. Assessments are based on the Table of evaluation criteria.
Step 2: Examination of the topic, data collection
Each student has a chance to choose two of fifteen topics below to study and present
his result. Each subject is given a weight, valued from 1 to 5, corresponding to difficulty
of each topic.
1: Binary heap, Binomial heap, Fibonacci heap.
2: Trinomial heap, Skew heap, 2-3 heap.
3: Splay tree, Calendar queue, Skip lists.
4: Sorted linked list, Ladder Queue, Lazy queue.
5: Relaxed heap, Van Emde Boas queues, Henriksen’s data structure.
The total weight of a student’s selected topics must be equal to or greater than 6.
With this extensive selection, students can be ensured of an active role in making
the selections, and chosen subjects will likely be suitable to every one.
Step 3: Elaboration of the action plan
- Design a set of inputs that can test students’ programs and applications.
- Project risk management: Difficulty in reading comprehension (since almost
materials supplied in English): get additional explanation from the lecturer via a variety of
communication channels: email, forum, discussion. . . ; difficulty in implemention when

using a specific programming language provide programming languages materials for
reference.
Step 4: Carrying out the action plan
Duting the first session, the subject, priority queues, is presented. Students listen to
the lectures about priority queues and, in general, enumerate some data structures used to
implement priority queues. Ideas and information are collected.
From the 2nd session to the 7th session, students do their project themselves, study
their own chosen data structures and design applications, measure program running time
and time complexity, write their report and prepare to make their presentation before the
class.
From the 8th session to the 12th session, each student in succession presents his
project. At the end of the 12th session, the lecturer summarizes what is know about priority
queues and related data structures, shows the data structures that are most commonly used
nowadays and evaluates the study progress and results of each student.
Step 5: Presentation
The PBL helps students become more confident in their communication by
requiring a presentation before other people. Additionally, posting question is another
skill that is pressed in this course. Continuous feedback by course instructor and external
185


Doan Thi Thu Huyen

participants encourage additional student learning progress. Throughout continuous
feedback is necessary for the project students. Thus, at this step, the lecturer always needs
to encourage his students to post questions and be skeptical about the correctness of their
results and that of others.
Here are some questions that the lecturer can ask after students’ presentations:
- What do you now think are the important questions? Which ones are different
from your original questions? Has any of this changed your thinking? About what? What

are the answers to your questions?
- What are advantages and disadvantages of this data structure?
- From your perspective, what problems did you encountered with your programs?
What concerns do you have concerning their reliability?
- What could be done to improve or enhance your programs in the future?
- - What errors and mistakes did you make? Why were these mistakes made? Which
of these errors were corrected? How were they corrected?
- After this experience, what other project would you like to tackle next?
- - Regarding the questions from the other students, which questions could you not
answer immediately? Do you have any questions?
Step 6: Evaluation, review
The lecturer evaluates the performance of students and draws conclusions about the
role of priority queues in data structures and algorithms of CS, in implementing Prim’s
algorithm and Dijkstra’s algorithm and other problems in our life. The lecturer makes
comments about each student and evaluates his results, his programs and the skills that he
gained in this course.
In order to allow students as much control of the course as possible, students are
allowed to determine how their project grade, worth up to 60% of the overall course
grade, will be determined and distributed. This is done referring to the Table of evaluation
criteria. A student’s final grade is the average of the self-assessment grade and that
determined by the lecturer (also based on the table of evaluation criteria).

2.2.

Pedagogical approach

We applied this educational method at the Socbay-NAiSCorp company with an
internship group of 15 students studying IT at HUST. The motivation for most of these
students to choose this project was their interest in CS and to gather insight into the
technical process of designing an application. Their expectations were satisfied. However,

it was necessary to help them use the constructional method to approach these data
structures and to develop their abstract thinking, algorithm thinking and interpersonal
skills. Students participating in this course had the opportunity to work in the laboratory
186


Using project-based learning method to each advanced data structures...

every weekday with technical assistance provided by a company coordinator.
When students are allowed to choose their own topic, it is essential to discuss
subject selection criteria before the selection is made. We generally asked them to make
the selection and assigned to them their selected subjects. With this method, success
varied. Students do need to be aware of their own strengths and weaknesses when they
chose an appropriate project subject. Sometimes a student will want to change their
chosen topic. This request, however, must be given in writing, and the student must then
immediately choose the new topic to which a commitment is made.
In interviews and surveys, most of the students said that they thought that their
chosen project was very exciting. They were interested in the introduction, organization
and execution of the project. Some important skills were improved and developed during
this project.
Binary heap, Fibonaci heap, Sorted linked list and Van Emde Boas queues were the
most popular subjects and Relaxed heap and Henriksen’s data structure were not chosen
by anyone. This could be because the project introduction was not fascinating enough
to create an interest or stimulate the thinking of students or students did not have the
background knowledge of data structures, algorithms, and high level of abstract thinking
to approach these subjects. On the other hand, restrictions on programming language were
also a challenge and most of the materials were in English.
We assume that this project has significantly improved abstract thinking, algorithm
thinking and programming skill of the students that took part in our experiment.
Throughout the training period, they absorbed a deep understanding about advanced data

structures and they learned presentation skills in each process. Consequently, their ability
to implement an algorithm has improved with a reasonable time cost.

3.

Conclusion

Used in almost developed countries today, project-based learning method has long
been found to be highly useful in higher education. It is being applied widely when
teaching subjects of the CS department. Our research presents a new approach in teaching
advanced data structures, priority queues using the PBL method. We are not certain that
PBL is the best teaching method, but it is a preeminent method used to teach advanced
data structures while conventional methods have been found to be ineffective.
The main purpose of this paper is to propose teaching techniques that will
encourage an active attitude in learning and the research process among students, and
to develop important skills for IT students: those of abstract thinking, algorithm thinking
and other soft-skills related to carrying out projects.
Because student’s ability had to be high and a small number of students participated
in our pedagogical experiment, we can not reach an objective estimation regarding either
187


Doan Thi Thu Huyen

quality or quantity. To evaluate the project, we would need to apply our method and
designed lecture to larger groups. In addition, if the techniques used in this pedagogical
experiment were more flexible a higher result could be obtained. Finally, if such projects
were designed for other majors, the method might prove promisingly in teaching other
advanced data structures and algorithms.
Acknowledgement. The author expresses heartfelt thanks to the research group,

Socbay-NAiSCorp, for their help to accomplishing our pedagogical experiment and this
project. This work was carried out as a project of the internship student group, HUST.
REFERENCES
[1] Andreas Breiter, Gorschwin Fey and Rolf Drechsler, 2005. Project-Based Learning
in Student Teams in Computer Science Education. s.l : Facta Universitatis, Vol. 18. 2.
[2] Jacob C. Perrenet, 2009. Levels of thinking in computer science: Development in
bachelor students’ conceptualization of algorithm. Educ Inf Technol.
[3] Jonhn W. Thomas, 2000. A Review of Research on based project learning. The
Autodesk Foundation 111 McInnis Parkway.
[4] Corporation, Intel, 2007. Designing Effective Projects: Characteristics of Project,
Benefits of Project-Based Learning.
[5] Noémi Szállassy, 2008. Project method, as one of the basic methods of environmental
education, Vol. 1. 2.
[6] Brookshear, J. Glenn. Computer Science - An overview. 11th Edition.
[7] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, 2009.
Introduction to algorithm, 3rd edition.The MIT Press.
[8] David Karger, 2003. Van Emde Boas Queues. Lecture 3.
[9] Tretten, R. & Zachariou, P., 1997.Learning about project-based learning: Assessment
of project-based learning in Tinkertech schools. San Rafael, CA: The Autodesk
Foundation.
[10] Boaler, 1999. J. Mathematics for the moment, or the millennium? What a British
study has to say about teaching methods. Education Week.
[11] The ACM/IEEE Computing Curricula: software Engineering, 2004;
www.computer.org/education/cc2001.
[12] Ghezzi, C., Jazayeri, M. and Mandrioli, D., 2003. Fundamentals of Software
Engineering, 2nd Edition. Pearson International, NJ.
[13] Wing, J.M., 2006. Computational thinking. Comm of ACM 49, 3 33–35.
[14] Nguyễn Duy Hải, Nguyễn Thị Tĩnh, Lê Khắc Quyền, 2011. Ứng dụng phương pháp
dạy học dựa trên dự án (PBL) vào đào tạo trực tuyến. HNUE journal of science, vol.
56 pp.146 - 155.


188



×