Assessment Proforma 2024–25
Key Information
|
Module Code
|
CMT304
|
|
Module Title
|
Programming Paradigms
|
|
Assessment Title
|
Logic Programming
|
|
Assessment Number
|
Logic Programming tasks of the portfolio coursework
|
|
Assessment Weighting
|
25% of the portfolio coursework
|
|
Assessment Limits
|
Limits are per task as set in the instructions
|
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.
The COMSC Assessment Calendar for all assessments is also available on Learning Central: by going to ‘COMSC-SCHOOL’ organisation -> ‘Assessment & Feedback 2025 - 26’ folder -> ‘COMSC Assessment Calendar 2025 - 26’ page.
1 Learning Outcomes
The learning outcomes for this assessment are
• Explain the conceptual foundations, evaluate and apply various programming paradigms, such as logic, functional, scripting, filter-based programming, pattern matching and quantum com- puting, to solve practical problems.
• Discuss and contrast the issues, features, design and concepts of a range of programming paradigms and languages to be able to select a suitable programming paradigm to solve a problem.
2 Submission Instructions
The coversheet can be found under ‘Assessment & Feedback’ in the COMSC–ORG–SCHOOL or- ganisation on Learning Central.
All files should be submitted via Learning Central. The submission page can be found under ‘As- sessment & Feedback’ in the CMT304 module on Learning Central. Your submission should consist of these files:
|
Description
|
Type
|
Name
|
|
Coversheet
|
Compulsory
|
One PDF ( . pdf) file
|
coversheet. pdf
|
|
Task 1.1
|
Compulsory
|
One ASP ( . lp) source file
|
problem_encoding. lp
|
|
Task 1.2
|
Compulsory
|
One PDF (.pdf) file
|
task1-2. pdf
|
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 (and ideally the setter, if different). If the technical is- sue is with Cardiff University systems, also report it to the University IT Support: email [email protected], tel. +44 (0)29 2251 1111.
Any code will be tested on a Linux system equivalent to COMSC’s Linux lab machines and must run there.
3 Assessment Description
3.1 Logic Programming
Consider the following situation:
Patent requests are submitted to the patent office and are reviewed by members of the technical board (referees). To find a good match between patent requests and referees, every referee 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 P1, means “I am an expert on the topic of patent request P1 ”. The goal is to write a program to automate this process.
Using a list of bids that indicate each referee’s level of expertise for each patent request, the task is to assign each submitted patent request to exactly of n referees, subject to the following requirements:
• the workloads of the referees are approximately equal, that is, do not differ by more than m;
• no referee is required to review more than k submissions from the Familiar category;
• the total number of cases when a submission is assigned to a referee who placed it in the Inexpert category is as small as possible;
• the total number of cases when a submission is assigned to a referee 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.1: Write a logic program in ASP (problem_encoding. lp) which finds all solutions to the problem, given as input n, m and k and a list of bids. Your program will receive as input a set bid/3 of triples ref, req, exp, such that the referee ref 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 ref and req such that the referee ref has been assigned to review request req.
Make sure you 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.
Task 1.2: Write a short report on logic programming related to the problem:
1. Provide, in no more than 300 words, an analysis of the design and functioning of your pro- gram:
(a) Describe the operation of each rule, explaining both how the body of the rule is evaluated and what output is generated.
(b) Discuss how your program implements the guess-and-test methodology.
The word limits are an upper limit, not a target length. Text longer than the word limit will be ignored.
4 Assessment Criteria
Task 1.1 worth 70% of the coursework
High Distinction 80% − 100%
Code is valid without syntax errors and creates a valid output for every valid input. A suitable attempt to solve the problem has been made, that will find all solutions (if there are any) for all problems. The approach is natural and correctly uses the declarative nature of ASP. The attempt has been excellently documented and clearly shows an effort to optimise the program’s performance.
Distinction 70% − 79%
Code is valid without syntax errors and creates a valid output for every valid input. A suitable attempt to solve the problem has been made, that will find all solutions (if there are any) for all problems. The approach is natural and correctly uses the declarative nature of ASP. The attempt has been well documented.
Merit 60% − 69%
Code is valid without syntax errors and creates a valid output for every valid input (or produces a suitable error message for valid cases it cannot process). A suitable attempt to solve the problem has been made, that will find all solutions (if there are any). The attempt has been well documented.
Pass 50% − 59%
Code is valid without syntax errors and creates a valid output for every valid input (or produces a suitable error message for valid cases it cannot process). A suitable attempt to solve the problem has been made, that will often find at least one solution (if there is any). The attempt has been reasonably doc-umented, but no consideration has been given to optimise the program’s performance.
Marginal Fail 40% − 49%
Code is valid without syntax errors and creates a valid output for every valid input (or produces a suitable error message for valid cases it cannot process). A suitable attempt to solve the problem has been made, that will in some cases will find at least one solution (if there is any). The attempt has been reasonably documented, but no consideration has been given to optimise the program’s performance.
Fail 0% − 39%
Code does not run or does not produce valid output for any valid input; little to no relevant documentation.
Task 1.2 worth 30% of the coursework
High Distinction 80% − 100%
The analysis of the design and functioning of the program is clear, showing a good understanding of the Guess-and-Test methodology. It clearly describes how the rules work and the interaction of the two phases of the guess-and-test methodology, making clear reference to the program. It shows an un-derstanding of related performance issues.
Distinction 70% − 79%
The analysis of the design and functioning of the program is clear, showing a good understanding of the Guess-and-Test methodology. It clearly describes how the rules work and the interaction of the two phases of the guess-and-test methodology, making clear reference to the program.
Merit 60% − 69%
The analysis of the design and functioning of the program is well-developed, showing a clear understanding of the Guess-and-Test methodology.
Pass 50% − 59%
A suitable attempt has been made to analyse the design and functioning of the program.
Marginal Fail 40% − 49%
An attempt has been made to analyse the design and functioning of the pro-gram. It correctly discusses some aspects of the Guess-and-Test methodol-ogy.
Fail 0% − 39%
At most an incomplete attempt to analyse the design and functioning of the program has been made.