Intelligentedu
Free Computer and I.T. Books


 



     Blog Roll:


     Top Links:

June 9, 2006

Free C and C++ Programming Books from Wikibooks

Here are two free online programming books: one teaches you C++ programming and the other covers C Programming. These are compliments of wikibooks.org, are written by this site's community, and they accept experts in these subjects as authors to write and edit these books.


C++ Programming Wikibook

This book covers the essential features of the C++ language and its standard library (STL). It also provides a survey of important concepts, software design, and design patterns, but as a stepping stone for the reader or as an introduction to more advanced C++ concepts. Its primary objective is to provide an appropriate book for an introduction course on the C++ programming language and its computer science concepts or related applications.

Table of contents

There is also a whole book view to ease copy/printing (may not reflect the actual state of the book).

About this book
  1. Foreword - introduction to this (Wiki)book and Authors references.
  2. Introduction - simple introduction to the book topic.

C++, the programming language

Getting Started
  1. What is a programming language? Development stage: 75% (as of Sep 20, 2005)
  2. What is a program? Development stage: 100% (as of Oct 14, 2005)
  3. Understanding Source Files Development stage: 75% (as of Sep 20, 2005)
    - Introduction to the Source Code and Source File concepts.
  4. A statically-typed free-form multi-paradigm language Development stage: 75% (as of Sep 20, 2005)
    - this is C++, introduction to the Statically Typed and Type Checking concepts.
    1. Programming Paradigms Development stage: 75% (as of Sep 20, 2005)
      - introduction to the Programming Paradigms (Procedural, Generic, Object and Object-Oriented) with some more detail in the last one.
  5. The compiler Development stage: 50% (as of Sep 20, 2005)
    - introduction to the compiler and its directives (inline, static, etc...), to simple optimizations and to the debugging process (breakpoints and watchpoints) and compile versus runtime time problems.
  6. The preprocessor Development stage: 50% (as of Sep 20, 2005)
    - introduction to the preprocessor and its directives (including #include and so the standard headers).

Fundamentals
  1. Code Conventions (Source Code Style) Development stage: 75% (as of Sep 20, 2005)
    - all about comments, identifier naming, whitespace and indentation, code blocks and files organization...
  2. Namespaces Development stage: 25% (as of Sep 20, 2005)
  3. Variables Development stage: 100% (as of Oct 14, 2005)
    - introduction to variables (declaration, assignment, reference and scope), the basic data types and the special types (like arrays and pointers) and to the type qualifiers.
  4. Enumerative data types (enum) Development stage: 25% (as of Mar 20, 2006)
  5. Assignment and Operators Development stage: 75% (as of Sep 20, 2005)
    - introduction to the Operators, the order of operations, the Operator Precedence (Composition), the special Operators like * (Pointers) and & (References), sizeof(), new, delete and mention of Operator overloading that is extended in another section.
  6. Introduction to arrays Development stage: 25% (as of Oct 13, 2005)
  7. Type casting Development stage: 75% (as of Sep 20, 2005)
    - automatic, explicit and advanced type casts.
  8. Logical operators Development stage: 75% (as of Nov 3, 2005)
    - introduction to the && (and), || (or), and ! (not) logical Operators, including boolean logic.
  9. Flow of control in a program Development stage: 25% (as of Sep 20, 2005)
    - introduction to the Conditionals (if, if-else, switch), Loops (while, do-while, for iterations) and other control flow constructs.
  10. Introducing functions Development stage: 50% (as of Sep 20, 2005)
    - introduction to functions (including the main()), parameters (by reference and value) and constant arguments, multiple parameters, returning values (also constant results), recursive functions, pointers to functions and function overloading.

Object and Object-Oriented Programming
  1. Structures Development stage: 25% (as of Sep 20, 2005)
  2. Unions Development stage: 25% (as of Sep 20, 2005)
  3. Classes Development stage: 25% (as of Sep 20, 2005)
  4. Abstract classes Development stage: 00% (as of Sep 20, 2005)
  5. Pure abstract classes (interfaces or ADT's (abstract data types) ) Development stage: 00% (as of Sep 20, 2005)
  6. Operator overloading Development stage: 25% (as of Sep 20, 2005)

Miscellaneous and Advanced Features
  1. Exception handling Development stage: 25% (as of Sep 20, 2005)
  2. Templates Development stage: 25% (as of Sep 20, 2005)
  3. Run-Time Type Information (RTTI) Development stage: 50% (as of Dec 23, 2005)

The Standard Library
  1. The string class Development stage: 00% (as of Sep 20, 2005)
  2. The Standard Template Library (STL) Development stage: 25% (as of Sep 20, 2005)
  3. File and screen output Development stage: 00% (as of Sep 20, 2005)

In the real world
  1. Boost Library Development stage: 25% (as of Sep 20, 2005)
  2. Multi-Threading Development stage: 25% (as of Sep 20, 2005)
  3. Related or Similar Languages Development stage: 25% (as of Sep 20, 2005)
  4. What is an API? Development stage: 00% (as of Oct 13, 2005)
  5. Win32 (aka WinAPI) Development stage: 25% (as of Sep 20, 2005)
    1. Win32 Wrappers Development stage: 25% (as of Sep 20, 2005)
  6. Cross Platform Wrappers (Threads/Networking/GUI) Development stage: 25% (as of Sep 20, 2005)
  7. Introduction into design patterns Development stage: 25% (as of Jan 1, 2006)
  8. Optimizing Your Programs Development stage: 00% (as of May 12, 2006)

Appendix A: Internal References
  1. List of Keywords Development stage: 75% (as of Sep 20, 2005)
    [included next to The Compiler]
  2. List of Standard Headers Development stage: 75% (as of Sep 20, 2005)
    [included in The preprocessor (next to the #include keyword)]
  3. Table of Operators Development stage: 75% (as of Sep 20, 2005)
    [included in the introduction to Operators]
  4. Table of Data Types Development stage: 75% (as of Sep 20, 2005)
    [included in the introduction to Variables]

Appendix B: External References
  1. Weblinks to various relevant locations (documentation sites, compilers, libs, forums and online books, etc...) Development stage: 25% (as of Sep 20, 2005)
  2. Books, information on physically printed on dead trees books. Development stage: 25% (as of Sep 20, 2005)
  3. Windows Programming

Appendix C: Source Code Examples
  • Complete (code and included explanation and more complex examples):
  1. Your first program - "Hello World" Development stage: 75% (as of Sep 20, 2005)
  2. The Standard IO Stream Development stage: 75% (as of Sep 20, 2005)
  • Code snips (simple programs or code part):
  1. Simple "Hello World" Development stage: 75% (as of Sep 20, 2005)
  2. Storing two values in integer variables v1 Development stage: 100% (as of Sep 20, 2005) - Storing two values in integer variables v2 Development stage: 100% (as of Sep 20, 2005)
  3. Using a Class Development stage: 75% (as of Sep 20, 2005)

Appendix D: Extra Concepts
  • C++ & Modeling
  1. Unified Modeling Language (UML) Development stage: 25% (as of Sep 20, 2005)
  • API Wrappers
  1. MFC (Microsoft Foundation Classes) Development stage: 50% (as of Sep 20, 2005)
  • C++ Compiler/IDE Specific Information
  1. Microsoft Visual Studio Development stage: 00% (as of Sep 20, 2005)
    1. Using Static Libraries Development stage: 75% (as of Oct 17, 2005) - setting up the IDE to use the Boost library


C Programming Wikibook

Table of contents

Introduction
Why Learn C
History
What you need before you can learn
Using a Compiler
A Taste of C
Exercise

Beginning C
Basic Concepts
Basics of Compilation
Programming Structure and Style
Error Catching
Variables
Simple Input and Output
Simple Math in C
Further Math in C
Program Flow
Procedures and Functions
The Preprocessor
Libraries
Standard libraries
File I/O
Exercises

In-depth C ideas
Arrays & Strings
Pointers and relationship to arrays
Memory Management
String Manipulation
C complex types
Sockets and Networking (UNIX)
Common Practices

C and beyond
Language Overloading and Extensions
Combining Languages
Commented Source Code Library

Computer Programming

The following articles are C adaptions from articles of the Computer programming book.

Statements

C Reference Tables

This section has some tables and lists of C entities.


Popularity: 14% [?]




Related Posts:
  • JavaScript Wikibook
  • Visual Basic .NET Book From WikiBooks
  • Free A+ Certification Textbook from Wikibooks
  • Non-Programmer's Tutorial for Python
  • Free C# Programming Book from Wikibooks


  • Filed under: Free Computer and I.T. Books — computer_teacher @ 11:33 pm

    No Comments »

    No comments yet.

    RSS feed for comments on this post.

    Leave a comment

    You must be logged in to post a comment.



    Powered by WordPress