Task B: Evaluate your Data Structures (7 marks)

In this second task, you will evaluate your three implemented structures both theoret- ically and empirically in terms of their time complexities for the different…

In
this second task, you will evaluate your three implemented structures
both theoret- ically and empirically in terms of their time
complexities for the different operations and different use case
scenarios. Scenarios arise from the possible use cases of a process
scheduler.

CookMyProject
Write
a report on your analysis and evaluation of the different
implementations. Con- sider and recommend in which scenarios each
type of implementation would be most appropriate. The report should
be 6 pages or less, in font size 12. See the assessment rubric
(Appendix A) for the criteria we are seeking in the report.

4.2.1
Use Case Scenarios

There
are many possibilities, but for this assignment, consider the
following scenarios:


Scenario
1 Growing runqueue (Enqueue). In this scenario, the runqueue is
growing with increasing processes are adding into the runqueue. In
this scenario, you are to evaluate the performance of your
implementations in terms of the enqueue operation (EN).


Scenario
2 Shrinking runqueue (Dequeue). In this scenario, the runqueue is
shrinking with increasing processes are dequeuing from the runqueue.
In this scenario, you are to evaluate the performance of your
implementations in terms of the dequeue operation (DE).


Scenario
3 Calculating total vruntime
of
proceeding processes. In this sce- nario, assume the runqueue is not
changing, but important operation of calculating total vruntime
of
proceeding processes of a given process is required. In this sce-
nario, you are to evaluate the performance of your implementations in
terms of the PT
operation.

4.2.2
Theoretical Analysis

At
first, you are to conduct a theoretical analysis of the performance.
Given a runqueue of size n, report the best case, worse case running
time estimate, and the asymptotic complexity (Big O) of your
implementations in terms of the different scenarios outlined above.
You will also need to provide an example scenario and explanation on
the each of the best case and worse case running time estimate, e.g.
using an runqueue with a small number (e.g.,5) of elements/processes.
Put the results in the follow format of a table:

7

Theoretical
Analysis Scenarios Best Case Worse Case Big O Scenario 1 [time
estimation]

[example
and explanation]

[time
estimation] [example and explanation]

[asymptotic
complexity]

Scenario
2 [time estimation]

[example
and explanation]

[time
estimation] [example and explanation]

[asymptotic
complexity]

Scenario
3 [time estimation]

[example
and explanation]

[time
estimation] [example and explanation]

[asymptotic
complexity]

4.2.3
Empirical Analysis

Typically,
you use real usage data to evaluate your data structures. However,
for this assignment, you will write data generators to enable testing
over different scenarios of interest.

Data
Generation

The
time performance of the above mentioned scenarios and operations
could vary sig- nificantly depends on the structure and
elements/processes of the initial runqueue.

We
provide an artificial processes dataset of about 5000 processes, each
with a label (string) and a vruntime (integer number) in a file
called “processes.txt”. Each line of this file stores a process
in the format of: label,vruntime

For
generating runqueues with different initial structure and elements,
you may want to generate a series of add process operations (EN)
to grow the runqueue to the desired size, by either:


randomly
choosing processes from the file we supplied (‘processes.txt’);
or


writing
a process generator to generate a new process. For example, for each
pro- cess, generate a unique string identifier/process label and a
random integer (i.e. vruntime) uniformly sampled within a fixed
range, e.g., [1,100].

Note,
whichever method you decide to use, remember to generate runqueues of
different sizes to evaluate on (e.g., 10, 50, 100, 500, …,1000,
5000). Due to the randomness of the data, you may wish to generate a
significant number of datasets with the same parameters settings
(same size and a scenario) and take the average across a number of
runs. In your analysis, you should evaluate each of your
representations and data structures in terms of the different
scenarios outlined above. Hence, we advise you to get started on this
part relatively early.

5
Report Structure

As
a guide, the report could contain the following sections:

8


Theoretical
analysis on running time and complexities of the different data
structure implementation as outlined in Section 4.2.2.


Explain
your data generation and experimental setup. Things to include are
(brief) explanations of the generated data you decide to evaluate on,
the complexity pa- rameters you tested on, describe how the scenarios
were generated (a paragraph and perhaps a figure or high level pseudo
code suffice), which approach(es) you decide to use for measuring the
timing results.


Evaluation
of the data structures using the generated data. Analyse, compare and
discuss your results across different complexity parameters,
representations and scenarios. Provide your explanation on why you
think the results are as you observed. You may consider using the
known theoretical time complexities of the operations of each data
structure to help in your explanation.


For
some particular data structure like Binary Search Tree (BST), you
will also need to suggest possible improvement to reduce running time
on different scenarios. In order to do that, you will need to
understand well the complexity of various operations on a BST, and be
able to research beyond.


Summarise
your analysis as recommendations, e.g., “for this certain data
scenario of this parameters setup, I recommend to use this data
structure because….”. We suggest you refer to your previous
analysis for help.

5.1
Clarification to Specifications

Please
periodically check the assignment FAQ for further clarifications
about specifica- tions. In addition, the lecturer will go through
different aspects of the assignment each week, so even if you cannot
make it to the lectures, be sure to check the course material page on
Canvas to see if there are additional notes posted.

6
Team Structure

This
assignment is designed to be done in pairs (group of two). If you
have difficulty in finding a partner, post on the discussion forum or
contact your lecturer. Any issues (e.g., work division or workload)
that result within the team should be resolved within the team if
possible; if this is not possible, then this should be brought to the
attention of the course coordinators as soon as possible. Marks are
awarded to the individual team members, according to the
contributions made towards the final work. Please submit what
percentage each partner made to the assignment (a contribution sheet
will be made available for you to fill in), and submit this sheet in
your submission. The contributions of your group should add up to
100%. If the contribution percentages are not 50-50, the partner with
less than 50% will have their marks reduced. Let student A has
contribution X%, and student B has contribution Y%, and X>Y . The
group is given a group mark of M. Student A will get M for assignment
1, but student B will get MXY
.

7
Submission

The
final submission will consist of four parts:

9


Your
Java source code of your implementations. Your source code should be
placed into in a flat structure, i.e., all the files should be in the
same direc- tory/folder, and that directory/folder should be named as
Assign1-<partner
1 student number>-<partner 2 student number>.
Specifically, if your student num- bers are s12345 and s67890, then
all the source code files should be in folder Assign1-s12345-s67890.


Your
written report for part B in PDF format, called “assign1.pdf”.
Place this pdf within the Java source file directory/folder, e.g.,
Assign1-s12345-s67890.


Your
data generation code. Create a sub-directory/sub-folder called
“generation” within the Java source file directory/folder. Place
your generation code within that sub-folder. We will not run the
code, but will examine their contents.


Your
group’s contribution sheet. See the following ‘Team Structure’
section for more details. This sheet should also be placed within
your Java source file folder.


Then,
the Java source file folder (and files within) should be zipped up
and named as Assign1-<partner
1 student number>-<partner 2 student number>.zip.
E.g., if your student numbers are s12345 and s67890, then your
submission file should be called Assign1-s12345-s67890.zip,
and when we unzip that zip file, then all the submission files should
be in the folder Assign1-s12345-s67890.

8
Assessment

The
project will be marked out of 15. Late submissions will incur a
deduction of 1.5 marks per day, and no submissions will be accepted 5
days beyond the due date.

The
assessment in this project will be broken down into two parts. The
following criteria will be considered when allocating marks.

Implementation
(8/15):


You
implementation will be assessed on the different implemented data
structures, respectively, and on the number of tests it passes in our
automated testing.


While
the emphasis of this project is not programming, we would like you to
main- tain decent coding design, readability and commenting, hence
these factors will contribute towards your marks.

Report
(7/15):

The
marking sheet in Appendix A outlines the criteria that will be used
to guide the marking of your evaluation report. Use the criteria and
the suggested report structure (Section 4) to inform you of how to
write the report.

Late
Submission Penalty: Late submissions will incur a 10% penalty on the
total marks of the corresponding assessment task per day or part of
day late. Submissions that are late by 5 days or more are not
accepted and will be awarded zero, unless special consideration has
been granted. Granted Special Considerations with new due date set

10

after
the results have been released (typically 2 weeks after the deadline)
will automat- ically result in an equivalent assessment in the form
of a practical test, assessing the same knowledge and skills of the
assignment (location and time to be arranged by the coordinator).
Please ensure your submission is correct (all files are there,
compiles etc), re-submissions after the due date and time will be
considered as late submissions. The core teaching servers and Canvas
can be slow, so please do double check ensure you have your
assignments done and submitted a little before the submission
deadline to avoid submitting late.

Assessment
declaration: By submitting this assessment, all the members fo the
group agree to the assessment declaration –
https://www.rmit.edu.au/students/student-essentials/
assessment-and-exams/assessment/assessment-declaration

9
Academic integrity and plagiarism (standard warning)

Academic
integrity is about honest presentation of your academic work. It
means ac- knowledging the work of others while developing your own
insights, knowledge and ideas. You should take extreme care that you
have:


Acknowledged
words, data, diagrams, models, frameworks and/or ideas of others you
have quoted (i.e. directly copied), summarised, paraphrased,
discussed or men- tioned in your assessment through the appropriate
referencing methods


Provided
a reference list of the publication details so your reader can locate
the source if necessary. This includes material taken from Internet
sites. If you do not acknowledge the sources of your material, you
may be accused of plagiarism because you have passed off the work and
ideas of another person without appropriate referencing, as if they
were your own.

RMIT
University treats plagiarism as a very serious offence constituting
misconduct. Plagiarism covers a variety of inappropriate behaviours,
including:


Failure
to properly document a source


Copyright
material from the internet or databases


Collusion
between students

For
further information on our policies and procedures, please refer to
the following:
https://www.rmit.edu.au/students/student-essentials/rights-and-responsibilities/
academic-integrity.

10
Getting Help

There
are multiple venues to get help. There are weekly consultation hours
(see Canvas for time and location details). In addition, you are
encouraged to discuss any issues you have with your Tutor or Lab
Demonstrator. We will also be posting common questions on the
assignment 1 Q&A section on Canvas and we encourage you to check
and participate in the discussion forum on Canvas. However, please
refrain from posting solutions, particularly as this assignment is
focused on algorithmic and data structure design.

11

12

A
Marking Guide for the Report

Design
of Evaluation Analysis of Results Report Clarity (Maximum = 1.5
marks) (Maximum = 4 marks) (Maximum = 1.5 marks) 1.5 marks 4 marks
1.5 marks Data generation is well designed, systematic and well
explained. All suggested scenarios, data structures and a reasonable
range of size of the runqueue were evaluated. Each type of test was
run over a number of runs and results were averaged.

Analysis
is thorough and demon- strates understanding and critical analysis.
Well-reasoned explana- tions and comparisons are provided for all the
data structures, scenar- ios and different input sizes of the
runqueue . All analysis, compar- isons and conclusions are supported
by empirical evidence and theoreti- cal complexities. Well reasoned
rec- ommendations are given.

Very
clear, well struc- tured and accessible re- port, an undergraduate
student can pick up the report and understand it with no difficulty.

1
marks 3 marks 1 marks Data generation is reasonably designed,
systematic and explained. There are at least one obvious missing
suggested scenarios, data structures or reasonable size of the
runqueue . Each type of test was run over a number of runs and
results were averaged.

Analysis
is reasonable and demon- strates good understanding and crit- ical
analysis. Adequate comparisons and explanations are made and il-
lustrated with most of the suggested scenarios and input sizes of the
run- queue . Most analysis and compar- isons are supported by
empirical evi- dence and theoretical analysis. Rea- sonable
recommendations are given.

Clear
and structured for the most part, with a few unclear minor sec-
tions.

0.5
mark 2 marks 0.5 mark Data generation is somewhat adequately
designed, systematic and explained. There are several obvious missing
suggested scenarios, data structures or reasonable size of the
runqueue . Each type of test may only have been run once.

Analysis
is adequate and demon- strates some understanding and crit- ical
analysis. Some explanations and comparisons are given and il-
lustrated with one or two scenarios and sizes of the runqueue . A
por- tion of analysis and comparisons are supported by empirical
evidence and theoretical analysis. Adequate rec- ommendations are
given.

Generally
clear and well structured, but there are notable gaps and/or unclear
sections.

0
marks 1 mark 0 marks Data generation is poorly designed, systematic
and explained. There are many obvious missing suggested scenarios,
data structures or reasonable size of the runqueue . Each type of
test has only have been run once.

Analysis
is poor and demonstrates minimal understanding and critical analysis.
Few explanations or com- parisons are made and illustrated with one
scenario and size setting. Little analysis and comparisons are
supported by empirical evidence and theoretical analysis. Poor or no
rec- ommendations are given.

The
report is unclear on the whole and the reader has to work hard to
understand.

13

References

[1]
Completely fair scheduler.
https://en.wikipedia.org/wiki/Completely_Fair_

Scheduler.

[2]
Scheduling (computing). https://en.wikipedia.org/wiki/Scheduling_

(computing).

Let’s block ads! (Why?)

Do you need any assistance with this question?
Send us your paper details now
We’ll find the best professional writer for you!

 



error: Content is protected !!