Assessment Proforma 2024-25
Module Code:
|
CMT304
|
Module Title:
|
Programming Paradigms
|
Assessment Title:
|
Logic Programming
|
Assessment Number:
|
1 of 4 for single portfolio coursework
|
Assessment Weighting:
|
25%
|
The Assessment Calendar can be found under `Assessment & Feedback' in the COMSC- ORG-SCHOOL organisation on Learning Central. This is the single point of truth for (a) the hand out date and time, (b) the hand in date and time, and (c) the feedback return date for all assessments.
Learning Outcomes
• Explain the conceptual foundations, evaluate and apply various programming paradigms, such as logic, functional, scripting, filter-based programming, pattern matching and quantum computing, to solve practical problems.
• Discuss and contrast the issues, features, design and concepts of a range of program- ming paradigms and languages to be able to select a suitable programming paradigm to solve a problem.
Submission Instructions
The coversheet can be found under `Assessment & Feedback' in the COMSC-ORG-SCHOOL organisation on Learning Central.
All submissions must be via Learning Central. Upload the following files in a single zip file, [student number] .zip:
If you are unable to submit your work due to technical difficulties, please submit your work via e-mail to [email protected] and notify the module leader.
Any code submitted will be run on a system equivalent to the Linux laboratory machines and must be submitted as stipulated in the instructions above.
Any deviation from the submission instructions above (including the number and types of files submitted) may result in a mark of zero for the assessment or question part.
All submissions will be compared to each other and checked against other work available on the Internet and elsewhere to identify cases of potential unfair practice.
Staff reserve the right to invite students to a meeting to discuss coursework submissions.
Assessment Description
Consider the following situation:
Patent requests are submitted to the patent office and are reviewed by members of the tech- nical board. To find a good match between patent requests and board members (referees), every member of the technical board declares their expertise for each submitted request that needs to be reviewed:
EXPERT, KNOWLEDGEABLE, FAMILIAR or INEXPERT
For example, declaring EXPERT for a given patent request, means “I am an expert on the topic of this request”. The goal is to write a program to automate this process.
Using a list of bids, indicating the level of expertise for each patent request and board member, it should assign each submitted patent request to a specific number of n members of the technical board such that
• the workloads of the technical board members are approximately equal, that is, do not differ by more than m;
• no member of the technical board is required to review a submission that is placed in the INEXPERT category;
• no member of the technical board is required to review more than k submissions from the FAMILIAR category;
• the total number of cases when a submission is assigned to a member who placed it in the EXPERT category is as large as possible.
The parameters n, m and k are arguments set when calling the program.
Task 1: Write a logic program in ASP which finds all solutions to the problem, given as input n, m and k and a list of bids.
Task 1: Write an ASP program (problem encoding.lp) that solves the problem for any instance. Your program will receive as input a set bid/3 of triples mem, req, exp, such that the member mem has declared to have expertise exp for request req. (The parameters n, m and k are set when calling the program). The output of your program is a set assign/2 of pairs mem and req such that the member mem has been assigned to review request req.
Make sure you document your code so it is clear how it should be used and what the approach to solving the problem is. Document your code so the following is clear.
1. How it should be used.
2. What the approach to solving the problem is. In particular, you need to explain what each rule achieves and how the rule achieves it.
Include your name and student id in the comments.
Task 2: Write a short report on logic programming related to the problem:
1. Provide, in up to 300 words, an analysis of the design and functioning of your program in terms of the Guess-and-Test modeling methodology.
The word limits are an upper limit, not a target length. Text longer than the word limit will be ignored.