AN6007 ADVANCE PROGRAMMING
Nov 2023 – Feb 2024
Practical Assignment 2 (20%) & Presentation Part 2/2 (5%)
Due: 13 Jan 2024 (Saturday) 8 pm
Note: This assignment is an INDIVIDUAL assignment
Points to Note:
1. You are supposed to use data structures techniques to solve this business case
2. You are required to make use of Objects to solve this case
3. This assignment must be done in python only
4. You should submit your assignment with :
i) a presentation (uploaded and viewable via zoom or google.
ii) a python file containing all algorithms(even not chosen at last), please name it algor.py.
This .py should contain how you perform analysis and
comment on your choice of implementation for final.py
iii) a python file that perform the entire task name final.py, it must import algor.py and
the first few lines of final.py must be as follows:
‘’’
Class :
Name :
Email :
Video link :
Password : (leave blank if there is no password)
‘’’
iv) or more .py files that illustrates your testing and how you generate your analysis
v) any other supporting files
via the NTU-learn blackboard site in the Seminar Site Assignment folder.
5. All computations used are in-memory, no loading of data into any database platform.
6. As this is a graded assignment, your instructor is not supposed to debug the program or give you any hint to your approach. Only clarifications on requirements are allowed.
You must keep a copy of the final version of your submission and be prepared to provide it on request.
The University treats plagiarism, collusion, theft of other students’ work and other forms of dishonesty in assessment seriously. Students shared out their answers or copied answers from others shall receive a zero score.
Graders should be able to run your code without additional installation and setup. Graders may select individuals for interview to answer questions related to submitted works as part of the random check or to ascertain academic integrity. All submitted works should be done originally by you only, no outsider(s) should be involved in the work. Submitting works done by additional person or plagiarised works is an act of academic dishonesty. Academic dishonesty affects the University’s reputation and devalues the degrees offered. The University will impose serious penalties on students who are found to have compromised academic integrity.
PENALTY FOR LATE SUBMISSION
Do note that a penalty of 20 marks per day will be applied on the total course marks obtained. No assignments will be accepted after 5 days and participants will get “0” marks for this component.
PRESENTATION:
Prepare a presentation recording (not more than 3 mins) to explain the codes that are important to the solution and clearly explain your findings for the problem.
The objective of this presentation recording is to assess your understanding on algorithms and time complexity.
You are required to include your video links in your .py code with any password required to access the video
Reference:
1.Zoom Recording:
a.Registering your NTU Zoom account (If you have not done so, see Quick Start Guide for NTU Zoom Account.pdf)
b.Zoom Login & Create Meeting (See Quick Start Guide for Online Meetings with Zoom.pdf)
c.Video Guide on Recording
2.Teams Recording:
a.Teams Login & Create Meeting (See Quick Start Guide for Online Meetings with Teams.pdf)
b.Online Guide on Recording: https://support.microsoft.com/en-us/office/record-a-meeting-in-teams-34dfbe7f-b07d-4a27-b4c6-de62f1348c24
Assignment background knowledge.
Like many insurance brokers in Singapore, https://www.bestreviews.com.sg/best-insurance-brokers-singapore/, Put Aside Chatgpt Insurance Pte Ltd (PACI) is a newly set up insurance company that tailored insurance solutions to match Singaporean’s specific needs.
This company started its services post-Covid, after obtaining the legal advice from their lawyers, they have implemented multi-tier commission structures to incentivize agents to build and manage a team of 3 sales agents each. This encourages team building and can lead to increased revenue for both the individual agent and the company.
The computation of the reward period is from Dec 2022 to Nov 2023. PACI has also extended it’s service from Singapore to Indonesia and Malaysia.
For every insurance product sold, the commission received by each agent will be recorded as reward amount (RA). This reward value will be paid at the end of each month (not in the scope of this assignment but CSVs of the months are given).
PACI wish that you can work out the rest of the rewards (RA) from Dec 2022 to Nov 2023.
PACI implement a 3 mentees system, this means that each agent will be assigned 3 members to mentor. The assignment is based on joining sequence:
RA obtained by any agent will be captured as Group Reward Amount (GRA) to its own mentor and all mentors above. For example, if Agent 8 and 9 each secured a 1000 RA, and Agent 2 secured 500 RA, the GRA of Agent 2 is 2000 RA and GRA for PACI will be 2500 RA.
Hence the GRA of PACI reflects the total RA for the entire company (total GRA).
The PACI reward systems includes :
1.PACI reserved 50% of total GRA to be awarded equally among the top 50 agents who has the highest personal PA. If there are more than 1 person at the 50th ranking, then the same 50% will be shared among all agents who has their personal PA larger or equal to the personal PA of the agent ranked at 50th.
2.The mentor of agent (up level 1) will receive 25% of his RA, the grand mentor (up level 2) will receive 15% and the great grand mentor (up level 3) will receive the remining 10%. However, in order to qualify for receiving, the respective mentor must clock a 1200 RA for himself first. The non-qualified amount will be channelled back to PACI.
You are tasked to
1.Model each agent performance as object.
2.Design appropriate data structure and implement the PACI reward system.
3.The total reward remuneration should be output into 1 single Excel file with proper headings : agent ID, RA, GRA, top 50 reward, mentor reward, Up2 reward, Up3 rewards.
4.You are encouraged to make use of divide and conquer method to break down the problem into small problems.
5.For computationally intensive task(s), design at least 2 algorithms each and code them in algor.py. The algorithms selected should not be of the same technique. For example, if dictionary is used in 1 algorithm, for the same issues, you should attempt to use other techniques such as looping, parallel lists, dataFrame, customised OOP classes etc. However, additional import modules that are not taught in essential program module and this course and is NOT allowed to be used.
6.Perform time complexity analysis to select the most appropriate algorithm in algor.py with clear comment on your analysis.
7.combine all selected algorithms in 6 and prepare a complete solution with final.py
Presentation :
In your presentation, you are required to focus on explaining how and why you have selected on the data structure that will support this business case. Any reason or features you are particularly looking for in the choice of data structure. You are required to explain how you work on the reward computations and derive the required output. The video should clearly show that your solution works. You also required to share the challenges you encountered and how you overcome the issues. The duration of the video should not be more than 4 mins. You are advised to adhere to the time limit strictly.
Please note that if you are not able to complete the entire assignment, you are still required to produce the video of your assignment journey as it is graded separately from the codes.
You are required to show your face in the presentation video, with appropriate presentation materials or illustrations. You are advised NOT to read out from scripts while presenting.
Marking Guide : please refer to course outline.
Disclaimer : Please note that this assignment is set accordance to practical industrial practises such as financial services, insurance companies or real estate brokerages. It may not be applicable in Singapore for other sales domain or Other countries as it may be subjected to legal constraints such as :
请加QQ:99515681 或邮箱:99515681@qq.com WX:codehelp