TE - Internship Report Tanvi
TE - Internship Report Tanvi
AN INTERNSHIP REPORT
OF
SUBMITTED BY
WITH INDUSTRY
UNDER SUPERVISION OF
2021-2022
SITS/Computer Engineering/Internship/UG/2021-22/3101004
SITS/Computer Engineering/Internship/UG/2021-22/3101004
ACKNOWLEDGEMENT
I would like to thank Achintya Gaumat, of TwoWaits Technologies Pvt. Ltd for giving me
the opportunity to do an internship within the organization.
I also would like to thank all the people that worked along with me in the organization with
their patience and openness. They created an enjoyable working environment.
It is indeed with a great sense of pleasure and immense sense of gratitude that I acknowledge
the help of these individuals.
I am highly indebted to Principal Dr. S. D. Markande and Vice-principal Prof. S. A.
Kulkarni, for the facilities provided to accomplish this internship.
I would like to thank my Head of the Department Dr. Geeta S. Navale for her constructive
criticism throughout my internship.
I would like to thank Mr. Shrikant A. Shinde, Internship Coordinator Department of
Computer Engineering, for his support and advice to get and complete an internship in the
above said organization.
I am extremely grateful to my department staff members and friends who helped me in
successful completion of this internship.
COMPANY/ORGANIZATION BACKGROUND
CONTENTS
1. INTRODUCTION TO INTERNSHIP
This internship is about the data structure concepts in Python. Similar to C,C++,Java Python
also has concepts of data structure which are kindred to others.
Python:
The language of Python was designed by a famous Dutch programmer ‘Guido van Rossum’.
Python is designed to be a language that is simple to understand. Its formatting is clean and
uncomplicated, and it frequently used English terms instead of punctuation in other
languages. It does not employ curly brackets to delimit blocks, unlike many other languages,
and semicolons after statements are allowed but rarely used. In comparison to C or Pascal, it
features fewer syntactic exceptions and special circumstances.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
User-defined Structures
2. MODE OF INTERNSHIP
3. DOMAIN OF INTERNSHIP
Object-oriented programming (OOP) focuses on the objects that developers desire to handle
rather than the logic that is required to manipulate them. This kind of programming is ideally
suited to big, complicated, and frequently updated or maintained projects. This encompasses
manufacturing and design software, as well as mobile applications; for example, OOP may be
used to simulate manufacturing systems.
The first step in OOP is data modelling, which involves gathering all of the objects a
programmer wishes to handle and determining how they connect to one another.
Physical entities, such as a human being with features such as name and address, to simple
computer programmes, such as widgets, are examples of objects.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
Once an object has been identified, it is assigned to a class of objects that describes the type
of data it contains as well as any logic sequences that can be used to control it. A method is
the name given to each individual logic sequence. Messages are well-defined interfaces
through which objects can communicate.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
4. OBJECTIVES OF INTERNSHIP
The internship was about learning and implementation of different types of Data Structures in
the Python language.
The fundamental constructs around which you build your programs are data
structures. Depending on your use case, each data structure provides a unique manner
of arranging data so that it may be accessible quickly. Python's standard library
includes a large number of data structures.
Python's naming approach, on the other hand, does not provide the same amount of
clarity as other languages. In Java, a list is either a LinkedList or an ArrayList, not
just a list. In Python, this is not the case. Even seasoned Python programmers are
occasionally confused about whether the built-in list type is a linked list or a dynamic
array.
A stack is a linear data structure that stores items in the order that they were added to
it. Elements are added to one end of the stack, and one element is eliminated from that
end only. Push and pop procedures are used to insert and delete data. The data in the
stack, for example, is organised in the same way that dish plates are placed one on top
of the other on a dining table.
List, collections class deque, queue module, or linked-list can all be used to create a
stack in Python.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
A Queue is a linear data structure that follows the FIFO principle (First In/First Out).
It is the inverse of the Stack data structure. If you look at the line at the counter, you'll
notice that the second person can only proceed to the counter once the first has
finished his or her work. The first person arrives at the counter, followed by the
second. As a result, the FIFO (First In/First Out) principle is followed here. Whoever
arrives first will finish the work first. Queues of this nature can be found in our daily
life.
The same logic applies to the Queue data structure. You now understand what queues
are and how they work. Let's have a look at some of the operations that can be done
on a queue data structure.
A linked list is a data structure that is linear. Unlike arrays, it does not store data in
contiguous memory locations. Each linked element is referred to as a node, and they
are connected by pointers. The head is the first node in the linked list.
The linked list's size is variable. So, unless the device's storage is limited, we can have
as many nodes as we wish.
Linked lists can be divided into two categories. Let's take a look at each of them
individually.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
5. MOTIVATION/SCOPE OF INTERNSHIP
Motivation:
To gain experience, an internship is the only way to get it because we get to do a bit of
everything! An internship allows one to understand the role,tasks and industry. I can learn
from the best during internship.I can learn and try out new skills and tools without the
pressure of being wrong.Internship will build confidence and help me in my personal
growth.Internship allows to feel for different industries in small period of time.I can learn to
communicate in new ways to build professional working relationships with people of all ages.
Scope of Internship:
With the whole internship period it was a great experience to know and get a chance to work
with the people of TwoWaits and my teammates. It’s also a great achievement for me to learn
and implement practically all the tools for the attack and detection process. All of these
opportunities I had captured in that practical field and also to expand my knowledge. This
report is entirely based and prepared on my practical work experience while working. It
surely helps me to reduce the distinction between realistic and hypothetical knowledge and
additionally it will also help to clear the confusion between practical knowledge and
theoretical knowledge. This report significantly helped me a lot to understand the atmosphere
and environment of an organization. It was a near impossible task for me to learn everything
about all as it was a large project with such a limited span of time.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
What methodologies you learnt in your internship. Describe all methodologies in detail.
In this internship I came across many methodologies which are used in Python Programming.
These methodologies are as follows:
1. Array
2. String
3. Stack
4. Queue
4.1 Simple Queue
4.2 Circular Queue
4.3 Dequeue
4.4Priority Queue
4.5 Double-ended Queue
5. Linked List
Stack:
Data structures are essential for organizing computer storage so that humans can access and
update data quickly. Stacks were one of the first data structures to be defined in the field of
computer science. Stack is a linear accumulation of elements in simple terms. It's a set of
objects that provide fast last-in, first-out (LIFO) insertion and deletion semantics. It is a
function call and argument array or list structure used in modern computer programming and
CPU design. Elements in a stack are added or withdrawn from the top of the stack in a "last
in, first out" order, similar to a stack of dishes at a restaurant. The objects contained in the
stack, unlike lists or arrays, do not enable random access.
Stacks are straightforward to learn and use, and they're widely used in software for a variety
of purposes. An Array or Linked List can be used to implement them. In this case, we'll use
the List data structure.
Stacks are simple data structures that allow us to successively store and retrieve data.
When it comes to performance, insert and remove operations should take O(1) time in a well
implemented stack.
Consider a stack of books to get a basic understanding of Stack. When you add a book to the
top of the stack, the last one added to the stack will be the first one taken up.
Stacks have a variety of real-world applications, and understanding them allows us to address
a variety of data storage challenges quickly and effectively.
Using the List data structure that comes with the programme. The List data structure in
Python has methods for simulating both stack and queue operations.
Using the deque library, which combines the functions of a stack and a queue into a single
object.
As previously stated, we can use the "PUSH" operation to add items to a stack and the "POP"
action to remove objects from a stack.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
Operation PUSH
Push – adds a new element to the stack's top. For a better understanding, look at the graphic
below:
Operation POP
Pop – Removes an element from the top of the stack with the pop command.
Stacks are useful in algorithms for a variety of things, including language processing and run-
time memory management ("call stack"). A depth-first search (DFS) on a tree or graph data
structure is a quick and useful stack technique. Python uses a variety of stack
implementations, each with its own set of characteristics. Let's have a look at a few of them:
Because it allows push and pop operations in amortised O(1) time, Python's built-in list type
provides a good stack data structure.
Python's lists are internally implemented as dynamic arrays, which means that as elements
are added or withdrawn, the storage space for those elements must be resized.
Because more storage space is assigned than is required, not every push or pop requires
resizing, and these operations have an amortised O(1) time complexity.
Although this makes their performance less consistent than a linked list-based
implementation's stable O(1) inserts and deletes. Lists, on the other hand, offer rapid O(1)
random access to elements on the stack, which can be a useful feature.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
QUEUE:
A Queue is a linear data structure in Python that uses the first-in, first-out (FIFO) technique.
FIFO stands for "First In First Out," which means that the first entry in the queue will be
popped out first. Or, to put it another way, this method is the polar opposite of the Stack data
structure.
The element is inserted at the back of the queue and removed from the front in the simple
queue data structure. It adheres to the FIFO principle.
Simple Queue:
The element is inserted at the back of the queue and removed from the front in the simple
queue data structure. It adheres to the FIFO principle.
Circular Queue:
The last element of a queue is assigned as the first element of a queue in the circular queue
data structure to create a circular link between the items, allowing us to add a new element at
the first position.
Priority Queue:
A priority queue data structure differs from all other queue data structures in that each
element has its own priority, which determines how all of the components are serviced. If the
two items have the same priority, they will be served in the order in which they were
received.
Double-ended Dequeue:
It does not take the first-in, first-out method. The element is added and removed from both
sides, i.e. the back and front, in this queue.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
Operations on Queue:
It removes the element from the front of the queue by dequeuing it.
Peek: It returns the value of the queue's first element without removing it from the queue.
Implementation of Queue:
In a queue, there will always be two pointers — " Front " and "Rear."
Linklist :
Linked Lists are one of the most basic data structures for representing a series of nodes. The
first member in the series is referred to as the Linked List's head, while the last element is
referred to as the Linked List's tail.
Every node in the series has a pointer to the next element, as well as a pointer to the previous
element if desired. Each node in a singly linked list points to only the next node.
In Doubly Linked Lists, on the other hand, each node points to both the next and previous
node.
7. OUTCOME/RESULTS OF INTERNSHIP
The fundamental constructs around which you build your programs are data
structures. Depending on your use case, each data structure provides a unique manner
of arranging data so that it may be accessible quickly. Python's standard library
includes a large number of data structures.
Python's naming approach, on the other hand, does not provide the same amount of
clarity as other languages. In Java, a list is either a LinkedList or an ArrayList, not
just a list. In Python, this is not the case. Even seasoned Python programmers are
occasionally confused about whether the built-in list type is a linked list or a dynamic
array.
A stack is a linear data structure that stores items in the order that they were added to
it. Elements are added to one end of the stack, and one element is eliminated from that
end only. Push and pop procedures are used to insert and delete data. The data in the
stack, for example, is organised in the same way that dish plates are placed one on top
of the other on a dining table.
List, collections class deque, queue module, or linked-list can all be used to create a
stack in Python.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
A Queue is a linear data structure that follows the FIFO principle (First In/First Out).
It is the inverse of the Stack data structure. If you look at the line at the counter, you'll
notice that the second person can only proceed to the counter once the first has
finished his or her work. The first person arrives at the counter, followed by the
second. As a result, the FIFO (First In/First Out) principle is followed here. Whoever
arrives first will finish the work first. Queues of this nature can be found in our daily
life.
The same logic applies to the Queue data structure. You now understand what queues
are and how they work. Let's have a look at some of the operations that can be done
on a queue data structure.
A linked list is a data structure that is linear. Unlike arrays, it does not store data in
contiguous memory locations. Each linked element is referred to as a node, and they
are connected by pointers. The head is the first node in the linked list.
The linked list's size is variable. So, unless the device's storage is limited, we can have
as many nodes as we wish.
Linked lists can be divided into two categories. Let's take a look at each of them
individually.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
RESULTS:
SITS/Computer Engineering/Internship/UG/2021-22/3101004
SITS/Computer Engineering/Internship/UG/2021-22/3101004
Suggestions given by the internship supervisor regarding the internship work are listed
below:
1. Be a little more extroverted:
Open up a little more while having conversations with other employees or
supervisors.
Don’t be shy to express your curiosity and questions.
2. Time Management:
Manage the time allocated to the tasks. Decide the priority and then sort them into
groups and complete them accordingly. Do not delay the tasks and submissions.
4. Be you:
Don’t restrict yourself. open the doors for learning new concepts. Don’t
underestimate your capabilities.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
9. CONCLUSION
In conclusion, this internship has been a very useful experience to me. I can safely say that
my understanding of the job environment has increased greatly.However, I do think that there
are few aspects of the job that I could have done better and need to work on. I realized that I
could have done the work earlier.
Over a period of one month, at ToWaits Technologies I learned many things and explored my
capabilities. TwoWaits gave me this opportunity to enhance my skills and to sharpen my
abilities.
The internship not only helped me in the technical field but also improved my
communication skills and abilities.
SITS/Computer Engineering/Internship/UG/2021-22/3101004
REFERENCES
The reference material used for the study and completion of my internship are as follows:
● https://www.edureka.co/blog/data-structures-in-python/
● https://ascholarship.com
● https://www.geeksforgeeks.org/stack-in-python/
● https://www.geeksforgeeks.org/queue-in-python/
● https://www.geeksforgeeks.org/linked-list-set-1-introduction/
SITS/Computer Engineering/Internship/UG/2021-22/3101004
ANNEXURE I
INTERNSHIP DIARY
SITS/Computer Engineering/Internship/UG/2021-22/3101004
SITS/Computer Engineering/Internship/UG/2021-22/3101004
ANNEXURE II
ATTENDANCE RECORD
SITS/Computer Engineering/Internship/UG/2021-22/3101004
ANNEXURE III
EVALUATION SHEET
SITS/Computer Engineering/Internship/UG/2021-22/3101004
SITS/Computer Engineering/Internship/UG/2021-22/3101004
ANNEXURE IV
INTERNSHIP FEEDBACK
SITS/Computer Engineering/Internship/UG/2021-22/3101004