Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

502IT

Algorithms and Data Structures

Introduction:

Programming knowledge is based on the programmer’s experience with various standard structures, generic designs and templates, to address specific scenarios in real-life scenarios. Therefore, it is crucial to provide practical evidence of the application of concepts presented in this module.

The scenario should be based on the case study given below:

DVD store application:

For a family or an individual, a favourite place to go on weekends or holidays is to a DVD store to rent movies. A new DVD store in your neighbourhood is about to open. However, it does not have a program to keep track of its DVDs and customers. The store managers want someone to write a program for their system so that the DVD store can function. The program should be able to perform the following operations:

1. Rent a DVD; that is, check out a DVD.

2. Return, or check in, a DVD.

3. Create a list of DVDs owned by the store.

4. Show the details of a particular DVD.

5. Print a list of all of the DVDs in the store.

6. Check whether a particular DVD is in the store.

7. Maintain a customer database.

8. Print a list of all of the DVDs rented by each customer.

a) Using classesto implement the DVD data, DVD list data, customer data, and customer list data, , design and complete the program to put the DVD store into operation.


b) Design and implement the class DVListType to create and maintain a list of DVDs for the DVD store using linked list.

c) Because the search on a linked list is sequential and, therefore, can be time consuming, design and implement the class customerBTreeType so that this customer data can be stored in a binary search tree.

The customer object stores information about a customer, such as the first name, last name, account number, and a list of DVDs rented by the customer.

Details of the DVD is as follows:

• Name of the movie

• Names of the stars

• Name of the producer

• Name of the director

• Name of the production company

• Number of copies in the store

For this assignment, you are to construct a professional portfolio of programming work throughout the course of the six-week module.

Completion of this assignment will address the following learning outcomes:

1 Select and develop algorithms to solve a range of complex problems.

2 Apply object-oriented analysis and design techniques to develop software with multiple component parts.

3 Evaluate common algorithms and data structures.

4 Develop software that uses and builds upon common algorithms and data structures.

5 Apply object-oriented programming language features.


Task:

In this assignment, you are required to produce a workable prototype to demonstrate your skills in problem solving and object-oriented work.

The professional portfolio of software includes:

A: The prototype will cover the following areas (20%);

i. Object-oriented analysis, design and programming.

ii. Algorithms.

iii. Data structures.

B: The final report must include and not more than 2000 words in total (30%):

i. Introduction

ii. UML Class Diagram

iii. Selection of algorithm and integration

iv. Indicative Learning Summary Report which mapping the intended module learning outcomes and topic under discussion. Learners are to exhibit how these topics was being applied to solve the case study and prototype development.

v. List of reference

C: Demonstration of Prototype - Viva (10%)

For the purpose of the assignment and You may refer to the examples found in the essential reading; “Data Structure and Algorithmic Thinking with Python: Data Structure and Algorithmic Puzzles.”.

Guidance notes and considerations

Late Submission

• If you are not able to complete your coursework on time due to extenuating circumstances, the ONLY way to receive an extension (up to 5 working days) or a deferral (anything longer than 5 working days) is to contact your module lecturer or Email to [email protected]

• Extenuating circumstances are defined by CU as ‘genuine circumstances beyond your control or ability to foresee, and which seriously impair your assessed work’.

• Please note that you will need to provide third party evidence to support your reasoning for requiring an extension or deferral.

Plagiarism and Malpractice

• You are encouraged to check the originality of your work by using the draft Turnitin links on your Blackboard.

• Collusion between students (where sections of your work are similar to the work submitted by other students in this or previous module cohorts) is taken extremely seriously and will be reported to the academic conduct panel. This applies to all coursework and exam answers.

• A marked difference between your writing style, knowledge and skill level demonstrated in class discussion, any test conditions and that demonstrated in a coursework assignment may result in you having to undertake a Viva Voce in order to prove the coursework assignment is entirely your own work.

• If you make use of the services of a proof reader in your work you must keep your original version and make it available as a demonstration of your written efforts.

• You must not submit work for assessment that you have already submitted (partially or in full), either for your current course or for another qualification of this university, unless this is specifically provided for in your assignment brief or specific course or module information.

• Where earlier work by you is citable, i.e., it has already been published/submitted, you must reference it clearly. Identical pieces of work submitted concurrently will also be considered to be self-plagiarism.

Submission Guidelines

There should be a title page which clearly identifies the following:

* Name of the module               * Title of the Assessment

* Assessment number                * Word count

The word count identified includes quotations, but excludes the bibliography and unless specifically stated, encompasses a discrepancy of + or – 10%.