Computer Science E Library

E Books

Programming in C  : An introductory course which covers the key features of the C language and its usage.

Introduction to Programming in C by Prof. Satyadev Nandakumar, IIT Kanpur

C Programming Tutorial (K&R version 4) : A C programming tutorial for people who have a little experience with an interpreted programming language, such as Emacs Lisp or a GNU shell.

C++ Essentials : An introduction to the C++ language, with no attempt to teach object-oriented design to any depth

An Introduction to GCC  : Provides a tutorial introduction to the GNU C and C++ compilers, gcc and g++

The C++ Annotations : For knowledgeable users of C who would like to make the transition to C++

Object-oriented Programming with Ansi-C : Uses ANSI-C to discover how object-oriented programming is done, what its techniques are, why they help us solve bigger problems, and how we harness generality and program to catch mistakes earlier.

Computer Science from the Bottom Up: This book aims to teach computer science from the bottom up, working from operating systems fundamentals through to how those applications are compiled and executed.

Computer Organization and Design Fundamentals: Intended for computer science majors who want to study computer organization without a background in electrical engineering. Topics such as analog to digital conversion, CRC’s, and memory organization are covered using practical terms and examples.

Design and Analysis of Algorithms : This book focuses on fundamental data structures and graph algorithms.

Data Structures & Algorithm Analysis by Clifford A. Shaffer (C++ Version)

Data Structures & Algorithm Analysis by Clifford A. Shaffer (Java Version)

Algorithm Analysis and Design : Lecture notes for postgraduate and undergraduate courses on Design and Analysis of Algorithms in IIT Delhi.

Algorithms and Data Structures – The Basic Toolbox: A concise introduction to the basic algorithmic toolbox addressed to students and professionals familiar with programming and basic mathematical language

Art of Programming Contest – C Programming, Data Structures, and Algorithms, 2nd Edition: A textbook for an algorithm course focusing on programming as well as a programming course focusing on algorithms. The book is designed to train students to participate in competitions, especially the ACM International Collegiate Programming Contest.

Problem Solving with Algorithms and Data Structures using Python : This textbook is designed to serve as a text for a first course on data structures and algorithms,

Computer Networking : Principles, Protocols and Practice: explains the main principles of Computer Networking and the key protocols that are used on the Internet.

An Introduction to Computer Networks: An introductory text for college or graduate course in computer networks, with a balance between practical matters and underlying principles. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP.

Foundations of Data Science: Provides the background needed for a modern theoretical course in computer science.

MySQL Essentials: An online book designed to provide everything a user needs to know to install, build, maintain and secure MySQL based databases.

Database Design, 2nd Edition: This book presents the concepts used in database systems, focusing on design process.

Class notes on DBMS of Department of Computer Science & Engineering Malla Reddy College of Engineering & Technology

Discrete Structures for Computer Science: Counting, Recursion, and Probability: This is a free textbook for an undergraduate course on Discrete Structures for Computer Science students. It covers mathematical reasoning, basic proof techniques, sets, functions, relations, basic graph theory, asymptotic notation, and countability.

Introduction to Programming Using Java : A free introductory computer programming textbook that uses Java as the language of instruction. It is suitable for use in an introductory programming course and for people who are trying to learn programming on their own.

Introduction to Programming (in Java) – An Interdisciplinary Approach

Introduction to Object-Oriented Programming Using C++ : Introduces object-orientation as a new programming concept which should help the reader in developing high quality software.

A Practical Introduction to Python Programming: An introductory programming text for students with no prior programming experience.

An Introduction to Python: Introduces the reader informally to the basic concepts and features of the Python language and system. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well

Python: Introduction for Absolute Beginners: An introductory Python course aimed to people with absolutely no experience of programming.

Python Practice Book: A Python tutorial with lot of examples and practice problems

Python for You and Me: It targets people who are completely new to the language.

Learn to Program Using Python: Covers the basic theory of computer programming and the basic techniques needed to solve problems using Python. For absolute beginners on web programming.

Natural Language Processing with Python: Analyzing Text with the Natural Language Toolkit: This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation.

Making Games with Python & Pygame: Making Games with Python & Pygame is a programming book that covers the Pygame game library for the Python programming language. Each chapter gives you the complete source code for a new game and teaches the programming concepts from these examples.

Problem Solving with Algorithms and Data Structures using Python: This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum.

Introduction to Python for Econometrics, Statistics and Numerical Analysis: 3rd Edition, 1st Revision : These notes are designed for someone new to statistical computing wishing to develop a set of skills necessary to perform original research using Python.

Efficient R programming: practical advice on a range of topics—from optimizing set-up of RStudio to leveraging C++—that make this book a valuable asset for both experienced and novice programmers.

The Art of R Programming: A guided tour of software development with R, from basic types and data structures to advanced topics like closures, recursion, and anonymous functions. No statistical knowledge is required.

Introduction to Linux – A Hands on Guide: An overview of the Linux Operating System geared toward new users and more advanced trainees. Contains many real life examples derived from the author’s experience as a Linux system and network administrator, trainer and consultant.

Linux 101 Examination Modular Training Notes: This course material is based on the objectives for the Linux Professionals Institute’s LPI 101 examination. The course is intended to provide readers with the basic skills required for operating and administering Linux systems.

Linux 102 Examination Modular Training Notes: This course material relates to the Linux Professionals Institute’s LPI 102 examination (release 2). This course is intended to provide readers with the basic skills required for operating and administering Linux systems.

Software Engineering: Covers several important technologies for software development with a particular focus on Web applications. Designed for upper-division undergraduate and graduate courses in software engineering.

Lecture Notes on Software Engineering by Dr. H.S.Behera, K.K.Sahu, Gargi Bhattacharjee of DEPT OF CSE & IT VSSUT, Burla

Software Engineering Class Notes

JavaScript Essentials: Provides a detailed and comprehensive, yet easy to follow, guide to developing powerful, dynamic web pages using JavaScript.

Speaking JavaScript: An In-Depth Guide for Programmers: The target audience is programmers who want to learn JavaScript quickly and properly, and JavaScript programmers who want to deepen their skills and/or look up specific topics.

PHP Essentials : This book covers each area of PHP in detail, from the basics of the scripting language through to object oriented programming, file and filesystem handling and MySQL and SQLite database access. Accompanied by extensive real world examples.

Practical PHP Programming : A concise guide to learning PHP, with lots of information for newcomers, even those who have not programmed much before.


NPTEL Courses

E Journals & other resources

The Indian Journal of Computer Science and Engineering (IJCSE)  : e-ISSN: 0976-5166 (Online version); p-ISSN: 2231-3850 (Print version); Indexed by Scopus

Spoken Tutorial: Tutorial in IT Application