Computer Science Books


Computer Science

This section contains free e-books and guides on Computer Science, some of the resources in this section can be viewed online and some of them can be downloaded.

Recently Added Books

Lecture Notes Concurrency Topics in Java

These lecture notes are an introduction into concurrency programming in Java and summarize the main topics of our module DSG-PKS-B with the exception of message passing concepts and frameworks. Understanding the concepts and functionality of diferent elements in the Java API helps to understand synchronous and asynchronous mechanisms discussed in our DSG master courses and all other computer science courses

s82 Pages

Concurrent Programming Class Notes

This note focuses on Concurrent Programming, Parallel Programming, Multi-Processing and Multi-Threading. Topics covered includes: Thread, Properties of a Thread, Lifecycle of a process, Concurrent Hardware, Basic Uniprocessor, Multiprocessors, Basic Hardware, Kesselís Algorithm, Java Threads Scheduling Model, Compiler Optimization and Mutlithreading, Ticket Algorithm, Bakery Algorithm, Semaphores, Concurrency Problems with Deadlock, Speculative Multithreading (SpMT),Lifecycle of a process, Achieving good performances, Concurrent Hardware,  Granularity,  Atomicity,  Race Conditions,  Mutual Exclusion,  Brief Interruption to Introduce Java and PThreads, Java Threads Scheduling Model, Compiler Optimization and Mutlithreading, PThreads, Execution Scheduling Policies, Contention Scope,  Properties of Mutual Exclusion algorithms, Ticket Algorithm, Bakery Algorithm, Hardware Support for Concurrency, Splitter, Practical Lock Design, Tasuki Locks, Barrier, Semaphores, Condition Variables, Broadcasting, Building Semaphores using Monitors, Using Multiple Condition Variables, Readers and Writers Problem, Concurrency Problems with Deadlock, Dining Philosophers, Deadlock Solution, Scheduling and Priorities, Scheduling Guarantees, Priorities, Termination and Suspension, Miscellanous Issues,Memory Consistency, Relaxed Models,  Building Correctly Synchronized Programs,  Java Concurrency API, Condition Variable, Concurrent Data Structures, Message Passing, Process Algebra, Homogenous actors, Irregular Actors

s110 Pages

Lecture Notes for Machine Learning and Data Science Courses

This book covers the following topics: Introduction to Statistics, General Machine Learning Strategies, Linear Algebra, Regression Models, Causality, Assessing model goodness, Machine Learning Models, Different Types of Data, Machine Learning T echniques, Unsupervised Learning, Applications, Responsible Data Science

s437 Pages

Lecture Notes in Machine Learning By Zdravko Markov

This book contains the following topics: Concept learning, Languages for learning, Version space learning, Induction of Decision Trees, Covering strategies, Inductive Logic Programming, Bayesian approach and MDL, Unsupervised Learning,Paradigms, Learning semantic nets, Induction task, Relational languages, Language of logic programming, Search strategies in version space, Candidate Elimination Algorithm, Representing disjunctive concepts, Building a decision tree, Learning multiple concepts, Learning from noisy data, Basic idea, Basic idea, Searching the space of propositional hypotheses, Searching the space of relational hypotheses, ILP task, Ordering Horn clauses, Inverse Resolution, Predicate Invention, Extralogical restrictions, Illustrative examples, Basic strategies for solving the ILP problem, Bayesian induction, Occams razor, Evaluating propositional hypotheses, Evaluating relational hyporheses, Introduction, COBWEB, Introduction, Basic concepts of EBL, Example and Discussion

s65 Pages

Compiler Design Theory, Tools, and Examples

The most essential prerequisites for this book are courses in C or C++ programming, Data Structures, Assembly Language or Computer Architecture, and possibly Programming Languages. Topics covered includes: Introduction, Lexical Analysis, Syntax Analysis, Top Down Parsing, Bottom Up Parsing, Code Generation, Optimization, The Phases of a Compiler, Implementation Techniques, Formal Languages, Lexical Tokens, Implementation with Finite State Machines, Lexical Tables, Lexical Analysis with SableCC, Ambiguities in Programming Languages, The Parsing Problem, Summary, Relations and Closure, Simple Grammars, Parsing Arithmetic Expressions Top Down, Attributed Grammars, An Attributed Translation Grammar for Expressions, Decaf Expressions, Translating Control Structures, Shift Reduce Parsing, LR Parsing With Tables, SableCC, Arrays, Introduction to Code Generation, Converting Atoms to Instructions, Register Allocation, Introduction and View of Optimization, Global Optimization, Local Optimization

s320 Pages

Compiler Construction by Gerhard Goos and William M. Waite

Compiler Construction, a modern text written by two leaders in the in the field, demonstrates how a compiler is built. Describing the necessary tools and how to create and use them, the authors compose the task into modules, placing equal emphasis on the action and data aspects of compilation. Attribute grammars are used extensively to provide a uniform treatment ofsemantic analysis, competent code generation and assembly. The authors also explain how intermediate representations can be chosen automatically on the basis of attribute dependence. Thus, all aspects of the sub ject are presented in terms of a uniform model sub ject to automation. This approach imparts a vivid understanding of the compilation and the decisions that must be made when designing a compiler.

s372 Pages

Introduction to the Theory of Computation Some Notes

This note contains the following topics: Introduction, Basics of Formal Language Theory, Hidden Markov Models HMMs, RAM Programs, Turing Machines, Universal RAM Programs and the Halting Problem, Elementary Recursive Function Theory, Primality Testing is in NP

s386 Pages

Introduction to the Theory of Computation Lecture Notes and Exercises

This lecture notes contains following topics: Lecture Notes and Exercises for CSC, Overview of this Course, Prerequisite Knowledge, The Induction Idea, Complete Induction, Beyond Numbers, Structural Induction, A Larger Example, Exercises, Measuring Runtime, A Simple Recursive Function, A Special Recurrence Form, Quicksort, Exercises, Correctness of Recursive Programs, Iterative Programs, Termination, Exercises, Regular Languages, A Suggestive Flowchart, Deterministic Finite Automata, Correctness of DFAs, Limitations of DFAs, Nondeterminism, Exercises, introduction to the theory of computation, Concepts from MAT, introduction to the theory of computation

s75 Pages

Lecture notes On Computer organization and architecture

This ebook contains following topics: Basic Computer Organization, Register transfer, CPU design, Memory organization, Pipeline and Parallel processing

s125 Pages

Computer Architecture Fourth Year Electronic

Register Transfer and Microoperation,. Basic Computer Organization and Design,Micro Programmed Control,Central Processing Unit,Memory Management,Input Output Organization,Pipelining,Computer Arithmetic, Reduced Instruction Set Computers RISCs,. Multiprocessors and Multiple Computers

s65 Pages

Introduction to Numerical ComputationAnalysis and Matlab illustrations

This ebook contains the following topics: Mathematical Models and Numerical Approximations, Numerical Computation, References, Sources of Error, Basic Concepts, Error Propagation, Number Representation, Rounding Errors in Floating Point, Arithmetic Operations in Floating Point, Accumulated Errors, IEEE Standard, Introduction, Remainder Term Estimates, Standard Functions, Range Reduction, Trigonometric Functions, Introduction, Crude Localization, Iteration Methods, Convergence Analysis, Error Estimation and StoppingCriteria, Algebraic Equations, Square Root, Nonlinear Systems, Introduction, Interpolation by Polynomials, Linear Interpolation, Lagrange Interpolation, Hermite Interpolation, Splines, Linear Spline Functions, Cubic Splines, Introduction, Richardson Extrapolation, Introduction, Trapezoidal Rule, Adaptive Quadrature, Introduction, Triangular Systems, Gaussian Elimination, Pivoting, LU Factorization, Band Matrices, Inverse Matrix, Vector and Matrix Norms, Sensitivity Analysis, Rounding Errors, Estimation of Condition Number, Overdetermined Systems, QR Factorization, Introduction, Important Concepts, Least Squares Method, Orthogonal Functions, Orthogonal Polynomials, Legendre Polynomials, Chebyshev Polynomials, Discrete Cosine Transform, Minimax Approximation, Introduction, Initial Value Problems, Local and Global Error, An Implicit Method, Stability, Adaptive Step Length Control, Boundary Value Problems, A Finite Element Method, The Shooting Method, Mathematical Models and Numerical Approximations

s383 Pages

Applied Numerical Computing

This note explains the following topics: Numerical linear algebra, nonlinear optimization, nonlinear least squares, introduction to floating point numbers and rounding error, examples from signal and image processing, control, machine learning.

sNA Pages

Lecture Notes On Object Oriented Programming Using CPP

This note contains the following topics: Introduction, Object Oriented Programming, Basic Concepts Of Objects Oriented Programming, Benefits Of Oop, Tokens, Symbolic Constant, Operators, Control Structures, Function Overloading, Class, Member Function, Nesting Of Member Function, Array With Class, Static Data Me Mber, Friendly Functions, Returning Objects, Constructors, Destructors, Type Conversion, Class To Basic Type, Inheritance, Multilevel Inheritance, Hierarchical Inheritance, Virtual Base Class, Polymorphism, Virtual Functions, Pure Virtual Functions, Exception Handling, Array Reference Out Of Bound, Virtual Destructors, Namespaces.

s146 Pages

Lecture Notes On Object Oriented Analysis And Design

Currently this section contains no detailed description for the page, will update this page soon.

s Pages

Introduction to Operating systems Lecture online notes

This online PDF lecture notes contains following topics: Definition and Function of operating systems, Evolution of operating system, Operating system structure-monolithic layered,virtual machine and Client server, Different types of operating system-real time systems, multi-user System, distributed system, Introduction to basic terms and batch processing system: Jobs, Processes files, command interpreter, Logical and Physical address protection, paging, and segmentation, Virtual memory, Page replacement algorithms, Catch memory, hierarchy of memory types, Associative memory, Process states, virtual processor, Interrupt mechanism, Scheduling algorithms Performance evaluation of scheduling algorithm, Threads,File systems-Partitions and Directory structure, Disk space allocation, Disk scheduling, I/O Hardware, I/O Drivers, DMA controlled I/O and programmed I/O, I/O Supervisors, Introduction and need for distributed OS, Architecture of Distributed OS, Models of distributed system, Remote procedure Calls, Distributed shared memory, Unix Operating System- Case Studies

s194 Pages

Operating System Digital Notes

This note contains overall basic concepts in Operating system, Includes Virtual memory, semaphores, Files, Memory management,Evolution of Operating Systems etc

s86 Pages

An Introduction to Coding Theory Lecture Notes

Linear codes, Syndrome decoding of linear codes, The Hamming codes, The binary Golay codes, The ternary Golay codes, Perfect codes and data compression, MacWillimas identities, Pless symmetry codes, Cyclic codes, Idempotent generators of cyclic codes

s68 Pages

Logic Programming by Frank Pfenning

Logic programming is a paradigm where computation arises from proof search in a logic according to a fixed, predictable strategy. It thereby unifies logical specification and implementation in a way that is quite different from functional or imperative programming. This course provides a thorough, modern introduction to logic programming. It consists of a traditional lecture component and a project component. The lecture component introduces the basic concepts and techniques of logic programming followed by successive refinement towards more efficient implementations or extensions to richer logical concepts. We plan to cover a variety of logics and operational interpretations. The project component will be one or several projects related to logic programming. 28-1-2020

s324 Pages