Reference no: EM133559661 , Length: word count:3600
Project Report
Instruction
Gather evidence of how you have contributed to your project team. Present and discuss this evidence in an individual project report.
Report Details
While you may share data and visualisations within your project group, the individual project report should be completed individually.
The goal of the report is for you to communicate how you have contributed to your project team in general, and to the solution to the project brief that your team has produced. Imagine you are applying for a promotion or having a progress review with your boss, and you want to make sure they understand the value you have added to the organisation.
Your report should be 3000 - 4000 words, excluding references.
Sections and subsections should be numbered (e.g., 1. for the first main section, 1.1 for the first subsection).
Sources must be formally referenced in ACM style
Use the following structure:
1. Introduction
Provide a brief overview of the report, the context of the project, and what you will discuss.
2. Contributions
2.1 Code Contributions
Describe and provide evidence for how you contributed to the code your team delivered. Include representative code snippets and explain how they work. Evidence of your contributions could include version control history, screenshots of emails or chats showing you sharing your work, or meeting minutes. Reflect on the value and quality of your contributions.
2.2 Design Contributions
Describe and provide evidence for how you contributed to the design of your team's solution. This could include but is not limited to the user interface, software architecture, and database schema. Evidence of your contributions could include emails or chats showing you sharing your work, meeting minutes, or document edit histories. Reflect on the value and quality of your contributions.
2.3 Team Contributions
Describe and provide evidence for how you contributed to your team. This could include but is not limited to engagement with the project, attendance at meetings, punctuality, timely work completion, leadership roles, organisation, and other administrative activities. Evidence might include meeting minutes, chat messages or emails, testimonials from team members, or document edit histories. Reflect o nthe value and quality of your contributions.
3. Learning Outcome Reflection
Describe and provide evidence for how you have met each of the unit learning outcomes. Include one sub-section for each learning outcome. The learning outcomes are:
Have an understanding of programming
Demonstrate reflective practice, and use self and peer evaluation
Apply knowledge of programming fundamentals to technology challenges
Learn collaboratively in a team environment
Find, organise, and evaluate information on a range of topics related to technology challenges
Demonstrate awareness of social and cultural perspectives that impact on learning and working in a team
4. Summary
Provide a brief summary of the report and what you discussed.
References
A list of references you used, in ACM style. All references should be referred to in the main text of the report.
Python - Individual Research Report
Abstract: Backend technology is essential in current software development since it serves as the foundation for server-side applications. This abstract delves into the fundamental concepts and components of backend technology, with a particular emphasis on Python. It delves into the architecture of backend systems, covering server configuration, databases, and APIs. It demonstrates Python's versatility in backend development by addressing frameworks such as Django and Flask. Developers can construct strong, efficient, and scalable apps to suit the needs of today's digital ecosystem by understanding the underlying ideas and breakthroughs in backend technology.
Introduction
The main aim of this project is to develop a prototype software application that provides statistical information about the attendance of the students in the classes for each session and to track the total number of questions that are answered in every session in each subject area.
Objective
The objective is to work individually on specific knowledge gaps and share the knowledge with team members to enhance the team's expertise and to create an initial version of the application.
The Technology: Python
The back-end technology used in this project is Python. To develop a software application, one should identify a knowledge gap and work on it to explore, investigate and discover new methodologies. The knowledge gap that needs to fill is related to Python programming language which includes:
Learning the concepts of data types, variables, functions, expressions, pattern forming, iterators, and slicing operators.
The concepts of statements like if, else, and also loops (while loop, for loop), and finally conditional expressions are required to understand the flow and control of the program that is being compiled. [1]
Concept of file handling is required to handle large files that contain terabytes of data.
Server-side integration is required as Python and PHP handle a few tasks and those servers will communicate with each other. [2]
Principles of Python:
Python is a high-level programming language and it has a high value on code readability, believing that the code should be simple to understand by the user who may work on it. Python also prefers explicit code and its features helps in code reusability. This language has an extensive collection of frameworks and libraries that allow programmers and developers to develop a wide range of software applications. Python has the ability to break down the complex problems to a smaller. [3]
Features of Python:
There are numerous features of Python that keeps on updating with improvement in technology. Some features of Python suffice the present trend as it is an object oriented, interpreted, high-level, and functional programming language. Moreover, it is dynamically typed language so that there is no necessity to declare variable types by the programmer. It is extensive and embedded language. The latest versions of Python idle is available on multiple operating systems like Windows, MacOS, and Unix [4].
Ruby Programming Language:
The concepts of Ruby language include objects, instances of classes, methods that describe behaviour in Ruby by taking parameters as inputs and returns the values. Few other concepts required in Ruby for back-end development are:
Datatypes: Integers, text, arrays, hashes, ranges, symbols are the datatypes available in Ruby.
Inheritance and Polymorphism: For the purpose of code reusability and to extend the functionality of class by adding methods inheritance is required. Polymorphism is required to simplify the code.
Exception Handling: This concept is required in order to manage the errors, debugging and for the best user experience.
String Manipulation: The concepts of string manipulation, interpolation, formatting and regular expressions are necessary to understand.
Iterators and Enumerators: Ruby provides in-built iterators that makes it easy to iterate and perform the operations on arrays and hashes.
Metaprogramming: Ruby helps in re-writing the existing code with a new code that helps in code readability and flexibility.
Limitations of Ruby programming language over Python:
The execution speed of Ruby language is very slow when compared to Python.
Ruby Rails is a framework of Ruby language used for the back-end development. But Python itself is a programming language and has several frameworks like Django, Flask and Bootstrap that are used for web development.
The exception handling and deployment process is difficult in Ruby than Python.
The active community, count of library functions and packages of Python is higher than Ruby language.
The feature of static typing is not available in Ruby language. It will be difficult to find the errors when compiling the code. However, Python has built-in feature of static typing.
Pros of using Python:
The syntax of Python is easy to understand and it is almost similar to the natural language.
Python is free open-source software that can be used to develop any API or application without any license.
A large number of extensive library functions like Pandas, NumPy, Scikit-learn, PyTorch, and OpenCV are widely available that contain in-built code that reduces the length of the syntax and consumes less memory.
Few in-built libraries like Matplotlib and Seaborn are used to create analytics and perform statistical operations and produce interactive visualizations.
Python can be easily integrated and provides the developers can design the codes with higher flexibility.
Cons of using Python:
For the applications that require real-time processing, python cause performance issues because of the slowness of the compiler as it is an interpreted language.
Python limits the CPU tasks as it cannot execute several threads to a single one at a time.
It cannot be used for front-end web development and also limits the system's performance.
This language cannot be used to develop mobile applications like Swift which is used for iOS applications and Kotlin which is used for developing Android applications.
The codes in the older version are not compatible with the newer versions of the software, which may cause syntax errors.
JIT compilers are a drawback in Python as they have very low rate of programming implementation.
When compared to its limitations, Python has more advantages and hence this language has been widely used in various applications including AI (Artificial Intelligence).
Security Required for Application:
Security is an important aspect in the development of an application to protect end- user sensitive data and avoid data breaches. Few security measures like data encryption, proper authentication, and authorization, securing the communication, minimizing the data by collecting necessary data from the end users, and applying techniques like data masking that reduces the risk of exposing data. On the other side, the storage and servers must be highly encrypted and configured as the data will be stored continuously in those servers.