首页 > 其他分享 >CPT206任务规范

CPT206任务规范

时间:2023-05-06 13:11:25浏览次数:35  
标签:CPT206 class 规范 should will 任务 marks property your


CPT206 Computer Programming for Financial Mathematics:
Coursework 3 Task Specification
Thomas Selig
Set: Wednesday, 3 May, 2023
Due date: Sunday, 21 May, 2023, 23:59
This is the specification task sheet for the Coursework 3 assessment component of your CPT206
module. The task covers all Learning Outcomes, and has a weighting of 70% towards the final
grade for this module. This assignment has two parts: a coding part described in Section 1, and a
report described in Section 2. The submission deadline for this assignment is Sunday, 21 May,
2023, at 23:59. Detailed submission instructions are provided in Section 3.
1 Program description (65 marks)
The aim of this coursework is to build a program to build a property portfolio management
system. All the work should be coded into a single Java NetBeans project, with the class structure
and dierent functionalities of the program described as follows. All classes should be properly
encapsulated, as seen in the Lectures and Labs throughout the semester. Your project should also
contain a Controller class for testing. You may leave some or all of your test code in the Controller
class if you wish when submitting, but no marks are allocated for this class’s contents in your
submission. Instead you will be asked to describe your testing in the report (see Section 2.2), and
marked on that.
1.1 Property class (10 marks)
The basic building block of the program will be a simple Property data class. A Property comprises
of the following information.
• A unique identifier.
• A type or category: studio, appartment, or house.
• A surface area or size, measured in square meters. For legal reasons, dierent types of
properties have dierent allowable sizes (bounds included each time). Studios should measure
between 10 and 20 m2, appartments between 15 and 150 m2, and houses should measure at
least 50 m2.
1.2 MarketProperty class (16 marks)
A MarketProperty is a Property that is currently on the market. As such, in addition to the
property’s information from Section 1.1 above, a MarketProperty should store two prices, one
indicating the initial pricing of the property (e.g. the value at which is was bought), and the
1
other indicating its current valuation. When a new MarketProperty object is created, its current
valuation is set to its initial pricing. MarketProperty object should be compared according to their
current valuation.
The valuation of a MarketProperty can be updated according to the current market conditions,
according to the following formula:
Valnew = Valold 1
1 + N (i, ‡2)
2
,
where:
• Valnew is the new current valuation of the property (after update);
• Valold is its old valuation (before update);
• i is the current market inflation rate;
• ‡2 is a (positive) coecient describing the volatility of the current market conditions;
• N !
i, ‡2"
is a Gaussian random variable with mean i and variance ‡2.
This process should be accomplished through an updateValuation() method, whose parameters
are the inflation rate and volatility coecient described above.
Finally, there should be methods to calculate the total and relative profits that would be made
if a MarketProperty were sold at its current valuation. The total profit is the dierence between
the current valuation and the property’s initial pricing, while the relative profit is the total profit
divided by the initial pricing.
1.3 PropertyManagementCompany class (24 marks)
Finally, your project should have a PropertyManagementCompany class, responsible for managing a
property portfolio. A property portfolio is a collection of MarketProperty objects, maintained in
order of their current valuations. A portfolio can only contain a given property (at most) once. You
should choose a suitable data structure in the Java collection framework for storing the portfolio
of a PropertyManagementCompany. Leave a comment in your code justifying your choice of data
structure. A PropertyManagementCompany should also have a name, and an attribute measuring
the company’s liquidity, i.e. amount of money currently held. It should be possible to create a
PropertyManagementCompany with an empty portfolio initially, or to directly specify its portfolio.
A property management company’s primary responsibility is to buy and sell (market) properties.
• The company buys a property for a specified price. This property is then turned into a
market property (with the initial pricing set to the previously specified price), and added to
the company’s portfolio. The price paid is removed from the company’s liquidity. The sale
can only take place if sucient liquidity remains.
• The company sells a market property at its current valuation. The proceeds from the sale
are added to the company’s liquidity.
• Before selling a property, the company may wish to check if it would be making sucient profit
from the sale. As such, there should be a getPotentialProfit() method that calculates
how much profit1 would be made from selling a given (market) property that is currently in
the company’s portfolio.
1Here, we consider the total profit, as in Section 1.2.
2
• There should be methods to count the total number of properties in the portfolio and the
number of properties in the portfolio whose current valuation is within a certain range
(specified by lower and upper bounds).
• Finally, there should be an updateAllValuations() method to simultaneously update the
valuations of all properties in the company’s portfolio.
1.4 Code quality (15 marks)
The remaining marks (15) will be awarded for the quality of your code, as covered throughout the
semester in the Lectures and Labs.
• Keep your code neat and tidy; make sure it is properly indented throughout.
• Choose suitable names for variables and methods, respecting standard Java naming conventions.
• Comment your code as needed.
• Split your code into separate methods as appropriate; methods should not be too long.
2 Report (35 marks)
For this part of the assignment, you will write a report detailing how you designed, implemented,
and tested the program described in Section 1. The report should be typed into e.g. a Word
document, and submitted as a PDF (see Section 3 for more details).
2.1 OOP features (12 marks)
Over the course of the semester, you have learned a number of OOP features (e.g. encapsulation)
and principles (e.g. single responsibility principle). In your report, you will explain where you
have incorporated these in your design and how you have done so; include a brief definition of
the features/principles in question. Be as precise as possible, illustrating with small portions of
code if necessary. Note that not all the features and principles we saw in the lectures need to be
incorporated into your design; your report should only discuss those that are. This section should
be one-and-a-half to two pages in length.
Good example: The Single Responsibility Principle states that every class in the program
should have responsibility over a single functionality of the program; a class should do one thing.
This principle is incorporated into our class design: all the classes have their own, separate, purpose.
For instance, the Property class2...
Bad example: Encapsulation and inheritance are two core features of OOP; they are used in
many parts in my program.
2.2 Testing description (15 marks)
As covered throughout the Lectures and Lab sessions in this module, testing is an essential part of
writing computer programs. In your report, you will include a description of how you tested the
various parts of the program described in Section 1. You will state clearly what functionalities you
tested, and describe how you tested them, thinking carefully about possible corner cases. You may
2Give a brief description of the purpose of the Property class here.
3
include some sample code if you wish. You should test in the Controller class of your project, using
only tools and techniques that we covered in the Lectures and Labs throughout the semesters. You
must NOT use any new or more advanced tools such as JUnit that weren’t taught. This section
should be one-and-a-half to two pages in length (screenshots excluded).
2.3 Improvements (8 marks)
Finally, this program is, by necessity, a simplified model. In your critical evaluation document,
you will list two (2) possible improvements to the system. These could be for instance additional
features to be implemented, changes to existing features so that the system is a more accurate
reflection of a real-world system, etc. Give a brief justification for why these would improve the
system. This part should be no longer than one page in length.
3 Submission instructions
In the dedicated “Coursework 3 submission” Assignment activity on the Learning Mall Online, you
will need to submit the following two (2) documents.
• A single ZIP archive of your entire NetBeans project. Include all the resources your
project needs to run. This file will be named “CPT206 CW3 Project studentId.zip”.
• Your report from Section 2, typed into e.g. a Word document, and converted into a PDF
file. This file will be named “CPT206 CW3 Report studentId.pdf”.
The submission deadline is: Sunday, 21 May, 2023, at 23:59.
This assignment is individual work. Plagiarism (e.g. copying materials from other sources
without proper acknowledgement) is a serious academic oence. Plagiarism and collusion will not
be tolerated and will be dealt with in accordance with the University Code of Practice on Academic
Integrity. Submitting work created by others3, whether paid for or not, is a serious oence, and
will be prosecuted vigorously. Individual students may be invited to explain parts of their code in
person during a dedicated interview session, and if they fail to demonstrate an understanding of
the code, no credit will be given for that part of the code.
Late submissions. The standard University policy on late submissions will apply: 5% of
the total marks available for the component shall be deducted from the assessment mark for each
working day after the submission date, up to a maximum of five working days, so long as this does
not reduce the mark below the pass mark (40%); submissions more than five working days late will
not be accepted.
This is intended to be a challenging task, and quite a step up from what you have been doing
so far, so think about things carefully. We can - and will - discuss some aspects in the Lab sessions,
and of course, as usual, you can ask me anything by email, during Oce Hours, or in the LMO
Forums. Good luck!
3The word “others” here includes generative AI tools such as ChatGPT. 

WX:codehelp

标签:CPT206,class,规范,should,will,任务,marks,property,your
From: https://www.cnblogs.com/tongu1/p/17376942.html

相关文章

  • git~分支管理规范
    解决的问题避免新开发的代码影响提测的代码避免生产环境出现问题后,修复后,由于代码混乱,无法合并到生产环境解决多个需求并行开发,并行测试,合并上线的问题我的设计思路流程图工具我使用的是:diagrams.net具体执行步骤开发人员按需求粒度从dev建立分支哪个需求或者哪些需求......
  • 委派任务问题
    1.问题描述某项任务需要在A、B、C、D、E、F这6个人中挑选人来完成,但挑选人受限于以下的条件:(1)A和B两个人至少去一人;(2)A和D不能同时去;(3)A、E和F三人中要挑选两个人去;(4)B和C同时去或者都不去;(5)C和D两人中只能去一个;(6)如果D不去,那么E也不去。试编程求出应该让哪几个人......
  • xxlJob端口号及故障转移设置,解决负载均衡调度任务执行
    xxlJob端口号及故障转移设置,解决负载均衡调度任务执行my.xxljob.executorPort=1162my.xxljob.executorAppName=myService-job-executor-fat1##xxlJobadmin后台服务地址my.xxljob.adminAddresses=http://xx.xx.xx.xx:1048my.xxljob.executorAppName=xxl-job-execut......
  • laravel 知识汇总|定时任务|
    1.helloword生命周期生命周期Laravel框架门面Facade源码分析门面的运用2.数据库配置3.migrate创建数据库laravel中migration数据迁移4.composer的使用,require和require-dev区别5.自动生成模型,自动生成代码注释:idea生成器:https://chujc.github.io/2019/05/15/%E5%B7%A5......
  • 2432. 处理用时最长的那个任务的员工
     分析:题目有点绕,但是大概意思就是给出的数组是多个任务logs[i][0]是员工编号,logs[i][1]是处理完当前i任务结束的时间而i任务需要的时间就是logs[i][1]-logs[i-1][1]求得最长的任务时间,如果有多个,就取员工编号最小的那个建立一个maxes量存最大时间,一个maxs存员工编号遍历数......
  • 任务系统之Jenkins子任务
    今天下班即开启五一假期,早上临时定了行程去山东日照,原本计划下班就出发,但下班看了看导航,这一路红得发黑,于是决定还是晚点再走,现在有时间了,写篇简单的技术文章来提升下Blog逐渐降低的技术内容含量吧之前有一系列的文章来介绍我们的任务系统,随着任务系统在项目间的推广,以及项目使用......
  • 就业内推 | 大公司,管理规范,网工人速来
    01中企通信招聘岗位:网络工程师职责描述:1、按照相关规定负责网络及系统运营上的任务和工作。2、作为网络及系统故障处理的第二梯队,支持GNOC/CS的工作,并提供技术指导;除了处理网络或系统故障(Incident)之外,亦要处理网络或系统问题(Problem)。3、观察、发现网络或系统中存有的漏洞或隐......
  • sklearn.metrics.precision_recall_curve—计算不同概率阈值的精确召回对(仅限于二分类
    参考:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_curve.html在分类模型的性能评估指标总结章节中,提到的Precision-Recall曲线可通过sklearn库中的precision_recall_curve函数计算而得。语法格式sklearn.metrics.precision_recall_cu......
  • Celery - 分布式任务队列
    Celery-分布式任务队列目录Celery-分布式任务队列1celery简介1.1什么是celery1.2celery架构(1)消息中间件messagebroker(2)任务执行单元worker(3)任务结果存储taskresultstore(4)使用场景2Celery安装与使用2.1安装2.2快速使用①第1步:创建celeryapp与创建任务②第2步......
  • vivo积分任务体系的架构演进-平台产品系列05
    作者:vivo互联网平台产品研发团队-MuJunFeng积分体系作为一种常见营销工具,几乎是每一家企业会员营销的必备功能之一,在生活中随处可见,随着vivo互联网业务发展,vivo积分体系的能力也随之得到飞速提升,本篇主要介绍vivo积分任务体系的系统建设历程。一、前言1.1什么是积分体系?......