Introduction to Programming Using Java
Free

Introduction to Programming Using Java

By David J. Eck
Free
Book Description

Introduction to Programming Using JAVA. 700 pages. The first programming course at Hobart and William Smith Colleges covers the Java programming language. Since 1996, the textbook for the course has been this Java textbook that was written for the course. The current version 2009 is Introduction to Programming Using Java, Version 6.0. It requires Java 5.0 or higher. It is an introduction to programming and also an introduction to Java directed towards people who do not have any background in programming, although it might also be useful for experienced programmers who want to learn something about Java. It is certainly not meant to provide complete coverage of the Java language. ABOUT THE AUTHOR: David J. Eck, Ph.D. in Mathematics (Brandeis University, 1980) is working as a teacher and instructor at the Department of Mathematics and Computer Science of the Hobart and William Smith Colleges.

Table of Contents
  • Title Page
  • Preface
  • Chapter 1: Overview: The Mental Landscape
    • Section 1.1: The Fetch and Execute Cycle: Machine Language
    • Section 1.2: Asynchronous Events: Polling Loops and Interrupts
    • Section 1.3: The Java Virtual Machine
    • Section 1.4: Fundamental Building Blocks of Programs
    • Section 1.5: Objects and Object-oriented Programming
    • Section 1.6: The Modern User Interface
    • Section 1.7: The Internet and Beyond
    • Quiz on Chapter 1
  • Chapter 2: Programming in the Small I: Names and Things
    • Section 2.1: The Basic Java Application
    • Section 2.2: Variables and the Primitive Types
      • Subsection 2.2.1: Variables
      • Subsection 2.2.2: Types and Literals
      • Subsection 2.2.3: Variables in Programs
    • Section 2.3: Strings, Objects, Enums, and Subroutines
      • Subsection 2.3.1: Built-in Subroutines and Functions
      • Subsection 2.3.2: Operations on Strings
      • Subsection 2.3.3: Introduction to Enums
    • Section 2.4: Text Input and Output
      • Subsection 2.4.1: A First Text Input Example
      • Subsection 2.4.2: Text Output
      • Subsection 2.4.3: TextIO Input Functions
      • Subsection 2.4.4: Formatted Output
      • Subsection 2.4.5: Introduction to File I/O
      • Subsection 2.4.6: Using Scanner for Input
    • Section 2.5: Details of Expressions
      • Subsection 2.5.1: Arithmetic Operators
      • Subsection 2.5.2: Increment and Decrement
      • Subsection 2.5.3: Relational Operators
      • Subsection 2.5.4: Boolean Operators
      • Subsection 2.5.5: Conditional Operator
      • Subsection 2.5.6: Assignment Operators and Type-Casts
      • Subsection 2.5.7: Type Conversion of Strings
      • Subsection 2.5.8: Precedence Rules
    • Section 2.6: Programming Environments
      • Subsection 2.6.1: Java Development Kit
      • Subsection 2.6.2: Command Line Environment
      • Subsection 2.6.3: IDEs and Eclipse
      • Subsection 2.6.4: The Problem of Packages
    • Exercises for Chapter 2
    • Quiz on Chapter 2
  • Chapter 3: Programming in the Small II: Control
    • Section 3.1: Blocks, Loops, and Branches
      • Subsection 3.1.1: Blocks
      • Subsection 3.1.2: The Basic While Loop
      • Subsection 3.1.3: The Basic If Statement
    • Section 3.2: Algorithm Development
      • Subsection 3.2.1: Pseudocode and Stepwise Refinement
      • Subsection 3.2.2: The 3N+1 Problem
      • Subsection 3.2.3: Coding, Testing, Debugging
    • Section 3.3: The while and do..while Statements
      • Subsection 3.3.1: The while Statement
      • Subsection 3.3.2: The do..while Statement
      • Subsection 3.3.3: break and continue
    • Section 3.4: The for Statement
      • Subsection 3.4.1: For Loops
      • Subsection 3.4.2: Example: Counting Divisors
      • Subsection 3.4.3: Nested for Loops
      • Subsection 3.4.4: Enums and for-each Loops
    • Section 3.5: The if Statement
      • Subsection 3.5.1: The Dangling else Problem
      • Subsection 3.5.2: The if...else if Construction
      • Subsection 3.5.3: If Statement Examples
      • Subsection 3.5.4: The Empty Statement
    • Section 3.6: The switch Statement
      • Subsection 3.6.1: The Basic switch Statement
      • Subsection 3.6.2: Menus and switch Statements
      • Subsection 3.6.3: Enums in switch Statements
      • Subsection 3.6.4: Definite Assignment
    • Section 3.7: Introduction to Exceptions and try..catch
      • Subsection 3.7.1: Exceptions
      • Subsection 3.7.2: try..catch
      • Subsection 3.7.3: Exceptions in TextIO
    • Section 3.8: Introduction to GUI Programming
    • Exercises for Chapter 3
    • Quiz on Chapter 3
  • Chapter 4: Programming in the Large I: Subroutines
    • Section 4.1: Black Boxes
    • Section 4.2: Static Subroutines and Static Variables
      • Subsection 4.2.1: Subroutine Definitions
      • Subsection 4.2.2: Calling Subroutines
      • Subsection 4.2.3: Subroutines in Programs
      • Subsection 4.2.4: Member Variables
    • Section 4.3: Parameters
      • Subsection 4.3.1: Using Parameters
      • Subsection 4.3.2: Formal and Actual Parameters
      • Subsection 4.3.3: Overloading
      • Subsection 4.3.4: Subroutine Examples
      • Subsection 4.3.5: Throwing Exceptions
      • Subsection 4.3.6: Global and Local Variables
    • Section 4.4: Return Values
      • Subsection 4.4.1: The return statement
      • Subsection 4.4.2: Function Examples
      • Subsection 4.4.3: 3N+1 Revisited
    • Section 4.5: APIs, Packages, and Javadoc
      • Subsection 4.5.1: Toolboxes
      • Subsection 4.5.2: Java's Standard Packages
      • Subsection 4.5.3: Using Classes from Packages
      • Subsection 4.5.4: Javadoc
    • Section 4.6: More on Program Design
      • Subsection 4.6.1: Preconditions and Postconditions
      • Subsection 4.6.2: A Design Example
      • Subsection 4.6.3: The Program
    • Section 4.7: The Truth About Declarations
      • Subsection 4.7.1: Initialization in Declarations
      • Subsection 4.7.2: Named Constants
      • Subsection 4.7.3: Naming and Scope Rules
    • Exercises for Chapter 4
    • Quiz on Chapter 4
  • Chapter 5: Programming in the Large II: Objects and Classes
    • Section 5.1: Objects, Instance Methods, and Instance Variables
      • Subsection 5.1.1: Objects, Classes, and Instances
      • Subsection 5.1.2: Fundamentals of Objects
      • Subsection 5.1.3: Getters and Setters
    • Section 5.2: Constructors and Object Initialization
      • Subsection 5.2.1: Initializing Instance Variables
      • Subsection 5.2.2: Constructors
      • Subsection 5.2.3: Garbage Collection
    • Section 5.3: Programming with Objects
      • Subsection 5.3.1: Some Built-in Classes
      • Subsection 5.3.2: Wrapper Classes and Autoboxing
      • Subsection 5.3.3: The class "Object"
      • Subsection 5.3.4: Object-oriented Analysis and Design
    • Section 5.4: Programming Example: Card, Hand, Deck
      • Subsection 5.4.1: Designing the classes
      • Subsection 5.4.2: The Card Class
      • Subsection 5.4.3: Example: A Simple Card Game
    • Section 5.5: Inheritance, Polymorphism, and Abstract Classes
      • Subsection 5.5.1: Extending Existing Classes
      • Subsection 5.5.2: Inheritance and Class Hierarchy
      • Subsection 5.5.3: Example: Vehicles
      • Subsection 5.5.4: Polymorphism
      • Subsection 5.5.5: Abstract Classes
    • Section 5.6: this and super
      • Subsection 5.6.1: The Special Variable this
      • Subsection 5.6.2: The Special Variable super
      • Subsection 5.6.3: Constructors in Subclasses
    • Section 5.7: Interfaces, Nested Classes, and Other Details
      • Subsection 5.7.1: Interfaces
      • Subsection 5.7.2: Nested Classes
      • Subsection 5.7.3: Anonymous Inner Classes
      • Subsection 5.7.4: Mixing Static and Non-static
      • Subsection 5.7.5: Static Import
      • Subsection 5.7.6: Enums as Classes
    • Exercises for Chapter 5
    • Quiz on Chapter 5
  • Chapter 6: Introduction to GUI Programming
    • Section 6.1: The Basic GUI Application
      • Subsection 6.1.1: JFrame and JPanel
      • Subsection 6.1.2: Components and Layout
      • Subsection 6.1.3: Events and Listeners
    • Section 6.2: Applets and HTML
      • Subsection 6.2.1: JApplet
      • Subsection 6.2.2: Reusing Your JPanels
      • Subsection 6.2.3: Basic HTML
      • Subsection 6.2.4: Applets on Web Pages
    • Section 6.3: Graphics and Painting
      • Subsection 6.3.1: Coordinates
      • Subsection 6.3.2: Colors
      • Subsection 6.3.3: Fonts
      • Subsection 6.3.4: Shapes
      • Subsection 6.3.5: Graphics2D
      • Subsection 6.3.6: An Example
    • Section 6.4: Mouse Events
      • Subsection 6.4.1: Event Handling
      • Subsection 6.4.2: MouseEvent and MouseListener
      • Subsection 6.4.3: Mouse Coordinates
      • Subsection 6.4.4: MouseMotionListeners and Dragging
      • Subsection 6.4.5: Anonymous Event Handlers and Adapter Classes
    • Section 6.5: Timers, KeyEvents, and State Machines
      • Subsection 6.5.1: Timers and Animation
      • Subsection 6.5.2: Keyboard Events
      • Subsection 6.5.3: Focus Events
      • Subsection 6.5.4: State Machines
    • Section 6.6: Basic Components
      • Subsection 6.6.1: JButton
      • Subsection 6.6.2: JLabel
      • Subsection 6.6.3: JCheckBox
      • Subsection 6.6.4: JTextField and JTextArea
      • Subsection 6.6.5: JComboBox
      • Subsection 6.6.6: JSlider
    • Section 6.7: Basic Layout
      • Subsection 6.7.1: Basic Layout Managers
      • Subsection 6.7.2: Borders
      • Subsection 6.7.3: SliderAndComboBoxDemo
      • Subsection 6.7.4: A Simple Calculator
      • Subsection 6.7.5: Using a null Layout
      • Subsection 6.7.6: A Little Card Game
    • Section 6.8: Menus and Dialogs
      • Subsection 6.8.1: Menus and Menubars
      • Subsection 6.8.2: Dialogs
      • Subsection 6.8.3: Fine Points of Frames
      • Subsection 6.8.4: Creating Jar Files
    • Exercises for Chapter 6
    • Quiz on Chapter 6
  • Chapter 7: Arrays
    • Section 7.1: Creating and Using Arrays
      • Subsection 7.1.1: Arrays
      • Subsection 7.1.2: Using Arrays
      • Subsection 7.1.3: Array Initialization
    • Section 7.2: Programming With Arrays
      • Subsection 7.2.1: Arrays and for Loops
      • Subsection 7.2.2: Arrays and for-each Loops
      • Subsection 7.2.3: Array Types in Subroutines
      • Subsection 7.2.4: Random Access
      • Subsection 7.2.5: Arrays of Objects
      • Subsection 7.2.6: Variable Arity Methods
    • Section 7.3: Dynamic Arrays and ArrayLists
      • Subsection 7.3.1: Partially Full Arrays
      • Subsection 7.3.2: Dynamic Arrays
      • Subsection 7.3.3: ArrrayLists
      • Subsection 7.3.4: Parameterized Types
      • Subsection 7.3.5: Vectors
    • Section 7.4: Searching and Sorting
      • Subsection 7.4.1: Searching
      • Subsection 7.4.2: Association Lists
      • Subsection 7.4.3: Insertion Sort
      • Subsection 7.4.4: Selection Sort
      • Subsection 7.4.5: Unsorting
    • Section 7.5: Multi-dimensional Arrays
      • Subsection 7.5.1: Creating Two-dimensional Arrays
      • Subsection 7.5.2: Using Two-dimensional Arrays
      • Subsection 7.5.3: Example: Checkers
    • Exercises for Chapter 7
    • Quiz on Chapter 7
  • Chapter 8: Correctness, Robustness, Efficiency
    • Section 8.1: Introduction to Correctness and Robustness
      • Subsection 8.1.1: Horror Stories
      • Subsection 8.1.2: Java to the Rescue
      • Subsection 8.1.3: Problems Remain in Java
    • Section 8.2: Writing Correct Programs
      • Subsection 8.2.1: Provably Correct Programs
      • Subsection 8.2.2: Robust Handling of Input
    • Section 8.3: Exceptions and try..catch
      • Subsection 8.3.1: Exceptions and Exception Classes
      • Subsection 8.3.2: The try Statement
      • Subsection 8.3.3: Throwing Exceptions
      • Subsection 8.3.4: Mandatory Exception Handling
      • Subsection 8.3.5: Programming with Exceptions
    • Section 8.4: Assertions and Annotations
      • Subsection 8.4.1: Assertions
      • Subsection 8.4.2: Annotations
    • Section 8.5: Analysis of Algorithms
    • Exercises for Chapter 8
    • Quiz on Chapter 8
  • Chapter 9: Linked Data Structures and Recursion
    • Section 9.1: Recursion
      • Subsection 9.1.1: Recursive Binary Search
      • Subsection 9.1.2: Towers of Hanoi
      • Subsection 9.1.3: A Recursive Sorting Algorithm
      • Subsection 9.1.4: Blob Counting
    • Section 9.2: Linked Data Structures
      • Subsection 9.2.1: Recursive Linking
      • Subsection 9.2.2: Linked Lists
      • Subsection 9.2.3: Basic Linked List Processing
      • Subsection 9.2.4: Inserting into a Linked List
      • Subsection 9.2.5: Deleting from a Linked List
    • Section 9.3: Stacks, Queues, and ADTs
      • Subsection 9.3.1: Stacks
      • Subsection 9.3.2: Queues
      • Subsection 9.3.3: Postfix Expressions
    • Section 9.4: Binary Trees
      • Subsection 9.4.1: Tree Traversal
      • Subsection 9.4.2: Binary Sort Trees
      • Subsection 9.4.3: Expression Trees
    • Section 9.5: A Simple Recursive Descent Parser
      • Subsection 9.5.1: Backus-Naur Form
      • Subsection 9.5.2: Recursive Descent Parsing
      • Subsection 9.5.3: Building an Expression Tree
    • Exercises for Chapter 9
    • Quiz on Chapter 9
  • Chapter 10: Generic Programming and Collection Classes
    • Section 10.1: Generic Programming
      • Subsection 10.1.1: Generic Programming in Smalltalk
      • Subsection 10.1.2: Generic Programming in C++
      • Subsection 10.1.3: Generic Programming in Java
      • Subsection 10.1.4: The Java Collection Framework
      • Subsection 10.1.5: Iterators and for-each Loops
      • Subsection 10.1.6: Equality and Comparison
      • Subsection 10.1.7: Generics and Wrapper Classes
    • Section 10.2: Lists and Sets
      • Subsection 10.2.1: ArrayList and LinkedList
      • Subsection 10.2.2: Sorting
      • Subsection 10.2.3: TreeSet and HashSet
      • Subsection 10.2.4: EnumSet
    • Section 10.3: Maps
      • Subsection 10.3.1: The Map Interface
      • Subsection 10.3.2: Views, SubSets, and SubMaps
      • Subsection 10.3.3: Hash Tables and Hash Codes
    • Section 10.4: Programming with the Java Collection Framework
      • Subsection 10.4.1: Symbol Tables
      • Subsection 10.4.2: Sets Inside a Map
      • Subsection 10.4.3: Using a Comparator
      • Subsection 10.4.4: Word Counting
    • Section 10.5: Writing Generic Classes and Methods
      • Subsection 10.5.1: Simple Generic Classes
      • Subsection 10.5.2: Simple Generic Methods
      • Subsection 10.5.3: Type Wildcards
      • Subsection 10.5.4: Bounded Types
    • Exercises for Chapter 10
    • Quiz on Chapter 10
  • Chapter 11: Advanced Input/Output: Streams, Files, and Networking
    • Section 11.1: Streams, Readers, and Writers
      • Subsection 11.1.1: Character and Byte Streams
      • Subsection 11.1.2: PrintWriter
      • Subsection 11.1.3: Data Streams
      • Subsection 11.1.4: Reading Text
      • Subsection 11.1.5: The Scanner Class
      • Subsection 11.1.6: Serialized Object I/O
    • Section 11.2: Files
      • Subsection 11.2.1: Reading and Writing Files
      • Subsection 11.2.2: Files and Directories
      • Subsection 11.2.3: File Dialog Boxes
    • Section 11.3: Programming With Files
      • Subsection 11.3.1: Copying a File
      • Subsection 11.3.2: Persistent Data
      • Subsection 11.3.3: Files in GUI Programs
      • Subsection 11.3.4: Storing Objects in Files
    • Section 11.4: Networking
      • Subsection 11.4.1: URLs and URLConnections
      • Subsection 11.4.2: TCP/IP and Client/Server
      • Subsection 11.4.3: Sockets in Java
      • Subsection 11.4.4: A Trivial Client/Server
      • Subsection 11.4.5: A Simple Network Chat
    • Section 11.5: A Brief Introduction to XML
      • Subsection 11.5.1: Basic XML Syntax
      • Subsection 11.5.2: XMLEncoder and XMLDecoder
      • Subsection 11.5.3: Working With the DOM
    • Exercises for Chapter 11
    • Quiz on Chapter 11
  • Chapter 12: Threads and Multiprocessing
    • Section 12.1: Introduction to Threads
      • Subsection 12.1.1: Creating and Running Threads
      • Subsection 12.1.2: Operations on Threads
      • Subsection 12.1.3: Mutual Exclusion with "synchronized"
      • Subsection 12.1.4: Volatile Variables
    • Section 12.2: Programming with Threads
      • Subsection 12.2.1: Threads Versus Timers
      • Subsection 12.2.2: Recursion in a Thread
      • Subsection 12.2.3: Threads for Background Computation
      • Subsection 12.2.4: Threads for Multiprocessing
    • Section 12.3: Threads and Parallel Processing
      • Subsection 12.3.1: Problem Decomposition
      • Subsection 12.3.2: Thread Pools and Task Queues
      • Subsection 12.3.3: Producer/Consumer and Blocking Queues
      • Subsection 12.3.4: Wait and Notify
    • Section 12.4: Threads and Networking
      • Subsection 12.4.1: The Blocking I/O Problem
      • Subsection 12.4.2: An Asynchronous Network Chat Program
      • Subsection 12.4.3: A Threaded Network Server
      • Subsection 12.4.4: Using a Thread Pool
      • Subsection 12.4.5: Distributed Computing
    • Section 12.5: Network Programming Example: A Networked Game Framework
      • Subsection 12.5.1: The Netgame Framework
      • Subsection 12.5.2: A Simple Chat Room
      • Subsection 12.5.3: A Networked TicTacToe Game
      • Subsection 12.5.4: A Networked Poker Game
    • Exercises for Chapter 12
    • Quiz on Chapter 12
  • Chapter 13: Advanced GUI Programming
    • Section 13.1: Images and Resources
      • Subsection 13.1.1: Images and BufferedImages
      • Subsection 13.1.2: Working With Pixels
      • Subsection 13.1.3: Resources
      • Subsection 13.1.4: Cursors and Icons
      • Subsection 13.1.5: Image File I/O
    • Section 13.2: Fancier Graphics
      • Subsection 13.2.1: Measuring Text
      • Subsection 13.2.2: Transparency
      • Subsection 13.2.3: Antialiasing
      • Subsection 13.2.4: Strokes and Paints
      • Subsection 13.2.5: Transforms
    • Section 13.3: Actions and Buttons
      • Subsection 13.3.1: Action and AbstractAction
      • Subsection 13.3.2: Icons on Buttons
      • Subsection 13.3.3: Radio Buttons
      • Subsection 13.3.4: Toolbars
      • Subsection 13.3.5: Keyboard Accelerators
      • Subsection 13.3.6: HTML on Buttons
    • Section 13.4: Complex Components and MVC
      • Subsection 13.4.1: Model-View-Controller
      • Subsection 13.4.2: Lists and ListModels
      • Subsection 13.4.3: Tables and TableModels
      • Subsection 13.4.4: Documents and Editors
      • Subsection 13.4.5: Custom Components
    • Section 13.5: Finishing Touches
      • Subsection 13.5.1: The Mandelbrot Set
      • Subsection 13.5.2: Design of the Program
      • Subsection 13.5.3: Internationalization
      • Subsection 13.5.4: Events, Events, Events
      • Subsection 13.5.5: Custom Dialogs
      • Subsection 13.5.6: Preferences
    • Exercises for Chapter 13
    • Quiz on Chapter 13
  • Glossary
  • Answers To End-of-Chapter Quizzes
    • Chapter 1 Quiz Answers
    • Chapter 2 Quiz Answers
    • Chapter 3 Quiz Answers
    • Chapter 4 Quiz Answers
    • Chapter 5 Quiz Answers
    • Chapter 6 Quiz Answers
    • Chapter 7 Quiz Answers
    • Chapter 8 Quiz Answers
    • Chapter 9 Quiz Answers
    • Chapter 10 Quiz Answers
    • Chapter 11 Quiz Answers
    • Chapter 12 Quiz Answers
    • Chapter 13 Quiz Answers
  • Answers to End-of-Chapter Exercises
    • Exercise 2.1 Answer
    • Exercise 2.2 Answer
    • Exercise 2.3 Answer
    • Exercise 2.4 Answer
    • Exercise 2.5 Answer
    • Exercise 2.6 Answer
    • Exercise 3.1 Answer
    • Exercise 3.2 Answer
    • Exercise 3.3 Answer
    • Exercise 3.4 Answer
    • Exercise 3.5 Answer
    • Exercise 3.6 Answer
    • Exercise 3.7 Answer
    • Exercise 4.1 Answer
    • Exercise 4.2 Answer
    • Exercise 4.3 Answer
    • Exercise 4.4 Answer
    • Exercise 4.5 Answer
    • Exercise 4.6 Answer
    • Exercise 4.7 Answer
    • Exercise 5.1 Answer
    • Exercise 5.2 Answer
    • Exercise 5.3 Answer
    • Exercise 5.4 Answer
    • Exercise 5.5 Answer
    • Exercise 5.6 Answer
    • Exercise 6.1 Answer
    • Exercise 6.2 Answer
    • Exercise 6.3 Answer
    • Exercise 6.4 Answer
    • Exercise 6.5 Answer
    • Exercise 6.6 Answer
    • Exercise 6.7 Answer
    • Exercise 6.8 Answer
    • Exercise 6.9 Answer
    • Exercise 6.10 Answer
    • Exercise 7.1 Answer
    • Exercise 7.2 Answer
    • Exercise 7.3 Answer
    • Exercise 7.4 Answer
    • Exercise 7.5 Answer
    • Exercise 7.6 Answer
    • Exercise 7.7 Answer
    • Exercise 8.1 Answer
    • Exercise 8.2 Answer
    • Exercise 8.3 Answer
    • Exercise 8.4 Answer
    • Exercise 8.5 Answer
    • Exercise 9.1 Answer
    • Exercise 9.2 Answer
    • Exercise 9.3 Answer
    • Exercise 9.4 Answer
    • Exercise 9.5 Answer
    • Exercise 9.6 Answer
    • Exercise 9.7 Answer
    • Exercise 10.1 Answer
    • Exercise 10.2 Answer
    • Exercise 10.3 Answer
    • Exercise 10.4 Answer
    • Exercise 10.5 Answer
    • Exercise 10.6 Answer
    • Exercise 11.1 Answer
    • Exercise 11.2 Answer
    • Exercise 11.3 Answer
    • Exercise 11.4 Answer
    • Exercise 11.5 Answer
    • Exercise 11.6 Answer
    • Exercise 12.1 Answer
    • Exercise 12.2 Answer
    • Exercise 12.3 Answer
    • Exercise 12.4 Answer
    • Exercise 12.5 Answer
    • Exercise 12.6 Answer
    • Exercise 13.1 Answer
    • Exercise 13.2 Answer
    • Exercise 13.3 Answer
    • Exercise 13.4 Answer
    • Exercise 13.5 Answer
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      You May Also Like
      Also Available On
      App store smallGoogle play small
      Categories
      Curated Lists
      • Pattern Recognition and Machine Learning (Information Science and Statistics)
        by Christopher M. Bishop
        Data mining
        by I. H. Witten
        The Elements of Statistical Learning: Data Mining, Inference, and Prediction
        by Various
        See more...
      • CK-12 Chemistry
        by Various
        Concept Development Studies in Chemistry
        by John Hutchinson
        An Introduction to Chemistry - Atoms First
        by Mark Bishop
        See more...
      • Microsoft Word - How to Use Advanced Algebra II.doc
        by Jonathan Emmons
        Advanced Algebra II: Activities and Homework
        by Kenny Felder
        de2de
        by
        See more...
      • The Sun Who Lost His Way
        by
        Tania is a Detective
        by Kanika G
        Firenze_s-Light
        by
        See more...
      • Java 3D Programming
        by Daniel Selman
        The Java EE 6 Tutorial
        by Oracle Corporation
        JavaKid811
        by
        See more...