General Instructions•This assignment is individual work.You may discuss questions and problems with anyone, butthe work you hand in for this assignment must be your own work.•Assignments are being checked for plagiarism.We are using state-of-the-art software to com-pare every pair of student submissions.•Each question indicates what to hand in. You must give your document the name we prescribefor each question, usually in the form aNqM, meaning Assignment N, Question M.•Make sure your name and student number appear at the top of every document you hand in.These conventions assist the markers in their work. Failure to follow these conventions will resultin needless effort by the markers, and a deduction of grades for you.•Do not submit folders, or zip les, even if you think it will help. It might help you, but it adds anextra step for the markers.•Programs must be written in Python 3.•Assignments must be submitted to Moodle.There is a link on the course webpage that showsyou how to do this.•Moodle will not let you submit work after the assignment deadline.It is advisable to hand ineach answer that you are happy with as you go. You can always revise and resubmit as many timesas you like before the deadline; only your most recent submission will be graded.•Read the purpose of each question. Read the Evaluation section of each question
:Purpose:To build programming skills by implementing the linked list ADT. To learn to implement an ADTaccording to a description. To learn to use testing effectively. To master the concept of reference. Tomaster the concept of node-chains. To gain experience thinking about different problem cases.Degree of Diculty:Moderate There are a few tricky bits here, but the major diculty is the length of theassignment. Do not wait to get started! This question will take 3-5 hours to complete.Restrictions:This question is homework assigned to students and will be graded. This question shall notbe distributed to any person except by the instructors of CMPT 145. Solutions will be made availableto students registered in CMPT 145 after the due date. There is no educational or pedagogical reasonfor tutors or experts outside the CMPT 145 instructional team to provide solutions to this questionto a student registered in the course. Students who solicit such solutions are committing an act ofAcademic Misconduct, according to the University of Saskatchewan Policy on Academic Misconduct.1. On Moodle you will nd four Python scripts:•LList.py•score7.pyDownload them and add them to your project for Assignment 6. See below for a section on how touse the test scriptsWe’ve provided a test script which includes unit testing, and integration testing. It is fairly well documented,so you can open it up and have a look. The script consists of denitions of simple Python functions, all ofwhich have the same basic task:1. First, create a test harness for the test. This usually involves creating a LList object somehow. As we’redoing unit testing on the LList ADT, we sometimes create node and LList objects without using theirmethods. This is valid in a test script, but not in an application; we can violate the ADT Principle intesting the ADT.2. Second, check how one other operation works in the given context. In our scripts, we use assertions,which check for something that should be true, and which alert us when that thing is not true