Intern Report of Aadhimozhi
Intern Report of Aadhimozhi
Submitted By
Aadhimozhi .M
An Internship report submitted in partial fulfillment of the award of the B.E. DEGREE
Computer Science & Engineering
ANNAMALAI UNIVERSITY
ANNAMALAINAGAR – 608 002
2024
ANNAMALAI UNIVERSITY
1
FACULTY OF ENGINEERING AND TECHNOLOGY
Date:
2
Weekly Overview of the Internship Activities
3
23.04.2024 Saturday Internship Introduction, Overview of
Python
24.04.2024 Sunday Introduction to python
25.04.2024 Monday Data types and variables
First
26.04.2024 Tuesday Basic operator
Week
27.04.2024 Wednesday Introduction to control structure
28.04.2024 Thursday Conditional statement
29.04.2024 Friday Looping statement
4
Date Day Name of the Module / Topic completed
Saturday Introduction in Classes and Object-Oriented
14.05.2024
Programming(OOP)
15.05.2024 Sunday Classes and Objects
16.05.2024 Monday Inheritance
Fourth 17.05.2024 Tuesday Polymorphism
Week
18.05.2024 Wednesday
and and Time to do project
19.05.2024 Thursday
20.05.2024 friday Project Review and Feedback
21.05.2024 Saturday Presentation Preparation
22.05.2024 sunday Project Submission Best Practices
ANNAMALAI UNIVERSITY
VISION
5
To provide a congenial ambience for individuals to develop and blossom as
academically superior, socially conscious and nationally responsible citizens.
MISSION
M1: Impart high quality computer knowledge to the students through a dynamic
scholastic environment wherein they learn to develop technical,
communication and leadership skills to bloom as a versatile professional.
M2: Develop life-long learning ability that allows them to be adaptive and
responsive to the changes in career, society, technology, and environment.
ACKNOWLEDGEMENT
First, I would like to thank Sandip Gavit CEO company of Codsoft for giving me the
opportunity to carry out the internship programme.
6
I would like to render my heartfelt thanks to the Dean, FEAT, Annamalai University,
The Head of the Department Dr. R. Bhavani, Department of Computer Science and
Engineering, Annamalai University, Annamalainagar, for their positive
encouragements, patient guidance in carrying out the internship programme and
support in all aspects which had made me to complete the thesis work successfully.
I am thankful to Dr. S. Karthik , Associate Professor and my Mentor, Department of
Computer Science and Engineering, Annamalai University, Annamalainagar, who
provided me guidance, support and the resources necessary for completion of the
thesis work.
I would like to thank all my Department Faculty, Staff Members and Friends who had
helped me in the successful completion of the internship.
Aadhimozhi . M
2236120043
Abstract
During my one-month Python internship from April 23, 2024 to may 22, 2024, I
gained valuable experience in Python Development, focusing Python has become a
7
across fields. Furthermore, Python’s active community contributes to a constantly
evolving body of resources, updates, and tools, making it an ideal language for both
beginners and professionals.
Table of contents
8
1. Introduction
1.1 Company / Institute 1
Information
1.2 Objective of the Internship 2
1.3 Contribution of the Internship
3
4. Recent Technologies 7
17
7. Overview of the Training Content
21
8. Conclusion
24
9. References
25
1. Introduction
9
Tecknohack was founded in 2021 with the intention of bridging the skills gap in the
tech industry by providing practical knowledge through hands-on learning experiences.
The company’s mission statement emphasizes the belief that practical knowledge is
essential for success in technology. By offering internships that involve real-world
projects and mentorship from industry experts, Tecknohack plays a vital role in the
community by helping aspiring tech professionals develop the skills needed to thrive in
their careers. I chose this organization because I find their mission to be highly relevant
to my career goals in software development. The internship program at Tecknohack
provides numerous opportunities for students to gain valuable experience in various
fields, including web development, Android development, and data science. Interns
engage in real projects, allowing them to apply theoretical knowledge in practical
scenarios. Tecknohack’s focus on live project involvement ensures that students gain
hands-on experience, which is critical for understanding the complexities of software
development. Additionally, the supportive and collaborative environment encourages
interns to learn from their peers and mentors, fostering personal and professional
growth. During my internship, I was immersed in a project called FoodFrenzy, a web-
based application designed to optimize food industry management. The development
methodologies employed included Agile practices, which facilitated a dynamic and
iterative approach to project management. Working under the guidance of experienced
mentors, I learned how to implement technologies such as Spring Boot, Thymeleaf, and
MySQL. This experience not only deepened my technical skills but also enhanced my
ability to work collaboratively in a team setting. The key points of this report highlight
the invaluable experience I gained through my internship at Tecknohack, focusing on
the skills acquired in Java development and the methodologies employed during the
project. Tecknohack’s commitment to fostering a creative and innovative environment
allowed me to contribute meaningfully to the FoodFrenzy project while preparing me
for future challenges in the tech industry. Overall, my time at Tecknohack has been
instrumental in shaping my career path, providing me with the knowledge and
confidence needed to succeed in the ever-evolving field of technology.
The primary objective of the internship in Python development is to equip interns with
practical, hands-on experience in developing software solutions using Python. Interns
will gain a solid understanding of Python’s syntax, libraries, and frameworks while
10
working on real-world projects that enhance their technical skills in areas such as web
development, data analysis, automation, and machine learning. The internship aims to:
By the end of the internship, interns should be capable of developing and deploying
functional Python applications, applying Python to industry-relevant problems, and
understanding the fundamentals of building scalable, maintainable software.
The Python development internship provides valuable contributions both to the interns'
skill sets and the organization’s projects. Key contributions include:
2. Project Support and Innovation: Interns contribute fresh ideas and solutions
to ongoing projects, accelerating development timelines and often providing
innovative approaches. This support allows full-time developers to focus on
critical tasks, while interns contribute by tackling smaller but essential
components of projects.
11
3. Resource Optimization: Interns assist with documentation, testing,
debugging, and code maintenance, adding value to quality control and project
support without extensive resource allocation. Their contributions can help
streamline development processes and improve overall project efficiency.
4. Community and Open-Source Contributions: Many Python internships
encourage participation in open-source or collaborative projects, which benefits
the larger Python community. Interns' contributions to open-source tools or
libraries strengthen the community ecosystem, fostering continuous
improvement.
5. Building Future Talent: By investing in training and mentorship, the
internship contributes to building a pool of skilled future professionals who may
become valuable long-term team members, familiar with the company’s
products, workflows, and development standards.
Through these contributions, the internship benefits both the interns and the
organization, driving innovation, efficiency, and long-term talent growth in Python
development
Python has become one of the most widely used programming languages, known for
its readability, simplicity, and extensive library ecosystem. However, despite its
popularity, there are several areas in which Python’s performance and scalability are
challenged, particularly when dealing with large-scale applications and high-
performance computing. The problem formulation for this thesis focuses on
identifying and analyzing the limitations and potential improvements in Python
development. The specific challenges include:
1. Performance Limitations:
Python is an interpreted language, which can lead to slower execution speeds
compared to compiled languages like C++ or Java. This affects its efficiency in
12
performance-critical applications, such as game development or real-time
processing.
2. Scalability in Large-Scale Applications:
Although Python is widely used in various fields, its ability to handle highly
concurrent, distributed systems (like large-scale web applications) is often limited
due to the Global Interpreter Lock (GIL). This can hinder its scalability for
applications requiring heavy parallelism.
3. Memory Management:
Python’s high-level memory management, while simplifying code, can also lead to
issues with memory-intensive applications. The garbage collection mechanism,
though automated, sometimes results in higher memory usage or latency, which can
be detrimental to large data processing tasks.
4. Framework and Library Complexity:
Although Python has a vast library ecosystem, the selection and integration of
frameworks and libraries can be overwhelming, especially for beginners or in
situations where the most efficient tool for a given task is not clear. Additionally,
some libraries are not optimized for newer Python versions, leading to
compatibility issues.
5. Real-time and Low-Level System Constraints:
Python’s interpreted nature and high-level abstractions are generally unsuitable for
real-time systems and applications needing low-level hardware interactions. This
limits its use in embedded systems and some scientific computing applications
where precise control over system resources is required.
6. Dependency and Version Management:
Python’s extensive libraries and dependencies often create issues with dependency
management, version conflicts, and deployment. Managing dependencies across
different development and production environments remains a challenge for many
developers.
This section outlines the essential requirements and specifications for effective Python
development, focusing on setting up an optimal development environment, selecting
13
suitable libraries and frameworks, and following best practices for coding, testing, and
deployment.
1. System Requirements
Python Version: Use the latest stable version of Python (e.g., Python 3.x) to
ensure compatibility with the latest libraries and features.
Development Environment: Installation of a suitable Integrated Development
Environment (IDE) or text editor, such as PyCharm, Visual Studio Code, or
Jupyter Notebook, which supports Python development with built-in debugging
and linting capabilities.
Operating System Compatibility: Python is cross-platform; however, some
libraries may have OS-specific dependencies. Testing on the target OS is
necessary, especially for deployment.
2. Functional Requirements
14
Parallelism and Concurrency: Utilize libraries such as multiprocessing,
threading, and asyncio to handle concurrent tasks, especially in applications
requiring high concurrency.
Memory Management: Ensure efficient memory usage, especially in data-
heavy applications, by using memory-efficient data structures and garbage
collection tuning.
4. Testing Requirements
Unit Testing: Implement unit tests using frameworks like unittest or pytest to
ensure that individual components function as expected.
Integration Testing: Verify that different modules and third-party libraries
interact as expected through integration tests.
Performance Testing: Conduct performance tests to benchmark critical sections,
especially for applications with performance requirements.
Automated Testing and CI/CD: Set up a Continuous Integration and
Continuous Deployment (CI/CD) pipeline using tools like Jenkins, Travis CI, or
GitHub Actions for automated testing and deployment.
5. Security Requirements
15
Environment Configuration: Use virtual environments (venv or conda) to
isolate dependencies and ensure reproducibility.
Deployment Requirements: For web applications, deploy using web servers
like Gunicorn with Nginx or Apache, or use cloud services such as AWS,
Heroku, or Google Cloud Platform.
Containerization: Use Docker for containerization to ensure consistency across
different environments and simplify deployment
4. Recent Technologies
The development of the GUI-based calculator project offers several significant merits,
demonstrating its value both in educational and practical contexts.
Firstly, the project enhances programming skills, particularly in Python, by providing
hands-on experience with coding, debugging, and problem-solving. Working with the
Tkinter library allows for a deeper understanding of GUI development, enabling the
application of object-oriented programming principles and event-driven design.
Secondly, the calculator serves as a practical tool for users, simplifying mathematical
operations and improving efficiency in performing calculations. Its user-friendly
interface makes it accessible to a broad audience, including those with limited technical
expertise.
Additionally, the project emphasizes the importance of input validation and error
handling, which are crucial for building robust applications. Implementing these
features ensures that the calculator operates smoothly, even when faced with incorrect
or unexpected user inputs.
The ability to extend and modify the calculator presents further merits. Developers can
easily add new functionalities, such as scientific calculations or graphing capabilities,
making the project a versatile foundation for future enhancements. This adaptability
fosters continuous learning and innovation.
16
Lastly, the project promotes best practices in software development, including the use
of version control systems and collaborative coding. These practices not only improve
the project's overall quality but also prepare developers for real-world software
development environments.
In summary, the merits of the GUI-based calculator project extend beyond mere
functionality; it serves as a valuable educational tool, enhances programming skills, and
promotes best practices in software development.
17
Output:
18
7 . Overview of the Training Content
19
Python development training covers foundational programming concepts, key libraries
and frameworks, and practical project work to prepare participants for real-world
applications. Here is a structured overview of typical training content in Python
development:
Python Basics: Variables, data types (integers, floats, strings, lists, tuples,
dictionaries), and basic syntax.
Control Structures: Conditional statements (if, else, elif), loops (for, while), and
comprehensions.
Functions and Modules: Defining functions, lambda functions, importing and
using modules, and creating custom modules.
9 . Conclusion
20
In conclusion, the internship experience has been a pivotal phase in my journey as an
aspiring software developer. Throughout the program, I gained comprehensive
knowledge of Python programming.
Python has proven to be a powerful, versatile language that has transformed multiple
fields, from web development and automation to data science and machine learning. Its
simplicity, readability, and vast ecosystem of libraries make it accessible for beginners
while also offering the depth and flexibility needed for advanced applications. Python’s
active community and continual growth ensure a strong future, with constant
improvements in performance, scalability, and library offerings. As Python continues to
evolve, it will likely remain a leading tool in both industry and academia, enabling
developers to innovate and solve complex problems effectively.
Overall, Python development provides an ideal foundation for building a wide range of
applications, and mastering it opens up numerous pathways for growth and
specialization. With a commitment to staying updated with new technologies and best
practices, Python developers are well-equipped to tackle the challenges of modern
software development and contribute to an expanding landscape of technological
innovation.
Additionally, the emphasis on best practices, such as version control with Git and
collaborative coding, prepared me for future professional environments. The
mentorship and support from experienced professionals during the internship offered
invaluable insights into industry standards and practices, which I will carry forward in
my career.
Overall, this internship has been an enriching experience, providing me with the tools
and knowledge necessary to pursue further opportunities in software development. I am
now better equipped to tackle challenges in the tech industry and excited about the
prospects of continuing my journey in this ever-evolving field.
10. References
21
1. Python Software Foundation. (n.d.). Python Documentation. Retrieved from
https://docs.python.org/3/
4. Version Control with Git. (n.d.). Atlassian Git Tutorial. Retrieved from
https://www.atlassian.com/git/tutorials
22