Page Tools:
  • print-friendly version

Fundamentals of Computer Science using Java

Author(s): David Hughes, Brock University
Details:
  • ISBN-13: 9780763717612
  • ISBN-10:0763717614
  • Paperback    525 pages      © 2002
Price: International Sales $171.95 US List
Add to Cart Request a Review Copy

Overview

Fundamentals of Computer Science using Java uses an object-based approach to the introduction of Computer Science using Java as the programming language. The book is example-based with approximately 50 completely worked examples. The use of a Turtle Graphics library allows early examples and exercises to be interesting while still simple. The use of a basic I/O library allows I/O without having to deal with exceptions and formatting, as would be the case in the standard library.

The Fundamental Facts about
Fundamental of Computer Science using Java

Key features of the book include 50 complete examples. There are overviews, summaries, review questions (with answers) and exercises (suitable as assignments) for each chapter. Programming patterns (patterned after Design Patterns) are used to explain common programming techniques and are summarized in an appendix. Java syntax notation is explained and used to describe each new construct when it is introduced. A complete glossary is included as an appendix and important new terms are defined in sidebars as they first occur in the chapter text. Software engineering is introduced and the use of CRC cards is used as a design tool. Debugging techniques are described at appropriate points throughout the chapters.

An Instructor's Manual provides pedagogic summaries and PowerPoint presentations for each chapter, complete text examples, sample laboratory exercises, tests and exams, solutions to selected chapter exercises, and the TurtleGraphics and Basic I/O libraries.

ShowKey Features

All topics are introduced using completely worked examples suitable as models for student programs.
Most chapters include a Case Study which does a sample problem in detail including analysis & design, coding, and testing.
Programming patterns are used to generalize common programming constructs, allowing students to see the principles behind the examples and to apply them in new problems.
Memory model diagrams are used to explain variables and assignments, parameter passing, scope, and value vs. reference semantics.
Style tips are provided throughout to aid students in writing readable programs.
Software engineering is introduced using CRC cards as a design methodology to start students thinking about design early in their education.
Complete coverage of basic programming constructs including classes, instance and local variables, constructors, methods and parameter passing, expressions, control structures, Strings, and arrays.

Back to top

ShowTable of Contents

Preface

Chapter 1: Computing Fundamentals    
1.1            A Brief History of Computing        
            From Counting to Computing        
            The Modern Era      
            Generations of Computers        
1.2            Computer Systems        
            Computer Hardware     
1.3        Data Representation  
1.4            Computer Software       
            System Software           
            Application Software    
            Software Development Environments    
1.5            Software Development  
            Software Engineering    
            Programming Languages        
            Program Preparation   
1.6           Social Issues   
Summary          
Review Questions          
Exercises          

Chapter 2: Java Programs          
2.1           Java                 
            Java: Platform Independent      
            Java: A Modern Language          
            Drawing a Square        
            Java Syntax  
2.2          Turtle Graphics           
2.3          Classes 
            Constructors     
            Fields    
            Statements        
2.4          Looping—The Countable Repetition Pattern 
            Drawing a Hexagon     
            Case Study: Drawing Eight Squares           
2.5          Execution of Java Programs          
Summary          
Review Questions          
Exercises          

Chapter 3: Computations    
3.1          Numbers           
            Numeric Types            
            Numeric Literals          
3.2          Expressions      
            Basic Java Operators  
            Order of Operations    
            Computing Pay—An Example           
            Modes of Arithmetic and Conversion 
            Centering the Square—An Example      
3.3          Variables         
            Declaring a Variable    
            Local Variables          
3.4          Assignment Statement 
            Assignment Compatibility     
            Pay Calculation Revisited           
            Memory Model            
            Case Study: Plotting a Function       
3.5          Modifying Earlier Examples          
            Pay Calculation—One More Time            
            Scaling the Hexagon     
Summary          
Review Questions          
Exercises          

Chapter 4: Methods           
4.1          Methods and Abstraction       
4.2          Simple Methods           
            Eight Squares Revisited           
            Drawing a Scene—An Example           
4.3          Methods with Parameters       
            Parameter Passing        
            Formal and Actual Parameters       
            Drawing Nested Squares—An Example           
            Drawing a Beach Umbrella—An Example           
            Drawing Rectangles—An Example      
4.4          Function Methods         
            Function Method Header 
            The return Statement         
            Function Plot Revisited 
            Case Study: Scaling the Plot to Fit the Window      
4.5          Testing and Debugging with Methods    
4.6          Methods, Scope, and Visibility            
            Java Scope Rules      
            Scope Rules Illustrated            
            Java Visibility Rules  
Summary          
Review Questions          
Exercises          

Chapter 5: Input and Output        
5.1          Streams            
            The BasicIO Package           
            Human versus Computer Use   
5.2          Output  
            Example—Generating a Table of Squares            
            Example—Formatting the Table          
            Example—Generating a Compound Interest Table    
            SimpleDataOutput Summary          
5.3          Input     
            Example—Compound Interest Table Revisited           
            Example—Averaging Marks   
            Case Study: Generating a Marks Report  
            SimpleDataInput Summary          
Summary          
Review Questions          
Exercises          

Chapter 6: Control Structures         
6.1          The while Statement         
            Example—Filling a Packing Box     
            Example—Finding Roots of an Equation           
6.2          The Break Statement         
            Example—Class Average Revisited           
6.3          The if Statement         
            Example—The Dean’s List       
            Example—Determining Highest and Lowest Mark    
            Example—Counting Pass and Fail     
            Example—Tallying Grades  
6.4          The for Statement  
            Example—Compound Interest, One More Time        
6.5          Other Control Structures         
            The continue Statement         
            The do Statement         
            The switch Statement         
6.6          Testing and Debugging with Control Structures         
Summary          
Review Questions          
Exercises          

Chapter 7: Primitive Types            
7.1          The boolean Type  
            Boolean Expressions       
            Case Study: Playing Evens-Odds     
7.2          The char Type        
            Coding Schemes           
            char Expressions       
            Example—Converting Uppercase to Lowercase        
            The Character Class    
            Case Study: Counting Words  
Summary          
Review Questions          
Exercises          

Chapter 8: Classes 
8.1          Classes Revisited           
8.2          Class Behavior           
8.3          Data Abstraction       
            Case Study: Payroll System  
8.4          Information Hiding        
            Accessor and Updater Methods           
8.5          Designing for Reuse     
            Code Reuse   
            Generalization of I/O Streams            
            Disadvantages of Code Reuse   
Summary          
Review Questions          
Exercises          

Chapter 9: Software Development  
9.1          The Development Process            
            Case Study: A Grade Report System  
Summary          
Review Questions          
Exercises          

Chapter 10: Strings  
10.1        String Objects 
10.2        String I/O       
10.3        The String Class   
            Example—Detecting Palindromes      
            Other String Methods  
            Example—Formatting a Name   
10.4         StringTokenizer Class    
            String Tokenizer          
            Delimeters        
            Example—Analyzing Text     
Summary          
Review Questions          
Exercises          

Chapter 11: Arrays  
11.1         Creating Arrays           
            Declaration       
            Array Creation            
            Memory Model            
            Array Operations        
            Subscripting     
11.2         Array Processing        
            Processing Right-sized Arrays  
            Processing Variable-sized Arrays      
11.3         Arrays and Methods     
            Examples         
11.4         Random Processing of Arrays  
11.5         Processing String Data as Array of char            
            Case Study: Grade-Reporting System Revisited          
11.6         Multidimensional Arrays  
            Example—University Enrollment Report  
            Processing Two-dimensional Arrays  
Summary          
Review Questions          
Exercises          

Appendix A            Instruction Processing    
Appendix B            Java Syntax  
Appendix C            Programming Patterns 
Appendix D            Glossary          
Appendix E            Custom Packages          
Appendix F            Answers to Review Questions          
Appendix G            Additional Reading


Back to top

ShowAbout the Author(s)

David Hughes-Brock University

David Hughes, Brock University
Dr. Hughes received his Ph.D. in Computer Science from the University of Manitoba in 1979. He has been a member of the Department of Computer Science at Brock University since 1978, currently as Associate Professor and is a member of ACM and the Computer Society of IEEE. His research and teaching interests include Programming Languages, Object-orientation, and Compiler Construction. He has been teaching the Introduction to Computer Science course at Brock since 1978, Object-Orientation since 1989, and has used Java in the introductory course since 1996.

Back to top

ShowReviews

  • “The manuscript is well written.  The descriptions and explanations are clear.  The examples are well chosen.”  

    - Carolyn Schauble
    Colorado State University

    “The text is well written and contains a great deal of good information.  The material is presented clearly, and I would expect our students to be able to comprehend it without problems.”

    - Carolyn Schauble
    Colorado State University

    “The examples are well thought out and clearly explained.  As the student moves from one example to another, more features and complexity are incorporated into each example, adding to the scope of information.”

    - Carolyn Schauble
    Colorado State University

    “The author’s use of the TurtleGraphics library permits students to become comfortable with using many classes in a program.”  

    - Carolyn Schauble
    Colorado State University

    “The manuscript is well crafted.  It is based on a collection of carefully conceived Java classes tailored to meet the needs of beginning students.  The BasicIO class is especially nice.  The author introduces some very important concepts in computer science, and persistently draws upon them through the manuscript in a manner which enhances the integrity of the presentation.  The uses of grammatical fragments to introduce syntax of the language and of memory models to facilitate semantic discussions are particularly effective.”

    - Craig Graci
    SUNY Oswego

    “I think the completeness of the many Java programming examples will be very well received by students.”

    - Craig Graci
    SUNY Oswego

    “The topics are, indeed, presented in a logical order that is conducive to understanding the concepts.”

    - Craig Graci
    SUNY Oswego

    “My impression begins with the author’s Prologue, in particular, his 'What is Covered and What is Not' section… I believe this author is making the absolute correct choices.”  

    - John Beidler
    University of Scranton

    “This is a very well organized manuscript.  The author is consistent and complete.  He does a great job with details.”

    - John Beidler
    University of Scranton

     “The author is very precise in his organization and in his introduction of terms.”

    - John Beidler
    University of Scranton

    “The examples are a strong feature of the manuscript and I particularly like the fact that they are presented as full programs”

    - Thomas Mertz
    Millersville University

    “Chapter 8 is a positive difference that makes the manuscript very unique because it presents and illustrates a complete object-oriented design methodology.  This is very useful to beginning students.  Furthermore, the methodology presented is a standard one that has been published and is practiced in industry.  This is unique from other Java textbooks and CS1 textbooks in general, which either don’t bother to present any methodology or present something of the author’s own making.”

    - Thomas Mertz
    Millersville University

    “A difference that many instructors will find positive is the use of the Turltle Graphics. This allows students to write some fun programs starting at the beginning of the course.”

    - Thomas Mertz
    Millersville University

    “…the main source of difficulty [for novice programmers] is functions (Java methods) and parameter passing… The manuscript does a good job on these topics in Chapter 4, explaining them thoroughly with a good progression from void functions without parameters, parameters, and finally functions that return values.  After each step in the progression, the author presents more than one example program using the concepts.  The entire chapter finishes with a useful summary.”

    - Thomas Mertz
    Millersville University

    “The author covers the fundamentals of programming quite thoroughly.”

    - Dale Skrien
    Colby College

    “The book provides a TurtleGraphics package for the instructor to use to help teach the concepts.  I really like that package.  In particular, I like the use of TurtleGraphics in the first program the students see, instead of the usual boring 'Hello world' application.”

    - Dale Skrien
    Colby College

    “I like the way the author solves the problem under discussion by presenting the complete source code for the solution and by walking through the source code explaining what each part does and why it is included”

    - Dale Skrien
    Colby College

Back to top

ShowAppropriate Courses

Fundamentals of Computer Science using Java is intended for freshman undergraduate students taking their first programming course.

  • Introduction to Computer Science with Java 
  • Programming with Java 
  • Java 101
Back to top

ShowSamples & Additional Resources

ShowResources

    • show overview$34.95 Add to Cart

      CodeLab-Java

      ISBN-13: 9780763732899 ISBN-10: 0763732893

      Jones and Bartlett Publishers and Turing's Craft, Inc. are proud to announce an exciting new partnership that will revolutionize the way students learn the fundamentals of programming with Java. Working in concert with classroom instruction and Jones and Bartlett's excellent CS textbook packages, CodeLab-Java provides students with interactive programming exercises with immediate feedback or assessment.

       

    • show overviewPlease contact your sales rep to order

      Codewarrior Development Tools for Windows

      ISBN-13: 9780763724016 ISBN-10: 0763724017

      Package our textbook and allow your students to build amazing Windows® applications in a familiar development environment with CodeWarrior tools for Windows. Providing all the essentials for coding in C, C++ and Java, CodeWarrior for Windows supports multiple platforms and features one of the best ANSI/ISO C++ compilers in the industry.

Back to top