1. Advantages of using OOP as compared to using only PP

OOPis a programming model which utilizes abstraction (as objects andclasses) to create prototypes with similar features as thoseexhibited in contemporary real life situations. OOP employs a set ofobjects with the capacity to relay messages to request services,receive messages as well as process data (Knuth, 2013 Dijkstra,2013).This enables programs to be conveniently maintained because ofimproved flexibility. OOP also employs a modular language and thuseasy to develop and simple to understand.

PPon the other hand employs a programming language where proceduresdefine modules and the procedure in this case is a sequence of welldefined statements (Knuth, 2013). C language is a form of proceduralprogramming where procedures are represented as a string ofimperative statements. These statements may include tests,assignments, loops or invocations of secondary procedures. Proceduresin this case are indeed functions, which map out arguments toappropriate return statements.

Thedesign schematic applied in PP is referred to as the Top Down Design(Knuth, 2013). It entails beginning with a procedure (problem)followed by a systematic dissemination of the problem into secondaryprocedures (problems). This technically referred to as functionaldecomposition and progresses on until the secondary problem issimplified to such a degree that it can be solved by the matching subproblem (Dijkstra,2013).The disadvantages associated with PP are that the softwaremaintenance process may present difficult challenges and is thereforetime consuming (Mayer, 2013). For instance, when a modification needsto be effected to the primary problem or procedure, the similarmodifications cascade down to subsequent secondary procedures and soon. This is such that the modifications tend to have an impact on allcomponent procedures in a given pyramid.

  1. Class, attribute, and method

class MyClass:

&quot&quot&quotA Normal human being&quot&quot&quot

i = weight, gender, height

k = behaviors

def f(self):

return `human world`

Aclass is a set of attributes (objects) with common properties,functions and behaviors (Knuth, 2013). A class is therefore acombination of data (state) and methods (Behaviors). In OOP, a classrepresents a data type while attributes represent modes consistentwith a particular data type. As such a class represents a prototypefrom which attributed are defined.

Consideringa human being as a class which collectively represents all otherhuman beings in the world, then the states consistent with humanbeings may include weight, height, gender, and so on (Knuth, 2013).Behaviors related to human beings include eating, sleeping talkingand so on. Therefore, one can deduce that all stats and methodsrelative to human beings are contained (encapsulated) in the classrepresenting human beings.

Anattribute (object) is therefore an example of a particular classwhereby attributes are abstraction units (Mayer, 2013 Hartmann&amp Rieger, 2014).An attributes thus can communicate with other attributes via messagesby the invocation of a behavior (method). Attributes therefore carryout actions necessary to achieve responses from a system.

Inthe real world, all attributes share two common features, that is,behavior and state. In computer programming, software attributes areabstractly similar to real life attributes (Dijkstra,2013).An attribute stores state in fields and exposes distinct behaviorsvia methods. OOP employs encapsulation, which entails hiding theinternal state of attributes allowing for interactions to bemanifested via distinct attribute methods.

  1. Feature of object-oriented programming that Visual Logic lacks.

Conventionalprogramming languages are a text oriented and thus tend to offer anon-intuitive structure towards understanding OOP (Mayer, 2013).Scholars provide that most new programmers tend to favor learningprogramming methods through the application of flowchart models,higraphs and visual object oriented programming tools (Knuth, 2013).This has brought about the need to realize a visual programming modelfor enabling students to understand OOP in a comprehensive manner.

However,there is a feature consistent with OOP that visual logic fails toemploy thus making explaining the concepts of OOP to student usingvisual logic tools more complex (Knuth, 2013). OOP employsencapsulation, which stores attributes related to a particular class.To replicate this via visual logic translates to the use of complexcodes, which only serve to make learning more complicated (Dijkstra,2013).To attempt to incorporate through visual logic to describe OOPprocesses, encapsulation manual coding becomes mandatory presenting asituation where automatically generated programming codes areincorporate into manually generated programming code. Despite thischallenge, Visual Logic is widely used in the software industry.

  1. Advantage of using event-driven programming, as compared to using purely procedural programming

Evendriven programming is a programming paradigm that operates because ofexternal inputs (Mayer, 2013 Hartmann&amp Rieger, 2014).For instance, when an individual is utilizing a computer, he or sheis continuously invoking actions or events, which precipitate thecomputer to perform functions as, instructed. For instance, when oneis using a computer mouse, he or she is invoking the device’sensory input which is translated by the computer to visually displaycorresponding movements on the visual display unit. The cursor on theVDU represents movements invoked on the mouse by a user (Hartmann&amp Rieger, 2014).Similarly, clicking on an icon on a computer screen initiates anevent precipitated by the action of clicking on the particular icon.As such, event driven programming is fundamental to the creation ofcomputer operating systems.

Oneadvantage of event driven programming is that it is user friendly(Mayer, 2013). Through the application of event driven programming,anyone can operate a computer’s operating system without the needof having expert knowledge of using a computer. This however is notthe case with PP.


Dijkstra,E. W. (2013). Separation of Concerns (SoC) and Aspect-OrientedProgramming (AOP).

Hartmann,A. K., &amp Rieger, H. (2014). Practicalguide to computer simulations.World Scientific Publishi.

Knuth,D. E. (2013). Artof Computer Programming, Volume 4, Fascicle 4, The: Generating AllTrees–History of Combinatorial Generation.Addison-Wesley Professional.

Mayer,R. E. (Ed.). (2013). Teachingand learning computer programming: Multiple research perspectives.Routledge.