Jump to content
BulForum.com

General Computer Science Literature


Recommended Posts

Fundamentals of Database Systems,

3rd edition (2000), by Ramez Elmasri and Shamkant B. Navathe

Publisher: Addison-Wesley Higher Education, Addison-Wesley Longman, Inc.

 

Part 1 describes the basic concepts necessary for a good understanding of database design and implementation, as well as the conceptual modeling techniques used in database systems. Chapter 1 and Chapter 2 introduce databases, their typical users, and DBMS concepts, terminology, and architecture. In Chapter 3, the concepts of the Entity-Relationship (ER) model and ER diagrams are presented and used to illustrate conceptual database design. Chapter 4 focuses on data abstraction and semantic data modeling concepts, and extends the ER model to incorporate these ideas, leading to the enhanced-ER (EER) data model and EER diagrams. The concepts presented include subclasses, specialization, generalization, and union types (categories). The notation for the class diagrams of UML are also introduced. These are similar to EER diagrams and are used increasingly in conceptual object modeling. Part 1 concludes with a description of the physical file structures and access methods used in database systems. Chapter 5 describes the primary methods of organizing files of records on disk, including static and dynamic hashing. Chapter 6 describes indexing techniques for files, including B-tree and B+-tree data structures and grid files.

 

Part 2 describes the relational data model and relational DBMSs. Chapter 7 describes the basic relational model, its integrity constraints and update operations, and the operations of the relational algebra. Chapter 8 gives a detailed overview of the SQL language, covering the SQL2 standard, which is implemented in most relational systems. Chapter 9 begins with two sections that describe relational schema design, starting from a conceptual database design in an ER or EER model, and concludes with three sections introducing the formal relational calculus languages and an overview of the QBE language. Chapter 10 presents overviews of the Oracle and Microsoft Access database systems as examples of popular commercial relational database management systems.

 

Part 3 gives a comprehensive introduction to object databases and object-relational systems. Chapter 11 introduces object-oriented concepts and how they apply to object databases. Chapter 12 gives a detailed overview of the ODMG object model and its associated ODL and OQL languages, and gives examples of two commercial object DBMSs. Chapter 13 describes how relational databases are being extended to include object-oriented concepts and presents the features of two object-relational systems—Informix Universal Server and ORACLE 8, as well as giving an overview of some of the features of the proposed SQL3 standard, and the nested relational data model.

 

Part 4 covers several topics related to database design. Chapter 14 and Chapter 15 cover the formalisms, theory, and algorithms developed for relational database design by normalization. This material includes functional and other types of dependencies and normal forms for relations. Step by step intuitive normalization is presented in Chapter 14, and relational design algorithms are given in Chapter 15, which also defines other types of dependencies, such as multivalued and join dependencies. Chapter 16 presents an overview of the different phases of the database design process for medium-sized and large applications, and it also discusses physical database design issues and includes a discussion on database tuning.

 

Part 5 discusses the techniques used in implementing database management systems. Chapter 17 introduces DBMS system architectures, including centralized and client-server architectures, then describes the system catalog, which is a vital part of any DBMS. Chapter 18 presents the techniques used for processing and optimizing queries specified in a high-level database language—such as SQL—and discusses various algorithms for implementing relational database operations. A section on query optimization in ORACLE has been added. Chapter 19, Chapter 20 and Chapter 21 discuss transaction processing, concurrency control, and recovery techniques—this material has been revised to include discussions of how these concepts are realized in SQL. Chapter 22 discusses database security and authorization techniques.

 

Part 6 covers a number of advanced topics. Chapter 23 gives detailed introductions to the concepts of active and temporal databases—which are increasingly being incorporated into database applications—and also gives an overview of spatial and multimedia database concepts. Chapter 24 discusses distributed databases, issues for design, query and transaction processing with data distribution, and the different types of client-server architectures. Chapter 25 introduces the concepts of deductive database systems and surveys a few implementations. Chapter 26 discusses the new technologies of data warehousing and data mining for decision support applications. Chapter 27 surveys the new trends in database technology including Web, mobile and multimedia databases and overviews important emerging applications of databases: geographic information systems (GIS), human genome databases, and digital libraries.

 

Appendix A gives a number of alternative diagrammatic notations for displaying a conceptual ER or EER schema. These may be substituted for the notation we use, if the instructor so wishes. Appendix B gives some important physical parameters of disks. Appendix C and Appendix D cover legacy database systems, based on the network and hierarchical database models. These have been used for over 30 years as a basis for many existing commercial database applications and transaction-processing systems and will take decades to replace completely. We consider it important to expose students of database management to these long-standing approaches. Full chapters from the second edition can be found at the Website for this edition.

 

Връзка: http://warez.ru:8080/FTP/Docs/Computer.Sci...Navathe.(2000)/

Link to comment
Share on other sites

Страхотна работа, DeZoeker, цена нямаш!

 

Ако имаш доста такива материали, но ти е проблем връзката - свирни да уговорим нещо - усилията ти заслужават съпорт от общността... ;)

Link to comment
Share on other sites

Е, чак пък! :) Радвам се, че има поне един заинтригуван ;)

Колкото до additional bandwidth - няма нужда, и сегашният ми е достатъчен :)

Следва малко математика:

 

Introduction to Automata Theory, Languages,

and Computation,

2nd edition (2001), by John E. Hopcroft, Rajeev Motwani & Jeffrey D. Ullman

Publisher: Addison-Wesley Higher Education; Addison-Wesley Longman, Inc., a Pearson Education company, Pearson PLC

 

It has been more than 30 years since John Hopcroft and Jeffrey Ullman first published this classic book on formal languages, automata theory, and computational complexity. With this long-awaited revision, the authors continue to present the material in a concise and straightforward manner, now with an eye out for the practical applications along with the mathematics.

 

This edition has been revised to make it more accessible to today's students, including the addition of more material on writing proofs, more figures and pictures to convey ideas, sidebars to highlight related material, and a less formal writing style. It includes many new exercises in each chapter to help readers confirm and enhance their understanding of the material.

 

Features

  • Completely rewritten to be less formal, providing more accessibility to undergraduate students
  • Emphasizes modern applications of the theory
  • Uses numerous figures to help convey ideas
  • Provides more detail and intuition for definitions and proofs
  • Includes special sidebars to present supplemental material that may be of interest to readers
  • Challenges readers with extensive exercises of wide-ranging difficulty levels
  • Presents a graphical notation for PDA's and Turing machines.

John E. Hopcroft is the Joseph Silbert Dean of Engineering at Cornell University, and winner of the 1986 A. M. Turing Award.

Rajeev Motwani is Associate Professor and Director of Graduate Studies for Computer Science at Stanford University.

Jeffrey D. Ullman is the Stanford W. Ascherman Professor of Computer Science at Stanford University.

 

Prerequisites

To make best use of this book, students should have taken previsously a course covering discrete mathematics, e.g., graphs, trees, logic, and proof techniques. We assume also that they have had several courses in programming, and are familiar with common data structures, recursion, and the role of major system components such as compilers. These prerequisites should be obtained in a typical freshman-sophomore CS program.

 

Връзка: http://www.warez.ru:8080/FTP/Docs/Computer...t.et.al.(2001)/

Link to comment
Share on other sites

Concepts of Programming Languages,

5th edition (2002), by Robert W. Sebesta

Publisher: Addison-Wesley Higher Education; Addison-Wesley Longman, Inc., a Pearson Education company, Pearson PLC

 

The goals, overall structure, and approach of this fifth edition of Concepts of Programming Languages remain the same as those of the four earlier editions. The principal goal is to provide the reader with the tools necessary for the critical evaluation of existing and future programming languages. An additional goal is to prepare the reader for the study of compiler design.

 

The fifth edition is an updated version of the fourth, with the addition of a chapter on lexical and syntax analysis, as well as descriptions of some interesting features of JavaScript. The discussion of Java threads has been revised to reflect the changes made in later versions of that languages. In many places, material on older languages such as ALGOL 68 and Modula-2 has either been removed or replaced by similar material in contemporary languages such as C++, Java, and Perl.

 

This book describes the fundamental concepts of programming languages by discussing the design issues of the various language constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing design alternatives.

 

Any serious study of programming languages requires an examination of some related topics, among which are formal methods of describing the syntax and semantics of programming languages. Also, implementation techniques for various language constructs must be considered: syntax and semantics are the topics of Chapter 3, lexical and syntax analysis are discussed in Chapter 4, and implementation of subprogram linkage is the topic of Chapter 10. Implementation of some other language constructs is discussed in various other parts of the book.

 

The following paragraphs outline the contents of the fifth edition:

 

Chapter 1 begins with a rationale for studying programming languages. It then discusses the criteria used for evaluating programming languages and language constructs. The primary influences on language design, common design trade-offs, and the basic approaches to implementation are also examined.

 

Chapter 2 outlines the evolution of most of the important languages discussed in this book. Although no language is described completely, the origins, purposes, and contributions of each are discussed. This historical overview is valuable because it provides the background necessary to understanding the practical and theoretical basis for contemporary language design. It also motivates further study of language design and evaluation. In addition, because none of the remainder of the book depends on Chapter 2, it can be read on its own, independent of the other chapters.

 

Chapter 3 describes the primary formal method for describing the syntax of programming languages, BNF. This is followed by a description of attribute grammars, which play a prominent role in compiler design. The difficult task of semantic description is then explored, including brief introductions to the three most common methods: operational, axiomatic, and denotational semantics.

 

Chapter 4, which is new, introduces lexical and syntax analysis. This chapter is targeted to those colleges that no longer require a compiler design course in their curricula. None of the rest of the book depends on the material in Chapter 4.

 

Chapter 5 through 14 describe in detail the design issues for the primary constructs of the imperative languages. In each case, the design choices for several example languages are presented and evaluated. Specifically, Chapter 5 covers the many characteristics of variables, Chapter 6 covers data types, and Chapter 7 explains expression and assignment statements. Chapter 8 describes control statements, Chapters 9 and 10 look at subprograms and their implementation, and Chapter 11 examines data abstraction facilities. Chapter 12 is about language features that support object-oriented programming (inheritance and dynamic method binding), Chapter 13, about concurrent program units, and Chapter 14 is about exception handling.

 

The last two chapters (15 and 16) describe two of the most important alternative programming paradigms: functional programming and logic programming. Chapter 15 presents an introduction to Scheme, including descriptions of some of its primitive functions, special forms, and functional forms, as well as some examples of simple functions written in Scheme. Brief introductions to COMMON LISP, ML, and Haskell are given to illustrate some different kinds of functional language. Chapter 16 introduces logic programming and the logic programming language, Prolog.

 

Връзка: http://www.warez.ru:8080/FTP/Docs/Computer...esta.(2002).pdf

Link to comment
Share on other sites

  • 2 weeks later...

The Essentials of Computer Organization and Architecture,

1st edition (2003), by Linda Null & Julia Lobur

Publisher: Jones and Bartlett Publishers

 

The text is divided into eleven chapters and an appendix as follows:

 

Chapter 1 provides a historical overview of computing in general, pointing out the many milestones in the development of computing systems, and allowing the reader to visualize how we arrived at the current state of computing. This chapter introduces the necessary terminology, the basic components in a computer system, the various logical levels of a computer system, and the von Neumann computer model. It provides a high-level view of the computer system, as well as the motivation and necessary concepts for further study.

 

Chapter 2 provides thorough coverage of the various means computers use to represent both numerical and character information. Addition, subtraction, multiplication and division are covered once the reader has been exposed to number bases and the typical numeric representation techniques, including one's complement, two's complement, and BCD. In addition, EBCDIC, ASCII, and Unicode character representations are addressed. Fixed and floating point representation are also introduced. Codes for data recording and error detection and correction are covered briefly.

 

Chapter 3 is a classic presentation of digital logic and how it relates to Boolean algebra. This chapter covers both combinational and sequential logic in sufficient detail to allow the reader to understand the logical makeup of more complicated MSI (medium scale integration) circuits (such as decoders). More complex circuits, such as buses and memory, are also included. We have included optimization and Kmaps in a special "Focus On" section.

 

Chapter 4 illustrates basic computer organization and introduces many fundamental concepts, including the fetch-decode-execute cycle, the data path, clocks and buses, register transfer notation, and of course, the CPU. A very simple architecture, MARIE, and its ISA are presented to allow the reader to gain a full understanding of the basic architectural organization involved in program execution. MARIE exhibits the classical von Neumann design, and includes a program counter, an accumulator, an instruction register, 4096 bytes of memory, and two addressing modes. Assembly language programming is introduced to reinforce the concepts of instruction format, instruction mode, data format, and control that are presented earlier. This is not an assembly language textbook and was not designed to provide a practical course in assembly language programming. The primary objective in introducing assembly is to further the understanding of computer architecture in general. However, a simulator for MARIE is provided so assembly language programs can be written, assembled, and run on the MARIE architecture. The two methods of control, hardwiring and microprogramming, are introduced and compared in this chapter. Finally, Intel and MIPS architectures are compared to reinforce the concepts in the chapter.

 

Chapter 5 provides a closer look at instruction set architectures, including instruction formats, instruction types, and addressing modes. Instruction-level pipelining is introduced as well. Real-world ISAs (including Intel, MIPS, and Java) are presented to reinforce the concepts presented in the chapter.

 

Chapter 6 covers basic memory concepts, such as RAM and the various memory devices, and also addresses the more advanced concepts of the memory hierarchy, including cache memory and virtual memory. This chapter gives a thorough presentation of direct mapping, associative mapping, and set-associative mapping techniques for cache. It also provides a detailed look at overlays, paging and segmentation, TLBs, and the various algorithms and devices associated with each. A tutorial and simulator for this chapter is available.

 

Chapter 7 provides a detailed overview of I/O fundamentals, bus communication and protocols, and typical external storage devices, such as magnetic and optical disks, as well as the various formats available for each. DMA, programmed I/O, and interrupts are covered as well. In addition, various techniques for exchanging information between devices are introduced. RAID architectures are covered in detail, and various data compression formats are introduced.

 

Chapter 8 discusses the various programming tools available (such as compilers and assemblers) and their relationship to the architecture of the machine on which they are run. The goal of this chapter is to tie the programmer's view of a computer system with the actual hardware and architecture of the underlying machine. In addition, operating systems are introduced, but only covered in as much detail as applies to the architecture and organization of a system (such as resource use and protection, traps and interrupts, and various other services).

 

Chapter 9 provides an overview of alternative architectures that have emerged in recent years. RISC, Flynn's Taxonomy, parallel processors, instruction-level parallelism, multiprocessors, interconnection networks, shared memory systems, cache coherence, memory models, superscalar machines, neural networks, systolic architectures, dataflow computers, and distributed architectures are covered. Our main objective in this chapter is to help the reader realize we are not limited to the von Neumann architecture, and to force the reader to consider performance issues, setting the stage for the next chapter.

 

Chapter 10 addresses various performance analysis and management issues. The necessary mathematical preliminaries are introduced, followed by a discussion of MIPS, FLOPS, benchmarking, and various optimization issues with which a computer scientist should be familiar, including branch prediction, speculative execution, and loop optimization.

 

Chapter 11 focuses on network organization and architecture, including network components and protocols. The OSI model and TCP/IP suite are introduced in the context of the Internet. This chapter is by no means intended to be comprehensive. The main objective is to put computer architecture in the correct context relative to network architecture.

 

An appendix on data structures is provided for those situations where students may need a brief introduction or review of such topics as stacks, queues, and linked lists.

 

Връзка: http://www.warez.ru:8080/FTP/Docs/Computer...obur.(2003).chm

Link to comment
Share on other sites

Ako namerish i knizhka za diskretni cena nqma da imash ;)

Това не го разбрах :confused Книжка за дискретни? Нещо за цифрова обработка на сигнали ли? Дискретни анализи и т.н. или не съм разбрал правилно? Понеже някоя друга книжка за това ми се намира...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...