Saturday, 20 August 2011

Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs 

Author(s) : Harold Abelson, Gerald Jay Sussman and Julie Sussman 
Publication date : Jul 1996 
ISBN : 0-262-01153-0 
Pages : 657 
Publisher : The MIT Press 

Book excerpts: 

The material in The Structure and Interpretation of Computer Programs has been the basis of MIT's entry-level computer science subject since 1980. Most of the students who attend this subject have had little or no prior formal training in computation. 

Readers who complete this book should have a good feel for the elements of style and the aesthetics of programming. They should have command of the major techniques for controlling complexity in a large system. They should be capable of reading a 50-page-long program, if it is written in an exemplary style. They should know what not to read, and what they need not understand at any moment. They should feel secure about modifying a program, retaining the spirit and style of the original author. 

This book uses Scheme - a dialect of Lisp - but it doesn't formally teach the language. The purpose of this book is not to deal with the syntactic details of the language, but rather to get on with the real issues - figuring out what to compute, how to decompose problems into manageable parts, and how to work on the parts. 

Reviews: 

Amazon.com 

Smile "SICP is an excellent, perhaps the best, advanced introduction to computer science and programming." 



View/Download Structure and Interpretation of Computer Programs

Introduction To Programming With Java

Introduction To Programming With Java

Author(s) : David J. Eck 
Publication date : Feb 2001
Free license : Open Publication License 

Book excerpts:

Introduction To Programming With Java is a free, on-line textbook. It is suitable for use in an introductory programming course and for people who are trying to learn programming on their own. There are no prerequisites beyond a general familiarity with the ideas of computers and programs.

This text uses the Java programming language as the language of instruction. It requires Java version 1.1 or higher. In style, this is a textbook rather than a tutorial. That is, it concentrates on explaining concepts rather than giving step-by-step how-to-do-it guides. It is certainly not a Java reference book, and it is not even a comprehensive survey of all the features of Java. It is not a quick introduction to Java for people who already know another programming language. Instead, it is directed mainly towards people who are learning programming for the first time, and it is as much about general programming concepts as it is about Java in particular.

 View/Download Introduction To Programming With Java

Introduction To Programming With Java

Author(s) : David J. Eck 
Publication date : Feb 2001
Free license : Open Publication License 

Book excerpts:

Introduction To Programming With Java is a free, on-line textbook. It is suitable for use in an introductory programming course and for people who are trying to learn programming on their own. There are no prerequisites beyond a general familiarity with the ideas of computers and programs.

This text uses the Java programming language as the language of instruction. It requires Java version 1.1 or higher. In style, this is a textbook rather than a tutorial. That is, it concentrates on explaining concepts rather than giving step-by-step how-to-do-it guides. It is certainly not a Java reference book, and it is not even a comprehensive survey of all the features of Java. It is not a quick introduction to Java for people who already know another programming language. Instead, it is directed mainly towards people who are learning programming for the first time, and it is as much about general programming concepts as it is about Java in particular.

 

View/Download Introduction To Programming With Java

Introduction to Programming (in Java) - An Interdisciplinary Approach

Introduction to Programming (in Java) - An Interdisciplinary Approach

Authors : Robert Sedgewick and Kevin WayneDepartment of Computer SciencePrinceton University
Publication Date : 2007, preliminary version printed December 1, 2006

Terms and Conditions:

Robert Sedgewick wrote:
For information on obtaining permission for use of material from this work, please submit a request to the authors atrs@cs.princeton.edu and wayne@cs.princeton.edu.

Book Summary:

The basis for education in the last millennium was "reading, writing, and arithmetic." Now it is reading, writing and computing. Learning to program is an essential part of the education of every student in the sciences and engineering. Beyond direct applications, it is the first step in understanding the nature of the undeniable impact of computer science on the modern world. This book aims to teach programming to those who need or want to learn it, in a scientific context.

The primary goal is to empower students by supplying the experience and basic tools necessary to use computation effectively. The approach is to teach students that writing a program is a natural, satisfying and creative experience (not an onerous task reserved for experts). This book progressively introduces essential concepts, use classic applications from mathematics and the sciences to illustrate the concepts, and provide opportunities for students to write programs to solve engaging problems.

This book uses the Java programming language for all of the programs in this book—it refers to Java parenthetically in the title to emphasize the idea that the book is about programming and problem-solving, not Java per se. It teaches basic skills that are applicable to many modern computing environments. It is a self-contained treatment intended for people with no previous experience in programming.

Intended Audience:

This book is an interdisciplinary approach to the traditional CS1 curriculum, where it emphasizes the role of computing in other disciplines, from materials science to genomics to astrophysics to network systems. This approach emphasizes for students the essential idea that mathematics, science, engineering, and computing are intertwined in the modern world. While it is a CS1 textbook for first-year college students in the sciences and engineering (including computer science students), the book also can be used for self-study or as a supplement in a course that integrates programming with mathematics, science, and/or engineering.


View/Download Introduction to Programming (in Java) - An Interdisciplinary Approach

Introduction to Interactive Programming In Java

Introduction to Interactive Programming In Java 

Author(s): Lynn Andrea SteinThe Computers and Cognition GroupFranklin W. Olin College of Engineering 
Publication Date: 2003 
Publisher: Morgan Kaufmann Publishers 

Terms and Conditions: 

Quote:
You may make copies of these material for non-profit educational purposes only, provided that any existing copyright notice is preserved or, if no copyright notice appears, the following credit line is included: "© 2002 Lynn Andrea Stein"

Exclamation Complete Terms and Conditions 

Books excerpts: 

Interactive Programming is an introduction to computer programming intended for students in standard CS1 courses (or interested professionals) with no prior programming experience. It is the first textbook to rethink the traditional curriculum in light of the current interaction-based computer revolution.Interactive Programming shifts the foundation on which the teaching of Computer Science is based, treating computation as interaction rather thancalculation, thus providing students with a solid grounding in the thought that underlies modern software practice. Students still learn the basic and necessary elements of computer programming and the Java language, but the context in which they learn it is more consistent both with Java's tools and philosophy and with the prevailing practice from which it arises. 

Interactive Programming provides an alternate entry into the computer science curriculum. It teaches problem decomposition, program design, construction, and evaluation, beginning with the following premises: A program is a community of interacting entities. Its "pieces" are these implicitly or explicitly concurrent entities: user interfaces, databases, network services, etc. They are combined by virtue of ongoing interactions which are constrained by interfaces and by protocols. A program is evaluated by its adherence to a set of invariants, constraints, and service guarantees -- timely response, no memory leaks, etc. 

Because it begins from this alternate notion of what programming is about, Interactive Programming tells a rather different story from the traditional introductory programming book. By its end, students are empowered to write and read code for client-server chat programs, networked video games, web servers, user interfaces, and remote interaction protocols. They build event-driven graphical user interfaces and spawn cooperating threads. Each of these programs -- all of which are beyond the scope of traditionally taught introductory courses -- is a natural extension of the community metaphor for computation. 

Intended Audience: 

This book is designed for use by students who have no prior programming experience (typically college freshmen). It ultimately teaches both the fundamentals of computer programming and the details of the Java programming language. 



View / Download Interactive Programming In Java

Introduction to Computing - Explorations in Language, Logic, and Machines

Introduction to Computing - Explorations in Language, Logic, and Machines 


Author : David EvansDepartment of Computer ScienceUniversity of Virginia
Publication Date : 19 August 2009
License : This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.

About the Book:

This book is used for the course cs120:Introduction to Computing at the Department of Computer Science, University of Virginia.

Quote:
Course Description.

In the past hundred years, computer science has changed the world more than any other field. Without computer science, humans would not have walked on the Moon, modern medicine would not exist, and Wal-Mart would be a small store in Arkansas. But this course is not just about the pragmatic impact of computer science; it is about how computer science changes the ways we think, solve problems and understand the world.

Despite its name, computer science has very little to do with the beige boxes we call computers, and it is far from being a science. It has more in common with music and mathematics than it does with science or engineering. At its core, computer science is the study of imperative knowledge. Whereas mathematics is all about declarative knowledge ("what is"), computer science is all about "how to" knowledge.

Computer science is the study of information processes. Computer scientists study how to describe, predict properties of, and efficiently implement information processes.

Most of what we know about describing information processes stems from three simple ideas:
1. You can define things in terms of themselves (recursive definitions).
2. You can treat procedures and data as one and the same (universality).
3. When you give something a name, it becomes more useful (abstraction).

Although these ideas are simple, they have profound implications that it takes many years to fully appreciate.

The kinds of properties we want to predict about information processes include whether or not there is a procedure that can always solve a given problem (computability), and how much time and space will be required to solve a given problem (complexity).


View/Download Introduction to Computing - Explorations in Language, Logic, and Machines

Introduction to Computer Science using Java

Introduction to Computer Science using Java

Author(s) : Bradley Kjell
Publication date : July 2003

Book excerpts:

This book is a compilation of lecture notes which cover most of a beginning course in computer science using Java in CSCU Computer Science Department. As any other lecture notes they can be used as a supplement for a textbook or to be used alone.

Inside you will find discussion and samples on important programming topics, without assuming any programming background. You can learn quite a lot about Java by going through this book. Try to do one or two of the suggested programming exercises per chapter.

Note: You should have the Java Development Kit (JDK) version 1.3 or later from JavaSoft and a simple text editor such as NotePad.



View/Download Introduction to Computer Science using Java | German | French

A Balanced Introduction to Computer Science


A Balanced Introduction to Computer Science 

Author : David ReedDepartment of Computer ScienceCreighton University, Omaha
ISBN : 013046709X
Pages : 400
Publisher : Prentice Hall
Publication Date : 2004

Excerpts from the Introduction:

There are three main goals to this text and its accompanying resources. First, it serves to expose the student to the breadth that is the field of computer science. Computer science is more than just the study of computers – it focuses on all facets of computation, from the design and analysis of algorithms (step-by-step sequences of instructions for carrying out tasks), to the engineering and manufacture of computer components, to the development of software systems. Through readings and the use of online resources, the student will study topics such as the history of computer technology, the underlying architecture of modern computers, the translation and execution sequence of programs, and the capabilities and limitations of computation. Using software simulators, the student will build virtual components of a computer and watch the flow of information as a program is translated and executed on the low-level machinery. Through this combination of reading and experimentation, hopefully these concepts will come alive for the student and provide a sense of what computer science is all about.

The second main goal of this text is to teach the student the fundamentals of programming. Programming is the process of solving problems on the computer, that is, devising solutions to specific tasks and formalizing those solutions in a language the computer can understand and execute. Programming is the central activity in computer science, providing an inroad to many of the interesting facets and challenges of the field. In learning to program, the student will be learning to analyze problems, think logically, formalize his or her thoughts, and solve problems. It is a discipline, since a systematic approach must be learned, but it is also a creative process, since novel approaches must be found to attack new problems. And since many of the skills developed in programming apply to problem solving in general, experience gained through this text should carry over to other disciplines as well.

The third main goal of this text is to demonstrate the scientific and interdisciplinary nature of computing. Research in various fields of study, most notably the mathematical and natural sciences, is becoming increasingly dependent on computers and programming. By studying and investigating applications in fields such as biology, physics, psychology, and even economics, the student will learn to apply his or her programming skills to a wide range of problems. In addition, the student will develop empirical skills that are common to all scientific endeavors.

Reviews:

Amazon.com

Smile "If you are in the queue to teach an introduction to computer science course, then you should examine this book. It is well written and the level of presentation is appropriate for the typical student taking such a course. It could also be used for self-study."

Sad "I would never recommend this book to anyone. If the author wanted to keep the subject simple, he should have avoided the technical details all together. If he wanted to present some technical detail, then he should have made sure that they don't contradict each other and are not missing important points and updates."
 

View/Download A Balanced Introduction to Computer Science 

A College Student's Guide to Computers in Education

                   
A College Student's Guide to Computers in Education




Author : David Moursund, College of Education, University of Oregon Publication Date : 2007
Free License : Creative Commons Attribution-Noncommercial 3.0 License

Excerpts from the Abstract:

This short book is for undergraduate and graduate college and university students, and for others thinking about enrolling in higher education courses. The information and ideas presented will help you to obtain an education that will be useful to you throughout your life in our rapidly changing Information Age world.

Change is an underlying theme of this book. You are living at a time of a rapid technological change. The rate of change is increasing. Such change brings with it both threats and opportunities. You can shape your informal and formal education to diminish the threats and increase the opportunities.

Gaining a competitive advantage is another underlying theme of the book. Whatever your areas of interest, you can gain a competitive advantage by developing a higher level of expertise in the areas and by developing an increased level of expertise in using computers in the areas. Computer technology is a powerful aid to representing and helping to solve problems and accomplish tasks in every academic discipline.

      

View/Download A College Student's Guide to Computers in Education

A Beginners C++

A Beginners C++

Author(s) : Neil Gray 
Publication date : 2002

Book excerpts:

A Beginners C++ is primarily intended for introductory Computer Science courses that use C++ as an implementation language. However, the book should be equally suited to an individual who wants to learn how to program their own personal computer.

This book assumes that you are a computer literate. You are required to have experience with word processing packages, and possibly other packages like spreadsheets and data bases. Although most schools do provide a limited introduction to programming (usually in Pascal or possibly a dialect of Basic), this book does not rely on such past experience.

It is expected that you will use one of the modern Integrated Development Environments (IDE) on a personal computer. Examples of such environments include the Borland environment for Intel PCs and the Symantec environment for Macintosh/PowerPC machines. 



View/Download A Beginners C++

Lessons In Electric Circuits volume VI - EXPERIMENTS





DOWNLOAD BOOK FROM HERE ---->>

Lessons In Electric Circuits volume V - REFERENCE





DOWNLOAD BOOK FROM HERE ---->>

Lessons In Electric Circuits volume IV- DIGITAL





DOWNLOAD BOOK FROM HERE ---->>

Lessons In Electric Circuits volume III - SEMICONDUCTORS





DOWNLOAD BOOK FROM HERE ---->>

Lessons In Electric Circuits volume II - AC





DOWNLOAD BOOK FROM HERE ---->>

Lessons In Electric Circuits volume I - DC




DOWNLOAD BOOK FROM HERE ---->>

Saturday, 13 August 2011

Elements of Electromagnetics – Matthew N O Sadiku SOLUTIONS



DOWNLOAD BOOK FROM HERE ---->> 

Introductory Circuit Analysis Robert L. Boylestad SOLUTIONS




DOWNLOAD BOOK FROM HERE ---->> 

Schaum's Outline - Basic Circuit Analysis




DOWNLOAD BOOK FROM HERE ---->> 

Microelectronic Circuits by Sedra Smith, 5th Edition SOLUTIONS




DOWNLOAD BOOK FROM HERE ---->> 

Microelectronic Circuits by Sedra Smith, 5th Edition




DOWNLOAD BOOK FROM HERE ---->> 

Introductory Circuit Analysis Robert L. Boylestad





DOWNLOAD BOOK FROM HERE ---->> 

Electrical and Electronic Principles and Technology 2E (John Bird)





DOWNLOAD BOOK FROM HERE ---->> 

INTEGRATED ELECTRONICS - MILIMAN HALKIAS




DOWNLOAD BOOK FROM HERE ---->> 

Elements of Electromagnetics – Matthew N O Sadiku



DOWNLOAD BOOK FROM HERE ---->>