Sie sind auf Seite 1von 19

Student Projects in the

Course Data Structures


Hristina Mihajloska

Outline
About the course Data Structures
Student Projects in Java
Gains and Conclusion

About the course Data


Structures

Big team for a large number of students


Lectures
Ana Madevska-Bogdanova
Anastas Mishev

Auditory exercises
Boro Jakimovski
Magdalena Kostoska

Laboratory exercises
Hristina Mihajloska
Panche Ribarski

About the course Data


Structures
Weekly schedule:

2 hours lectures
3 hours auditory exercises
3 hours laboratory exercises (in computer
laboratory)

Practice:
laboratory groups up to 20 students

Projects:
two compulsorily practical single-handed
projects

Assumed Background
Student has taken the course Objectoriented Programming
Knowledgeable about
Java language basics
Object-oriented design
Recursion

Grading Information
Two theory exams: 30%
Two practical exams: 30%
Assignments: 20%
Projects: 20%
Class participation: 5% (bonus)

Course Objectives
Learning some of the common data
structures
Different ways for their implementation
Ability for analyzing the complexity of
algorithms which use data structures
Using data structures for solving
practical problems

Course Topics
Algorithm complexity
Fundamental Data Structures
Abstract Data Types
Stacks and Queues
Hash Tables
Trees
Priority queues and Heaps
Sorting
Search trees

Course Difficulties
Student perspective
practical exams much harder then weekly
assignments

Course Difficulties
Teacher perspective
few of the students could pass practical
exams

Solution
Implementing single-handed student
project one week before every practical
exam (during course semester)

Student Projects
Goals
good preparation for practical exam
to improve analytical reasoning and
programming skills
to distinguish which data structure to be
used in practical problem

Student Projects
For every project exists three levels of
complexity which are graded differently
Students are asked to choose one of them
and find a solution in given time
no points for programs that do not compile

Student Projects
First level (easiest)

Identification of the data structure in the


practical problem
It is obvious

Second level (middle)

Students have to combine two data


structures to solve the problem

Third level (hardest)

To build a new data structure which is combination


of data structures covered by the material
To implement it in a different way

Examples
Third-level project
Write an implementation for data structure
Bag as a Java class, which is similar to a set,
but it may contain several instances of the
same member. For example, {'to', 'be', 'or',
'not', 'to', 'be'} is a bag of words, which is
equal to {'be', 'be', 'not', 'or', 'to', 'to'} (since
order of members is insignificant), but is
unequal to {'be', 'not', 'or', 'to'} (since the
number of instances is significant). Adding
(removing) a member increases (decreases)
the number of instances in the bag by one. The

Examples
Third-level project . . .
Design a bag ADT. Provide set-like
operations, including bag union and bag
subsumption (but not bag intersection or
difference). In addition, provide an
operation that returns the number of
instances of a given member.
How would you represent a bag without
actually storing multiple instances of the
same member?
Implement a bag ADT using a sorted array

Examples
Middle-level project
One arithmetic expression is given within
an xml file. Process this xml file and put it
in an adequate structure. The structure
should enable evaluation of the expression.
For a given xml file find the value of the
expression.
...

Student Projects
Gains
increased the number of students that
passed practical exams
conceptual and concrete ways to organize
data for efficient storage and efficient
manipulation
make use of data structures in the design
of efficient algorithms

Conclusion
We got good programming solutions for
the given problems
Good students like this way of teaching
If students did their projects alone, they
are well prepared for practical exams

Thank you for your


attention

Das könnte Ihnen auch gefallen