You are not signed in. Sign in.

Share:

Category IT Books

Invitation to Computer Science: Java Version » (3rd Edition)

Book cover image of Invitation to Computer Science: Java Version by G.Michael Schneider

Authors: G.Michael Schneider, Judith Gersting
ISBN-13: 9781423901433, ISBN-10: 1423901436
Format: Paperback
Publisher: Cengage Learning
Date Published: February 2006
Edition: 3rd Edition

Find Best Prices for This Book »

Author Biography: G.Michael Schneider

G. Michael Schneider is Professor of Mathematics and Computer Science at Macalester College in St. Paul, Minnesota and a Visiting Professor of Computer Science at Columbia University in New York. His interests include parallel processing, computer networks, and computer science education. He has written textbooks on software development, data structures, computer organization, and a breadth-first overview of computer science and was a member of the committee that authored the ACM/IEEE Computing Curriculum 2001. He has received Fulbright Grants to teach and do computer science curriculum development in Mauritius, Malaysia, Nepal, and Mongolia.

Judith Gersting is a Professor of Computer Science at the University of Hawaii, Hilo. She is also the department chair and has written a number of college textbooks. Her areas of specialization include theoretical computer science and computer science education.

Book Synopsis

This new edition of Invitation to Computer Science follows the breadth-first guidelines recommended by CC2001 to teach computer science topics from the ground up. The authors begin by showing that computer science is the study of algorithms, the central theme of the book, then move up the next five levels of the hierarchy: hardware, virtual machine, software, applications, and ethics. Utilizing rich pedagogy and a consistently engaging writing style, Schneider and Gersting provide students with a solid grounding in theoretical concepts, as well as important applications of computing and information technology. A laboratory manual and accompanying software is available as an optional bundle with this text.

Table of Contents


An Introduction to Computer Science     1
Introduction     2
The Definition of Computer Science     4
Special Interest Box: Abu Ja' far Muhammad ibn Musa Al-Khowarizmi (a.d. 780-850?)     7
Special Interest Box: In the Beginning...     9
Algorithms     10
The Formal Definition of an Algorithm     10
The Importance of Algorithmic Problem Solving     15
Practice Problems     16
A Brief History of Computing     16
The Early Period: Up to 1940     16
Special Interest Box: The Original "Technophobia"     19
Special Interest Box: Charles Babbage (1791-1871) Ada Augusta Byron, Countess of Lovelace (1815-1852)     20
The Birth of Computers: 1940-1950     21
Special Interest Box: And the Verdict Is...     23
Special Interest Box: John Von Neumann (1903-1957)     24
The Modern Era: 1950 to the Present     25
Special Interest Box: Good Evening, This Is Walter Cronkite     26
Special Interest Box: The World's First Microcomputer     27
Organization of the Text     28=970 13$lLaboratory Experience 1     33
Exercises     34
Challenge Work     35
For Further Reading     35
The Algorithmic Foundations of Computer Science     36
Algorithm Discovery and Design     39
Introduction     40
Representing Algorithms     40
Pseudocode     40
Sequential Operations     43
Practice Problems     45
Conditional and Iterative Operations     46
Special Interest Box: From Little Primitives Mighty Algorithms Do Grow     53
Practice Problems     54
Examples of Algorithmic Problem Solving     54
Example 1: Go Forth and Multiply     54
Practice Problems     57
Example 2: Looking, Looking, Looking     57=970 13$lLaboratory Experience 2     61
Example 3: Big, Bigger, Biggest     62
Practice Problems     66=970 13$lLaboratory Experience 3     67
Example 4: Meeting Your Match     67
Practice Problems     73
Conclusion     73
Exercises     75
Challenge Work     77
For Further Reading     78
The Efficiency of Algorithms     79
Introduction     80
Attributes of Algorithms     80
Practice Problems      84
Measuring Efficiency     84
Sequential Search     84
Order of Magnitude-Order n     86
Practice Problem     88
Selection Sort     88
Practice Problem     94
Order of Magnitude-Order n[superscript 2]     94
Special Interest Box: The Tortoise and the Hare     97
Practice Problem     98=970 13$lLaboratory Experience 4     98
Analysis of Algorithms     99
Data Cleanup Algorithms     99
Practice Problems     105
Binary Search     106
Practice Problem     111=970 13$lLaboratory Experience 5     111
Pattern Matching     112
Summary     113
Practice Problem     113
When Things Get Out of Hand     113
Practice Problems     117=970 13$lLaboratory Experience 6     118
Summary of Level 1     118
Exercises     120
Challenge Work     124
For Further Reading     125
Hardware World     126
The Building BLocks: Binary Numbers, Boolean Logic, and Gates     129
Introduction     130
The Binary Numbering System      130
Binary Representation of Numeric and Textual Information     130
Practice Problems     142
Binary Representation of Sound and Images     142
The Reliability of Binary Representation     149
Practice Problems     150
Binary Storage Devices     151
Boolean Logic and Gates     156
Boolean Logic     156
Special Interest Box: Dr. William Shockley (1910-1989)     156
Special Interest Box: George Boole (1815-1864)     157
Practice Problems     159
Gates     160
Building Computer Circuits     162
Introduction     162
A Circuit Construction Algorithm     165
Practice Problems     169=970 13$lLaboratory Experience 7     170
Examples of Circuit Design and Construction     170
Practice Problems     178=970 13$lLaboratory Experience 8     178
Control Circuits     179
Conclusion     182
Exercises     184
Challenge Work     185
For Further Reading     186
Computer Systems Organization     187
Introduction     188
The Components of a Computer System     190
Memory and Cache     192
Special Interest Box: Powers of 10     195
Practice Problems     201
Input/Output and Mass Storage     202
Practice Problems     207
The Arithmetic/Logic Unit     207
The Control Unit     211
Practice Problems     215
Putting All the Pieces Together-the Von Neumann Architecture     219
Special Interest Box: An Alphabet Soup of Speed Measures-MIPS, MFLOPS, MHz, and GHz     224=970 13$lLaboratory Experience 9     224
Non-Von Neumann Architectures     225
Special Interest Box: Speed to Burn     229
Summary of LeveL 2     231
Special Interest Box: Quantum Computing     231
Exercises     233
Challenge Work     234
For Further Reading     235
The Virtual Machine     236
An Introduction to System Software and Virtual Machines     239
Introduction     240
System Software     241
The Virtual Machine     241
Types of System Software     243
Assemblers and Assembly Language     245
Assembly Language     245
Practice Problems      251
Examples of Assembly Language Code     252
Practice Problems     256=970 13$lLaboratory Experience 10     256
Translation and Loading     257
Practice Problems     261
Operating Systems     263
Functions of an Operating System     264
Special Interest Box: A Machine for the Rest of Us     266
Special Interest Box: Hackers     269
Practice Problem     270
Special Interest Box: The Open Source Movement     273
Historical Overview of Operating Systems Development     273
Special Interest Box: Now That's Big!     274
The Future     282
Exercises     285
Challenge Work     287
For Further Reading     287
Computer Networks, the Internet, and the World Wide Web     289
Introduction     290
Basic Networking Concepts     291
Communication Links     291
Special Interest Box: Blogs     291
Practice Problems     296
Special Interest Box: Ubiquitous Computing     297
Local Area Networks     297
Practice Problems     300
Wide Area Networks      300
Overall Structure of the Internet     302
Communication Protocols     304
Physical Layer     306
Data Link Layer     307
Practice Problems     310
Network Layer     311
Practice Problems     313
Transport Layer     314
Application Layer     317=970 13$lLaboratory Experience 11     321
Network Services and Benefits     321
Special Interest Box: Spam     322
A Brief History of the Internet and the World Wide Web     324
The Internet     324
The World Wide Web     328
Special Interest Box: Geography Lesson     328
Conclusion     330
Summary of Level 3     330
Exercises     332
Challenge Work     333
For Further Reading     333
The Software World     334
Introduction to High-level Language Programming     337
Where Do We Stand?     338
High-level Languages     339
Introduction to Java     341
A Simple Java Program     342
Special Interest Box: Java Is Born     343
Running a Java Program      345
Virtual Data Storage     345
Practice Problems     347
Statement Types     348
Input Statements     349
Special Interest Box: The Console Class     349
Practice Problem     351
Output Statements     351
Practice Problems     352
The Assignment Statement     353
Practice Problems     356
Control Statements     356
Practice Problems     366
Another Example     368
Practice Problems     370=970 13$lLaboratory Experience 12     371
Meeting Expectations     371
Managing Complexity     375
Divide and Conquer     375
Special Interest Box: Which Java?     375
Using Methods     377
Writing Methods     380
Practice Problems     384=970 13$lLaboratory Experience 13     386
Object-Oriented Programming     386
What Is It?     386
Java and OOP     388
One More Example     393
What Have We Gained?     397
Practice Problems     399
Graphical Programming     399
Graphics Hardware      400
Graphics Software     402
Practice Problem     411=970 13$lLaboratory Experience 14     11
The Big Picture: Software Engineering     412
Scaling Up     412
The Software Life Cycle     414
Special Interest Box: Vital Statistics for Real Code     414
Modern Environments     418
Conclusion     419
Exercises     420
Challenge Work     423
For Further Reading     424
The Tower of Babel     425
Why Babel?     426
Procedural Languages     427
Fortran     428
Special Interest Box: Old Dog, New Tricks #1     430
Practice Problem     430
Cobol     430
Practice Problem     432
C/C++     432
Practice Problems     435
Ada     436
Practice Problem     437
C# and .NET     437
Practice Problem     438
Special Interest Box: Old Dog, New Tricks #2     439
Special-purpose Languages     439
SQL     439
HTML     440=970 13$lLaboratory Experience 15      442
Special Interest Box: Beyond HTML     442
JavaScript     443
Practice Problems     445
Special Interest Box: PHP     445
Alternative Programming Paradigms     446
Functional Programming     446
Practice Problems     451
Special Interest Box: Simplicity Is in the Eye of the Beholder     451=970 13$lLaboratory Experience 16     452
Logic Programming     452
Practice Problems     457
Parallel Programming     458
Practice Problem     461
Conclusion     461
Special Interest Box: Parallel Computing with Titanium     461
Exercises     464
Challenge Work     466
For Further Reading     467
Compilers and Language Translation     469
Introduction     470
The Compilation Process     473
Phase I: Lexical Analysis     474
Practice Problems     477
Phase II: Parsing     477
Practice Problems     483
Practice Problems     493
Phase III: Semantics and Code Generation     494
Phase IV: Code Optimization     503=970 13$lLaboratory Experience 17     503
Practice Problems     503
Special Interest Box: "I Do Not Understand," Said the Machine     508
Conclusion     509
Exercises     518
Challenge Work     512
For Further Reading     513
Models of Computation     515
Introduction     516
What Is a Model?     516
Practice Problems     518
A Model of a Computing Agent     518
Properties of a Computing Agent     518
The Turing Machine     519
Special Interest Box: Alan Turing, Brilliant Eccentric     520
Practice Problems     526
A Model of an Algorithm     527
Turing Machine Examples     530
A Bit Inverter     530
A Parity Bit Machine     532
Machines for Unary Incrementing     535
A Unary Addition Machine     538
Practice Problems     540=970 13$lLaboratory Experience 18     540
The Church-Turing Thesis     540
Special Interest Box: The Turing Award     541
Unsolvable Problems     543
Special Interest Box: Couldn't Do, Can't Do, Never Will Be Able to...      548
Practice Problems     548=970 13$lLaboratory Experience 19     548
Conclusion     549
Summary of Level 4     549
Exercises     551
Challenge Work     553
For Further Reading     555
Applications     556
Simulation and Modeling     559
Introduction     560
Computational Modeling     560
Introduction to Systems and Models     560
Computational Models, Accuracy, and Errors     562
An Example of Model Building     565
Practice Problems     572=970 13$lLaboratory Experience 20     573
Running the Model and Visualizing Results     573
Conclusion     580
Special Interest Box: The Mother of all Computations!     581
Exercises     582
Challenge Work     583
For Further Reading     584
Electronic Commerce and Information Security     585
Introduction     586
Special Interest Box: Shopping on the Web     587
E-commerce     588
The Vision Thing     588
Decisions, Decisions     589
Anatomy of a Transaction      590
Special Interest Box: A Rose by Any Other Name...     592
Special Interest Box: Gone Phishin'     595
Designing Your Web Site     595
Behind the Scenes     597
Special Interest Box: The Price of Success     598
Practice Problem     598
Databases     598
Data Organization     599
Database Management Systems     600
Other Considerations     604=970 13$lLaboratory Experience 21     605
Practice Problems     606
Information Security     606
Encryption Overview     607
Simple Encryption Algorithms     608
Practice Problems     610
DES     610=970 13$lLaboratory Experience 22     611
Special Interest Box: Cracking DES     612
Public-Key Systems     614
Practice Problem     616
Conclusion     616
Exercises     617
Challenge Work     617
For Further Reading     618
Artificial Intelligence     619
Introduction     620
Special Interest Box: To Whom Am I Speaking?     621
A Division of Labor     621
Knowledge Representation     624
Practice Problem     627
Recognition Tasks     627
Special Interest Box: Read Me a Story     632=970 13$lLaboratory Experience 23     632
Practice Problem     633
Reasoning Tasks     633
Intelligent Searching     633
Swarm Intelligence     635
Special Interest Box: The Chess Challenge     636
Intelligent Agents     637
Special Interest Box: ANTS in Space!     637
Expert Systems     639
Practice Problems     642
Robotics     642
Conclusion     643
Summary of Level 5     644
Special Interest Box: Shall We Dance?     644
Exercises     645
Challenge Work     646
For Further Reading     649
Social Issues in Computing     650
Making Decisions about Computers, Information, and Society     653
Introduction     654
Case Studies     654
Case 1: The Story of MP3-Compression Codes, Musicians, and Money     654
Practice Problems     660
Special Interest Box: The Sound of Music     661
Case 2: PGP: The U.S. Government vs. Phil Zimmermann     661
Case 3: Hackers: Public Enemies or Gadflies?     665
Practice Problems     666
Special Interest Box: The Cyborg     667
Practice Problems     670
Thinking Straight about Technology and Ethics     670
Case 4: Genetic Information and Medical Research     671
What We Covered and What We Did Not     675
Summary of Level 6     676
Exercises     677
For Further Reading     678
Appendix     681
Answers to Practice Problems     683
Index     711

Subjects


 

 




No reviews. Submit yours!



Review this book.

We would like to know what you think about this book and publish your thoughts here! (top)

Your Review

  1. You may optionally give a title for this comment.

  2. Worst to best, 1 to 5, what would you rate this one?

  3. The actual content of your comment. No HTML nor whatsoever allowed.

  4. The author of this comment.

  5. Which cannot float on water, boat or stone?

    Please answer the question by common sense.