Higher Nationals Internal verification of assessment decisions – BTEC (RQF) INTERNAL VERIFICATION – ASSESSMENT DECISIONS Programme title Higher National Diploma in Computing Assessor Internal Verifier Unit(s) Assignment title Student’s name W.A.D Samitha Lakmal List which assessment criteria the Assessor has awarded. Pass Merit Distinction INTERNAL VERIFIER CHECKLIST Do the assessment criteria awarded match those shown in the assignment brief? Is the Pass/Merit/Distinction grade awarded justified by the assessor’s comments on the student work? Has the work been assessed accurately? Is the feedback to the student: Give details: • Constructive? • Linked to relevant assessment criteria? • Identifying opportunities for improved performance? • Agreeing actions? Does the assessment decision need amending? Y/N Y/N Y/N Y/N Y/N Y/N Y/N Y/N Assessor signature Date Internal Verifier signature Date Programme Leader signature (if required) Date Confirm action completed Remedial action taken Give details: Assessor signature Date Internal Verifier signature Date Programme Leader signature (if required) Date Higher Nationals - Summative Assignment Feedback Form Student Name/ID W.A.D SAMITHA LAKMAL / 00127835 Unit Title Unit 01 - Programming 1 Assessor Assignment Number Submission Date Date Received 1st submission Re-submission Date Date Received 2nd submission Assessor Feedback: LO1. Define basic algorithms to carry out an operation and outline the process of programming an application. Pass, Merit & Distinction Descripts P1 M1 D1 LO2. Explain the characteristics of procedural, object-orientated and event-driven programming, conduct an analysis of a suita Integrated Development Environment (IDE). Pass, Merit & Distinction Descripts P2 M2 D2 M3 D3 LO3. Implement basic algorithms in code using an IDE. Pass, Merit & Distinction Descripts P3 LO4. Determine the debugging process and explain the importance of a coding standard. Pass, Merit & Distinction Descripts Grade: P4 P5 M4 Assessor Signature: Date: Assessor Signature: Date: D4 Resubmission Feedback: Grade: Internal Verifier’s Comments: Signature & Date: * Please note that grade decisions are provisional. They are only confirmed once internal and external moderation has taken place and grades decisions have been agreed at the assessment board. Assignment Feedback Formative Feedback: Assessor to Student Action Plan Summative feedback Feedback: Student to Assessor Assessor signature Date Student signature Date Pearson Higher Nationals in Computing Unit 01: Programming Assignment 01 General Guidelines 1. A Cover page or title page – You should always attach a title page to your assignment. Use previous page as your cover sheet and make sure all the details are accurately filled. 2. Attach this brief as the first section of your assignment. 3. All the assignments should be prepared using a word processing software. 4. All the assignments should be printed on A4 sized papers. Use single side printing. 5. Allow 1” for top, bottom , right margins and 1.25” for the left margin of each page. Word Processing Rules 1. 2. 3. 4. The font size should be 12 point, and should be in the style of Time New Roman. Use 1.5 line spacing. Left justify all paragraphs. Ensure that all the headings are consistent in terms of the font size and font style. Use footer function in the word processor to insert Your Name, Subject, Assignment No, and Page Number on each page. This is useful if individual sheets become detached for any reason. 5. Use word processing application spell check and grammar check function to help editing your assignment. Important Points: 1. It is strictly prohibited to use textboxes to add texts in the assignments, except for the compulsory information. eg: Figures, tables of comparison etc. Adding text boxes in the body except for the before mentioned compulsory information will result in rejection of your work. 2. Carefully check the hand in date and the instructions given in the assignment. Late submissions will not be accepted. 3. Ensure that you give yourself enough time to complete the assignment by the due date. 4. Excuses of any nature will not be accepted for failure to hand in the work on time. 5. You must take responsibility for managing your own time effectively. 6. If you are unable to hand in your assignment on time and have valid reasons such as illness, you may apply (in writing) for an extension. 7. Failure to achieve at least PASS criteria will result in a REFERRAL grade . 8. Non-submission of work without valid reasons will lead to an automatic RE FERRAL. You will then be asked to complete an alternative assignment. 9. If you use other people’s work or ideas in your assignment, reference them properly using HARVARD referencing system to avoid plagiarism. You have to provide both in-text citation and a reference list. 10. If you are proven to be guilty of plagiarism or any academic misconduct, your grade could be reduced to A REFERRAL or at worst you could be expelled from the course Student Declaration I hereby, declare that I know what plagiarism entails, namely to use another’s work and to present it as my own without attributing the sources in the correct way. I further understand what it means to copy another’s work. 1. I know that plagiarism is a punishable offence because it constitutes theft. 2. I understand the plagiarism and copying policy of the Edexcel UK. 3. I know what the consequences will be if I plagiaries or copy another’s work in any of the assignments for this program. 4. I declare therefore that all work presented by me for every aspects of my program, will be my own, and where I have made use of another’s work, I will attribute the source in the correct way. 5. I acknowledge that the attachment of this document signed or not, constitutes a binding agreement between myself and Edexcel UK. 6. I understand that my assignment will not be considered as submitted if this document is not attached to the attached. Student’s Signature: (Provide E-mail ID) Date: (Provide Submission Date) Higher National Diploma in Computing Assignment Brief Student Name /ID Number Unit Number and Title Unit 01: Programming Academic Year 2021/22 Unit Tutor Assignment Title Design &Implement a GUI based system using a suitable Integrated Development Environment Issue Date Submission Date IV Name & Date Submission Format This submission will have 3 components 1. Written Report This submission is in the form of an individual written report. This should be written in a concise, formal business style using single spacing and font size 12. You are required to make use of headings, paragraphs and subsections as appropriate, and all work must be supported with research and referenced using the Harvard referencing system. Please also provide a bibliography using the Harvard referencing system. (The recommended word count is 1,500–2,000 words for the report excluding annexures) 2. Implemented System (Software) The student should submit a GUI based system developed using an IDE. The system should connect with a backend database and should have at least 5 different forms and suitable functionality including insert, edit and delete of main entities and transaction processing. 3. Presentation With the submitted system student should do a presentation to demonstrate the system that was developed. Time allocated is 10 to 15 min. Student may use 5 to 10 PowerPoint slides while doing the presentation, but live demonstration of the system is required. Evaluator will also check the ability to modify and debug the system using the IDE. Unit Learning Outcomes: LO1. Define basic algorithms to carry out an operation and outline the process of programming an application. LO2. Explain the characteristics of procedural, object-orientated and event-driven programming, conduct an analysis of a suitable Integrated Development Environment (IDE). LO3. Implement basic algorithms in code using an IDE. LO4. Determine the debugging process and explain the importance of a coding standard Assignment Brief and Guidance: Activity 1 A. The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …….. In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation. Fn = F n-1 + F n-2 B. Factorial of a non-negative integer, is multiplication of all integers smaller than or equal to n. For example, factorial of 6 is 6*5*4*3*2*1 which is 720. n! = n * (n - 1) * …….. 1 Define what an algorithm is and outline the characteristics of a good algorithm. Write the algorithms to display the Fibonacci series and the factorial value for a given number using Pseudo code. Determine the steps involved in the process of writing and executing a program. Take a sample number and dry run the above two algorithms. Show the outputs at the end of each iteration and the final output. Examine what Big-O notation is and explain its role in evaluating efficiencies of algorithms. Write the Python program code for the above two algorithms and critically evaluate their efficiencies using Big-O notation. Activity 2 2.1 Explain what is meant by a Programming Paradigm and the main characteristics of Procedural, Object oriented and Event-driven paradigms and the relationships among them. Write small snippets of code as example for the above three programming paradigms using a suitable programming language(s). you also need to critically evaluate the code samples that you have given above in relation to their structure and the unique characteristics. Activity 3 and Activity 4 are based on the following Scenario. Ayubo Drive is the transport arm of Ayubo Leisure (Pvt) Ltd, an emerging travel & tour company in Sri Lanka. It owns a fleet of vehicles ranging from cars, SUVs to vans. The vehicles that it owns are hired or rented with or without a driver. The tariffs are based on the vehicle type. Some of the vehicle types that it operates are, small car, sedan car, SVUs, Jeep (WD), 7-seater van and Commuter van. New vehicle types are to be added in the future. Vehicle rent and hire options are described below. 1. Rent (With or without driver) – For each type of vehicle rates are given per day, per week and per month. Rate for a driver also given per day. Depending on the rent period the total rent amount needs to be calculated. For example: if a vehicle is rented for 10 days with a driver, total amount to be calculated as follows: Total rent = weeklyRent x 1 + dailyRent x 3 + dailyDriverCost x 10 2. Hire (with driver only) – These are based on packages such as airport drop, airport pickup, 100km per day package, 200km per day package etc. Standard rates are defined for a package type of a vehicle typeif that is applicable for that type of vehicle.For each package maximum km limit and maximum number of hours arealso defined. Extra km rate is also defined which is applicable if they run beyond the allocated km limit for the tour. For day tours if they exceed max hour limit,a waiting charge is applicable for extra hours. Driver overnight rate and vehicle night park rate also defined which is applicable for each night when the vehicle is hired for 2 or more days. Activity 3 Function 1: Rent calculation. Return the total rent_value when vehicle_no, rented_date, return_date, with_driver parameters are sent in. with_driver parameter is set to true or false depending whether the vehicle is rented with or without driver. Function 2: Day tour - hire calculation. Calculate total hire_value when vehicle_no, package_type, start_time, end_time, start_km_reading, end_km_reading parameters are sent in. Should return base_hire_charge, waiting_charge and extra_km_charge as output parameters. Function 3: Long tour - hire calculation. Calculate total hire_value when vehicle_no, package_type, start_date, end_date, start_km_reading, end_km_reading parameters are sent in. Should return base_hire_charge, overnight_stay_charge and extra_km_charge as output parameters. Write suable algorithms for vehicle tariff calculation for rents and hires. Ideally 3 functions should be developed for this purpose as above. Use the visual studio IDE (using C#.net) to Implement the above algorithms and design the suitable database structure for keeping the tariffs for vehicle types and different packages which must be used for implementing the above functions. Analyze the features of an Integrated Development Environment (IDE) and explain how those features help in application development. Evaluate the use of the Visual StudioIDE for your application development contrasted with not using an IDE. Activity 4 4.1 Design and build a small system to calculate vehicle hire amounts and record them in a database for customer billing and management reporting forAyubo drive. This includes the completing the database design started in 3.2 and implementing one or more GUIs for vehicle, vehicle type, and package add/edit/delete functions. It essentially requires an interface for hire calculation and recording function described above. Generating customer reports and customer invoices are not required for this course work. 4.2 Explain debugging process and the features available in Visual studio IDE for debugging your code more easily. Evaluate how you used the debugging process to develop more secure, robust application with examples. 4.3 Outline the coding standards you have used in your application development. Critically evaluate why a coding standard is necessary for the team as well as for the individual. Grading Rubric Grading Criteria LO1 Define basic algorithms to carry out an operation and outline the process of programming an application. P1Provide a definition of what an algorithm is and outline the process in building an application. M1Determine the steps taken from writing code to execution. D1 Evaluate the implementation of an algorithm in a suitable language. Evaluate the relationship between the written algorithm and the code variant Achieved Feedback LO2 Explain the characteristics of procedural, objectorientated and event-driven programming, conduct an analysis of a suitable Integrated Development Environment (IDE) P2Give explanations of what procedural, objectorientated, and eventdriven paradigms are; their characteristics and the relationship between them. M2 Compare and contrast the procedural, object orientated and event driven paradigms used in given source code of an application D2Critically evaluate the source code of an application which implements the programming paradigms, in terms of the code structure and characteristics. LO3Implement basic algorithms in code using an IDE. P3Write a program that implements an algorithm using an IDE. M3Use the IDE to manage the development process of the program. D3Evaluate the use of an IDE for development of applications contrasted with not using an IDE. LO4 Determine the debugging process and explain the importance of a coding standard P4Explain the debugging process and explain the debugging facilities available in the IDE. P5Outline the coding standard you have used in your code. M4Evaluate how the debugging process can be used to help develop more secure, robust applications. D4 Critically evaluate why a coding standard is necessary in a team as well as for the individual. Activity 1- Define basic algorithms to carry out an operation and outline the process of programming an application. Algorithm According to (Bullinaria, 2019) an algorithm designed for a specific task can be described as a finite series of instructions, each of which has a distinct meaning and can be completed in a finite period of time with a finite amount of effort. As a result, an algorithm must be accurate enough for humans to understand. Further (Gillis, 2022) suggests that algorithms can be classified into various categories such as natural languages, programming languages, pseudocode, flowcharts and control tables. Natural language expressions are rare, as they are more complex. Programming languages are normally used for expressing algorithms executed by a computer. Characteristics of an Algorithm According to (Sondhi, 2021)a successful algorithm musty be Unambiguous which means an algorithm is like a blueprint of an application therefore it should be clear and simple to understand the input & output criteria must well outlined. The phases listed in an algorithm should be countable, and it should end after a defined number of steps. Effectiveness should be maintained in an algorithm to produce efficient results this can be achieved through Time parameter and space parameter; Time parameter is none other than the duration for an algorithm to process and the Space parameter refers to the storage space required by the algorithm with reference to input criteria and lastly algorithms must be language independent which means the deigned algorithm must work for all programming languages. Pseudocode for Fibonacci number sequence Start i: integer j: integer k: integer s: integer n: integer i=1, j=0, k=1, s=0, n=0 Input n While i<=n Print j S=j + k j=k k=s i=i+1 End while Stop Dry run for Fibonacci numbers Input Sample number ‘N’ as 5 -While “i” is less than or equal to N -J will be printed as 0 -S will be J plus K which is 1 -Then J will be equal to K new J value will be 1 -K will be equal to S value of K will be 1 -The counter will increment i is equal to i plus one -Back to the beginning of the loop While “i” is less than or equal to N(i=2) -New J value will be 1 and it will be printed -S will be J plus K which is 2 -Then J will be equal to K new J value will be 1 -K will be equal to S value of K will be 2 -The counter will increment i is equal to i plus one -Back to the beginning of the loop While “i” is less than or equal to N(i=3) -New J value will be 1 and it will be printed -S will be J plus K which is 3 -Then J will be equal to K new J value will be 2 -K will be equal to S value of K will be 3 -The counter will increment; i is equal to i plus one -Back to the beginning of the loop While “i” is less than or equal to N(i=4) -New J value will be 2 and it will be printed -S will be J plus K which is 5 -Then J will be equal to K new J value will be 3 -K will be equal to S value of K will be 5 -The counter will increment; i is equal to i plus one -Back to the beginning of the loop While “i” is less than or equal to N(i=5) -New J value will be 3 and it will be printed -S will be J plus K which is 8 -Then J will be equal to K new J value will be 5 -K will be equal to S value of K will be 8 -The counter will increment; i is equal to i plus one -Back to the beginning of the loop While “i” is less than or equal to N (i=6) -Condition is False will exit the loop and end the program Hence the output will be: Output→0,1,1,2,3 Pseudocode for Factorial value Start n: int fact: int n=0, fact=1 Input n While n>0 Fact = fact*n n=n-1 print fact End while Stop Dry run for Factorial numbers Input Sample number ‘N’ as 3 -While “n” is greater than 0 -fact is equal to fact multiplied by n current fact value is 1multiplied by the current n value 3 gives the new fact equals 3 -new n value equals previous n value minus 1 hence new n value is equal to 2 -While “n” is greater than 0 -fact is equal to fact multiplied by n; current fact value is 3multiplied by the current n value 2 gives the new fact equals 6 -new n value equals previous n value minus 1 hence new n 2 minus 1 which is 1 -While “n” is greater than 0 -fact is equal to fact multiplied by n; current fact value is 6 multiplied by the current n value 1 gives the new fact equals 6 Hence the output will be: Output→6 As 3x2x1 Steps to create a successful program Developing a software entails the same processes as any other problem-solving endeavor. In the programming process, there are five main components: 1.Defining the problem 2.Planning the solution 3.Coding the program 4.Testing the program 5.Documenting the program As the steps outlined above and to discuss those steps a bit in-depth is as follows. According to (Valenzuela, 2018) the first step to in creating a successful program would be to Identify the problem, Defining the problem is the most critical part as it is will need to develop a concrete plan for what the program is intended to do. a crucial step in Identifying the known inputs (or provided data) and the desired outputs required for this operation. Programming a working applications not an easy task, with time and constant effort. In Order to provide the solution to the problem identified in the next step would be to Find a solution, the help of flowchart and pseudocodes are useful. Experienced programmers use either of these methods to convey program development to clients. The solution process enables programmer to focus on the logical flow of the program without having to adhere to the actual syntax used by the programming language for the project. Once the solution is identified and a blue print is made the next step would be to Code it. This is where the algorithmic design skills from computational thinking come into play. Testing is yet another critical aspect in the workflow it will determine the quality of the program, will help to locate any bugs the testing phase is achieved in different levels, once the testing is done the software should be ready to be handed over to the user along with a fully documented user guide on how to use the for the first time. Big-O notation and its role in programing The effectiveness of an algorithms interpreted by (Jamieson, 2021) can be evaluated using Big O Notation. As the input increases, it calculates how long it takes to run a function. Efficiency is measured in terms of Time complexity and Space complexity. The length of the function's execution in terms of its computational process is measured by its time complexity. Space complexity is the required memory for a function to be executed. Big O is referred to as the algorithm's upper bound, which denotes that it handles the worst-case scenario. The algorithm will never perform worse than we anticipate thanks to our utilization of the worst-case scenario. Furthermore (Mulonda, 2019) suggests that Big O notation is used by programmers as a kind of measurement unit to assess or gauge the effectiveness of a piece of code(s), a script, or an algorithm. The precise runtime of a script or algorithm is difficult to ascertain. It also depends on other elements like the processor's speed and other technical details of the computer running the script or algorithm. Big O notation is therefore used to assess how fast the runtime grows in relation to the input data that will be processed by that algorithm rather than analyzing the runtime itself directly. Python Code for Fibonacci numbers nterms = int(input("How many terms? ")) n1, n2 = 0, 1 count = 0 if nterms <= 0: print("Please enter a positive integer") elif nterms == 1: print("Fibonacci sequence upto",nterms,":") print(n1) else: print("Fibonacci sequence:") while count < nterms: print(n1) nth = n1 + n2 n1 = n2 n2 = nth count += 1 Fig1.1 Python code for Fibonacci numbers in python IDLE Python Code for factorial numbers num = int(input("Enter a number: ")) fact = 1 if num < 0: print(" Factorial does not exist for negative numbers") elif num == 0: print("The factorial of 0 is 1") else: for i in range(1,num + 1): fact = fact*i print("The factorial of",num,"is",fact) Fig1.2 Python code for factorial numbers in python IDLE Evaluating the program code with Big O notation for efficiency According to (Spacey, 2016) The word "algorithm" has been used to describe highly optimized codes, such as a widely complex problem in regards to arithmetic functions. The word implied as a code has a strict design and resolves a complex problem. Codes frequently has little complexity, is repetitious, or is not crucial. A/Code that, for instance, shows a user interface, verifies input, executes a transaction, or computes a value is typically simple to implement. Since they are more sophisticated than other types of structures, algorithms can start out as extensive research projects. Any code written by a developer on the spot that doesn't resolve a significant issue is often not regarded as an algorithm. It is important to realize that businesses frequently use the word algorithm. As a result, the phrase is starting to lose its original meaning and is increasingly being used to refer to code. Comparing the pseudocode for Fibonacci numbers it and considering the Big O notation feature the pseudocode does not store and display a lot of unnecessary variable/data this is an efficient use of space complexity and when considering the timing of execution for the python code for Fibonacci numbers is that comparatively its fast and could run computers with less hardware features. Activity 2 –Define the characteristics of procedural object oriented and event driven programming . Programming paradigm According to (Bartoníček, 2014) Paradigm is a set of patterns and procedures utilized to accomplish a specific task. For a certain idea to become a paradigm, it should be picked up globally in many independent organizations and societies. There are mainly 3 paradigms that will be discussed here it is as follows 1.Procedural Paradigm 2.Object oriented paradigm 3.Event driven paradigm Procedural paradigm The method of programming that has been utilized since the invention of computers is known as the procedural paradigm. In this paradigm, unless otherwise specified, the program consists of a series of instructions that the computer is to carry out in the sequence that they were written. It is a straightforward method that is usually simple to follow when the program is brief. It may be exceedingly challenging to comprehend, manage, and debug larger programs created with a procedural approach. The majority of procedural languages have IF, FOR & WHILE statements control mechanisms. Below is an example of a piece of procedural programing. Characteristics of Procedural programming • Predefined functions: Included in higher-level programming languages and these functions are recognized by name. • • Local Variable: Defined in the method's primary structure and used inside the method's local scope. • • Global variable: Is one that is declared outside of every other function. As a result, unlike a local variable, global variables can be utilized in all functions. • Modularity: is the process through which two distinct systems that are working on two different tasks are combined to complete a bigger job first. • Parameter Passing: A mechanism used to pass parameters to functions, subroutines or procedures. (Bhatia, 2022) Object oriented paradigm Due to the modularity of objects, the object-oriented paradigm was created to simplify complex projects and distribute the workload among team members. An object is the centerpiece of the object-oriented paradigm. Data structures and operations that may be performed on the data, known as methods, are grouped together as objects. The programmer can achieve a high level of encapsulation by properly typing the data and procedures. Characteristics of Object-oriented programming • Encapsulation -When each object inside a class retains a private state. Other objects cannot directly access this state; instead, they must call a set of public functions. These methods let the object to control its own state, and no other class may change it unless specifically authorized. • Abstraction -Abstraction is an extension of encapsulation. It is the process of selecting data from a larger pool to show only the relevant details to the object. Abstraction is the method of obtaining, deleting, or choosing user data it enables to utilize the same data you used for apps with little to no modification which is one of the benefits of Abstraction. • Inheritance–Ability to acquire some/all properties of another object. For example, a child inherits the genes/characteristics of his/her parents. Reusability is a major advantage whereas the fields and methods of the existing class can be re-used. For example, Apple is a fruit assuming that a class called Fruit is there and a subclass of it is an Apple. Hence an Apple acquires the properties of the class Fruit. • Polymorphism–Polymorphism is the use of classes exactly like its parent class this was there is less or no confusion with mixing types. This being said, each child sub-class keeps its own functions/methods as they are. (Banda, 2020) Event-driven paradigm The main focus of event-driven programming is the classification of events, therefore the Program flow ultimately on external events. The model containing the idea of event-driven programming is known as an asynchronous model. Events are necessary for event-driven programming to function. Events select what to do and in what order to perform it after they have looped. The flowchart that follows will help you comprehend how this operates. (tutorials point, n.d.) Characteristics of Event-driven programming • Service oriented –Often appears in the background and does not have any real interaction with the user but at the same time these applications could be stopped from running with users will. • Time driven –These included such as antivirus scans, task scheduler and operating system updates etc. These events follow real time settings and variables. • Event Handlers –These are sections of code that are set out to denote the actions of various events, such that when right or left clicking the mouse can have different results. • Trigger functions –These specific pieces of code designed to take actions for an event. e.g. Clicking button to trigger the calculation on a calculator (BURROWS, 2013) Relationships between programming paradigms Procedural programming means that as a series of steps, you describe a program and its subprograms. On the other hand, declarative programs attempt to define the result irrespective of the steps taken to calculate it but rather some description or denotation of the desired result. Object-oriented programming is a way to organize code around the concepts of encapsulation, inheritance, replacement, programming to interfaces, etc. Event based programming is about writing event handling procedures and having the core event loop provided by the underlying system. In this way you can save the trouble of writing your own event loop and benefit from various libraries that already work with the system provided event loop. Event based programs are very often writing using object-oriented style, but not always. These three categories are thus not related strictly hierarchically, but in common usage they are mostly nested within one another. Sample code for Procedural programing: def Sum(sample_list): total = 0 for x in sample_list: total += x return total list1 = [25, 50, 90] list2 = [9, 45, 77, 20] print(Sum(list1)) print(Sum(list2)) Output: 165 151 The function “Sum ()” have been used to calculate the “list1” and “list2” total. The procedural style depends on procedure calls to create modularized code. Which means the use of functions to group the tasks parallel makes the overall code simpler and easier to digest for programmers when it comes to locating errors as well. According to (John, 2022) procedural programming Just consists of a set of computational steps that teach the computer how to do a job in a logical sequence. When addressing large projects, it is preferable to utilize another programming paradigm rather than procedural programming, which is excellent for basic applications. Further (Khatri, 2022) suggests that procedural paradigm focuses on enhancing the program's clarity, quality, and development time, with its unique characteristics with higher level programming language these functions recognized by name, the parameter passing mechanism used to functions ex: list1 & list2. Sample code for Object oriented programing: class Parrot: species = "bird" def __init__(self, name, age): self.name = name self.age = age blu = Parrot("Blu", 10) woo = Parrot("Woo", 15) print("Blu is a {}".format(blu.__class__.species)) print("Woo is also a {}".format(woo.__class__.species)) print("{} is {} years old".format( blu.name, blu.age)) print("{} is {} years old".format( woo.name, woo.age)) Output: Blu is a bird Woo is also a bird Blu is 10 years old Woo is 15 years old An object could represent an employee with attributes such as name, title, experience, etc., with behaviors like working, on-leave, underperformed, etc. as mentioned in the above code [species = bird ] According to (Herrity, 2022) For example, an object could represent an employee with attributes such as name, title, experience, etc., with behaviors like working, on-leave, underperformed, etc., The four principles of object-oriented comparing the unique characteristic methods of oop considering the encapsulation feature in the class parrot there is private data such as the name and age these data may not be exposable. Abstraction is the feature when considering the above code def init __(self, name, age) Sample code for Event driven programing: import asyncio async def main(): print('Hello ...') await asyncio.sleep(1) print('... World!') asyncio.run(main()) The asyncio module in Python has a timer that can affect an event when its time is up first it will print Hello then after sometime it will print World and the loop ends. When the event does happen, the handler is called, and shown below is the event when executed, create and manage event loops, which provide asynchronous APIs for networking, running sub processes, handling OS signals, etc.; implement efficient protocols using transports; bridge callback-based libraries and code with a sync/await syntax. .