Reference no: EM133910648 , Length: word count:2000
Advanced Programming
Assessment Title: Internal Coding Report
Task
For this assessment, you will individually investigate a real-world multitasking application, conduct a case study, create a sample Python program, and compose a detailed report.
Assessment Description
In this assessment, you will be required to complete two tasks. The first task is to analyse a real-world application and write a report. The second task involves developing Python programs and a report, applying your knowledge of multitasking, concurrency, and parallelism.
Task 1: Report
In this task, you are required to write a comprehensive report focusing on a real-world application that prominently utilises multitasking concepts, including threading, concurrency, and parallelism. Your report should provide an in-depth analysis and practical insights into how these concepts are applied in the chosen application to enhance its performance and efficiency. Use the below given task breakdown to compose your report. Get Assignment Help from trusted tutors.
Select a Real-World Application: Choose a real-world application that effectively incorporates multitasking principles, ensuring it serves as a suitable case study.
Analyse Multitasking Aspects: Investigate the selected application, exploring its utilisation of threading, concurrency, and parallelism. Identify specific areas where these concepts come into play.
Conduct In-Depth Analysis: Dive deeply into the application's use of threading, concurrency, and parallelism, and provide a detailed examination of their practical application.
Compose a Comprehensive Report: Write a well-structured report that explains the multitasking aspects of the chosen application, their impact on performance, and potential avenues for enhancement. Support your analysis with clear examples and evidence.
Discuss Practical Implications: Within your report, discuss the practical implications of implementing multitasking concepts in the chosen application. Highlight the advantages and challenges of using threading, concurrency, and parallelism in a real-world scenario.
Task 2: Case study
Consider the following scenario. We have a fictional character named John. Every morning, he wakes up, gets ready, and begins his day with breakfast. To structure his morning routine, let's assume that he has a fondness for sandwiches, fruits and tea. It takes him 8 minutes to eat his sandwich and an additional 3 minutes to enjoy his tea. He takes 2 minutes to eat his fruit. Following the breakfast, John spends 10 minutes scrolling through social media. Important: For simplicity in our Python code, use seconds for each time delay.
Write a Python code to simulate the above scenario.
John wants to take advantage of the time he spends waiting for his tea to cool down by checking a notification on his phone. In other words, he aims to use the downtime during the execution of each task to initiate another task. Considering the above scenario, implement the concept of utilising waiting times during one function's execution to run another function in Python?
Now, let's imagine John is at the breakfast table: he enjoys a mouthful of sandwich, bites his fruit, sips his tea, checks a notification, and this cycle continues. Implement this scenario in Python using multithreading.
Write in-line comments describing the Python code you've developed for the given case study.
Assessment Instructions
The instructions for the Task 1 of the assessment:
Carefully read the description provided for Task 1 and follow the detailed breakdowns as outlined.
Compose a report for the real-world problem you've chosen, adhering to the essential steps outlined in the breakdowns. The report should be structured with a concise summary, an introduction, an analysis, a discussion and a conclusion.
The report should not exceed 1100 - 1300 words in length.
The instructions for the Task 2 of the assessment:
Review both the provided case study and the accompanying Python subtasks.
Develop three versions of Python code to deal with the specific subtasks presented in Questions 1 through 3.
Write a reflective report that analyses the Python codes you have developed for Questions 1 to 3. In this report, include your thought process, choices, and any insights gained during the code development.
The report should not exceed 600-800 words in length.