CMP2092M Programming Paradigms RESIT

CMP2092M Programming Paradigms RESITOn successful completion of this assessment item a student will have demonstrated competence in the following areas:? [LO1] explain the key concepts in the four main programming paradigms;? [LO2] characterise the nature and compare the applicability of programming paradigms in the context of a given problem scenario;? [LO3] design a formal definition of a functional problem solution.RequirementsProblem Scenario:Your company has been asked to implement a simple text editor system as part of a major contract to provide a large control mechanism in a nuclear power plant. The text editor will be used to record health and safety statements at various points across the plant and will primarily record status updates and machine readings. The recording and reporting of the comments made will be handled by a separate team member in your development group so you do not need to concern yourself with the functionality of any other part of the proposed system.The text messages that your editor will have to deal with are wholly single lines of text and no character formatting will be required.At this moment in time your Team Leader does not know which programming paradigm will be used to implement the system and has therefore asked you to provide a summary of the key characteristics of the four main paradigms and then to present a short written report detailing the advantages and disadvantages of each of these paradigms as solution mechanisms for this particular contract.You have also been asked to provide an ADT specification for the proposed Text Editor which is presented in the house style. This specification should include formal definitions of all operations that are deemed necessary to fulfil the user requirements. A full list of operations needed to complete this RESIT task are presented in Task Three instructions below.Your tasks are presented in summary form below.TASK ONEProvide a summary in tabular form that characterises the Functional, Imperative, Object-Oriented and Logical programming paradigms.TASK TWOYou should prepare a brief report that considers the general advantages and disadvantages of each of the four programming paradigms in the context of this particular problem scenario, and also give a justified recommended choice for implementing the final solution to this particular problem.You can refer to specific languages to exemplify your response, but a generic discussion will be acceptable.TASK THREEYou are required to use the house style for ADT specification to formally define the functionality of the text editor ADT. A previously constructed (but unconnected) ADT specification that formed the foundation of a timer mechanism in one of the power plant systems (Clock ADT) is presented below as an exemplar of the house style. You should be sure to stick to the conventions implied by this specification when constructing your ADT definition.The operation set you need to engage with in order to complete this RESIT paper are:Create;Destroy;Init;CursorLeft;CursorRight;Home;End;HighlightLeft;HighlightRight;HighlightHome;HighlightEnd;HighlightAll;Cut;Copy;Paste;InsertCharacter;Delete;Backspace.None of these functions require recursive operation definitions, and as such Upper Second and First Class grades are not available for this resit opportunity (your work is capped at 40% for resit work anyway).Students with Extenuating Circumstances ONLYIf you have been granted a first sit opportunity for this assessment through the successful application for Extenuating Circumstances, and wish to attempt tasks that will allow you to gain Upper Second or First Class grades, then you should download the original assessment documentation for this module and present your work as per the requirements there.SAMPLE ADT – this is how the house style requires you to present your ADT.NAMEClock – an ADT representing a simple (non-timing, non-calendar) time pieceSETSC the set of clocks, { (N × N × N ) }N the set of Natural numbers ( 0 . ? ? ? ? n Z n n )SYNTAXcreate: ? ? Cdestroy: C ? ?init: C ? CgetSeconds: C ? NsetSeconds: C × N ? CgetMinutes: C ? NsetMinutes: C × N ? CgetHours: C ? NsetHours: C × N ? Calter: C × N ? CSEMANTICS?h.h?N, ?m.m?N, ?s.s?N, ?z.z?Npre-create():: truepost-create(r):: r = ( 0 , 0 , 0 )pre-destroy(c):: truepost-destroy(c; r):: r = ?pre-init(c):: truepost-init ((_,_,_); r):: r = ( 0 , 0 , 0 )pre-getSeconds(c):: truepost-getSeconds((_,_,s); r):: r = spre-setSeconds(c,n):: n < 60post-setSeconds ((h,m,_),z; r):: r = ( h , m , z )pre-getMinutes(c):: truepost-getMinutes((_,m,_); r):: r = mpre-setMinutes(c,n):: n < 60post-setMinutes ((h,_,s),z; r):: r = ( h , z , s )pre-getHours(c):: truepost-getHours((h,_,_); r):: r = hpre-setHours(c,n):: n < 24post-setHours ((_,m,s),z; r):: r = ( z , m , s )pre-alter(c , n):: truepost-alter ((h , m , s), z; r):: r =( (h + (m + (s + z) DIV 3600) MOD 24 , (m + (s + z) DIV 60)MOD 60 , (s + z) MOD 60 )AUTHORKevin Jacques ([email protected]). Feb 2015Submission InstructionsThe deadline for submission of this work is included in the School Hand-in Dates spreadsheet on Blackboard.DO NOT include this briefing document with your submission.