Assignment Brief and Guidance:
Task 1: P1, M1, &D1
You currently work for a software development company that produces software for mobile devices. As you are part of the research and development team, your role includes investigation into new processes that can benefit the company. One particular area of research that you have been tasked with is the use of algorithms and how they can be used to build more efficient software. This will have an impact on the software developed as efficient software can result in longer battery life and the ability to do more with the limited resources mobile devices have to offer. As the results will need to be delivered to your peers, consider this as a mini research project that will be presented. Research could be conducted on your choice of algorithms, including sorting and searching data or encryption/decryption, compression/decompression.
To present your findings you can build a presentation with links to data showing the performance of an algorithm.
1: Provide a definition of what an algorithm is and outline the process in building an application.
a. You will need to explain what an algorithm is, with examples of their use.
b. Compare algorithm efficiency against brute forcing.
c. Outline the process in building a software application.
In each case above, provide an example to support your discussion.
1: Determine the steps taken from writing code to execution.
d. Using an example discuss the steps involved in developing an application from source code to when it is executed. Ensure you include in your discussion the roles of the pre-processor, compiler and linker, and interpreter.
1: Examine the implementation of an algorithm in a suitable language. Evaluate the relationship between the written algorithm and the code variant.
e. Consider an algorithm you have developed and its equivalent implementation in using a suitable programming language, and evaluate the relationship between the written algorithm and the code variant.
Task 2
The research and development team you work with have been tasked with further investigation into how best to build more efficient, secure software. You have been asked to look into programming paradigms and the advantages and disadvantages of using different programming language approaches.
You will need to create a report covering findings from research into the characteristics of different programming paradigms – procedural, object-orientated and event-driven programming.
P2: Give explanations of what procedural, object orientated and event driven paradigms are; their characteristics and the relationship between them.
Provide explanations for the following programming paradigms:
• Procedural,
• Object Orientated
• Event Driven
For each of the above ensure you include in your explanations their characteristics and the relationship between them.
2: Analyse the common features that a developer has access to in an IDE. For each paradigm perform an analysis of suitable IDEs describing the key features of the IDE you used developing your programs.
3: Critically evaluate the source code of an application which implements the programming paradigms, in terms of the code structure and characteristics.
Select application(s) you have developed and critically evaluate the source code in terms of the following;
• Data types (the role of constants/variables)
• Methods (including input/output)
• Control structures
• Iteration
• Scope
• Parameter passing
• Classes
• Inheritance and
• Events
The software development unit of the company you are currently working for have a position available for an application developer which you are interested in applying for. As part of the application process they want to see that you can implement algorithms using an IDE.
Your aim is to create a fully working; secure application developed using an IDE and adheres to coding standards based on the scenario given in Appendix A.
The document portfolio should include:
• Evidence of how the IDE was used to manage the development of your code.
• An evaluation of developing applications using an IDE versus developing an application without using an IDE.
• An evaluation of the debugging process in the IDE used and how it helped with development.
• An evaluation of coding standards and the benefits to organisations of using them.
The working application produced must also be demonstrated to your programming lecturer.
Write a program that implements an algorithm using an IDE.
a. Demonstrate implementation of algorithms, using the features of a suitable language and IDE. Consider possible security concerns and how these could be solved.
2: Explain the debugging process and explain the debugging facilities available in the IDE.
b. Using the debugging facilities available in the IDE used in developing your application, explain the debugging process.
3: Outline the coding standard you have used in your code.
c. Discuss the coding standard you followed in developing your application.
3: Use the IDE to manage the development process of the program.
d. Demonstrate the use of an IDE to implement designed algorithm from source code to its execution.
4: Evaluate how the debugging process can be used to help develop more secure, robust applications.
e. Discuss how you can use the debugging process to develop a more secure and robust application.
5: Evaluate the use of an IDE for development of applications contrasted with not using an IDE.
f. Evaluate your own experience of using and IDE to develop an application contrasting it with not using an IDE.
6: Critically evaluate why a coding standard is necessary in a team as well as for the individual.
g. Considering the coding standard you followed, critically evaluate why this is necessary for individual and/or team of programmers.