Web Source for free Computer books
Ads by Google
Welcome to Free TEKBOOKS!
- C++ GUI
Programming with Qt 3 - Straight from Trolltech,
this book covers all you need to build industrial-strength
applications with Qt 3.2.x and C++--applications that run
natively on Windows, Linux/Unix, Mac OS X, and embedded
Linux with no source code changes! The book teaches solid Qt
programming practices; it is not a rehash of the
documentation. You'll find start-to-finish coverage packed
with examples, plus a CD with the Qt 3.2 toolset and Borland
C++ compilers--including a non-commercial Qt 3.2 for Windows
available nowhere else!
Direct Link to PDF download.
Read my review of this book on Slashdot
-
C++ Reference Guide - extensive guide on using
Standard Template Library. You might have to register with
InformIT to get full
access.
-
ZooLib Cookbook - ZooLib is a cross-platform
application framework. What it allows you to do is to write
a single set of C++ sources and compile for different
operating systems and microprocessors to produce native
executable applications with very little need for
platform-specific client code. This is of great benefit to a
developer, as it allows you to support your application on a
variety of platforms without a lot of extra work developing
parallel codebases. It also allows you to spend the bulk of
your time developing on whatever platform you enjoy the most
while delivering for the platforms your users need, even if
they're not the same.
- Reusable
Software Components - This book introduces you to
new and useful techniques of programming microcontrollers
with the high level language C. The concept of reusable
components evolved from research aimed at object oriented
programming for microcontrollers in C. It was found that
classes written in C can be packaged as components for easy
reuse and modification needed to extend their capability. In
this book you will learn how to create classes in C.
Instances of these classes are objects, and within the
limites of the microcontroller and other peripherals, as
many instances of these objects as are needed can be
created. We call these classes components. Such software
components have advantages over the corresponding hardware
components. In the construction of components, we can apply
the concepts of inheritance and polymorphism. Inheritance
allows extension of the basic component to meet new
requirements without modification of the basic class code.
Polymorphism, or late bindig, permits the program to select
one of several alternative functions or methods, the choice
of which to execute cannot be determined until run time. It
will be found that careful application of polymorphism can
allow a savings of program code.
- C++
in action - My work at Microsoft gave me the unique
experience of working on large software projects and
applying and developing state of the art design and
programming methodologies. Of course, there are plenty of
books on the market that talk about design, programming
paradigms, languages, etc. Unfortunately most of them are
either written in a dry academic style and are quite
obsolete, or they are hastily put together to catch the
latest vogue. There is a glut of books teaching programming
in C, C++ and, more recently, in Java. They teach the
language, all right, but rarely do they teach programming.
- Optimizing
C++ - Optimizing C++ provides working programmers
and those who intend to be working programmers with a
practical, real-world approach to program optimization. Many
of the optimization techniques presented are derived from my
reading of academic journals that are, sadly, little known
in the programming community. This book also draws on my
nearly 30 years of experience as a programmer in diverse
fields of application, during which I have become
increasingly concerned about the amount of effort spent in
reinventing optimization techniques rather than applying
those already developed.
- Who's
Afraid of C++? - Whether you are using this book on
your own or in school, there are many good reasons to learn
how to program. You may have a problem that hasn't been
solved by commercial software; you may want a better
understanding of how commercial programs function so you can
figure out how to get around their shortcomings and
peculiarities; or perhaps you're just curious about how
computers perform their seemingly magical feats. Whatever
the initial reason, I hope you come to appreciate the great
creative possibilities opened up by this most ubiquitous of
modern inventions.
- Teach Yourself
C++ in 21 Days - Computer languages have undergone
dramatic evolution since the first electronic computers were
built to assist in telemetry calculations during World War
II. Early on, programmers worked with the most primitive
computer instructions: machine language. These instructions
were represented by long strings of ones and zeroes. Soon,
assemblers were invented to map machine instructions to
human-readable and -manageable mnemonics, such as ADD and
MOV. In time, higher-level languages evolved, such as BASIC
and COBOL. These languages let people work with something
approximating words and sentences, such as Let I = 100.
These instructions were translated back into machine
language by interpreters and compilers. An interpreter
translates a program as it reads it, turning the program
instructions, or code, directly into actions. A compiler
translates the code into an intermediary form. This step is
called compiling, and produces an object file. The compiler
then invokes a linker, which turns the object file into an
executable program. Because interpreters read the code as it
is written and execute the code on the spot, interpreters
are easy for the programmer to work with. Compilers,
however, introduce the extra steps of compiling and linking
the code, which is inconvenient. Compilers produce a program
that is very fast each time it is run. However, the
time-consuming task of translating the source code into
machine language has already been accomplished. Another
advantage of many compiled languages like C++ is that you
can distribute the executable program to people who don't
have the compiler. With an interpretive language, you must
have the language to run the program.
- Programming
in C: UNIX System Calls and Subroutines using C - In
order to use Solaris and most other Unix Systems you will
need to be familiar with the Common Desktop Environment (CDE).
Before embarking on learning C with briefly introduce the
main features of the CDE. Most major Unix vendors now
provide the CDE as standard. Consequently, most users of the
X Window system will now be exposed to the CDE. Indeed,
continuing trends in the development of Motif and CDE will
probably lead to a convergence of these technologies in the
near future. This section highlights the key features of the
CDE from a Users perspective.
-
Numerical Recipes in C - The new and greatly
expanded second edition of the highly popular Numerical
Recipes in C features over 100 new routines and upgraded
versions of the original routines. The book remains the most
practical, comprehensive handbook of scientific computing
available today.
- How
to Think Like a Computer Scientist (C++) - The goal
of this book is to teach you to think like a computer
scientist. I like the way computer scientists think because
they combine some of the best features of Mathematics,
Engineering, and Natural Science. Like mathematicians,
computer scientists use formal languages to denote ideas
(specifically computations). Like engineers, they design
things, assembling components into systems and evaluating
tradeoffs among alternatives. Like scientists, they observe
the behavior of complex systems, form hypotheses, and test
predictions. The single most important skill for a computer
scientist is problem-solving. By that I mean the ability to
formulate problems, think creatively about solutions, and
express a solution clearly and accurately. As it turns out,
the process of learning to program is an excellent
opportunity to practice problem-solving skills. That's why
this chapter is called "The way of the program." Of course,
the other goal of this book is to prepare you for the
Computer Science AP Exam. We may not take the most direct
approach to that goal, though. For example, there are not
many exercises in this book that are similar to the AP
questions. On the other hand, if you understand the concepts
in this book, along with the details of programming in C++,
you will have all the tools you need to do well on the exam.
See also
Python and
Java
versions.
- Writing
Bug-Free C Code - This book describes an alternate
class methodology that provides complete data hiding and
fault-tolerant run-time type checking of objects in C
programs. With it, you will produce code that contains fewer
bugs. The class methodology helps to prevent bugs by making
it easier to write C code. It does this by eliminating data
structures (class declarations) from include files, which
makes a project easier to understand (because there is not
as much global information), which makes it easier to write
C code, which helps to eliminate bugs. This class
methodology, which uses private class declarations, is
different from C++, which uses public class declarations.
The class methodology helps detect bugs by providing for
both compile-time and run-time type checking of pointers
(handles) to class objects. This run-time type checking
catches a lot of bugs for you since invalid object handles
(the cause of a lot of bugs) are automatically detected and
reported. We have all, at some point in our programming
careers, spent several hours or days tracking down a
particularly obscure bug in our code. Have you ever stepped
back and wondered how following a different programming
methodology might have prevented such a bug from occurring
or have automatically detected it? Or have you tracked down
the same type of bug several times?
-
The C Book - This is not a tutorial introduction to
programming. The book is designed for programmers who
already have some experience of using a modern high-level
procedural programming language. As we explain later, C
isn't really appropriate for complete beginners—though many
have managed to use it—so the book will assume that its
readers have already done battle with the notions of
statements, variables, conditional execution, arrays,
procedures (or subroutines) and so on. Instead of wasting
your time by ploughing through tedious descriptions of how
to add two numbers together and explaining that the symbol
for multiplication is *, the book concentrates on the things
that are special to C. In particular, it's the way that C is
used which is emphasized.
-
Data Structures and Algorithms with Object-Oriented Design
Patterns in C++ - This book was motivated by my
experience in teaching the course E&CE 250: Algorithms and
Data Structures in the Computer Engineering program at the
University of Waterloo. I have observed that the advent of
object-oriented methods and the emergence of object-oriented
design patterns has lead to a profound change in the
pedagogy of data structures and algorithms. The successful
application of these techniques gives rise to a kind of
cognitive unification: Ideas that are disparate and
apparently unrelated seem to come together when the
appropriate design patterns and abstractions are used.
- C++
FAQ Lite - frequently asked questions
-
Thinking in C++, 2nd Edition - 2 volumes of Bruce
Eckel's book, one of the easiest to read and most definitive
titles for C++
Free Software & Code
Sites for accessing tonnes of code. SourceForge
More Source Code
Freashmeat
Useful Links