首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
COMP2009编程讲解、辅导CS,Java程序、c++编程语言调试 调试C/C++编程|解析Haskell程序
项目预算:
开发周期:
发布时间:
要求地区:
COMP2009-ACE-ADE 2020-21:
Coursework FIVE
"Linear probing and change giving"
DRAFT
WEIGHT: This coursework will contribute 6% of the total module score.
DEADLINE: Thursday May 20, 2021, 15:00 (UK time). I will incorporate any
changes (corrections/clarifications) needed, and update.
Hence please recheck on Moodle that you have the latest version before sending a
query.
Description
The C/W has two parts, briefly
Part I. Understand and use an the implementation of insertion into a simple linear probing
hash map to do a simple experimental analysis of the cost of insertion as a function of the
fullness, the “fill factor”, of the hash table. Uses the file HashMap.java
Part II. Finish off the DP implementation of a ‘change-giving problem”. Also, implement
the greedy change-giving method. Report on how often the greedy method gives an optimal
answer in different circumstance. This will need the file change.java
Firstly, you should download the files from Moodle. Your first task should be to read them
carefully, and then check that you can edit, compile, and run them as needed.
Part I – Linear probing.
In the file “HashMap.java” you are given partial code for a hash map using linear probing.
You then need to
A. “Implement”. Understand the code well enough to be able to change the settings for
the table size, size of hash table, and properties of the stream of keys inserted.
B. “Experiment”. Run experiments, using various settings within the Java file to study
how the cost of an insertion (number of probes needed) varies with the number of
entries in the hash table, before the insertion is attempted.
1. Run with the two different streams of inputs: all random, or all multiples of 10
2. Run with the two values N=99 and N=100
C. “Graph”. Using the results of the experiments, plot some graph(s) of the cost c(f) of
an insertions a function of “filled”, f, – the number of entries in the table before the
insertion. E.g. c(0) = 1 as there is never a collision when the table is entry.
D. “Analyse / Report / Strategy selection”. Discuss the results. Are there any surprises.
Is there evidence of whether N=99 or N=100 is better, etc. Does the size of the table
help? Briefly discuss how this would impact of what strategy you would use if you
were designing a “Hashmap” for a software library.
Part II – Change giving
In the file “ChangeGiving.java” you are given partial code for finding the minimum number
of coins to meet a target:
You then need to
A. “Implement DP”. Finish off the 2 missing lines in the “RunDP” implementation of
the change giving using DP. You only need to replace the three placeholder values of
“-99” with actual correct expressions.
B. “Implement DP scan”. In the code the runs a scan of target values, if possible,
improve the code so that it only has to do one invocation of RunDP(), and can still
output values for all values of the target.
C. “Implement Greedy”. Finish off the method RunGreedy(int), to do a greedy
selection of coins as given in the lecture – repeatedly taking the largest available coin
that does not overshoot the target. (Should be just a few lines of code).
D. “Experiments”. Use your code to run experiments to find the success of the Greedy
method compared to the optimal answer obtained from the DP method.
1. Consider coinsets based on UK={1,2,5,10,20,50,100,200} and
US={1,5,10,25} and with different multiplicities ‘mult’ (the number of each
coin)
2. Consider a range of targets, e.g. K = 1,…,sumCoins. Note the maximum
target should never be more than the sum of all the coins.
E. “Analyse and Report”.
1. Report on circumstances, i.e. combinations of the coinset and target, and in
which the DP reports that it is not possible to give the exact change. E.g. for
each coinset, and the given range of targets, then which fraction of the targets
(assumed no more than the sum of all coins) are achievable.
2. Report on whether the “UK coinset better or worse than the US coinset”.
E.g. when averaged over some range of values, which coinset needs the fewest
coins?
3. Report on how often the greedy method gives an answer at all, and how often
it gives an optimal answer.
The reports should be clear and easy to read, and not exceed the page limits.
These questions are deliberately slightly open-ended and under-specified. It is intended to
roughly mimic the case in which you are given some component of a program/methods to
analyse and are required to "say something useful about the usefulness and expected
behaviours".
You do not need, and should not attempt, to produce a complete or deep analysis, or write a
major project!! You only need to be able to show that you can run the code, produce some
informative graphs, and make some reasonable interpretation of the effects of changing the
settings such as: hash map size or sets of coins. Hence, demonstrating understanding of the
topics.
Submission Requirements
On Moodle, you need to submit a report and your source code (softcopy only).
Specifically, by the deadline, you must submit in Moodle THREE files:
1) The electronic report. This must be a PDF. (Not a .docx file).
2) Your own, (modified as needed), versions of the TWO Java files.
DO NOT ZIP THEM TOGETHER BUT SUBMIT THEM SEPARATELY
The PDF report must be no more than FOUR sides (and do not reduce font size, margins,
etc.) but can/should be significantly less.
As usual, you should be regularly backing up all your work: “My computer crashed, and so I
had to start again” will not be a valid reason for late submission.
Marking Scheme
The coursework is worth 6% of the module, and so for clarity will be marked out of 60 – so 1
mark = 0.1% of module. The division of marks available between the parts is not rigid, but is
roughly:
• Part 1: 30
• Part 2: 30
When it is required, then attendance and participation in short (less than 5 minutes per
person) individual meeting with tutors. Details will be provided later; but you should expect
at least to be able to explain what you did and answer questions about your submission.
Marking Criteria:
The main criteria are:
• The effectiveness and reasonableness of your implementations, experimental studies
and the associated analyses. The quality of analysis of the functions – ideally it should
be both clear and brief.
• Does the report demonstrate understanding, and ability to use, the language hash
tables and of dynamic programming?
Late submissions are allowed and are penalised using the standard University policy: rate
(5% per working day) and with a maximum of 7 days late.
Plagiarism Policy
This coursework must be all your own work. You should remember that the coursework
submissions will be archived, and plagiarism detection tools may be used at any time
(including after the module is finished.) Plagiarism is a very serious offence! Read the
University regulations. If at all in doubt about whether something is allowed, then consult me
or your personal tutor.
Be aware that may be required to explain your submitted answers to the tutors during a
lab session.
Objective
LEARNING OBJECTIVES OF THE C/W: The mildly-open-endedness is a deliberate part of
the training that this C/W intends to give you. It is vital to develop the skill to decide for
yourself what experiments to run, and exactly which graph(s) to produce, rather than just
following a precise list produced by someone else. It is generally not possible to decide all
experiments in advance, and so it needs to be done interactively and iteratively - if I specified
the experiments then it would basically tell you the answers. This intends to help get start on
the process of learning to design experiments. For example, in doing an individual
dissertation in year 3 or 4, you may need to design appropriate tests. If you are in industry
and asked to understand the scaling of a complex piece of code then you cannot expect your
boss to provide a list of the experiments to do; but will be expected to figure it out for
yourself. Specifically, the objectives of this coursework are to:
• give some 'hands-on' experience on Hashmaps and how the performance degrades
with them being full and with a bad alignment between the properties of the hash
table and the properties of the input data stream.
• to be able to understand, implement, simple DP and greedy methods and be able to
compare them, and analyse results from them.
Hints and Suggestions
Please send in email. I may also collate and maintain a help/FAQ file on Moodle, and/or post
them to the forum.
Contact: Andrew.Parkes 'at' nottingham.ac.uk
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!