# Data Structure and Algorithms using Java

- Institution: IIT Kharagpur
- Department: Computer Science and Engineering
- Teacher: Prof. Debasis Samanta
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106105225)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106105225)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

With the growth of Information and Communication Technology, there is a need to develop large and complex software. For developing large software, software developers should have enough proficiency of data structures and algorithms. Further, those software should be platform independent, Internet enabled, easy to modify, secure, and robust. To meet this requirement object-oriented paradigm has been developed and based on this paradigm the Java programming language emerges as the best programming environment. Now, Java programming language is being used for mobile programming, Internet programming, and many other applications compatible to distributed systems. This course aims to cover the essential topics of data structures and algorithms and how the same can be implemented using Java programming language. The participants of the proposed course will be able to improve their skills, to cope with the current demand of IT industries and solve many problems in their own filed of studies.

INTENDED AUDIENCE : The undergraduate students from the engineering disciplines, namely CSE, IT, EE, ECE, etc. might be interested for this course.

PREREQUISITES : This course requires that the students are familiar with programming language such as C/C++/Java, data structures and algorithms.

## Lectures

1. [Lecture 01 : Introduction and Course Plan](https://invisiblenetwork.ai/learn/nptel/106105225/ce58d65af05e) (YouTube)
2. [Lecture 02 : Generic Methods](https://invisiblenetwork.ai/learn/nptel/106105225/20da40e4474e) (YouTube)
3. [Lecture 03 : Basics of Generic Class](https://invisiblenetwork.ai/learn/nptel/106105225/d8cd70bbfab3) (YouTube)
4. [Lecture 04 : Parameterized Generic Class](https://invisiblenetwork.ai/learn/nptel/106105225/71485696e6c0) (YouTube)
5. [Lecture 05 : Bounded Argument Generic Class](https://invisiblenetwork.ai/learn/nptel/106105225/124e1a21a9ff) (YouTube)
6. [Lecture 06 : Basics of the Framework](https://invisiblenetwork.ai/learn/nptel/106105225/468af1fa81ca) (YouTube)
7. [Lecture 07 : Collection in JCF](https://invisiblenetwork.ai/learn/nptel/106105225/f687dba42481) (YouTube)
8. [Lecture 08 : Set of JCF](https://invisiblenetwork.ai/learn/nptel/106105225/edadfdcad699) (YouTube)
9. [Lecture 09 : Map Framework](https://invisiblenetwork.ai/learn/nptel/106105225/c697e845f206) (YouTube)
10. [Lecture 10 : Java Legacy Classes](https://invisiblenetwork.ai/learn/nptel/106105225/5a9bae48ce76) (YouTube)
11. [Lecture 11 : Array Data Structures](https://invisiblenetwork.ai/learn/nptel/106105225/8a2557a34b20) (YouTube)
12. [Lecture 12 : Programming for Arrays](https://invisiblenetwork.ai/learn/nptel/106105225/58e2227da145) (YouTube)
13. [Lecture 13 : Class ArrayList for Arrays](https://invisiblenetwork.ai/learn/nptel/106105225/6a0c6714414b) (YouTube)
14. [Lecture 14 : Arrays for Arrays](https://invisiblenetwork.ai/learn/nptel/106105225/2b70c8fff8e1) (YouTube)
15. [Lecture 15 : Vector Class for Arrays](https://invisiblenetwork.ai/learn/nptel/106105225/93f093f75982) (YouTube)
16. [Lecture 16 : Linked List Data Structure (Part-I)](https://invisiblenetwork.ai/learn/nptel/106105225/20c93363ccc1) (YouTube)
17. [Lecture 17 : Linked List Data Structure (Part-II)](https://invisiblenetwork.ai/learn/nptel/106105225/571dffdccbf1) (YouTube)
18. [Lecture 18 : Programming for Linked Lists (Part-I)](https://invisiblenetwork.ai/learn/nptel/106105225/449218185cae) (YouTube)
19. [Lecture 19 : Programming for Linked Lists (Part-II)](https://invisiblenetwork.ai/learn/nptel/106105225/00c4fde5a570) (YouTube)
20. [Lecture 20 : Linked Lists Using JCF](https://invisiblenetwork.ai/learn/nptel/106105225/dab151095d98) (YouTube)
21. [Lecture 21 : Stack Data Structures](https://invisiblenetwork.ai/learn/nptel/106105225/46adc73cc54d) (YouTube)
22. [Lecture 22 : Programming for Stack](https://invisiblenetwork.ai/learn/nptel/106105225/d5acd480fc05) (YouTube)
23. [Lecture 23 : Stack Using JCF](https://invisiblenetwork.ai/learn/nptel/106105225/ba1dfa91b757) (YouTube)
24. [Lecture 24 : Queue Data Structure](https://invisiblenetwork.ai/learn/nptel/106105225/d5eef1d808cd) (YouTube)
25. [Lecture 25 : Programming for Queue](https://invisiblenetwork.ai/learn/nptel/106105225/b80a0969086c) (YouTube)
26. [Lecture 26 : Queue Using JCF](https://invisiblenetwork.ai/learn/nptel/106105225/e0d1d50043fd) (YouTube)
27. [Lecture 27 : Understanding Tree Data Structures](https://invisiblenetwork.ai/learn/nptel/106105225/ce7fb815fab5) (YouTube)
28. [Lecture 28 : Operations on Binary Tree Data Structures](https://invisiblenetwork.ai/learn/nptel/106105225/7eb5ded970ea) (YouTube)
29. [Lecture 29 : Binary Search Tree](https://invisiblenetwork.ai/learn/nptel/106105225/61781e510ab8) (YouTube)
30. [Lecture 30 : Programming for Binary Search Tree](https://invisiblenetwork.ai/learn/nptel/106105225/7c05d2dc7f71) (YouTube)
31. [Lecture 31 : Height Balanced Binary Search Tree](https://invisiblenetwork.ai/learn/nptel/106105225/c02d2fa4183d) (YouTube)
32. [Lecture 32 : Heap Tree](https://invisiblenetwork.ai/learn/nptel/106105225/7cb560ebfe1e) (YouTube)
33. [Lecture 33 : Programming for Heap Tree](https://invisiblenetwork.ai/learn/nptel/106105225/d2e0182ae7ff) (YouTube)
34. [Lecture 34 : Huffman Tree](https://invisiblenetwork.ai/learn/nptel/106105225/794213cd8604) (YouTube)
35. [Lecture 35 : Graph Structures](https://invisiblenetwork.ai/learn/nptel/106105225/34271452377e) (YouTube)
36. [Lecture 36 : Graph Algorithms](https://invisiblenetwork.ai/learn/nptel/106105225/b63838e4affb) (YouTube)
37. [Lecture 37 : Map Framework in Java](https://invisiblenetwork.ai/learn/nptel/106105225/f7ecac43b92f) (YouTube)
38. [Lecture 38 : Applications of Map (Part-I)](https://invisiblenetwork.ai/learn/nptel/106105225/8821508fb85d) (YouTube)
39. [Lecture 39 : Applications of Map (Part-II)](https://invisiblenetwork.ai/learn/nptel/106105225/4b0e7ecd4c1d) (YouTube)
40. [Lecture 40 : Collection Set](https://invisiblenetwork.ai/learn/nptel/106105225/47d57a155d1c) (YouTube)
41. [Lecture 41 : Operations on Set Collection](https://invisiblenetwork.ai/learn/nptel/106105225/222d6dec7ad9) (YouTube)
42. [Lecture 42 : Introduction to java.io](https://invisiblenetwork.ai/learn/nptel/106105225/fdaa1be441e0) (YouTube)
43. [Lecture 43 : IO with Byte Streams](https://invisiblenetwork.ai/learn/nptel/106105225/8e6f1fb0b79a) (YouTube)
44. [Lecture 44 : IO with Character Streams](https://invisiblenetwork.ai/learn/nptel/106105225/29845ef32eba) (YouTube)
45. [Lecture 45 : File Input-Output](https://invisiblenetwork.ai/learn/nptel/106105225/440ddf5a457e) (YouTube)
46. [Lecture 46 : Random Access File](https://invisiblenetwork.ai/learn/nptel/106105225/00f0a21b7db6) (YouTube)
47. [Lecture 47 : Linear Searching Algorithms](https://invisiblenetwork.ai/learn/nptel/106105225/608643a54b1d) (YouTube)
48. [Lecture 48 : Non-linear Searching Algorithms](https://invisiblenetwork.ai/learn/nptel/106105225/35ae3bf2ca2a) (YouTube)
49. [Lecture 49 : Programs for Searching](https://invisiblenetwork.ai/learn/nptel/106105225/a3a05880e802) (YouTube)
50. [Lecture 50 : Sorting Algorithms (Part-I)](https://invisiblenetwork.ai/learn/nptel/106105225/3e581469d0a7) (YouTube)
51. [Lecture 51 : Improved Sorting Algorithms](https://invisiblenetwork.ai/learn/nptel/106105225/625030e1fce5) (YouTube)
52. [Lecture 52 : Advanced Sorting Algorithms](https://invisiblenetwork.ai/learn/nptel/106105225/8f9885910d5d) (YouTube)
53. [Lecture 53 : Programs for Sorting (Part-I)](https://invisiblenetwork.ai/learn/nptel/106105225/26cb4ac3354d) (YouTube)
54. [Lecture 54 : Programs for Sorting (Part-II)](https://invisiblenetwork.ai/learn/nptel/106105225/dd09cb5dd868) (YouTube)
55. [Lecture 55 : Sorting Using JCF](https://invisiblenetwork.ai/learn/nptel/106105225/d845b3a67ad2) (YouTube)
56. [Lecture 56 : String Class](https://invisiblenetwork.ai/learn/nptel/106105225/d8a769f04e8e) (YouTube)
57. [Lecture 57 : Applications of String](https://invisiblenetwork.ai/learn/nptel/106105225/6aefb1fa6c40) (YouTube)
58. [Lecture 58 : StringBuffer Class](https://invisiblenetwork.ai/learn/nptel/106105225/cd2aeca22d0d) (YouTube)
59. [Lecture 59 : Miscellaneous Utilities](https://invisiblenetwork.ai/learn/nptel/106105225/0b44125a2ce9) (YouTube)
60. [Lecture 60 : Java Cursors](https://invisiblenetwork.ai/learn/nptel/106105225/85557e46b06f) (YouTube)
