1 Introduction To Data Structures
1 Introduction To Data Structures
1/6/2012
A Programming Solution
Inputs
Keyboard (user) Mouse (user) Network (system) Devices (system) Other programs
Computation #3
Computations Outputs
Monitor Network Devices Other programs
Computation #3
O/P #1
O/P #2
O/P #3
Computation #1
GUI
Computation
Data (Information) Processing of the Data Two principle ways
of Computation
Functional
Data F-2 F-3 F-4 F-5 F-1
Computation #3
Computation #3
Computation #1
Object-oriented o1 o2 o3 o5 o6 o4 o7
1/6/2012
Improving Computation
Data Structures
Choosing suitable data organization Having efficient data storing and retrieving mechanism
Design of Algorithms
Applying appropriate strategies for problem solving
Greedy, dynamic programming, divide and conquer, branch and bound,
Solution Characteristics
Efficient (performance or speed) Cost effective Scalable Useful Correct Robust Secure Modifiable
Computation #3
Computation #3
Computation #1
Computational Domains
Spreadsheets primitive persistent data with mathematical analysis (no algorithms) Database primitive persistent data with standard set of operations + query (no algorithms) Application Software (Word, Spreadsheets, ) - Advanced data structures + files + algorithms System software (OS, NOS, DS, DBMS, Compiler, System tools) Advanced data structures + files + efficient algorithms [Real time systems - Deterministic Solutions] Knowledge based systems + Data mining systems Database + dynamic data organizations + intelligent (machine learning) algorithms [Hard Problems approximate solutions]
1/6/2012
+
Efficient problem solving approaches
Other benefits
GATE examination Job interviews
1/6/2012
Searching and Sorting Algorithm Design Techniques like Greedy, Dynamic Programming, Divide and Conquer, Branch and Bound
About Me
Dr Atul Gupta, PhD (IITK), M Tech (IITR)
Associate Professor, CSE Discipline Convener, CSE Convener, CC
1/6/2012
Place for
Course slides Example codes (Practice Codes) Data structure codes (both in C as well as in Java) Programming Assignments Learning references and help
Attendance (10%)
1/6/2012
Lab Work
Programming Assignments Programming Language(s) TAs Additional help
References
Data Structures and Algorithms in C++ by Michael T. Goodrich, Roberto Tamassia, and David M. Mount Wiley Publications Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein, 2nd Ed., PHI Course Slides Internet