0% found this document useful (0 votes)
563 views

TE - Internship Report Tanvi

This document is an internship report submitted by Tanvi Vikas Borade to Savitribai Phule Pune University. The report details Borade's internship at TwoWaits Technologies Pvt. Ltd. from March 15th to April 15th 2022, under the supervision of Achintya Gaumat. The internship focused on learning and implementing various data structures in the Python programming language, with objectives of understanding data structures in Python and studying stacks in Python in particular.

Uploaded by

DARSHAN JADHAV
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
563 views

TE - Internship Report Tanvi

This document is an internship report submitted by Tanvi Vikas Borade to Savitribai Phule Pune University. The report details Borade's internship at TwoWaits Technologies Pvt. Ltd. from March 15th to April 15th 2022, under the supervision of Achintya Gaumat. The internship focused on learning and implementing various data structures in the Python programming language, with objectives of understanding data structures in Python and studying stacks in Python in particular.

Uploaded by

DARSHAN JADHAV
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

SITS/Computer Engineering/Internship/UG/2021-22/3101004

AN INTERNSHIP REPORT

SUBMITTED TO THE SAVITRIBAI PHULE PUNE UNIVERSITY, PUNE


IN THE FULFILLMENT OF THE REQUIREMENT

OF

THIRD YEAR OF COMPUTER ENGINEERING

SUBMITTED BY

Name of Student: Tanvi Vikas Borade


PRN: 72031602C
Mobile No: 9665237738
Email ID: tanvi [email protected]

WITH INDUSTRY

Company Name: TwoWaits Technologies Pvt. Ltd


Telephone No: 70113396815
Mailing Address: [email protected]

UNDER SUPERVISION OF

Supervisor Name: Achintya Gaumat


Mobile No/Email ID: [email protected]

Start Date for Internship: 15 March 2022


End Date for Internship: 15 April 2022
Report Date:28 April 2022

DEPARTMENT OF COMPUTER ENGINEERING


STES’S SINHGAD INSTITUTE OF TECHNOLOGY AND SCIENCE
NARHE, PUNE - 411041

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.

Name and Sign of Student: Tanvi Vikas Borade


Place: Pune
Date: 28 April 2022
SITS/Computer Engineering/Internship/UG/2021-22/3101004

COMPANY/ORGANIZATION BACKGROUND

Name of Company TwoWaits Technologies Pvt. Ltd


Company address Gurugram, Haryana 122001
Contact number of company 70113396815
Company background TwoWaits Technologies aims to help
improve quality of education for millions of
engineering graduates across India. have
launched an Android learning app which
provides notes, lectures, e-books, syllabus,
quizzes and much more for B.Tech students.
They have launched Tathastu, a skill learning
platform to help students learn skills required
in internships/jobs. They provide pocket
friendly courses on coding (DSA Series), job
prep (Apti Series), skill learning (various
workshops/bootcamps) on latest
technologies.
Name of supervisor Achintya Gaumat
Contact number of supervisor 70113396815
Email ID of supervisor - [email protected]
SITS/Computer Engineering/Internship/UG/2021-22/3101004

CONTENTS

Sr. No. Title Page No


1 Introduction to Internship 6
2 Mode of Internship 8
3 Domain of Internship 8
4 Objectives of Internship 10
5 Motivation/Scope of Internship 12
6 Methodologies learnt in Internship 13
7 Outcome/Results of Internship 18
8 Suggestions for improvement by Industry 22
9 Conclusion 23
References 24
Annexure I: Internship Diary 25
Annexure II: Attendance Record 27
Annexure III: Evaluation Sheet 28
Annexure IV: Internship Feedback 30
SITS/Computer Engineering/Internship/UG/2021-22/3101004

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 a general-purpose programming language with a high level of abstraction. Its


design philosophy prioritizes code readability and makes extensive use of indentation. Its
language elements and object-oriented approach are aimed at assisting programmers in
writing clear, logical code for both small and large projects.

Python is garbage-collected and dynamically typed. It supports a variety of programming


paradigms, including structured (especially procedural) programming, object-oriented
programming, and functional programming. Because of its extensive standard library, it is
often referred to as a "batteries included" language.

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

Data Structures in Python are as follows:

Build-in Data Structures

User-defined Structures

The flowchart below helps us understand the Data Structures.


SITS/Computer Engineering/Internship/UG/2021-22/3101004

2. MODE OF INTERNSHIP

Mode of Internship: Online


The Internship was conducted online.

3. DOMAIN OF INTERNSHIP

The domain of my internship is Object Oriented Programming (OOP) concepts in Python


programming language.
Object-oriented programming (OOP) is a programming paradigm that organizes software
design around data, rather than functions and logic. An object is a data field with its own set
of properties and behavior.

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.

An object-oriented program's structure also makes it useful for collaborative development,


where projects are organized into groups. Code reusability, scalability, and efficiency are also
advantages of OOP.

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 objectives of this internship were as follows:

1. to understand Data Structure concepts in Python.

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.

2. to study in detail about Stack in Python.

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

3. to study in detail about Queue in Python.

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.

4. to study in detail about Link List in Python.

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

6. METHODOLOGIES LEARNT IN INTERNSHIP

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.

In Stack, there are two sorts of operations:

To add data to the stack, use the push command.

To remove data from the stack, use the pop command.


SITS/Computer Engineering/Internship/UG/2021-22/3101004

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.

Python stacks can be implemented in Python by:

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.

Taking advantage of the queue.

LifoQueue is a class of LifoQueue.

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:

The following are the basic queue operations:

It adds the element to the end of the queue by enqueuing it.

It removes the element from the front of the queue by dequeuing it.

IsEmpty: This method determines whether or not the queue is empty.

IsFull: This method determines whether or not the queue is full.

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."

The first element of the queue will be the front.

The back of the line will be the last to enter.

Initially, Front and Rear are both set to -1.

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.

Unlike most general-purpose languages, Python's standard library lacks a built-in


implementation of Linked Lists.
SITS/Computer Engineering/Internship/UG/2021-22/3101004

7. OUTCOME/RESULTS OF INTERNSHIP

The internship completed the following outcomes:

1. understood Data Structure concepts in Python.

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.

2. studied in detail about Stack in Python.

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

3. studied in detail about Queue in Python.

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.

4. studied in detail about Link List in Python.

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

8. SUGGESTIONS FOR IMPROVEMENT BY INDUSTRY

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.

3. Sort the importance given to the work:


First complete the tasks which are important and then go for less important tasks.

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

You might also like