Wednesday, July 2, 2008

Algorithms & Data Structures : The Science Of Computing (Electrical and Computer Engineering Series)

While many computer science textbooks are confined to teaching programming code and languages, Algorithms and Data Structures: The Science of Computing takes a step back to introduce and explore algorithms -- the content of the code. Focusing on three core topics: design (the architecture of algorithms), theory (mathematical modeling and analysis), and the scientific method (experimental confirmation of theoretical results), the book helps students see that computer science is about problem solving, not simply the memorization and recitation of languages. Unlike many other texts, the methods of inquiry are explained in an integrated manner so students can see explicitly how they interact. Recursion and object oriented programming are emphasized as the main control structure and abstraction mechanism, respectively, in algorithm design. Designed for the CS2 course, the book includes text exercises and has laboratory exercises at the supplemental Web site.

Download Link 1
Download Link 2

Tuesday, July 1, 2008

The Spirit of Computing (3rd Edition)


This book presents the concepts, methods, and results that are fundamental to the science of computing. The book begins with the basic ideas of algorithms such as the structure and the methods of data manipulation, and then moves on to demonstrate how to design an accurate and efficient algorithm. Inherent limitations to algorithmic design are also discussed throughout the second part of the text. The third edition features an introduction to the object-oriented paradigm along with new approaches to computation. Anyone interested in being introduced to the theory of computer science.

Download Link 1
Download Link 2
Download Link 3

A Programmer's Companion to Algorithm Analysis

Focusing on practical issues, A Programmer's Companion to Algorithm Analysis bridges the gap between algorithms and software programs. This book explains the fundamental differences between the computational model assumed for algorithms and the real architectures in which programs execute. It highlights the pitfalls that can occur when implementing an algorithm as software and offers suggestions to solve these problems. The book also explores the interactions among program, compiler, and run-time support system, contrasting this with the simpler model assumed for algorithms. Intended for software developers and programmers, it places particular emphasis on the implications of the memory hierarchy on program efficiency.

Download Link 1
Download Link 2

Beginning Programming (Wrox Beginning Guides)


# Programming allows developers to create a sequence of instructions that enable computers to perform certain functions and tasks
# Offering the basic best practices and skills for novice programmers, this book helps readers gain new skills for writing programs and developing applications
# Teaches programming using C++ and explores scripting with JavaScript and VBScript, which are all free and don't require the reader to purchase any software
# Includes programming projects and real-world code examples that can be modified and expanded upon

Download Link 1
Download Link 2

Beginning Programming For Dummies (Beginning Programming for Dummies)

Beginning ProgrammingA significant technology update to the existing edition, with more than thirty percent new content

Covers the main features of computer programming: the basics, how to write a program, getting started with Liberty BASIC, writing large programs by using subprograms, creating a user interface, debugging programs, dealing with data structures, basic Internet programming, and much more

Helps readers choose the best programming language to accomplish a particular task, understand the tools that programmers use, and write their own programs to make a job easier or to launch a programming career

Author has written fifteen previous For Dummies books as well as three editions of the popular Steal This Computer Book: WhatThey Won’t Tell You About the Internet

CD-ROM includes several freeware and shareware programs for writing programs, all the examples and code provided in the book, and a bonus chapter

Download Link 1
Download Link 2

Learn to Program (Pragmatic Programmers)

Learn to ProgramIt's now easier to learn to write your own computer software than it has ever been before. Now everyone can learn to write programs for themselves--no previous experience is necessary. Chris Pine takes a thorough, but light-hearted approach that teaches you how to program with a minimum of fuss or bother. Starting with small, simple one-line programs to calculate your age in seconds, you'll see how to have your webpage send you email, to shuffle your music more intelligently, to rename your photos from your digital camera, and more. You'll learn the same technology used to drive modern dynamic websites and large, professional applications.

Download Link
Download Link 2

The Practice of Programming

Coauthored by Brian Kernighan, one of the pioneers of the C programming language, The Practice of Programming is a manual of good programming style that will help any C/C++ or Java developer create faster, more maintainable code.

Early sections look at some of the pitfalls of C/C++, with numerous real-world excerpts of confusing or incorrect code. The authors offer many tips and solutions, including a guide for variable names and commenting styles. Next, they cover algorithms, such as binary and quick sorting. Here, the authors show how to take advantage of the built-in functions in standard C/C++. When it comes to data structures, such as arrays, linked lists, and trees, the authors compare the options available to C, C++, Java, and even Perl developers with a random-text-generation program (using a sophisticated Markov chain algorithm) written for each language.

Subsequent sections cover debugging tips (including how to isolate errors with debugging statements) and testing strategies (both white-box and black-box testing) for verifying the correctness of code. Final sections offer tips on creating more portable C/C++ code, with the last chapter suggesting that programmers can take advantage of interpreters (and regular expressions) to gain better control over their code. A handy appendix summarizes the dozens of tips offered throughout the book.

With its commonsense expertise and range of examples drawn from C, C++, and Java, The Practice of Programming is an excellent resource for improving the style and performance of your code base.

Download Link