COMP42215 Introduction to Computer Science

洛雨听花發表於2024-12-06

INTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

Coursework Administrative Details

Module/Lecture Course: COMP42215 Introduction to Computer Science

eadline for submission: 14:00 Friday 13 th December 2024Work returned: Week Beginning 13th January 2025Submission

instructions: Submit via Jupyterhub on NCC. Video guidance will beprovided separately.Format: You should submit a single Jupyter notebook file thatcontains your code and written answers. Do not putyour name on your work, just yourusername.

Contribution:

This coursework contributes 100% to the final mark forthe module.In accordance with University procedures, submissions that are up to 5 working days late will besubject 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 analysisINTRODUCTION TO COMPUTER SCIENCE

2024/2025 Masters Programmes General Requirements You should develop an iPython (Jupyter) notebook to assess the performance andalgorithmic complexity of various algorithms using a range of data structures. Yourwritten 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 代寫COMP42215 Introduction to Computer Science aserror checking, the use of appropriate data structures, the efficiency of your codeandcomments to aid understanding.Please answer each question in a separate code block in your Jupyter notebook, andclearly label each with a comment containing thequestion number.Section 1 (10%)

  1. 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 takeas an argument the desired size of the list and set a seed of your choice. [4%]
  1. 2) Write a function to convert a Python list of integers into a NumPy array ofintegers. The function should take as an argument a Python list. [2%]
  1. 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 berandomly generated floating points values. The function should take as anargument a Python list. [4%]

Section 2 (25%)

  1. 4) Write a function that takes a Python list and an integer value as arguments, and5) 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 shouldreturn False otherwise. [3%]
  1. 6) Write a function that takes a Python dictionary and an integer value asarguments, and returns True if the integer value exists as a key in the dictionary.The function should return False otherwise. [3%]
  1. 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 yourfunctions. [8%] Questions continue onto next pageINTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes

  1. 8) Discuss in 200 words or less what your results show. You should consider thecomputational complexity of your functions. If you don’t manage to collect anydata to discuss you should research and discuss what you would expect theresults to show.[8%] Section 3 (15%)
  1. 9) Write a function to sort a Python list of integers. You may implement anyalgorithm 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 asarguments. Youshould use functions available to you in the ‘bisect’ module todetermine 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 youcollect to draw graphs (using matplotlib) that compare the performance of yourfunctions. [5%] 12)Discuss in 100 words or less what your results show. You should consider thecomputational complexity of your functions. If you don’t manage to collect anydata to discuss you should research and discuss what you would expect theresults toshow. [4%]

Section 4 (40%)

13)Write a function that takes a single integer, x, as an argument and outputs aPython set containing the divisors of x. E.g. If the input x were 20, then the outputwould 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 outputsthe greatest common divisor (GCD) of all of the values in the list. You should useyour function from Q13 to find the divisors of each value in the list and useappropriate 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 pageINTRODUCTION TO COMPUTER SCIENCE 2024/2025 Masters Programmes 15)Write a function that takes a Python list of integers and uses the built-inmath.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 gcdfunctionmultiple times. [8%] 16)Time your functions from Q13, Q14 and Q15 on an appropriate range of inputsizes (using your solution to Q1 to generate the inputs). Use the data you collectto 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 thecomputational complexity of your functions. If you don’t manage to collect anydata todiscuss you should research and discuss what you would expect theresults to show[8%] Section 5 (10%) 18) In 250 words or less, reflect on the taught content and the learning outcomes ofthis module and identify the three most important points that you will take intofuture modules. [10%]INTRODUCTION TO COMPUTER SCIENCE

2024/2025 Masters Programmes

Examiners will stop reading once the word limit has been reached, and work beyondthis point will not be assessed. Checks of word counts will be carried out on submittedwork. Checks may take place manually and/or with the aid of the word count providevia an electronic submission.You should include any relevant references that you have used in writing your writtenanswers, 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 unpublishedsources, including the work of other students, or of collusion, will be dealt withaccording to Computer Science and University guidelines.

相關文章