This book gives an insight on the broad classification of Computer Languages, Relationship between Hardware and Software, Types of software (Application Software and System Software), Planning the Computer Program, Structured approach to programming, Programming Style, Documentation, Reasons to analyze algorithms, Algorithmic complexity, commonly used notations in complexity of algorithm, Recursive and Iterative algorithms, Why Data Structures, Classification of Data Structures, Data Structure Operations, Arrays, Matrices, Structures, Dynamic Memory Allocation Functions and Strings.