CAB402 Programming Paradigms Assignment 1 – Assessment Criteria
Criteria
Standards
Poor (25%)
Fair (50%)
Good (75%)
Excellent (100%)
F# Implementation
[20 marks]
Meets functional requirements correctly
[10 marks]
o Unit Tests: / 1493
Clear, Simple and Easy to Understand
[4 marks]
o All function and variable names are carefully chosen
o Limited use of nested functions o Follows “Single Responsibility
Principle” – each function is simple and conceptually does only one thing.
o Avoids unnecessarily complex logic o Documented with high level
comments
Follows Preferred Style
[4 marks]
o Extensive us of higher order functions, lambda expressions and pipeline operator
o Pure Functional/Stateless
Performance Improved via State
[2 marks]
o The first implementation is pure o A second implementation is
provided that substantially improves performance.
C# Implementation
[6 marks]
Meets functional requirements correctly
[2 marks]
o Unit Tests: / 466
Clear, Simple and Easy to Understand Source Code
[2 marks]
o All classes, methods and variable names are carefully chosen
o All methods are short, simple and easy to follow.
o Do just one thing
o Don’t make me think.
Follows Object-Oriented Design Principles
[2 marks]
o Classes abstract concepts in the real world that the application is modelling.
o Sub-typing used only if there is an is-a relationship.
o Strong encapsulation of data.
Comparison
[4 marks]
Appreciates the strengths and weaknesses of each paradigm
o Insightful discussion demonstrating appreciation of both practical and conceptual/theoretical issues.