Internship Report
Internship Report
Internship Report
on
“Data Structures and Algorithm”
Submitted by
<Madhusudhan R M>
< USN: 1RV21CS084>
2022-23
RV COLLEGE OF ENGINEERING®
(Autonomous Institution Affiliated to Visvesvaraya Technological University, Belagavi)
CERTIFICATE
Certified that the Internship work titled “Data Structures and Algorithm” carried out by
Madhusudhan R M, USN: 1RV21CS084 a bonafide student, submitted in partial fulfilment for
the award of Bachelor of Engineering in Computer Science and Engineering of RV College of
Engineering®, Bengaluru, affiliated to Visvesvaraya Technological University, Belagavi, during
the year 2022-23. It is certified that all corrections/suggestions indicated for internal assessment
have been incorporated in the report deposited in the departmental library. The Internship report
has been approved as it satisfies the academic requirement in respect of internship work prescribed
for the said degree.
1.____________________ __________________
2.____________________ __________________
ACKNOWLEDGEMENT
We are indebted to our guide, Ms SHANTHA RANGA SWAMY for his guidance in the mechanics of
the internship.
We also express our gratitude to our committee members Dr. Minal Moharir, Dr.Ashok Kumar A,
Dr. Shantha Range Swamy department of Computer Science Engineering for their valuable
comments and suggestions.
Our sincere thanks to Dr. RAMAKANTH KP, Associate Professor and Head, Department of
COMPUTER SCIENCE RVCE for his support and encouragement.
We thank all the teaching staff and technical staff of the Computer Science Engineering
Table of Contents
Acknowledgement (ii)
Chapter 1
Profile of the Organization (COE)
1.1 Brief overview of the Organization (COE)
Chapter 2
Activities of the Organization (COE)
Chapter 3
Tasks Performed
3.1 Summary of the tasks performed during
Chapter 4
Reflections
4.1 Technical Knowledge acquired
4.2 Soft skills acquired
Data structure and algorithm are two fundamental concepts in computer science
that are crucial for developing efficient and scalable software systems. In
essence, data structures are specialized formats for organizing and storing data
in a computer's memory, while algorithms are a set of well-defined instructions
for solving a specific computational problem.
The importance of data structures and algorithms lies in their ability to optimize
the way data is stored and processed, leading to faster execution times, lower
memory usage, and improved software performance. The choice of data
structure and algorithm can have a significant impact on the efficiency and
scalability of software systems, making it essential for developers to understand
the underlying principles and best practices.
Data structures come in many forms, ranging from simple arrays and linked lists
to more complex structures like trees, graphs, and hash tables. Each data
structure has its unique strengths and weaknesses, making it suitable for specific
use cases. For instance, arrays are ideal for storing a fixed number of items of
the same type, while linked lists are better suited for situations where items can
be added or removed dynamically. Trees are useful for organizing hierarchical
data, while hash tables provide fast access to data based on key-value pairs.
Algorithms, on the other hand, are the procedures or rules that determine the
steps needed to solve a particular problem. They can be classified based on their
computational complexity, such as constant time, linear time, logarithmic time,
or exponential time. The complexity of an algorithm is determined by the
number of operations required to solve a problem relative to the size of the input
data. The efficiency of an algorithm can be measured using big O notation,
which provides a theoretical upper bound on the time complexity as the input
size approaches infinity.
data structures and algorithms are two critical concepts in computer science that
are essential for developing efficient and scalable software systems. They
provide a standardized approach to organizing and processing data, leading to
improved performance and reduced memory usage. Developers need to
understand the strengths and weaknesses of different data structures and
algorithms to make informed decisions about which ones to use for specific use
cases. Additionally, data structures and algorithms play a vital role in software
design patterns, making it crucial for developers to have a solid understanding
of both concepts.
Integers are whole numbers that can be either positive or negative. They
are often used to represent quantities, such as the number of items in a list
or the amount of money in a bank account. In most programming
languages, integers are represented using a fixed number of bits, which
determines the range of values that can be stored. For example, an 8-bit
integer can store values between -128 and 127.
Floating-point numbers, on the other hand, are used to represent real
numbers that have a fractional part. They are often used to represent
values that vary continuously, such as the temperature or the weight of an
object. In most programming languages, floating-point numbers are
represented using a standard format, such as IEEE 754, which defines the
number of bits used to represent the fraction and exponent.
Characters are used to represent letters, digits, and other symbols. They
are often used to store and manipulate text in a program. In most
programming languages, characters are represented using a fixed number
of bits, which determines the number of characters that can be stored. For
example, an 8-bit character can store values between 0 and 255.
Pointers are a special type of data type that are used to store memory
addresses of other variables or objects in a program. Pointers are often
used to manipulate and access data that is stored in memory, and they are
essential for implementing data structures such as linked lists, trees, and
graphs.
2.Non-Primitive Data type
Non-primitive data types are more complex data structures that are composed of
primitive data types or other non-primitive data types. They are often used to
represent more complicated structures of data, such as arrays, structures,
classes, and objects.
Arrays are a commonly used non-primitive data type that is used to store a
collection of elements of the same data type. Arrays are often used to represent
data that has a linear or sequential structure, such as a list of integers or a
sequence of characters. In most programming languages, arrays are declared
with a fixed size, and the elements can be accessed using an index value.
Classes and objects are a more advanced non-primitive data type that is used to
represent more complex structures of data. Classes are used to define a blueprint
for an object, which includes the object's attributes and methods. Objects are
instances of a class, and they can be created and manipulated at runtime.
Classes and objects are often used in object-oriented programming to
encapsulate data and behavior into a single unit, making it easier to manage and
maintain code.
In addition to these common non-primitive data types, there are also other more
specialized data types that are used for specific purposes, such as enumerations,
unions, and pointers.
What are Array?
• Array is a container which can hold a fix number of items and these items
should be the same type.
• Most of the Data Structures make use of arrays to implement their
algorithms
The “Library Management System "is a software that uses to maintain the
record of the library.
• Library is the collection of different types of books.
• It provides books for large number of readers and to maintain the records
is difficult task.
The Existing System:
• Process of keeping maintaining and retrieving the information was very
slow and lenthy.
• Issue/return information is difficult to maintain
• Tracing a book/article is difficult
• Fast retrieval of information is not possible.
Propsed System:
• Eliminates the paper work in library
• Students gets all the information at one place and do not have to go to
library to retrieve the transaction details
The Program:
https://github.com/CS21M/Internship-Code/commit/
c84626fe2a0b6eee2ace6d87466ce7c221bf5796#diff-
340f463033e0fd5ddeabb922df4d4f1b5747494d0f5ed9894f13b6e13ca831f5
METHODOLOGY
CONCLUSION
In conclusion, this DSA summer internship has been a valuable experience for
me to enhance my skills and gain practical knowledge in data structures and
algorithms.
Overall, this DSA summer internship has prepared me well for future academic
and career pursuits in computer science and related fields.