This is a comprehensive textbook, covering some fundamental mathematical
concepts underlying computer science. It starts with basic proofs, induction,
and recursion; it proceeds to infinite sets, number theory, and graph theory.
Further, it outlines the practical usage in the area of communication networks,
along with some aspects of probability theory involving random variables and
random walks. This merge of mathematical theory with computer science
applications provides an excellent framework upon which students can base their
study of algorithms, data structures, and other computational concepts.
Author(s): Eric Lehman, F. Thomson Leighton, Alberty R.
Meyer
Introduction
to Theoretical Computer Science by Boaz Barak provides an overview of some
basic notions. This voluminous note starts with serious foundational mathematics
needed to understand the intricacies of computation. Among several models of
computation and their representations, he deals with finite and uniform
computations. Key topics: It presents efficient algorithms which are essential
in solving practical problems and randomized computation, one of whose important
features is to bring probabilistic methods into the design of algorithms.
Advanced topics broaden the knowledge further towards recent research and
trends. This note is intended for students and professionals at large who wish
to have a rigorous introduction to theoretical aspects and their practical
applications in computer science.
This is a comprehensive textbook, covering some fundamental mathematical
concepts underlying computer science. It starts with basic proofs, induction,
and recursion; it proceeds to infinite sets, number theory, and graph theory.
Further, it outlines the practical usage in the area of communication networks,
along with some aspects of probability theory involving random variables and
random walks. This merge of mathematical theory with computer science
applications provides an excellent framework upon which students can base their
study of algorithms, data structures, and other computational concepts.
Author(s): Eric Lehman, F. Thomson Leighton, Alberty R.
Meyer
Dr. Chris Bourke's book
provides an extended textbook introduction to many core areas of computer
science. It covers the basics of programming: conditionals, loops, functions,
and error handling. More advanced topics concern dynamic memory, collections,
and file I/ using both procedural and object-oriented approaches. There are
chapters on searching and sorting algorithms, graphical user interface design,
and database connectivity. This resource serves well as a starting point, either
for beginners or intermediate learners, in terms of providing overall depth
regarding key concepts and best practices in the subject of programming.
Author(s): Dr. Chris Bourke, Department of
Computer Science and Engineering, University of Nebraska
The book "Logic for Computer
Science" by Andrzej Szalas provides an in-depth discussion of several logical
systems located at the heart of computer science. This in-depth PDF gives the
basics�introducing the reader to some logics�leading to a very solid foundation
on the Propositional Calculus and the Predicate Calculus. It goes on to show the
application of these logics to automated deduction as both Propositional and
Predicate Calculus. The text by this token goes further to illustrate advanced
topics, including Second-Order Logic, Second-Order Quantifier Elimination, and
Modal Logics. This text also goes on to consider Temporal Logic, Logics of
Programs, and Fixpoint Calculus and demonstrates how these notions are used both
theoretically and practically in the area of computing. With its breadth, this
resource is invaluable in understanding the theoretical underpinnings of
computer science and their practical applications in the areas of software
development and automated reasoning.
Introduction
to Computer Systems by Tilak Maharashtra Vidyapeeth presents the fundamental
concepts of the computer system. This above PDF describes some important aspects
of the computer system: input and output devices, primary and secondary storage
devices constituting it. The number system and Boolean algebra have also been
explained, which form the basis of logic circuits. It also deals with computer
software, programming languages, and program development. It also gives an
overview of some popular operating systems, hence enabling the readers to have a
broader view on both the hardware and software aspects of computing. This note
thus targets serving as an introductory guide for students and individuals that
are entering computer systems, hence helping them to develop a solid background
in both the theoretical and practical aspects of computing.
The
following Lecture Notes on High Performance Computing from VSS University of
Technology deal in-depth with new computing paradigms aimed at the efficient
execution of large computations. This PDF covers Cluster Computing, a form of
parallel processing wherein a group of computers that are symmetrically linked
work symptomatically as one system to enhance computation power. It looks at
Scalable Parallel Computer Architectures, which can grow as demand for
processing goes up. This discusses key components of clusters and the role of
Cluster Middleware in creating a Single System Image. The notes describe the
Evolution of Metacomputing, which covers development and integration aspects of
distributed computing resources. Other topics that are considered in this regard
include resource-sharing concepts like Load Sharing and Balancing. Furthermore,
Grid Computing and Cloud Computing, concepts based on distributed resources and
remote servers, will also be discussed. It also deals with the provisioning of
Virtual Machines and Time and Space-shared provisioning in order to provide
insight into some efficient resource management and virtualization issues in
high-performance computing environments.