0% found this document useful (0 votes)
230 views16 pages

Data Structures and Algorithms Geeksforgeeks Summer Training Report

The document is a summer training report submitted by Bharath Kumar Reddy to Lovely Professional University in partial fulfillment of the requirements for a degree in Computer Science and Engineering. It describes an 8-week summer training course on data structures and algorithms conducted on the GeeksforGeeks platform. The training covered fundamental concepts like arrays, strings, linked lists, stacks, queues, trees, graphs, searching, sorting, hashing and dynamic programming. Bharath Kumar Reddy learned these concepts through video lectures, solved over 200 coding problems and took weekly assessments to test his skills and earn a certificate of completion.

Uploaded by

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

Data Structures and Algorithms Geeksforgeeks Summer Training Report

The document is a summer training report submitted by Bharath Kumar Reddy to Lovely Professional University in partial fulfillment of the requirements for a degree in Computer Science and Engineering. It describes an 8-week summer training course on data structures and algorithms conducted on the GeeksforGeeks platform. The training covered fundamental concepts like arrays, strings, linked lists, stacks, queues, trees, graphs, searching, sorting, hashing and dynamic programming. Bharath Kumar Reddy learned these concepts through video lectures, solved over 200 coding problems and took weekly assessments to test his skills and earn a certificate of completion.

Uploaded by

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

Data Structures and Algorithms

GeeksforGeeks

Summer training report

Submitted in partial fulfillment of the requirements for the award of degree of

Computer Science & Engineering

Submitted to

LOVELY PROFESSIONAL

UNIVERSITY PHAGWARA, PUNJAB

SUBMITTED BY

Name of student: Bharath Kumar Reddy


Registration Number: 11804170
Course Code: CSE 443
Student Declaration

To whom so ever it may concern


I, Bharath Kumar Reddy, 11804710, hereby declare that the work done by me on “Data
Structures and Algorithms” duration of eight weeks, is a record of original work for the partial
fulfillment of the requirements for the award of the degree, Computer Science & Engineering.

Name of the Student (Registration Number)


Bharath Kumar Reddy
11804710

Dated:
27/09/2020
ACKNOWLEDGEMENT

I would like to express my gratitude towards my University as well as Geeks for Geeks for
providing me the golden opportunity to do this wonderful summer training regarding DSA,
which also helped me in doing a lot of homework and learning. As a result, I came to know
about so many new things. So, I am really thank full to them.
Moreover I would like to thank my friends who helped me a lot whenever I got stuck in some
problem related to my course. I am really thankfull to have such a good support of them as they
always have my back whenever I need.

Also,I would like to mention the support system and consideration of my parents who have
always been there in my life to make me choose right thing and oppose the wrong. Without
them I could never had learned and became a person who I am now.
I have taken efforts in this project. However, it would not have been possible without the kind
support and help of many individuals and organizations. I would like to extend my sincere thanks
to all of them.
Certification of GeeksforGeeks
Table of Contents

S. No. Title

1 Introduction

2 Reason for choosing DSA

3 Concepts Learnt

4 Learning Outcome

5 Conclusion

6 Bibliography
INTRODUCTION OF THE TRAINING

Objectives of the course undertaken


• To get the knowledge of basic data structures and their implementations.
• To understand importance of data structures in context of writing efficient programs.
• To develop skills to apply appropriate data structures in problem solving.
• To understand the abstract data types stack, queue, deque, and list.
• To understand the performance of the implementations of basic linear data structures.
• To understand prefix, infix, and postfix expression formats.
• To use stacks to evaluate postfix expressions.
• To use stacks to convert expressions from infix to postfix.
• To use queues for basic timing simulations.
• To be able to recognize problem properties where stacks, queues, and deques
are appropriate data structures.
• To be able to implement the abstract data type list as a linked list using the node
and reference pattern.
• To be able to compare the performance of our linked list implementation with
Python’s list implementation.
• To be familiar with basic techniques of algorithm analysis

• To be familiar with writing recursive methods

• Master the implementation of linked data structures such as linked lists and binary trees

• To be familiar with advanced data structures such as balanced search trees, hash
tables, priority queues and the disjoint set union/find data structure

• To be familiar with several sub-quadratic sorting algorithms including quicksort,


merge sort and heapsort
• To be familiar with some graph algorithms such as shortest path and minimum
spanning tree

• Master the standard data structure library of a major programming language (e.g.
java.util in Java 5)

• Master analysing problems and writing program solutions to problems using the above
techniques

Scope of the Work


With the increase in the demand for quality software engineers, companies are paying really high
to hire them. Some of the reports say that the average base salary of a Software Developer in
India is somewhere around 9 Lakhs and it goes up till 20-30 Lakhs per annum.

No matter how advanced we go in the field of computer science and technology, DSA will travel
with us. And it will continue. Programming languages may change. But the way they are treated
way of representation. But it stays on. It is the best as in IT or CS field we should have
knowledge of data structure as it is called as the core of IT. Every IT company always looks for
good knowledge on data structures. So, having a hold in data structures always add an edge to
career.

Importance and Applicability


The importance of this course are to give a feel for algorithms and data structures as a central
part of what it is to be a computer science student. We should end it appreciating that
understanding the algorithm and data structures used for some problem is much more important
than knowing the exact code for it in some programming language. We should be aware of the
fact that there are often several algorithms for some problem, and one algorithm may be better
than another, or one algorithm better in some circumstances and another better in others.

We should be confident with algorithms expressed using both iteration and recursion, and have
some idea of how to convert algorithms expressed using recursion into iteration. We should be
able to use and design linked data structures, but appreciate why it is good programming style to
hide the details of a data structure within an abstract data type.
REASON FOR CHOOSING DSA

All of the above was part of my training during my summer break I specially choose the DSA by
Geeks for Geeks for reasons stated below :

• I was interested in Problem Solving and Algorithms since my first semester.

• Data structure is a thing you need to know no matter in which language do you code.

• One need to learn how to make algorithm of a real life problem he/she is facing.

• It had video lectures of all the topics from which one can easily learn. I prefer learning
from video rather than books and notes. I know books and notes and thesis have their
own significance but still video lecture or face to face lectures make it easy to understand
faster as we are involved Practically.

• It had 200+ algorithmic coding problems with video explaind solutions.

• It had track based learning and weekly assesment to test my skills.

• It was a great opportunity for me to invest my time in learning instead of wasting it here
and there during my summer break in this Covid-19 panademic.

• It contained a lot of knowledge for such a resonable price.

• The course was in two programing languages C++ and JAVA.

• This was a life time accessable course which I can use to learn even after my training
whenever I want to revise.

• Along with all these reasons one of the reasons was the Geeks for Geeks platform which
is offering the course because Geeks for Geeks is one of the best platforms for Computer
Science Students.
Concepts Learnt

The following tracks and contest that I have learnt and necessary to score the mentioned marks to
get the certificate.

TRACK PRACTICE MARKS CONTESTS


INTRODUCTION 10 -
MATHEMATICS 31 -
BIT MAGIC 22 -
RECURSION 29 -
ARRAYS 74 375
SEARCHING 61 350
SORTING 62 -
MATRIX 27 -
HASHING 59 375
STRINGS 57 -
LINKED LIST 81 350
STACK 57 -
QUEUE 23 -
DEQUE 11 350
TREE 101 -
BINARY SEARCH TREE 88 350
HEAP 55 -
GRAPH 102 350
GREEDY 24 250
BACKTRACKING 42 -
DYNAMIC 87 350
PROGRAMMING
TREE 22 -
SEGMENT AND BINARY 24 -
INDEXED TREES
DISJOINT SET 8 325
LEARNING OUTCOMES

A lot of beginners and experienced programmers avoid learning Data


Structures and Algorithms because it’s complicated and they think that there is no use of all the
above stuff in real life but there is a lot of implementation of DSA in daily life.
For example, if we have to search our roll number in 2000 pages of Document how would we do
that?

• If we try to search it randomly or in sequence it will take too much time.

• We can try another method in which we can directly go to page no. 1000 and we can
see if our roll no. is there or not if not, we can move ahead and by repeating this and
eliminating we can search our roll no. in no time.

And this is called Binary Search Algorithm.

Two reasons to Learn Data Structures and Algorithms -


• If you want to crack the interviews and get into the product based companies
• If you love to solve the real-world complex problems.

I have learnt a vast number of topics like Trees, Graphs, Linked Lists, Arrays, etc. I understood
their basics, there working, there Implementation, and their practical use in the problems we face
while we solve a problem using coding.

When we work in IT sector (Software or Programing part to be specific) we need to solve the
problems and make programs write tons of code which will help us with the given problem and
to write a program one need to make different algorithms. Many algorithms combine to make a
program. Now, algorithm are writen in some lenguages but they are not dependen ton them, one
need to make a plan and algo first then write it into any language wether i tis C++ or JAVA or C
or any other programing language. Algorith is based on data structure and its implementation
and working. So, basiclly one need to have a good grip on DSA to work in programing sector.

When you ask someone to make a decision for something the good one will be able to tell you “I
chose to do X because it’s better than A, B in these ways. I could have gone with C, but I felt this
was a better choice because of this “. In our daily life, we always go with that person who can
complete the task in a short amount of time with efficiency and using fewer resources. The same
things happen with these companies. The problem faced by these companies is much harder and
at a much larger scale. Software developers also have to make the right decisions when it comes
to solving the problems of these companies.
Knowledge of data structures like Hash Tables, Trees, Tries, Graphs, and various algorithms
goes a long way in solving these problems efficiently and the interviewers are more interested in
seeing how candidates use these tools to solve a problem.

I learned about how to break a problem into pieces and then find the solution then how to maket
he desired algorithm which will help me to solve my respective problem.

What I Learned from the course precisely :

• I Learned Data Structures and Algorithms from basic to advanced level.

• Learned Topic-wise implementation of different Data Structures & Algorithms.

• Improved my problem-solving skills to become a stronger developer.

• Developed my analytical skills on Data Structures and use them efficiently.

• Solved problems asked in product-based companies’ interviews.

• Solved problems in contests similar to coding round for SDE role.

This will help me during my career as a programmer and afterwards also whenever I need to
code. We are surrounded by a lot of real-world complex problems for which no one has the
solution. Observe the problems in-depth and you can help this world giving the solution which
no one has given before.

Conclusion

In conclusion, data structures are a great tool to computer science and the professionals who
utilize them. Data structures have their advantages and disadvantages like everything in our
lives. Only advance users can make changes to data structures, and any problem involving data
structure will need a professional to rectify. Luckily, there are more advantages than there are
disadvantages. Data structures allow information storage, it provides the means for management
of large data like databases, work together and are necessary for efficient algorithms, safe storage
of data, allows easier processing of data, and the use of the internet to access data anytime. With
those odds, this makes it easy to accept that without these applications in our lives, life would be
that much harder when dealing with computer science and even our day to day tasks.

BIBLIOGRAPHY

• Geeks for Geeks website

• Geeks for Geeks Course

You might also like