COMP42215代做、代写Python设计程序
INTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

Coursework Administrative Details

Module/Lecture Course: COMP42215 Introduction to Computer Science
Deadline for submission: 14:00 Friday 13
th
December 2024
Work returned: Week Beginning 13
th
January 2025
Submission
instructions:
Submit via Jupyterhub on NCC. Video guidance will be
provided separately.
Format: You should submit a single Jupyter notebook file that
contains your code and written answers. Do not put
your name on your work, just your username.
Contribution: This coursework contributes 100% to the final mark for
the module.

In accordance with University procedures, submissions that are up to 5 working
days late will be subject to a cap of the module pass mark, and later submissions
will receive a mark of zero.

Content and skills covered by the assignment:
• Be able to write computer programs in Python
• Be able to select appropriate data structures
• Be able to evaluate the complexity of an algorithm
• Effective written communication
• Planning, organising and time-management
• Problem solving and analysis

INTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

General Requirements
You should develop an iPython (Jupyter) notebook to assess the performance and
algorithmic complexity of various algorithms using a range of data structures. Your
written answers should be meet the word limits described in each question.
In each question that requires you to write code you should consider issues such as
error checking, the use of appropriate data structures, the efficiency of your code and
comments to aid understanding.
Please answer each question in a separate code block in your Jupyter notebook, and
clearly label each with a comment containing the question number.

Section 1 (10%)

1) Write a function to generate a Python list that contains random unique integers,
i.e. no value should appear more than once in the list. The function should take
as an argument the desired size of the list and set a seed of your choice. [4%]
2) Write a function to convert a Python list of integers into a NumPy array of
integers. The function should take as an argument a Python list. [2%]
3) Write a function to convert a Python list into a dictionary. The keys of the
dictionary should be the values stored in the list, and the values should be
randomly generated floating points values. The function should take as an
argument a Python list. [4%]

Section 2 (25%)

4) Write a function that takes a Python list and an integer value as arguments, and
returns True if the integer value exists in the list. The function should return False
otherwise. [3%]
5) Write a function that takes a NumPy array and an integer value as arguments,
and returns True if the integer value exists in the array. The function should
return False otherwise. [3%]
6) Write a function that takes a Python dictionary and an integer value as
arguments, and returns True if the integer value exists as a key in the dictionary.
The function should return False otherwise. [3%]
7) Time your functions from Q4, Q5 and Q6 on an appropriate range of input sizes
(using your solutions to Q1, Q2 and Q3 to generate the inputs). Use the data you
collect to draw graphs (using matplotlib) that compare the performance of your
functions. [8%]

Questions continue onto next page
INTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

8) Discuss in 200 words or less what your results show. You should consider the
computational complexity of your functions. If you don’t manage to collect any
data to discuss you should research and discuss what you would expect the
results to show. [8%]

Section 3 (15%)

9) Write a function to sort a Python list of integers. You may implement any
algorithm of your choosing, or use one of the built-in sorting methods. [2%]
10) Write a function that takes a sorted Python list and an integer value as
arguments. You should use functions available to you in the ‘bisect’ module to
determine if the integer value exists in the sorted list, and return True if it does.
The function should otherwise return False. [4%]
11) Time your functions from Q4 and Q9 on an appropriate range of input sizes
(using your solutions to Q1 and Q9 to generate the inputs). Use the data you
collect to draw graphs (using matplotlib) that compare the performance of your
functions. [5%]
12) Discuss in 100 words or less what your results show. You should consider the
computational complexity of your functions. If you don’t manage to collect any
data to discuss you should research and discuss what you would expect the
results to show. [4%]

Section 4 (40%)

13) Write a function that takes a single integer, x, as an argument and outputs a
Python set containing the divisors of x. E.g. If the input x were 20, then the output
would be {1,2,4,5,10,20}. You should consider the efficiency of your solution.
[10%]
14) Write a function that takes a Python list of integers as an argument, and outputs
the greatest common divisor (GCD) of all of the values in the list. You should use
your function from Q13 to find the divisors of each value in the list and use
appropriate set operations to find the GCD. E.g. If the input array were [20,15,45]
the GCD would be 5 as it is the largest divisor the three values have in common.
[8%]

Questions continue onto next page
INTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

15) Write a function that takes a Python list of integers and uses the built-in
math.gcd() function to calculate the GCD of all of the values in the list. You
should assume that the math.gcd() function will only take two arguments, e.g.
math.gcd(12,4). You will likely need to loop through the input list using the gcd
function multiple times. [8%]
16) Time your functions from Q13, Q14 and Q15 on an appropriate range of input
sizes (using your solution to Q1 to generate the inputs). Use the data you collect
to draw graphs (using matplotlib) that compare the performance of your functions.
[6%]
17) Discuss in 200 words or less what your results show. You should consider the
computational complexity of your functions. If you don’t manage to collect any
data to discuss you should research and discuss what you would expect the
results to show. [8%]

Section 5 (10%)

18) In 250 words or less, reflect on the taught content and the learning outcomes of
this module and identify the three most important points that you will take into
future modules. [10%]

INTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

Examiners will stop reading once the word limit has been reached, and work beyond
this point will not be assessed. Checks of word counts will be carried out on submitted
work. Checks may take place manually and/or with the aid of the word count provided
via an electronic submission.

You should include any relevant references that you have used in writing your written
answers, and these will not be included in the word count for the question.

PLAGIARISM and COLLUSION
Your assignment will be put through plagiarism detection services.
Students suspected of plagiarism, either of published work or work from unpublished
sources, including the work of other students, or of collusion, will be dealt with
according to Computer Science and University guidelines.

热门主题

课程名

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
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图