BN108Programming for NetworkingPage | 11 Assessment Details and Submission Guidelines Trimester T2 2021 Unit Code BN108 Unit Title Programming for Networking Assessment Type Individual Assessment...

1 answer below »
as


BN108Programming for NetworkingPage | 11 Assessment Details and Submission Guidelines Trimester T2 2021 Unit Code BN108 Unit Title Programming for Networking Assessment Type Individual Assessment Title Assignment 2 - Turtles and Tricks Purpose of the assessment (with ULO Mapping) This assignment assesses the basic concepts of programming; students should be able to demonstrate their achievements in the following unit learning outcomes: a. Describe the fundamental principles of object-oriented programming; b. Interpret a user’s needs while dealing with simple program specifications; c. Design a simple class using UML notation; d. Create a simple application based on UML design and the incremental development process of coding, debugging, and testing; e. Apply basic control structures – sequence, repetition, and selection – to program development; f. Produce simple interactive applications. Weight 35% Total Marks 80 marks Word limit Not applicable Due Date Week 11 (03/Oct/2021) Submission Guidelines · All work must be submitted on Moodle by the due date along with a completed Assignment Cover Page. · The assignment must be in MS Word format, 1.5 spacing, 11-pt Calibri (Body) font and 2 cm margins on all four sides of your page with appropriate section headings. · Reference sources must be cited in the text of the report, and listed appropriately at the end in a reference list using IEEE referencing style. Extension If an extension of time to submit work is required, a Special Consideration Application must be submitted directly on AMS. You must submit this application three working days prior to the due date of the assignment. Further information is available at: https://www.mit.edu.au/about-us/governance/institute-rules-policies-and-plans/policies-procedures-and-guidelines/assessment-policy Academic Misconduct Academic Misconduct is a serious offence. Depending on the seriousness of the case, penalties can vary from a written warning or zero marks to exclusion from the course or rescinding the degree. Students should make themselves familiar with the full policy and procedureavailable at: http://www.mit.edu.au/about-mit/institute-publications/policies-procedures-and-guidelines/Plagiarism-Academic-Misconduct-Policy-Procedure. For further information, please refer to the Academic Integrity Section in your Unit Description Assignment 2 Title: Turtles and Tricks Assignment Description: There are 2 questions in this assignment. This assignment will give you practice with interactive programs, if/else statements, list and classes. You are required to submit a report as mentioned in the marking guide. Also, a 5 min demonstration recording must be submitted with the required files: 1. Python scripts, 2. Report, 3. 5 Min demo video. Q 1: Problem Description[10+2+3+3+2 =20 Marks] Stuck in the lockdown, a group of friends decided to do something fun remotely. They explored different apps and games to play online but one of them suggested why not use their programming knowledge from BN108 and come up with a game of their own. Thrilled with the idea, all of them agreed to work together to program their game. They planned to share the code on a common platform where everyone could access and review changes in the code. The platform they chose for code sharing was GitHub. A class diagram tells you two things (for starters): what an object knows and what an object can do. A code template is given in the script assignment2_question1.py. Explore and analyse the code and the class diagram for module turtle to understand the given problem. Figure 1: Class diagram of class Turtle in turtle module[footnoteRef:1] [1: Source: https://learning.oreilly.com/library/view/head-first-learn/9781491958858/ch08.html#seven_modulescomma_methodscomma_classesco ] Task Requirements Task 1: Create a flowchart based on the pseudocode given below: Figure 2: Pseudocode for how this racing game (Race to finish line) is going to work [footnoteRef:2] [2: Source: https://learning.oreilly.com/library/view/head-first-learn/9781491958858/ch08.html#seven_modulescomma_methodscomma_classesco ] Task 2: Add a new turtle with a colour of your choice. That’s your turtle. Task 3: Modify the code to reflect the following: a. Race to finish line: Use a random number generator to race towards the finish line b. Circle race: Use a random number generator to complete a circle race. The turtle which completes a circle first wins. c. Turtle wars: Position the turtles in opposite corners. Move the turtles towards one another at a speed determined by the random number generator. As soon as the turtles arrives at the same x,y co-ordinate, remove a random turtle. The turtle that stays wins. Print the colour of the winning turtle on the screen with a message. Q2: Problem Description The students at MIT have a database. It can be designed in OOP paradigm by creating a class Student. The class holds the following information about each student: studentName, studentID, unitsEnrolledList. The following two students are already in the database: · Shankar, MIT123, [BN101,BN102,BN103] · Danny, MIT321, [BN101, BN202, BN300] Task 1: [6+2+4+3 = 15Marks] a. Design the class Student with appropriate attributes and methods from the given scenario. Save this as a Student module (Student.py) which will be called in following questions. b. Add a new attribute of your choice to this class. c. Draw the UML of the class Student. d. Load the pre-existing data: Import the module Student in a new script called dataProcessing.py . Create two objects obj1, obj2, with the info of both students given above. Append the objects in a list or dictionary. Task 2: [5+5+5+5 = 20Marks] a. Create a new method in class Student, common_units(…). This method can tell a student who else is enrolled in the same units. obj2.common_units(obj1). (Hint: Compare the unitsEnrolledList and find out which items are common using the in keyword). This method should process the result and output the following statement: Dear ___ , you and ____ are studying similar units: _____. Example: Dear Shankar, you and Danny are studying similar units: BN101. b. You need to create a new method in class Student, search_student(studentID). This method can search for a student in the database. Provide a pseudocode for searching a student in database. c. Implement the code for search_student(studentID) (Hint: Compare the studentID against each member inside the list. To access the studentID use the dot operator. To compare use the in keyword). This method should process the result and output the following statement: Student information found in the DataBase. d. Draw the updated UML of class Student. This should include the new methods. Marking criteria: Marking criteria is shown in following table. Marks are allocated as follows: Description of criteria Max marks Marks obtained Q1 20 Task 1: Flowchart 10 Task 2: Add a new turtle 2 Task 3: Design 3 games 8 Q2 35 Task 1: Design and code: class, attribute, UML and list of student objects 15 Task 2: Pseudocode for search method Incremental development: Add 2 methods in the class and update the UML 20 Report (10 marks) 10 Program overview for both questions 2+2 Screen shots of the Q2 Testing output, e.g. validate user input in any scenario 3 Paste code into report 3 Others (15 marks) 15 Use comments, whitespace/layout properly to make program more readable 5 Demonstration 5 min video 10 Total 80 Total 35% Marking Rubric for Assignment #: Total Marks 80 Grade Mark HD 64-80 D 56-63 CR 48-55 P 40-47 Fail <40 excellent very good good satisfactory unsatisfactory design /20 algorithm and flow chart have been well designed. all scenarios have been covered. umls are accurate. algorithm and flow chart have been well designed. most of the scenarios have been covered. umls are well designed. algorithm / flow chart has been designed but only a few scenarios have been covered. umls are partially designed. one of the designs is missing from algorithm and flow chart . umls are satisfactory. algorithm and flow chart have been poorly designed or are missing. umls are not well designed. implementation of python functions /35 design and implementation is well done and consistent with the task requirements. design and implementation is consistent with most of the task requirements. design and implementation is mostly consistent with the task requirements. design and implementation misses on some task requirements no attempted or implementation is incorrect report /10 presentation, structure and the content (uml and screen outputs) of the report is well done and consistent with the task requirements. presentation, structure and the content of the report is consistent with the task requirements. some test cases are missing. presentation, structure and the content of the report is mostly consistent with the task requirements. presentation, structure and the content of the report misses on some task requirements not attempted or implementation is incorrect others /15 code layout, comments, meaningful variable names & compilation: well done and consistent with the tasks requirements and demo code layout, comments, meaningful variable names & compilation: very good and consistent with the tasks requirements code layout, comments, meaningful variable names & compilation: generally consistent but can improve code layout, comments, meaningful variable names & compilation: some inconsistencies with the requirements code layout, comments, meaningful variable names & compilation: poor effort and program fails to compile prepared by: dr huma chaudhry moderated by: prof paul kwanjuly, 2021 prepared by: dr huma chaudhry moderated by: prof paul kwanjuly 2021 # include your name # include your mit id import turtle import random list_of_turtles=[]#list to hold all the turtles obj=turtle.turtle()#testing to create a new turtle obj.shape('turtle')#testing to let it look like one! obj.forward(20)#testing the movement forward obj.right(90)#testing the movement to it's right obj.forward(100) obj.right(90) obj.circle(50)#testing the movement of circle ## ##def setup(): ## global turtles ## start_line=-320# currently the starting position is incorrect! you need to fix it. ## screen=turtle.screen() ## screen.setup(930,547) ## screen.bgpic('pavement.gif')#this image should be in the folder where this script is. ## ## turtle_ycor=[-40,-20,0] ## turtle_color=['blue','red','green'] ## ## for i in range(0,len(turtle_ycor)): ## new_turtle=turtle.turtle() ## new_turtle.shape('turtle') ## new_turtle.penup() ## new_turtle.setpos(start_line,turtle_ycor[i]) ## new_turtle.color(turtle_color[i]) ## excellent="" very="" good="" good="" satisfactory="" unsatisfactory="" design="" 20="" algorithm="" and="" flow="" chart="" have="" been="" well="" designed.="" all="" scenarios="" have="" been="" covered.="" umls="" are="" accurate.="" algorithm="" and="" flow="" chart="" have="" been="" well="" designed.="" most="" of="" the="" scenarios="" have="" been="" covered.="" umls="" are="" well="" designed.="" algorithm="" flow="" chart="" has="" been="" designed="" but="" only="" a="" few="" scenarios="" have="" been="" covered.="" umls="" are="" partially="" designed.="" one="" of="" the="" designs="" is="" missing="" from="" algorithm="" and="" flow="" chart="" .="" umls="" are="" satisfactory.="" algorithm="" and="" flow="" chart="" have="" been="" poorly="" designed="" or="" are="" missing.="" umls="" are="" not="" well="" designed.="" implementation="" of="" python="" functions="" 35="" design="" and="" implementation="" is="" well="" done="" and="" consistent="" with="" the="" task="" requirements.="" design="" and="" implementation="" is="" consistent="" with="" most="" of="" the="" task="" requirements.="" design="" and="" implementation="" is="" mostly="" consistent="" with="" the="" task="" requirements.="" design="" and="" implementation="" misses="" on="" some="" task="" requirements="" no="" attempted="" or="" implementation="" is="" incorrect="" report="" 10="" presentation,="" structure="" and="" the="" content="" (uml="" and="" screen="" outputs)="" of="" the="" report="" is="" well="" done="" and="" consistent="" with="" the="" task="" requirements.="" presentation,="" structure="" and="" the="" content="" of="" the="" report="" is="" consistent="" with="" the="" task="" requirements.="" some="" test="" cases="" are="" missing.="" presentation,="" structure="" and="" the="" content="" of="" the="" report="" is="" mostly="" consistent="" with="" the="" task="" requirements.="" presentation,="" structure="" and="" the="" content="" of="" the="" report="" misses="" on="" some="" task="" requirements="" not="" attempted="" or="" implementation="" is="" incorrect="" others="" 15="" code="" layout,="" comments,="" meaningful="" variable="" names="" &="" compilation:="" well="" done="" and="" consistent="" with="" the="" tasks="" requirements="" and="" demo="" code="" layout,="" comments,="" meaningful="" variable="" names="" &="" compilation:="" very="" good="" and="" consistent="" with="" the="" tasks="" requirements="" code="" layout,="" comments,="" meaningful="" variable="" names="" &="" compilation:="" generally="" consistent="" but="" can="" improve="" code="" layout,="" comments,="" meaningful="" variable="" names="" &="" compilation:="" some="" inconsistencies="" with="" the="" requirements="" code="" layout,="" comments,="" meaningful="" variable="" names="" &="" compilation:="" poor="" effort="" and="" program="" fails="" to="" compile="" prepared="" by:="" dr="" huma="" chaudhry="" moderated="" by:="" prof="" paul="" kwan="" july,="" 2021="" prepared="" by:="" dr="" huma="" chaudhry="" moderated="" by:="" prof="" paul="" kwan="" july="" 2021="" #="" include="" your="" name="" #="" include="" your="" mit="" id="" import="" turtle="" import="" random="" list_of_turtles="[]#list" to="" hold="" all="" the="" turtles="" obj="turtle.Turtle()#TESTING" to="" create="" a="" new="" turtle="" obj.shape('turtle')#testing="" to="" let="" it="" look="" like="" one!="" obj.forward(20)#testing="" the="" movement="" forward="" obj.right(90)#testing="" the="" movement="" to="" it's="" right="" obj.forward(100)="" obj.right(90)="" obj.circle(50)#testing="" the="" movement="" of="" circle="" ##="" ##def="" setup():="" ##="" global="" turtles="" ##="" start_line="-320#" currently="" the="" starting="" position="" is="" incorrect!="" you="" need="" to="" fix="" it.="" ##="" screen="turtle.Screen()" ##="" screen.setup(930,547)="" ##="" screen.bgpic('pavement.gif')#this="" image="" should="" be="" in="" the="" folder="" where="" this="" script="" is.="" ##="" ##="" turtle_ycor="[-40,-20,0]" ##="" turtle_color="['blue','red','green']" ##="" ##="" for="" i="" in="" range(0,len(turtle_ycor)):="" ##="" new_turtle="turtle.Turtle()" ##="" new_turtle.shape('turtle')="" ##="" new_turtle.penup()="" ##="" new_turtle.setpos(start_line,turtle_ycor[i])="" ##="" new_turtle.color(turtle_color[i])="">
Answered 4 days AfterOct 03, 2021

Answer To: BN108Programming for NetworkingPage | 11 Assessment Details and Submission Guidelines Trimester T2...

Sathishkumar answered on Oct 07 2021
118 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here