Computer programming / software engineering Books
Cambridge University Press Formal Methods for Distributed Processing
a huge range and FREE tracked UK delivery on ALL orders.
£128.25
Cambridge University Press Design Patterns in Communications Software 19 SIGS Reference Library Series Number 19
a huge range and FREE tracked UK delivery on ALL orders.
£94.04
Cambridge University Press Intro to Distributed Algorithms 2ed
a huge range and FREE tracked UK delivery on ALL orders.
£59.84
Cambridge University Press Memory Program Concept C and C
a huge range and FREE tracked UK delivery on ALL orders.
£98.80
Cambridge University Press Principles of Constraint Programming
a huge range and FREE tracked UK delivery on ALL orders.
£61.75
Cambridge University Press Constraint Logic Programming using Eclipse
a huge range and FREE tracked UK delivery on ALL orders.
£67.44
Cambridge University Press Constraint Handling Rules
a huge range and FREE tracked UK delivery on ALL orders.
£46.54
Cambridge University Press Modeling in EventB System and Software Engineering
Book SynopsisA practical text suitable for an introductory or advanced course in formal methods, this book presents a mathematical approach to modelling and designing systems using an extension of the B formal method: Event-B. Based on the idea of refinement, the author's systematic approach allows the user to construct models gradually and to facilitate a systematic reasoning method by means of proofs. Readers will learn how to build models of programs and, more generally, discrete systems, but this is all done with practice in mind. The numerous examples provided arise from various sources of computer system developments, including sequential programs, concurrent programs and electronic circuits. The book also contains a large number of exercises and projects ranging in difficulty. Each of the examples included in the book has been proved using the Rodin Platform tool set, which is available free for download at www.event-b.org.Trade Review'This present book is the definitive treatment of the new B dialect, written by its creator. Unlike its classical B predecessor which is intended as a reference for the classical B methodology, the present volume is squarely aimed at teaching, though the considerably lighter theory of Event-B permits some of the chapters to act as a reference too.' logcom.oxfordjournals.org'… a rich and accessible book, demonstrating both the strengths and weaknesses of the use of Event-B, and containing varied and valuable case studies as its core. It is written in a pleasant colloquial style, with changes in the vocal tempo and tone leaping off the pages. … should be seriously considered for introductory courses on formal modelling with associated proof.' Journal of Functional ProgrammingTable of ContentsPrologue: faultless systems – yes we can!; Acknowledgements; 1. Introduction; 2. Controlling cars on a bridge; 3. A mechanical press controller; 4. A simple file transfer protocol; 5. The Event-B modeling notation and proof obligations rules; 6. Bounded re-transmission protocol; 7. Development of a concurrent program; 8. Development of electronic circuits; 9. Mathematical language; 10. Leader election on a ring-shaped network; 11. Synchronizing a tree-shaped network; 12. Routing algorithm for a mobile agent; 13. Leader election on a connected graph network; 14. Mathematical models for proof obligations; 15. Development of sequential programs; 16. A location access controller; 17. Train system; 18. Problems; Index.
£115.90
Cambridge University Press A First Guide to Computational Modelling in Physics
a huge range and FREE tracked UK delivery on ALL orders.
£56.99
Cambridge University Press Cultures of Programming
a huge range and FREE tracked UK delivery on ALL orders.
£75.99
Cambridge University Press Learning Scientific Programming with Python
Book SynopsisLearn to master basic programming tasks from scratch with real-life scientific examples drawn from many different areas of science and engineering. This complete introduction to using Python teaches Numpy, SciPy and Matplotlib libraries and is supported by extensive online resources to provide a targeted package for students and researchers.Trade Review'This book is well illustrated and is supported by an extensive collection of resources online in the book's website, scipython.com. This site has code listings and solutions to exercises. I would readily recommend this book to any student (or even a colleague) who wishes to achieve a solid foundation in Python programming.' Vasudevan Lakshminarayanan, Contemporary PhysicsTable of Contents1. Introduction; 2. The core Python language I; 3. Interlude: simple plotting with pylab; 4. The core Python language II; 5. IPython and IPython notebook; 6. NumPy; 7. Matplotlib; 8. SciPy; 9. General scientific programming; Appendix A. Solutions; Index.
£82.64
Cambridge University Press Programming Languages
This 'great ideas applied in practice' textbook emphasizes practice. It distills key programming languages and their design ideas down to small, simple languages implemented by an interpreter, The hands-on approach lets readers develop skills that will help them be productive programmers even in languages they've never seen before.
£61.74
Cambridge University Press Modern Fortran in Practice
Book SynopsisFrom its earliest days, the Fortran programming language has been designed with computing efficiency in mind. The latest standard, Fortran 2008, incorporates a host of modern features, including object-orientation, array operations, user-defined types, and provisions for parallel computing. This tutorial guide shows Fortran programmers how to apply these features in twenty-first-century style: modular, concise, object-oriented, and resource-efficient, using multiple processors. It offers practical real-world examples of interfacing to C, memory management, graphics and GUIs, and parallel computing using MPI, OpenMP, and coarrays. The author also analyzes several numerical algorithms and their implementations and illustrates the use of several open source libraries. Full source code for the examples is available on the book's website.Trade Review'A language cannot survive without a means to learn about it. This implies the availability not only of textbooks on the language's syntax and semantics but also of books on how to use the language in real-life situations. Somehow, experience in the use and application of a language needs to be passed on to a new generation of programmers and new features require advice on how they are best to be used. Here, at a time when only rarely is a single language used in isolation, but more often in conjunction with other languages or with various tools, Modern Fortran in Practice fulfils a real need for practical advice in the field. I recommend it to all Fortran practitioners.' Michael Metcalf, from the Foreword'Scientists, mathematicians, and engineers will find that Modern Fortran in Practice speaks their language. Arjen Markus introduces modern Fortran features using real-world examples and practical advice. If your knowledge of Fortran stops at FORTRAN-77 or even Fortran 90, Markus's book will open your eyes to what today's Fortran can do for you.' Steve Lionel, Senior Member Technical Staff, Intel Corporation'Modern Fortran in Practice shows by practical examples how reliable and maintainable programs can be written. Starting with examples in Fortran 95, Fortran 2003/2008 features are then introduced and used to improve the code, thus showing different approaches but also providing a solution for older compilers. The author covers the whole development - from algorithm choice and error handling to graphical interfaces, parallelization, and unit testing. The book is an ideal complement to books that focus on the syntax of Fortran.' Tobias Burnus, Institute for Advanced Simulation, Research Centre Jülich'This book is a very welcome complement to the existing literature on modern Fortran. While most Fortran books serve as comprehensive language references, this book stands out for its extensive demonstrations of practical applications of the language. Especially interesting are the many demonstrations of the newest programming paradigms Fortran supports, including object-oriented programming, functional programming, and parallel programming.' Damian Rouson, Sandia National LaboratoryTable of Contents1. Introduction to modern Fortran; 2. Array-valued functions; 3. Mathematical abstractions; 4. Memory management; 5. An interface problem; 6. Interfacing to C: SQLite as an example; 7. Graphics, GUIs, and the internet; 8. Unit testing; 9. Code reviews; 10. Robust implementation of several simple algorithms; 11. Object-oriented programming; 12. Parallel programming; Appendix A. Tools for development and maintenance; Appendix B. Caveats.
£54.14
Cambridge University Press Competitive Programming in Python
Book SynopsisWant to kill it at your job interview in the tech industry? Want to win that coding competition? Learn all the algorithmic techniques and programming skills you need from two experienced coaches, problem setters, and jurors for coding competitions. The authors highlight the versatility of each algorithm by considering a variety of problems and show how to implement algorithms in simple and efficient code. Readers can expect to master 128 algorithms in Python and discover the right way to tackle a problem and quickly implement a solution of low complexity. Classic problems like Dijkstra''s shortest path algorithm and Knuth-Morris-Pratt''s string matching algorithm are featured alongside lesser known data structures like Fenwick trees and Knuth''s dancing links. The book provides a framework to tackle algorithmic problem solving, including: Definition, Complexity, Applications, Algorithm, Key Information, Implementation, Variants, In Practice, and Problems. Python code included in the boTrade Review'This book guides the reader through a collection of interesting problems, teaching us many ideas that underlie efficient algorithms. The simplicity of Python helps highlight the beauty and accessibility of the ideas. I found it a most enjoyable and engaging book.' Anupam Gupta, Carnegie Mellon UniversityTable of Contents1. Introduction; 2. Character strings; 3. Sequences; 4. Arrays; 5. Intervals; 6. Graphs; 7. Cycles in graphs; 8. Shortest paths; 9. Matching and flows; 10. Trees; 11. Sets; 12. Points and polygons; 13. Rectangles; 14. Numbers and matrices; 15. Exhaustive search; 16. Conclusion.
£32.29
Pearson Education (US) Introduction to Game Design Prototyping and
Book SynopsisTable of Contents P1 Game Design and Paper Prototyping 0 Introduction 1 Thinking Like a Designer 2 Game Analysis Lexicons 3 The Layered Tetrad 4 Acting Like a Designer 5 Design Goals 6 The Inscribed Layer 7 The Dynamic Layer 8 The Cultural Layer 9 Paper Prototyping and Iteration 10 Playtesting and Usability Testing 11 Math & Game Balance 12 Puzzle Design 13 Guiding the Player 14 The Digital Game Industry 15 The Agile Development Prototyping Mentality P2 Digital Prototyping 16 Thinking in Digital Systems 17 Introducing our Development Environment: Unity 18 Introducing our Language: C# 19 Your First Program: Hello World 20 Debugging 21 Variables and Components 22 Boolean Operations and Conditionals 23 Loops 24 Lists and Arrays 25 Functions and Parameters 26 Classes 27 Object-Oriented Thinking P3 Game Prototype Examples and Tutorials 28 Prototype 1: Apple Picker 29 Prototype 2: Mission Demolition 30 Prototype 3: Space SHMUP 31 Prototype 4: Prospector Solitaire 32 Prototype 5: Bartok 33 Prototype 6: Word Game 34 Prototype 7: QuickSnap 35 Prototype 8: Omega Mage P4 Appendices 36 Standard Project Setup Procedure 37 Useful Concepts Reference 38 Online References
£59.49
MIT Press Ltd Principles of Abstract Interpretation
Book SynopsisIntroduction to abstract interpretation, with examples of applications to the semantics, specification, verification, and static analysis of computer programs.Formal methods are mathematically rigorous techniques for the specification, development, manipulation, and verification of safe, robust, and secure software and hardware systems. Abstract interpretation is a unifying theory of formal methods that proposes a general methodology for proving the correctness of computing systems, based on their semantics. The concepts of abstract interpretation underlie such software tools as compilers, type systems, and security protocol analyzers. This book provides an introduction to the theory and practice of abstract interpretation, offering examples of applications to semantics, specification, verification, and static analysis of programming languages with emphasis on calculational design. The book covers all necessary computer science and mathematical concepts--includ
£76.00
MIT Press Ltd Machine Learning from Weak Supervision An
Book SynopsisFundamental theory and practical algorithms of weakly supervised classification, emphasizing an approach based on empirical risk minimization.Standard machine learning techniques require large amounts of labeled data to work well. When we apply machine learning to problems in the physical world, however, it is extremely difficult to collect such quantities of labeled data. In this book Masashi Sugiyama, Han Bao, Takashi Ishida, Nan Lu, Tomoya Sakai and Gang Niu present theory and algorithms for weakly supervised learning, a paradigm of machine learning from weakly labeled data. Emphasizing an approach based on empirical risk minimization and drawing on state-of-the-art research in weakly supervised learning, the book provides both the fundamentals of the field and the advanced mathematical theories underlying them. It can be used as a reference for practitioners and researchers and in the classroom.The book first mathematically formulates classification problems,
£58.90
MIT Press Ltd Automata Theory
Book SynopsisA comprehensive introduction to automata theory that uses the novel approach of viewing automata as data structures.This textbook presents automata theory from a fresh viewpoint inspired by its main modern application, program verification, where automata are viewed as data structures for the algorithmic manipulation of sets and relations. This novel “automata as data structures” paradigm makes holistic connections between automata theory and other areas of computer science not covered in traditional texts, linking the study of algorithms and data structures with that of the theory of formal languages and computability. Esparza and Blondin provide incisive overviews of core concepts along with illustrated examples and exercises that facilitate quick comprehension of rigorous material. Uses novel “automata as data structures” approach Algorithm approach ideal for programmers looking to broaden their skill set and researchers in automata theory and formal verification The first introduction to automata on infinite words that does not assume prior knowledge of finite automata Suitable for both undergraduate and graduate students Thorough, engaging presentation of concepts balances description, examples, and theoretical results Extensive illustrations, exercises, and solutions deepen comprehension
£72.20
MIT Press Ltd Programming for the Puzzled Learn to Program
Book SynopsisLearning programming with one of “the coolest applications around”: algorithmic puzzles ranging from scheduling selfie time to verifying the six degrees of separation hypothesis.This book builds a bridge between the recreational world of algorithmic puzzles (puzzles that can be solved by algorithms) and the pragmatic world of computer programming, teaching readers to program while solving puzzles. Few introductory students want to program for programming's sake. Puzzles are real-world applications that are attention grabbing, intriguing, and easy to describe. Each lesson starts with the description of a puzzle. After a failed attempt or two at solving the puzzle, the reader arrives at an Aha! moment—a search strategy, data structure, or mathematical fact—and the solution presents itself. The solution to the puzzle becomes the specification of the code to be written. Readers will thus know what the code is supposed to do before seeing the code it
£24.00
John Wiley & Sons Inc Software Development Rhythms
Book SynopsisAn accessible, innovative perspective on using the flexibility of agile practices to increase software quality and profitability When agile approaches in your organization don''t work as expected or you feel caught in the choice between agility and discipline, it is time to stop and think about software development rhythms! Agile software development is a popular development process that continues to reshape philosophies on the connections between disciplined processes and agile practices. In Software Development Rhythms, authors Lui and Chan explain how adopting one practice and combining it with another builds upon the flexibility of agile practices to create a type of synergy defined as software development rhythms. The authors demonstrate how these rhythms can be harmonized to achieve synergies, making them stronger together than they would be apart. Software Development Rhythms provides programmers with a powerful metaphor for resolving some classic software management Trade Review"It is full of case studies, anecdotes, and exercises, all illustrated with clever, yet instructive cartoons." (Ubiquity, June 10-16, 2008)Table of ContentsPART I: ESSENTIALS. Chapter 1: No Programmer Dies. 1.1 Developing Software vs. Building a Tunnel. 1.1.1 The good old days? 1.1.2 The more things change the more they stay the same? 1.1.3 Behind Software Products. 1.1.4 Deal or not deal. 1.2 Do-Re-Mi Do-Re-Mi. 1.2.1 Iterative Models. 1.2.2 Code and Fix. 1.2.3 Chaos. 1.2.4 Methodology that matters. 1.3 Software Development Rhythms. 1.3.1 Stave Chart by Example. 1.3.2 Game Theory. 1.3.3 IN-OUT Diagram. 1.3.4 Master-Coach Diagram. 1.3.5 No Mathematics. 1.3.6 Where to Explore Rhythms. Chapter 2: Understanding Programmers. 2.1 Personality and Intelligence. 2.1.1 Virtuosi. 2.1.2 Meeting your team. 2.1.3 Recruiting Programmers. 2.2 Outsourced Programmers. 2.2.1 Programmers in Their Environments. 2.2.2 Programmers, Cultures, and Teams. 2.3 Experienced Management. 2.3.1 Being Casual about Causal Relationships. 2.3.2 Not Learning From Experience. 2.3.3 Doing things right right now. Chapter 3: Start with Open Source. 3.1 Process and Practice. 3.1.1 The 4Ps of Projects. 3.1.2 Agile Values. 3.1.3 Zero-point collaboration. 3.2 OSS Development. 3.2.1 Software Cloning. 3.2.2 Software Quality. 3.2.3 Starting Processes. 3.2.4 Open Source Development Community. 3.2.5 Ugrammers. 3.2.6 Participant Roles. 3.2.7 Rapid Release. 3.2.8 Black-box Programming. 3.2.9 Open Source Software Practices. 3.3 OOS-Like Development. 3.3.1 Agile Practices. 3.3.2 Communication Proximity. 3.3.3 Loose and Tight Couple. 3.3.4 Co-located OSS Development. PART II: RHYTHMS. Chapter 4: Plagiarism Programming. 4.1 Plagiarism. 4.1.1 Existing Code. 4.1.2 Social Network Analysis. 4.1.3 Being Plagiarized. 4.1.4 Turn everyone into a programmer. 4.1.5 Pattern Language. 4.1.6 Software Team Capability. 4.1.7 Rough-Cut Design. 4.1.8 Training is not a solution. 4.2 Nothing Faster than Plagiarism. 4.2.1 Immorality. 4.2.2 Unprecedented Code. 4.2.3 People Network. 4.2.4 Rhythm for Plagiarism. 4.2.5 Plagiarism at Work. 4.3 Business and Rhythm for Plagiarism. 4.3.1 15 Minute Business Presentation. 4.3.2 Marketing Research. 4.3.3 Chatting Robot. 4.3.4 Old Song New Singer. Chapter 5: Pair Programming. 5.1 Art and Science. 5.1.1 The Right Partner. 5.1.2 Noisy Programming. 5.1.3 Just Training. 5.1.4 Pay to watch. 5.2 Two Worlds. 5.2.1 Moneyless World. 5.2.2 Money-led World. 5.2.3 Economics. 5.2.4 Mythical Quality-time. 5.2.5 Elapsed Time. 5.2.6 Critical Path Method. 5.2.7 Why two not three: Anti-Group. 5.2.8 Software Requirements are Puzzles. 5.3 Programming Task Demands. 5.3.1 2 and 4 is 6. 5.3.2 2 and 4 is 4. 5.3.3 2 and 4 is 3. 5.3.4 2 and 4 ≥ 2. 5.3.5 2 and 4 is unknown. 5.4 Pair programming is more than programming. 5.4.1 Design by Code. 5.4.2 Pair Design. 5.4.3 Rhythmic Pair Programming. 5.5 Pair programming Team Coached. Chapter 6: Repeat Programming. 6.1 Controversies in Pair Programming. 6.1.1 Is Programming a Unique Work? 6.1.2 Are Three Minds Better Than Two? 6.1.3 Un-replicable Experiments. 6.2 Repeat Programming. 6.2.1 Variances. 6.2.2 Principles. 6.2.3 Triple Programming Unproductive. 6.3 Rhythm: Pair - Solo - Pair - Solo. 6.3.1 Persistence. 6.3.2 Connection. 6.3.3 Motivation. 6.4 An exception that proves Brooks’ Law. 6.4.1 Low Morale. 6.4.2 Communication Costs. 6.4.3 Rhythm for Late Projects. Chapter 7: Agile Teaming. 7.1 Project Teams. 7.1.1 Self-organizing teams. 7.1.2 Teams in Team. 7.1.3 Project Team Composition. 7.1.4 Team Life Cycle vs. Learning Curve. 7.2 Productivity. 7.2.1 The Illusion of Productivity. 7.2.2 Collective Code Ownership. 7.2.3 Accountability, Responsibility and Transparency. 7.3 Problems and Problem Owners. 7.3.1 Rhythm: Trouble - Restructuring. 7.3.2 Teaming Principles. 7.4 Failing Projects Rescued. 7.4.1 Project Traffic Light. 7.4.2 A Business Case. 7.4.3 Steering Committee Meeting. 7.4.4 Agile Teaming in Action. 7.5 Beware of Iago. Chapter 8: Incremental Design. 8.1 Modeling and Planning. 8.1.1 Agile Planning. 8.1.2 Design by Functional Modules. 8.1.3 Simple Design. 8.1.4 Total Cost Concept. 8.2 Rework or reuse. 8.2.1 Unpreventable Rework. 8.2.2 Improvisation. 8.2.3 Up-front Design. 8.3 Just-in-time Software Development. 8.3.1 The CMM Rhythm. 8.3.2 A Factory Tour. 8.3.3 Walking Worker. 8.3.4 Just-in-time Software Development. 8.3.5 Incremental Design. 8.4 Requirements Complexity. 8.4.1 Forgotten Requirements. 8.4.2 Conflicting Requirements. 8.4.3 Rapid Changing Requirements. 8.4.4 Requirements and Design. 8.5 Refactoring. 8.5.1 Refactoring Activities. 8.5.2 Refactoring by Challenging. 8.5.3 Refactoring for Design Patterns. 8.5.4 Making Deliberate Mistakes. Chapter 9: Test-Driven Development. 9.1 Reverse Waterfall. 9.1.1 Design - Code - Test. 9.1.2 Test - Code - Design. 9.2 Test-First Programming. 9.2.1 Testing and Verification. 9.2.2 Break-point testing. 9.2.3 Supporting Practices. 9.3 Rhythm: Test - Code - Refactor. 9.3.1 Simple Example. 9.3.2 Automation. 9.3.3 Revolution in Consciousness! 9.3.4 Test Case for Collaboration. 9.4 Rapid Software Process Improvement. 9.4.1 Training Program. 9.4.2 Project Planning. 9.4.3 Project Tracking. 9.4.4 Software Quality. 9.4.5 Software Configuration. 9.4.6 People Discipline. Epilogue: Medley. Appendix I: Nammik. References.
£83.55
John Wiley & Sons Inc Doing Physics with Scientific Notebook
Book SynopsisThe goal of this book is to teach undergraduate students how to use Scientific Notebook (SNB) to solve physics problems. SNB software combines word processing and mathematics in standard notation with the power of symbolic computation. As its name implies, SNB can be used as a notebook in which students set up a math or science problem, write and solve equations, and analyze and discuss their results. Written by a physics teacher with over 20 years experience, this text includes topics that have educational value, fit within the typical physics curriculum, and show the benefits of using SNB. This easy-to-read text: Provides step-by-step instructions for using Scientific Notebook (SNB) to solve physics problems Features examples in almost every section to enhance the reader''s understanding of the relevant physics and to provide detailed instructions on using SNB Follows the traditional physics cuTable of ContentsPreface xv So we’re all on the same page... xvii What is science? xviii To the Student xix To the Teacher xx Contact Information xx Acknowledgments xxi 1 Introduction to SNB 1 Why SNB? 1 The Basics 2 Physics à la mode: Math or Text 8 Creating Mathematical Expressions 8 Evaluate and Evaluate Numerically 11 Scientific Notation 13 Substitution and Endpoint Evaluation 14 Solving Equations 17 Solve Exact 18 Solve Numeric 21 Systems of Equations 24 The Compute Menu 25 Simplify and Expand 25 Factor 26 Rewrite and Combine 28 Check Equality 29 Polynomials 31 Power Series 32 Definitions 35 Other Good Stuff 37 Computing In-place 37 Making Assumptions About Variables 37 Limits 40 A Few Words About Calculus 42 Units 46 Converting Units 47 User-Defined Units 51 Plotting 52 Plot 2D Rectangular 54 Other 2-Dimensional Plots 55 Plot 3D Rectangular 58 Cylindrical and Spherical Plots 60 Plotting Data 63 Fitting a Curve to Data 63 Differential Equations 67 Solve ODE Exact and Laplace 68 Solve ODE Numeric 70 Problems 75 2 One-Dimensional Kinematics 83 Constant Acceleration 83 Displacement and Position 83 Velocity and Acceleration 84 Equations of Motion 86 Signs of the Times 88 Free Fall 89 Varying Acceleration 91 Displacement, Velocity, and Acceleration 91 Equations of Motion 93 Gravity and Air Resistance 96 Resisting Air Resistance is Futile 97 Long-Distance Free Fall 99 Problems 102 3 Vectors 105 Components of a Vector 107 Magnitude and Direction 108 Adding Vectors 111 The Component Method 112 The SNB Method 113 The Graphing Method 115 Unit Vectors 119 Multiplying Vectors 120 Dot Product 121 Cross Product 122 Problems 125 4 Projectile Motion 127 No Air Resistance 127 Trajectory 132 Time of Flight 134 Maximum Height 135 Linear Air Resistance 137 Trajectory 141 Time of Flight and Range 143 Maximum Height 145 Turn Off the Air! 146 Turn Down the Air! 147 Quadratic Air Resistance 151 Height-Dependent Air Resistance 152 Problems 154 5 Newton’s Laws of Motion 157 Newton’s First Law 157 Newton’s Second Law for Constant Forces 158 Newton’s Second Law for Varying Forces 165 Time-Dependent Forces 165 Velocity-Dependent Forces 167 Position-Dependent Forces 170 Newton’s Third Law 173 Problems 175 6 Conservation Laws 179 Definitions 179 Conservation of Energy 181 Work 181 The Work-Energy Theorem 185 Potential Energy 186 Mechanical Energy is Conserved 188 A Complete Bookkeeping 191 Conservation of Momentum 193 Collisions in 1-Dimension 193 Collisions in 2-Dimensions 196 Rockets 199 Deep Space 199 Launch 202 Air Resistance 207 Varying Gravity and Air Resistance 213 Problems 216 7 Circular Motion 221 Uniform Circular Motion 222 The Rotating Umbrella 224 Rotational Kinematics 227 The Compact Disk 229 Newton’s Second Law and Circular Motion 233 Uniform Circular Motion and the 2nd Law 233 Non-Uniform Circular Motion and the 2nd Law 235 Sliding on a Sphere 236 Problems 248 8 Harmonic Motion 251 Simple Harmonic Motion, Simply 251 Energy and SHM 254 Not-Quite-as-Simple Harmonic Motion 255 Energy and SHM, Again 257 Damped Harmonic Motion 259 Underdamped (β2 < ω20) 259 Critically Damped (β2 = ω20) 261 Overdamped (β2 > ω20) 262 Driven Harmonic Motion 263 Constant Driving Force, no Damping 263 Sinusoidal Driving Force, no Damping 264 Constant Driving Force with Damping 265 Sinusoidal Driving Force with Damping 267 Small Oscillations 270 Not-so-Simple Harmonic Motion 272 Problems 275 9 Central Forces 279 Equations of Motion 279 Newtonian Gravitation 285 Kepler’s Laws 286 The Effective Potential 292 Two Special Forces 296 The 3-d Harmonic Oscillator 296 The Inverse-Square Force 299 Numerical Stuff 303 Problems 305 10 Fluids 309 Density and Pressure 309 Static Fluids 311 Buoyancy 312 Fluids in Motion 314 Bernoulli’s Equation 316 Applications of Bernoulli’s Equation 318 A More Realistic Approach 320 Flow in a Pipe 321 Stokes’ Law 330 Problems 331 11 Temperature and Heat 335 Temperature Scales 335 Absolute Temperature 337 Heat and Work 338 Heat Flow 339 Change in Temperature: Specific Heat 339 Change in State: Latent Heat 340 Calorimetry 341 Varying Specific Heat 344 The Specific Heat of Solids 345 Problems 353 12 Special Relativity 359 The Two Postulates 360 The Consequences 361 Time Dilation 363 Length Contraction 364 Addition of Velocities 365 Simultaneity 367 The Lorentz Transformation 367 Space-Time 370 Relativistic Momentum and Energy 375 Relativistic Collisions 378 Relativistic Dynamics 382 Four-Vectors 387 Problems 392 A Topics in Classical Physics 397 Newton’s Nose-Cone Problem 397 Simple Shapes 398 Frusta and Fudges 403 Newton’s Minimizer 409 Indented Tips and the Minimizer 411 The Shape of the Eiffel Tower 414 An Interesting Classical Orbit 417 Fisher’s Crystal 421 Problems 428 B Topics in Modern Physics 435 The Tale of the Traveling Triplets 435 Trip 1: Constance goes to Vega 435 Relativistic Interlude: Constant Acceleration 437 Trip 2: Axel goes to Vega 441 What happens on the way to Vega... 443 Orbits in General Relativity 445 Angular Momentum 447 Precessing Ellipses and Periodic Orbits 451 Be the Ball: Embedding Diagrams 456 Classical Lifetime of a Hydrogen Atom 460 Missed It By That Much 460 Can Special Relativity Save the Day? 462 Quantum Mechanical Bound States 465 Infinite Square Well (“Particle in a Box”) 467 Finite Square Well 470 V-shaped Linear Well 477 Problems 483 References and Suggested Reading 491 Index 495
£65.95
John Wiley & Sons Inc System Design for Telecommunication Gateways
Book SynopsisSystem Design for Telecommunication Gateways provides a thorough introduction to designing telecommunication network equipment based on the latest hardware designs and software methods available on the market.Trade Review"System Design for Telecommunication Gateways provides a thorough review of designing telecommunication network equipment based on the latest hardware designs and software methods available on the market." (Fixed Mobile Convergence, 15 March 2011)Table of ContentsAbbreviations. Abbreviations. 1. Introduction. 2. System View. 2.1 System Architecting. 2.2 Platform-based Approach. 2.3 System Verification. 3. Hardware Technologies and Platforms. 3.1 Different Form Factors. 3.2 Stacking chassis. 3.3 Cluster Computing. 3.4 Inter-blade Interconnect. 3.5 Hardware Solutions for Data, Control and Management Planes Processing. 4 Software Technologies and Platforms. 4.1 Basic Software Platform. 4.2 Expanded Software Platform. 4.3 Single-Threaded and Multi-X Software Designs. 4.4 Partitioning OS and Virtualization. Figures. Tables. References. Index.
£93.05
John Wiley & Sons Inc Introductory Programming with ObjectOriented C
Book SynopsisA gentle introductory programming book written specifically to teach readers to use objects for the very beginning, rather than starting with structured programming. Perfect for structure programmers that need to learn the object-oriented perspective. Covers the fundamentals of C++ and gives a firm grounding in the object-oriented paradigm. Begins with the systems development life cycle and demonstrates where the software development cycle fits within it.Table of ContentsSoftware Development: The Organizational Process. Software Development: The Programming Process. The Role of Binary. Introducing the Object-Oriented Paradigm. Anatomy of a C++ Program. Variables. Declaring Member Functions. Writing and Using Member Functions. Stream I/O. File I/O. Doing Arithmetic. Making Decisions. Repeating Actions. Introducing Arrays. Arrays of Objects. Strings. Pointers. Inheritance. Linked Lists. Overloading. Templates. Summing Up. Glossary. Index.
£150.26
John Wiley & Sons Inc Software Engineering
Book SynopsisPeters and Pedrycz have written the first comprehensive and complete text on a quantitative approach to Software Engineering. This book provides the reader with well-defined and carefully described software practices based on industry standards. It presents practical approaches to specifying, designing and testing software as well as the foundations of Software Engineering. Frameworks, methods and technologies in aid of the activities typically found in software projects, are thoroughly presented. This book includes a complete case study representing all of the major phases in software development.Emphasizing both the design and analysis of the technology, Peters and Pedrycz have created a highly balanced introduction to Software Engineering. This text provides students with a holistic look at software design by encouraging them to view the process as an interplay between hardware and software. The reader will also find the latest information in the field, frequent referencesTable of ContentsSOFTWARE ENGINEER'S WORKSHOP. Software Engineering Landscape. Software Processes. Requirements Engineering. Software Design: Architectures. SoftwareDesign: Validation and Risk Analysis. Design Elaboration. Design Elaboration: Mobile Computing. Software Verification. Software Measures. Software Cost Estimation. Software Reliability. Computational Intelligence in Software Engineering. READINGS. Index.
£206.96
John Wiley & Sons Inc Java Programming
Book SynopsisThis introduction to Java programming features a business focus. It discusses what it means to be object oriented, how to structure classes, and how to write methods using Java''s structured programming elements. After outlining the elements of a complete Java program, the book moves on to advanced topics such as writing event-driven GUI programs, preparing applets for the Web, one- and two-dimensional arrays, animation, and more. Files from the book will be available on the Web.Table of ContentsIntroducing Java and the Object-Oriented Paradigm. Running Java. Variables and Data Types. Writing and Using Methods (Part I). Writing Methods (Part II). Inheritance. Event-Driven Programming and the Graphic User Interface. Arrays and Vectors. Containers. Applets. Enhancing the GUI. File I/O and Exception Handling. Images, Animation, and Threads. Glossary. Index.
£136.80
John Wiley & Sons Inc A Practical Introduction to ObjectOriented Design
Book SynopsisThis text details the use of inheritance, object libraries, design patterns and notations, and library class creation. It discusses language and programming features like exception handling, and interprocess communication. It also contains material from software engineering and object-orientation.Table of ContentsWhat Is Object-Oriented Design? A Simple Example of Object-Oriented Design. Implementing an Object-Oriented Design. How to Use C++ Effectively. Designing with Inheritance. Design Notations. Using Object-Oriented Libraries. Debugging and Testing. Graphical Application Concepts. Designing Graphical Applications. User-Interface Design. Creating Object Libraries. Design Patterns. Multiple-Processs Programming. Software Engineering. Writing Larger Systems. Appendices. Index.
£155.66
John Wiley & Sons Inc Perl Programming for Biologists
Book SynopsisWorking on the assumption that the reader has no formal training in programming, this book demonstrates how Perl is used to solve biological problems. Each chapter opens with a set of learning objectives, provides numerous review questions and self-study exercises, and concludes with a bulleted summary of key points.Trade Review"This well written book illustrates PERL with examples…Those with less or no programming skills should read this book before attempting the practice of bioinformatics ideas." (Journal of Statistical Computation & Simulation, January 2005) "…the book is useful to biologists who already use languages like C+ or Visual Basic and want to learn Perl." (Biomolecular Engineering, November 2004) “…written in a pleasant chatty style with obvious enthusiasm for the topic” (Robotica, Vol. 22, 2004) “...unique and I highly recommend it as a first book on programming for biology-oriented professionals interested in using perl...excellent for self-study...can also be a great resource as classroom material...” (Clinical Chemistry, Vol. 50, No. 2, 2004) "...not be surprised to see [it] finding a space on the bookshelves in many biological laboratories in the near future." (Briefings in Bioinformatics, Vol 5(1), March 2004)Table of ContentsPART I: THE BASICS. Introduction. Chapter 1. An Introduction to Perl. Chapter 2. Variables and Data Types. Chapter 3. Arrays and Hashes. Chapter 4. Control Structures. PART II: INTERMEDIATE PERL. Chapter 5. Subroutines. Chapter 6. String Manipulation. Chapter 7. Input and Output. Chapter 8. Perl Modules and Packages. PART III: ADVANCED PERL. Chapter 9. References. Chapter 10. Object-Oriented Programming. Chapter 11. Bioperl. Appendix A. Partial Perl Reference. Appendix B. Bioinformatics File Formats. Index.
£85.45
John Wiley & Sons Inc Thinking Recursively with Java
Book SynopsisTo provide students with a more effective treatment of this difficult topic, John Wiley and Sons, Inc. published Thinking Recursively by Eric Roberts. Since its publication in 1986, Thinking Recursively has become a classic in a field in which books quickly become obsolete. By focusing on effective problem-solving strategies that enable students to think recursively, this text has helped many students over the conceptual hurdle that recursion so often represents. Moreover, by including many more examples and exercises than typical, Thinking Recursivelymakes it possible for students to master recursive techniques. To celebrate the 20th anniversary of its initial publication, John Wiley and Sons is publishing Thinking Recursively with Java, making the book even more relevant to today''s students. Course Hierarchy: May fit a variety of Java programming courses as a supplement at the introductory or intermediate levels or serve as a corTable of ContentsPreface. 1. The Idea of Recursion. 2. Mathematical Preliminaries. 3. Recursive Functions. 4. The Procedural Approach. 5. The Tower of Hanoi. 6. Permutations. 7. Sorting. 8. Recursive Backtracking. 9. Graphical Applications. 10. Recursive Data. 11. Implementation of Recursion. Index.
£59.80
John Wiley & Sons Inc Professional Windows Embedded Compact 7
Book SynopsisLearn to program an array of customized devices and solutions As a compact, highly efficient, scalable operating system, Windows Embedded Compact 7 (WEC7) is one of the best options for developing a new generation of network-enabled, media-rich, and service-oriented devices.Table of ContentsFOREWORD xxxv INTRODUCTION xxxvii PART I: INTRODUCING EMBEDDED DEVELOPMENT. CHAPTER 1: EMBEDDED DEVELOPMENT 3 CHAPTER 2: WINDOWS EMBEDDED COMPACT 7 11 CHAPTER 3: DEVELOPMENT STATION PREPARATION 19 CHAPTER 4: DEVELOPMENT PROCESS 29 CHAPTER 5: DEVELOPMENT ENVIRONMENT AND TOOLS 35 PART II: PLATFORM BUILDER AND OS DESIGN. CHAPTER 6: BSP INTRODUCTION 53 CHAPTER 7: OS DESIGN 69 CHAPTER 8: TARGET DEVICE CONNECTIVITY AND DOWNLOAD 87 CHAPTER 9: DEBUG AND REMOTE TOOLS 97 CHAPTER 10: THE REGISTRY 125 CHAPTER 11: THE BUILD SYSTEM 137 CHAPTER 12: REMOTE DISPLAY APPLICATION 151 CHAPTER 13: TESTING WITH COMPACT TEST KIT 157 PART III: APPLICATION DEVELOPMENT. CHAPTER 14: APPLICATION DEVELOPMENT 173 CHAPTER 15: .NET COMPACT FRAMEWORK 181 CHAPTER 16: CORECON CONNECTIVITY 187 CHAPTER 17: VISUAL STUDIO NATIVE CODE APPLICATION EXAMPLE 195 CHAPTER 18: MANAGED CODE APPLICATION EXAMPLE 207 CHAPTER 19: PLATFORM BUILDER NATIVE CODE APPLICATION EXAMPLE 219 CHAPTER 20: DEVELOPING EMBEDDED DATABASE APPLICATIONS 233 CHAPTER 21: SILVERLIGHT FOR WINDOWS EMBEDDED 267 CHAPTER 22: SILVERLIGHT FOR WINDOWS EMBEDDED APPLICATION EXAMPLES 275 CHAPTER 23: AUTO LAUNCHING APPLICATIONS 289 CHAPTER 24: APPLICATION DEPLOYMENT OPTIONS 297 PART IV: DEPLOY WINDOWS EMBEDDED COMPACT 7 DEVICES. CHAPTER 25: DEPLOY OS RUN-TIME IMAGES 305 CHAPTER 26: BOOTLOADERS 313 CHAPTER 27: BIOSLOADER 321 CHAPTER 28: THE DISKPREP POWER TOY 327 PART V: DEVICE DRIVERS, BOOT LOADER, BSP, AND OAL DEVELOPMENT. CHAPTER 29: AN OVERVIEW OF DEVICE DRIVERS 339 CHAPTER 30: DEVICE DRIVER ARCHITECTURES 349 CHAPTER 31: INTERRUPTS 367 CHAPTER 32: STREAM INTERFACE DRIVERS 393 CHAPTER 33: DEVELOPING A STREAM INTERFACE DRIVER 417 CHAPTER 34: STREAM DRIVER API AND DEVICE DRIVER TESTING 449 CHAPTER 35: THE TARGET SYSTEM 467 PART VI: ADVANCED APPLICATION DEVELOPMENT. CHAPTER 36: INTRODUCTION TO REAL-TIME APPLICATIONS 487 CHAPTER 37: A SIMPLE REAL-TIME APPLICATION 497 CHAPTER 38: EXTENDING LOW-LEVEL ACCESS TO MANAGED CODE 509 CHAPTER 39: EXTENDING LOW-LEVEL ACCESS TO MANAGED CODE WITH MESSAGES 531 CHAPTER 40: A WEB SERVER APPLICATION 545 CHAPTER 41: A USB CAMERA APPLICATION 563 PART VII: SAMPLE PROJECTS. CHAPTER 42: DEVELOP A WINDOWS NETWORK PROJECTOR 577 CHAPTER 43: PHIDGETS DEVICES 585 CHAPTER 44: FTDI DEVICES 601 CHAPTER 45: INTEGRATING MANAGED CODE PROJECTS 629 APPENDIX A: VIRTUAL PC CONNECTIVITY 639 APPENDIX B: MICROSOFT RESOURCES 645 APPENDIX C: COMMUNITY RESOURCES 649 APPENDIX D: EMBEDDED HARDWARE 655 INDEX 659
£33.24
John Wiley & Sons Inc Beginning Visual C 2012 Programming
Book SynopsisStep-by-step beginner s guide to Visual C# 2012 Written for novice programmers who want to learn programming with C# and the. NET framework, this book offers programming basics such as variables, flow control, and object oriented programming. It then moves into web and Windows programming and data access (databases and XML).Table of ContentsINTRODUCTION xxxi PART I: THE C# LANGUAGE CHAPTER 1: INTRODUCING C# 3 What Is the .NET Framework? 3 What’s in the .NET Framework? 4 Writing Applications Using the .NET Framework 4 CIL and JIT 4 Assemblies 5 Managed Code 5 Garbage Collection 6 Fitting It Together 6 Linking 7 What Is C#? 7 Applications You Can Write with C# 8 C# in this Book 8 Visual Studio 2012 8 Visual Studio Express 2012 Products 9 Solutions 9 Summary 10 CHAPTER 2: WRITING A C# PROGRAM 13 The Visual Studio 2012 Development Environment 14 Console Applications 16 The Solution Explorer 18 The Properties Window 19 The Error List Window 19 Desktop Applications 20 Summary 23 CHAPTER 3: VARIABLES AND EXPRESSIONS 25 Basic C# Syntax 26 Basic C# Console Application Structure 28 Variables 29 Simple Types 29 Variable Naming 33 Naming Conventions 34 Literal Values 34 Variable Declaration and Assignment 36 Expressions 37 Mathematical Operators 37 Assignment Operators 41 Operator Precedence 42 Namespaces 42 Summary 45 CHAPTER 4: FLOW CONTROL 49 Boolean Logic 49 Boolean Assignment Operators 52 Bitwise Operators 53 Operator Precedence Updated 57 The goto Statement 58 Branching 59 The Ternary Operator 59 The if Statement 59 Checking More Conditions Using if Statements 62 The switch Statement 63 Looping 65 do Loops 66 while Loops 68 for Loops 70 Interrupting Loops 74 Infi nite Loops 75 Summary 75 CHAPTER 5: MORE ABOUT VARIABLES 79 Type Conversion 80 Implicit Conversions 80 Explicit Conversions 81 Explicit Conversions Using the Convert Commands 84 Complex Variable Types 86 Enumerations 87 Defi ning Enumerations 87 Structs 90 Defi ning Structs 90 Arrays 92 Declaring Arrays 93 foreach Loops 95 Multidimensional Arrays 96 Arrays of Arrays 97 String Manipulation 98 Summary 102 CHAPTER 6: FUNCTIONS 105 Defi ning and Using Functions 106 Return Values 108 Parameters 109 Parameter Matching 111 Parameter Arrays 111 Reference and Value Parameters 113 Out Parameters 115 Variable Scope 116 Variable Scope in Other Structures 118 Parameters and Return Values versus Global Data 120 The Main( ) Function 121 Struct Functions 123 Overloading Functions 124 Using Delegates 125 Summary 128 CHAPTER 7: DEBUGGING AND ERROR HANDLING 131 Debugging in Visual Studio 132 Debugging in Nonbreak (Normal) Mode 132 Outputting Debugging Information 133 Tracepoints 137 Diagnostics Output Versus Tracepoints 139 Debugging in Break Mode 140 Entering Break Mode 140 Monitoring Variable Content 142 Stepping Through Code 144 Immediate and Command Windows 146 The Call Stack Window 146 Error Handling 147 try…catch…finally 147 Listing and Configuring Exceptions 152 Notes on Exception Handling 152 Summary 153 CHAPTER 8: INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING 157 What Is Object-Oriented Programming? 158 What Is an Object? 158 Properties and Fields 159 Methods 160 Everything’s an Object 161 The Life Cycle of an Object 161 Constructors 161 Destructors 162 Static and Instance Class Members 162 Static Constructors 162 Static Classes 163 OOP Techniques 163 Interfaces 163 Disposable Objects 164 Inheritance 165 Polymorphism 167 Interface Polymorphism 168 Relationships Between Objects 168 Containment 168 Collections 169 Operator Overloading 169 Events 170 Reference Types Versus Value Types 170 OOP in Desktop Applications 171 Summary 174 CHAPTER 9: DEFINING CLASSES 177 Class Defi nitions in C# 177 Interface Defi nitions 180 System.Object 182 Constructors and Destructors 184 Constructor Execution Sequence 185 OOP Tools in Visual Studio 188 The Class View Window 188 The Object Browser 190 Adding Classes 191 Class Diagrams 192 Class Library Projects 193 Interfaces Versus Abstract Classes 196 Struct Types 198 Shallow Copying Versus Deep Copying 200 Summary 200 CHAPTER 10: DEFINING CLASS MEMBERS 203 Member Defi nitions 203 Defi ning Fields 204 Defi ning Methods 204 Defi ning Properties 205 Adding Members from a Class Diagram 210 Adding Methods 210 Adding Properties 212 Adding Fields 212 Refactoring Members 212 Automatic Properties 213 Additional Class Member Topics 213 Hiding Base Class Methods 213 Calling Overridden or Hidden Base Class Methods 215 The this Keyword 216 Using Nested Type Defi nitions 216 Interface Implementation 218 Implementing Interfaces in Classes 219 Explicit Interface Member Implementation 220 Additional Property Accessors 220 Partial Class Defi nitions 221 Partial Method Defi nitions 222 Example Application 224 Planning the Application 224 The Card Class 224 The Deck Class 224 Writing the Class Library 224 Adding the Suit and Rank Enumerations 225 Adding the Card Class 226 Adding the Deck Class 227 A Client Application for the Class Library 230 The Call Hierarchy Window 231 Summary 232 CHAPTER 11: COLLECTIONS, COMPARISONS, AND CONVERSIONS 235 Collections 236 Using Collections 236 Defi ning Collections 241 Indexers 242 Adding a Cards Collection to CardLib 244 Keyed Collections and IDictionary 247 Iterators 248 Iterators and Collections 252 Deep Copying 253 Adding Deep Copying to CardLib 255 Comparisons 256 Type Comparisons 256 Boxing and Unboxing 257 The is Operator 258 Value Comparisons 260 Operator Overloading 261 Adding Operator Overloads to CardLib 265 The IComparable and IComparer Interfaces 269 Sorting Collections 271 Conversions 274 Overloading Conversion Operators 274 The as Operator 275 Summary 276 CHAPTER 12: GENERICS 279 What Are Generics? 280 Using Generics 281 Nullable Types 281 Operators and Nullable Types 282 The ?? Operator 283 The System.Collections.Generic Namespace 287 List 287 Sorting and Searching Generic Lists 289 Dictionary 294 Modifying CardLib to Use a Generic Collection Class 295 Defi ning Generic Types 296 Defi ning Generic Classes 296 The default Keyword 298 Constraining Types 298 Inheriting from Generic Classes 304 Generic Operators 305 Generic Structs 306 Defi ning Generic Interfaces 306 Defi ning Generic Methods 306 Defi ning Generic Delegates 308 Variance 308 Covariance 309 Contravariance 310 Summary 310 CHAPTER 13: ADDITIONAL OOP TECHNIQUES 313 The :: Operator and the Global Namespace Qualifi er 313 Custom Exceptions 315 Adding Custom Exceptions to CardLib 315 Events 316 What Is an Event? 316 Handling Events 317 Defi ning Events 319 Multipurpose Event Handlers 323 The EventHandler and Generic EventHandler Types 325 Return Values and Event Handlers 326 Anonymous Methods 326 Expanding and Using CardLib 327 A Card Game Client for CardLib 327 Attributes 334 Reading Attributes 334 Creating Attributes 335 Summary 336 CHAPTER 14: C# LANGUAGE ENHANCEMENTS 339 Initializers 340 Object Initializers 340 Collection Initializers 342 Type Inference 344 Anonymous Types 346 Dynamic Lookup 350 The dynamic Type 350 IDynamicMetaObjectProvider 354 Advanced Method Parameters 354 Optional Parameters 354 Optional Parameter Values 355 The OptionalAttribute Attribute 356 Optional Parameter Order 356 Named Parameters 356 Named and Optional Parameter Guidelines 360 Extension Methods 360 Lambda Expressions 364 Anonymous Methods Recap 364 Lambda Expressions for Anonymous Methods 365 Lambda Expression Parameters 368 Lambda Expression Statement Bodies 368 Lambda Expressions as Delegates and Expression Trees 369 Lambda Expressions and Collections 370 Caller Information Attributes 372 Summary 375 PART II: WINDOWS PROGRAMMING CHAPTER 15: BASIC DESKTOP PROGRAMMING 381 XAML 382 Separation of Concerns 382 XAML in Action 383 Namespaces 383 Code-Behind Files 384 The Playground 384 WPF Controls 385 Properties 386 Dependency Properties 387 Attached Properties 388 Events 388 Handling Events 389 Routed Events 390 Routed Commands 390 Control Types 392 Control Layout 393 Stack Order 393 Alignment, Margins, Padding, and Dimensions 393 Border 394 Canvas 394 DockPanel 395 StackPanel 397 WrapPanel 398 Grid 398 The Game Client 401 The About Window 401 Designing the User Interface 401 The Image Control 401 The Label Control 402 The TextBlock Control 402 The Button Control 402 The Options Window 405 The TextBox Control 406 The CheckBox Control 406 The RadioButton Control 407 The ComboBox Control 408 The TabControl 409 Handling Events in the Options Window 411 Data Binding 413 The DataContext 414 Binding to Local Objects 414 Static Binding to External Objects 414 Dynamic Binding to External Objects 415 Starting a Game 418 The ListBox Control 418 Summary 421 CHAPTER 16: ADVANCED DESKTOP PROGRAMMING 425 The Main Window 425 The Menu Control 426 Routed Commands with Menus 426 Creating and Styling Controls 429 Styles 430 Templates 430 Value Converters 434 The IValueConverter Interface 434 ValueConversionAttribute 434 Triggers 435 Animations 436 Timelines without Key Frames 436 Timelines with Key Frames 437 WPF User Controls 438 Implementing Dependency Properties 439 Putting It All Together 447 Refactoring the Domain Model 447 The View Models 451 Completing the Game 459 Summary 466 CHAPTER 17: WINDOWS STORE APPS 469 Getting Started 469 Windows 8 Developer License 470 How to Get the License 470 Windows Store Apps versus Desktop Applications 471 Developing Windows Store Apps 472 View Modes 472 Full-Screen Mode 473 Snapped Mode 473 Fill Mode 473 Screen Orientation 473 The Missing Caption Bar 473 Menus and Toolbars 473 The App Bar 474 Charms 475 Tiles and Badges 476 App Lifetime 476 Lock Screen Apps 476 App Development 476 WPF and Windows Store App XAML Diff erences 476 Namespace Changes 477 Eff ects 477 Opacity Mask 477 Style Triggers 477 Commands 478 Templates and Pages 478 Blank Page 478 Basic Page 478 Grouped Items and Group Details Pages 478 Item Details Page 479 Items and Split Pages 479 Sandboxed Apps 479 Disk Access 479 Serialization, Streams, and Async Programming 480 Navigation Between Pages 483 Managing State 485 Converting KarliCards, Part 1 485 Creating the CardLib Project 486 Converting the View Models 489 Visual Changes 493 Drop Shadow and Opacity Masks 493 Style Triggers 493 Converting User Controls 493 Common Elements of Windows Store Apps 499 The AppBar Control 500 The Settings Panel 501 Tiles, Badges, and Splash Screens 503 Converting KarliCards, Part 2 504 The Windows Store 509 Checking the Store Requirements 509 Summary 510 CHAPTER 18: DEPLOYING DESKTOP APPLICATIONS 513 Deployment Overview 514 ClickOnce Deployment 514 Implementing ClickOnce Deployment 515 Installing the Application with ClickOnce 522 Creating and Using Updates of the Application 524 InstallShield Limited Edition 524 The Project Assistant 524 Step 1: Application Information 525 Step 2: Installation Requirements 525 Step 3: Installation Architecture 526 Step 4: Application Files 526 Step 5: Application Shortcuts 527 Step 6: Application Registry 528 Step 7: Installation Interview 528 Summary 530 PART III: WEB PROGRAMMING CHAPTER 19: ASP.NET WEB PROGRAMMING 535 Overview of Web Applications 536 ASP.NET Runtime 536 Creating a Simple Page 536 Server Controls 544 ASP.NET Postback 545 ASP.NET AJAX Postback 550 Input Validation 553 State Management 557 Client-Side State Management 558 View State 558 Cookie 559 Server-Side State Management 560 Session 560 Application 561 Cache 562 Styles 562 Master Pages 566 Site Navigation 571 Authentication and Authorization 573 Authentication Confi guration 574 Using Security Controls 577 Reading from and Writing to a SQL Server Database 580 Summary 589 CHAPTER 20: DEPLOYING WEB APPLICATIONS 591 Internet Information Services 591 IIS Confi guration 592 Copying a Website 594 Publishing a Web Application 597 Summary 600 PART IV: DATA ACCESS CHAPTER 21: FILE SYSTEM DATA 605 Streams 605 The Classes for Input and Output 606 The File and Directory Classes 607 The FileInfo Class 608 The DirectoryInfo Class 610 Path Names and Relative Paths 611 The FileStream Object 611 File Position 612 Reading Data 613 Writing Data 615 The StreamWriter Object 617 The StreamReader Object 618 Reading Data 620 Delimited Files 621 Asynchronous File Access 625 Reading and Writing Compressed Files 625 Serialized Objects 628 Monitoring the File System 632 Summary 636 CHAPTER 22: XML 639 XML Documents 640 XML Elements 640 Attributes 641 The XML Declaration 641 The Structure of an XML Document 642 XML Namespaces 642 Well-Formed and Valid XML 643 Validating XML Documents 644 Schemas 644 The XSD dialog box shown in the XmlDocument Class 645 Using XML in Your Application 647 XML Document Object Model 647 The XmlDocument Class 648 The XmlElement Class 648 Changing the Values of Nodes 652 Selecting Nodes 656 XPath 657 Summary 661 CHAPTER 23: INTRODUCTION TO LINQ 663 First LINQ Query 664 Declaring a Variable for Results Using the var Keyword 665 Specifying the Data Source: from Clause 666 Specify Condition: where Clause 666 Selecting Items: select Clause 666 Finishing Up: Using the foreach Loop 667 Deferred Query Execution 667 Using the LINQ Method Syntax 667 LINQ Extension Methods 667 Query Syntax versus Method Syntax 668 Ordering Query Results 669 Understanding the orderby Clause 670 Ordering Using Method Syntax 671 Querying a Large Data Set 672 Using Aggregate Operators 674 Querying Complex Objects 678 Projection: Creating New Objects in Queries 681 Projection: Method Syntax 682 Using the Select Distinct Query 683 Using the Any and All Methods 684 Ordering by Multiple Levels 685 Multi-Level Ordering Method Syntax: ThenBy 687 Using Group Queries 687 Using Take and Skip 689 Using First and FirstOrDefault 691 Using the LINQ Set Operators 692 Using Joins 694 Summary 696 CHAPTER 24: APPLYING LINQ 699 LINQ Varieties 699 Using LINQ with Databases 700 Installing SQL Server and the Northwind Sample Data 700 Installing SQL Server Express 701 Installing the Northwind Sample Database 701 First LINQ to Database Query 701 Navigating Database Relationships 704 Using LINQ with XML 706 LINQ to XML Functional Constructors 707 Constructing XML Element Text with Strings 710 Saving and Loading an XML Document 710 Loading XML from a String 712 Contents of a Saved XML Document 713 Working with XML Fragments 713 Generating XML from Databases 715 How to Query an XML Document 717 Using LINQ to XML Query Members 718 Elements( ) 718 Descendants( ) 719 Attributes( ) 721 Summary 723 PART V: ADDITIONAL TECHNIQUES CHAPTER 25: WINDOWS COMMUNICATION FOUNDATION 727 What Is WCF? 728 WCF Concepts 728 WCF Communication Protocols 729 Addresses, Endpoints, and Bindings 729 Contracts 731 Message Patterns 732 Behaviors 732 Hosting 732 WCF Programming 733 The WCF Test Client 740 Defi ning WCF Service Contracts 742 Data Contracts 743 Service Contracts 743 Operation Contracts 744 Message Contracts 745 Fault Contracts 745 Self-Hosted WCF Services 750 Summary 756 CHAPTER 26: WINDOWS WORKFLOW FOUNDATION 759 Hello World 759 Workfl ows and Activities 761 If Activity 761 While Activity 762 Sequence Activity 762 Arguments and Variables 763 Custom Activities 767 Workfl ow Extensions 769 Activity Validation 773 Activity Designers 774 Summary 776 APPENDIX A: EXERCISE SOLUTIONS 779 INDEX 827
£33.24
John Wiley & Sons Inc Java for Everyone Compatible With Java 5 6 and 7
Book Synopsis
£128.66
John Wiley & Sons Inc OCP Oracle Certified Professional Java SE 11
Book SynopsisTable of ContentsIntroduction xxix Assessment Tests lix Part I Exam 1Z0-815, OCP Java SE 11 Programmer I 1 Chapter 1 Welcome to Java 3 Chapter 2 Java Building Blocks 37 Chapter 3 Operators 81 Chapter 4 Making Decisions 115 Chapter 5 Core Java APIs 163 Chapter 6 Lambdas and Functional Interfaces 223 Chapter 7 Methods and Encapsulation 249 Chapter 8 Class Design 297 Chapter 9 Advanced Class Design 365 Chapter 10 Exceptions 403 Chapter 11 Modules 453 Part II Exam 1Z0-816, OCP Java SE 11 Programmer II Exam 1Z0-817, Upgrade OCP Java SE 11 493 Chapter 12 Java Fundamentals 495 Chapter 13 Annotations 553 Chapter 14 Generics and Collections 599 Chapter 15 Functional Programming 669 Chapter 16 Exceptions, Assertions, and Localization 741 Chapter 17 Modular Applications 803 Chapter 18 Concurrency 839 Chapter 19 I/O 913 Chapter 20 NIO.2 969 Chapter 21 JDBC 1023 Chapter 22 Security 1069 Appendix Answers to Review Questions 1105 Index 1177
£51.00
John Wiley & Sons Inc Big C
Book SynopsisTable of ContentsPreface iii Special Features xxiv 1 Introduction 1 1.1 What is Programming? 2 1.2 The Anatomy of a Computer 3 C&S Computers are Everywhere 5 1.3 Machine Code and Programming Languages 5 C&S Standards Organizations 7 1.4 Becoming Familiar with Your Programming Environment 7 PT 1 Backup Copies 10 1.5 Analyzing Your First Program 11 CE 1 Omitting Semicolons 13 ST 1 Escape Sequences 13 1.6 Errors 14 CE 2 Misspelling Words 15 1.7 PROBLEM SOLVING Algorithm Design 16 The Algorithm Concept 16 An Algorithm for Solving an Investment Problem 17 Pseudocode 18 From Algorithms to Programs 19 HT 1 Describing an Algorithm with Pseudocode 19 WE 1 Writing an Algorithm for Tiling a Floor 21 2 Fundamental Data Types 25 2.1 Variables 26 Variable Definitions 26 Number Types 28 Variable Names 29 The Assignment Statement 30 Constants 31 Comments 31 CE 1 Using Undefined Variables 33 CE 2 Using Uninitialized Variables 33 PT 1 Choose Descriptive Variable Names 33 PT 2 Do Not Use Magic Numbers 34 ST 1 Numeric Types in C++ 34 ST 2 Numeric Ranges and Precisions 35 ST 3 Defining Variables with auto 35 2.2 Arithmetic 36 Arithmetic Operators 36 Increment and Decrement 36 Integer Division and Remainder 36 Converting Floating-Point Numbers to Integers 37 Powers and Roots 38 CE 3 Unintended Integer Division 39 CE 4 Unbalanced Parentheses 40 CE 5 Forgetting Header Files 40 CE 6 Roundoff Errors 41 PT 3 Spaces in Expressions 42 ST 4 Casts 42 ST 5 Combining Assignment and Arithmetic 42 C&S The Pentium Floating-Point Bug 43 2.3 Input and Output 44 Input 44 Formatted Output 45 2.4 PROBLEM SOLVING First Do It By Hand 47 WE 1 Computing Travel Time 48 HT 1 Carrying out Computations 48 WE 2 Computing the Cost of Stamps 51 2.5 Strings 51 The string Type 51 Concatenation 52 String Input 52 String Functions 52 C&S International Alphabets and Unicode 55 3 Decisions 59 3.1 The if Statement 60 CE 1 A Semicolon After the if Condition 63 PT 1 Brace Layout 63 PT 2 Always Use Braces 64 PT 3 Tabs 64 PT 4 Avoid Duplication in Branches 65 ST 1 The Conditional Operator 65 3.2 Comparing Numbers and Strings 66 CE 2 Confusing = and == 68 CE 3 Exact Comparison of Floating-Point Numbers 68 PT 5 Compile with Zero Warnings 69 ST 2 Lexicographic Ordering of Strings 69 HT 1 Implementing an if Statement 70 WE 1 Extracting the Middle 72 C&S Dysfunctional Computerized Systems 72 3.3 Multiple Alternatives 73 ST 3 The switch Statement 75 3.4 Nested Branches 76 CE 4 The Dangling else Problem 79 PT 6 Hand-Tracing 79 3.5 PROBLEM SOLVING Flowcharts 81 3.6 PROBLEM SOLVING Test Cases 83 PT 7 Make a Schedule and Make Time for Unexpected Problems 84 3.7 Boolean Variables and Operators 85 CE 5 Combining Multiple Relational Operators 88 CE 6 Confusing && and || Conditions 88 ST 4 Short-Circuit Evaluation of Boolean Operators 89 ST 5 De Morgan’s Law 89 3.8 APPLICATION Input Validation 90 C&S Artificial Intelligence 92 4 Loops 95 4.1 The while Loop 96 CE 1 Infinite Loops 100 CE 2 Don’t Think “Are We There Yet?” 101 CE 3 Off-by-One Errors 101 C&S The First Bug 102 4.2 PROBLEM SOLVING Hand-Tracing 103 4.3 The for Loop 106 PT 1 Use for Loops for Their Intended Purpose Only 109 PT 2 Choose Loop Bounds That Match Your Task 110 PT 3 Count Iterations 110 4.4 The do Loop 111 PT 4 Flowcharts for Loops 111 4.5 Processing Input 112 Sentinel Values 112 Reading Until Input Fails 114 ST 1 Clearing the Failure State 115 ST 2 The Loop-and-a-Half Problem and the break Statement 116 ST 3 Redirection of Input and Output 116 4.6 PROBLEM SOLVING Storyboards 117 4.7 Common Loop Algorithms 119 Sum and Average Value 119 Counting Matches 120 Finding the First Match 120 Prompting Until a Match is Found 121 Maximum and Minimum 121 Comparing Adjacent Values 122 HT 1 Writing a Loop 123 WE 1 Credit Card Processing 126 4.8 Nested Loops 126 WE 2 Manipulating the Pixels in an Image 129 4.9 PROBLEM SOLVING Solve a Simpler Problem First 130 4.10 Random Numbers and Simulations 134 Generating Random Numbers 134 Simulating Die Tosses 135 The Monte Carlo Method 136 C&S Digital Piracy 138 5 Functions 141 5.1 Functions as Black Boxes 142 5.2 Implementing Functions 143 PT 1 Function Comments 146 5.3 Parameter Passing 146 PT 2 Do Not Modify Parameter Variables 148 5.4 Return Values 148 CE 1 Missing Return Value 149 ST 1 Function Declarations 150 HT 1 Implementing a Function 151 WE 1 Generating Random Passwords 152 WE 2 Using a Debugger 152 5.5 Functions Without Return Values 153 5.6 PROBLEM SOLVING Reusable Functions 154 5.7 PROBLEM SOLVING Stepwise Refinement 156 PT 3 Keep Functions Short 161 PT 4 Tracing Functions 161 PT 5 Stubs 162 WE 3 Calculating a Course Grade 163 5.8 Variable Scope and Global Variables 163 PT 6 Avoid Global Variables 165 5.9 Reference Parameters 165 PT 7 Prefer Return Values to Reference Parameters 169 ST 2 Constant References 170 5.10 Recursive Functions (Optional) 170 HT 2 Thinking Recursively 173 C&S The Explosive Growth of Personal Computers 174 6 Arrays and Vectors 179 6.1 Arrays 180 Defining Arrays 180 Accessing Array Elements 182 Partially Filled Arrays 183 CE 1 Bounds Errors 184 PT 1 Use Arrays for Sequences of Related Values 184 C&S Computer Viruses 185 6.2 Common Array Algorithms 185 Filling 186 Copying 186 Sum and Average Value 186 Maximum and Minimum 187 Element Separators 187 Counting Matches 187 Linear Search 188 Removing an Element 188 Inserting an Element 189 Swapping Elements 190 Reading Input 191 ST 1 Sorting with the C++ Library 192 ST 2 A Sorting Algorithm 192 ST 3 Binary Search 193 6.3 Arrays and Functions 194 ST 4 Constant Array Parameters 198 6.4 PROBLEM SOLVING Adapting Algorithms 198 HT 1 Working with Arrays 200 WE 1 Rolling the Dice 203 6.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 203 6.6 Two-Dimensional Arrays 206 Defining Two-Dimensional Arrays 207 Accessing Elements 207 Locating Neighboring Elements 208 Computing Row and Column Totals 208 Two-Dimensional Array Parameters 210 CE 2 Omitting the Column Size of a Two-Dimensional Array Parameter 212 WE 2 A World Population Table 213 6.7 Vectors 213 Defining Vectors 214 Growing and Shrinking Vectors 215 Vectors and Functions 216 Vector Algorithms 216 Two-Dimensional Vectors 218 PT 2 Prefer Vectors over Arrays 219 ST 5 The Range-Based for Loop 219 7 Pointers and Structures 223 7.1 Defining and Using Pointers 224 Defining Pointers 224 Accessing Variables Through Pointers 225 Initializing Pointers 227 CE 1 Confusing Pointers with the Data to Which They Point 228 PT 1 Use a Separate Definition for Each Pointer Variable 229 ST 1 Pointers and References 229 7.2 Arrays and Pointers 230 Arrays as Pointers 230 Pointer Arithmetic 230 Array Parameter Variables are Pointers 232 ST 2 Using a Pointer to Step Through an Array 233 CE 2 Returning a Pointer to a Local Variable 234 PT 2 Program Clearly, Not Cleverly 234 ST 3 Constant Pointers 235 7.3 C and C++ Strings 235 The char Type 235 C Strings 236 Character Arrays 237 Converting Between C and C++ Strings 237 C++ Strings and the [] Operator 238 ST 4 Working with C Strings 238 7.4 Dynamic Memory Allocation 240 CE 3 Dangling Pointers 242 CE 4 Memory Leaks 243 7.5 Arrays and Vectors of Pointers 243 7.6 PROBLEM SOLVING Draw a Picture 246 HT 1 Working with Pointers 248 WE 1 Producing a Mass Mailing 249 C&S Embedded Systems 250 7.7 Structures 250 Structured Types 250 Structure Assignment and Comparison 251 Functions and Structures 252 Arrays of Structures 252 Structures with Array Members 253 Nested Structures 253 7.8 Pointers and Structures 254 Pointers to Structures 254 Structures with Pointer Members 255 ST 5 Smart Pointers 256 8 Streams 259 8.1 Reading and Writing Text Files 260 Opening a Stream 260 Reading from a File 261 Writing to a File 262 A File Processing Example 262 8.2 Reading Text Input 265 Reading Words 265 Reading Characters 266 Reading Lines 267 CE 1 Mixing >> and getline Input 268 ST 1 Stream Failure Checking 269 8.3 Writing Text Output 270 ST 2 Unicode, UTF-8, and C++ Strings 272 8.4 Parsing and Formatting Strings 273 8.5 Command Line Arguments 274 C&S Encryption Algorithms 277 HT 1 Processing Text Files 278 WE 1 Looking for for Duplicates 281 8.6 Random Access and Binary Files 281 Random Access 281 Binary Files 282 Processing Image Files 282 C&S Databases and Privacy 286 9 Classes 289 9.1 Object-Oriented Programming 290 9.2 Implementing a Simple Class 292 9.3 Specifying the Public Interface of a Class 294 CE 1 Forgetting a Semicolon 296 9.4 Designing the Data Representation 297 9.5 Member Functions 299 Implementing Member Functions 299 Implicit and Explicit Parameters 299 Calling a Member Function from a Member Function 301 PT 1 All Data Members Should Be Private; Most Member Functions Should Be Public 303 PT 2 const Correctness 303 9.6 Constructors 304 CE 2 Trying to Call a Constructor 306 ST 1 Overloading 306 ST 2 Initializer Lists 307 ST 3 Universal and Uniform Initialization Syntax 308 9.7 PROBLEM SOLVING Tracing Objects 308 HT 1 Implementing a Class 310 WE 1 Implementing a Bank Account Class 314 C&S Electronic Voting Machines 314 9.8 PROBLEM SOLVING Discovering Classes 315 PT 3 Make Parallel Vectors into Vectors of Objects 317 9.9 Separate Compilation 318 9.10 Pointers to Objects 322 Dynamically Allocating Objects 322 The -> Operator 323 The this Pointer 324 9.11 PROBLEM SOLVING Patterns for Object Data 324 Keeping a Total 324 Counting Events 325 Collecting Values 326 Managing Properties of an Object 326 Modeling Objects with Distinct States 327 Describing the Position of an Object 328 C&S Open Source and Free Software 329 10 Inheritance 333 10.1 Inheritance Hierarchies 334 10.2 Implementing Derived Classes 338 CE 1 Private Inheritance 341 CE 2 Replicating Base-Class Members 341 PT 1 Use a Single Class for Variation in Values, Inheritance for Variation in Behavior 342 ST 1 Calling the Base-Class Constructor 342 10.3 Overriding Member Functions 343 CE 3 Forgetting the Base-Class Name 345 10.4 Virtual Functions and Polymorphism 346 The Slicing Problem 346 Pointers to Base and Derived Classes 347 Virtual Functions 348 Polymorphism 349 PT 2 Don’t Use Type Tags 352 CE 4 Slicing an Object 352 CE 5 Failing to Override a Virtual Function 353 ST 2 Virtual Self-Calls 354 HT 1 Developing an Inheritance Hierarchy 354 WE 1 Implementing an Employee Hierarchy for Payroll Processing 359 C&S Who Controls the Internet? 360 11 Recursion 363 11.1 Triangle Numbers 364 CE 1 Tracing Through Recursive Functions 367 CE 2 Infinite Recursion 368 HT 1 Thinking Recursively 369 WE 1 Finding Files 372 11.2 Recursive Helper Functions 372 11.3 The Efficiency of Recursion 373 11.4 Permutations 377 11.5 Mutual Recursion 380 11.6 Backtracking 383 WE 2 Towers of Hanoi 389 C&S The Limits of Computation 390 12 Sorting and Searching 393 12.1 Selection Sort 394 12.2 Profiling the Selection Sort Algorithm 397 12.3 Analyzing the Performance of the Selection Sort Algorithm 398 ST 1 Oh, Omega, and Theta 399 ST 2 Insertion Sort 400 12.4 Merge Sort 402 12.5 Analyzing the Merge Sort Algorithm 405 ST 3 The Quicksort Algorithm 407 12.6 Searching 408 Linear Search 408 Binary Search 410 PT 1 Library Functions for Sorting and Binary Search 412 ST 4 Defining an Ordering for Sorting Objects 413 12.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 413 Linear Time 413 Quadratic Time 414 The Triangle Pattern 415 Logarithmic Time 417 WE 1 Enhancing the Insertion Sort Algorithm 418 C&S The First Programmer 418 13 Advanced C++ 421 13.1 Operator Overloading 422 Operator Functions 422 Overloading Comparison Operators 425 Input and Output 425 Operator Members 426 ST 1 Overloading Increment and Decrement Operators 427 ST 2 Implicit Type Conversions 428 ST 3 Returning References 429 WE 1 A Fraction Class 430 13.2 Automatic Memory Management 430 Constructors That Allocate Memory 430 Destructors 432 Overloading the Assignment Operator 433 Copy Constructors 437 PT 1 Use Reference Parameters to Avoid Copies 441 CE 1 Defining a Destructor Without the Other Two Functions of the “Big Three” 442 ST 4 Virtual Destructors 443 ST 5 Suppressing Automatic Generation of Memory Management Functions 443 ST 6 Move Operations 444 ST 7 Shared Pointers 445 WE 2 Tracing Memory Management of Strings 446 13.3 Templates 446 Function Templates 447 Class Templates 448 ST 8 Non-Type Template Parameters 450 14 Linked Lists, Stacks, and Queues 453 14.1 Using Linked Lists 454 14.2 Implementing Linked Lists 459 The Classes for Lists, Node, and Iterators 459 Implementing Iterators 460 Implementing Insertion and Removal 462 WE 1 Implementing a Linked List Template 472 14.3 The Efficiency of List, Array, and Vector Operations 472 14.4 Stacks and Queues 476 14.5 Implementing Stacks and Queues 479 Stacks as Linked Lists 479 Stacks as Arrays 482 Queues as Linked Lists 482 Queues as Circular Arrays 483 14.6 Stack and Queue Applications 484 Balancing Parentheses 484 Evaluating Reverse Polish Expressions 485 Evaluating Algebraic Expressions 487 Backtracking 490 ST 1 Reverse Polish Notation 492 15 Sets, Maps, and Hash Tables 495 15.1 Sets 496 15.2 Maps 499 PT 1 Use the auto Type for Iterators 503 ST 1 Multisets and Multimaps 503 WE 1 Word Frequency 504 15.3 Implementing a Hash Table 504 Hash Codes 504 Hash Tables 505 Finding an Element 507 Adding and Removing Elements 508 Iterating over a Hash Table 508 ST 2 Implementing Hash Functions 514 ST 3 Open Addressing 516 16 Tree Structures 519 16.1 Basic Tree Concepts 520 16.2 Binary Trees 524 Binary Tree Examples 524 Balanced Trees 526 A Binary Tree Implementation 527 WE 1 Building a Huffman Tree 528 16.3 Binary Search Trees 528 The Binary Search Property 529 Insertion 530 Removal 532 Efficiency of the Operations 533 16.4 Tree Traversal 538 Inorder Traversal 539 Preorder and Postorder Traversals 540 The Visitor Pattern 541 Depth-First and Breadth-First Search 542 Tree Iterators 543 16.5 Red-Black Trees 544 Basic Properties of Red-Black Trees 544 Insertion 546 Removal 548 WE 2 Implementing a Red-Black Tree 551 17 Priority Queues and Heaps 553 17.1 Priority Queues 554 WE 1 Simulating a Queue of Waiting Customers 557 17.2 Heaps 557 17.3 The Heapsort Algorithm 567 Appendix A Reserved Word Summary A-1 Appendix B Operator Summary A-3 Appendix C Character Codes A-5 Appendix D C++ Library Summary A-8 Appendix E C++ Language Coding Guidelines A-12 Appendix F Number Systems and Bit and Shift Operations A-19 Glossary G-1 Index I-1 Credits C-1 Quick Reference C-2
£128.66
John Wiley & Sons Inc Brief C
Book SynopsisTable of ContentsPreface v Special Features xxiv Quick Reference xxviii Introduction 1 1.1 What is Programming? 2 1.2 The Anatomy of a Computer 3 C&S Computers are Everywhere 5 1.3 Machine Code and Programming Languages 5 C&S Standards Organizations 7 1.4 Becoming Familiar with Your Programming Environment 7 PT 1 Backup Copies 10 1.5 Analyzing Your First Program 11 CE 1 Omitting Semicolons 13 ST 1 Escape Sequences 13 1.6 Errors 14 CE 2 Misspelling Words 15 1.7 PROBLEM SOLVING Algorithm Design 16 The Algorithm Concept 16 An Algorithm for Solving an Investment Problem 17 Pseudocode 18 From Algorithms to Programs 19 HT 1 Describing an Algorithm with Pseudocode 19 WE 1 Writing an Algorithm for Tiling a Floor 21 2 Fundamental Data Types 25 2.1 Variables 26 Variable Definitions 26 Number Types 28 Variable Names 29 The Assignment Statement 30 Constants 31 Comments 31 CE 1 Using Undefined Variables 33 CE 2 Using Uninitialized Variables 33 PT 1 Choose Descriptive Variable Names 33 PT 2 Do Not Use Magic Numbers 34 ST 1 Numeric Types in C++ 34 ST 2 Numeric Ranges and Precisions 35 ST 3 Defining Variables with auto 35 2.2 Arithmetic 36 Arithmetic Operators 36 Increment and Decrement 36 Integer Division and Remainder 36 Converting Floating-Point Numbers to Integers 37 Powers and Roots 38 CE 3 Unintended Integer Division 39 CE 4 Unbalanced Parentheses 40 CE 5 Forgetting Header Files 40 CE 6 Roundoff Errors 41 PT 3 Spaces in Expressions 42 ST 4 Casts 42 ST 5 Combining Assignment and Arithmetic 42 C&S The Pentium Floating-Point Bug 43 2.3 Input and Output 44 Input 44 Formatted Output 45 2.4 PROBLEM SOLVING First Do It By Hand 47 WE 1 Computing Travel Time 48 HT 1 Carrying out Computations 48 WE 2 Computing the Cost of Stamps 51 2.5 Strings 51 The string Type 51 Concatenation 52 String Input 52 String Functions 52 C&S International Alphabets and Unicode 55 3 Decisions 59 3.1 The if Statement 60 CE 1 A Semicolon After the if Condition 63 PT 1 Brace Layout 63 PT 2 Always Use Braces 64 PT 3 Tabs 64 PT 4 Avoid Duplication in Branches 65 ST 1 The Conditional Operator 65 3.2 Comparing Numbers and Strings 66 CE 2 Confusing = and == 68 CE 3 Exact Comparison of Floating-Point Numbers 68 PT 5 Compile with Zero Warnings 69 ST 2 Lexicographic Ordering of Strings 69 HT 1 Implementing an if Statement 70 WE 1 Extracting the Middle 72 C&S Dysfunctional Computerized Systems 72 3.3 Multiple Alternatives 73 ST 3 The switch Statement 75 3.4 Nested Branches 76 CE 4 The Dangling else Problem 79 PT 6 Hand-Tracing 79 3.5 PROBLEM SOLVING Flowcharts 81 3.6 PROBLEM SOLVING Test Cases 83 PT 7 Make a Schedule and Make Time for Unexpected Problems 84 3.7 Boolean Variables and Operators 85 CE 5 Combining Multiple Relational Operators 88 CE 6 Confusing && and || Conditions 88 ST 4 Short-Circuit Evaluation of Boolean Operators 89 ST 5 De Morgan’s Law 89 3.8 APPLICATION Input Validation 90 C&S Artificial Intelligence 92 4 Loops 95 4.1 The while Loop 96 CE 1 Infinite Loops 100 CE 2 Don’t Think “are We There Yet?” 101 CE 3 Off-by-One Errors 101 C&S The First Bug 102 4.2 PROBLEM SOLVING Hand-Tracing 103 4.3 The for Loop 106 PT 1 Use for Loops for Their Intended Purpose Only 109 PT 2 Choose Loop Bounds That Match Your Task 110 PT 3 Count Iterations 110 4.4 The do Loop 111 PT 4 Flowcharts for Loops 111 4.5 Processing Input 112 Sentinel Values 112 Reading Until Input Fails 114 ST 1 Clearing the Failure State 115 ST 2 The Loop-and-a-Half Problem and the break Statement 116 ST 3 Redirection of Input and Output 116 4.6 PROBLEM SOLVING Storyboards 117 4.7 Common Loop Algorithms 119 Sum and Average Value 119 Counting Matches 120 Finding the First Match 120 Prompting Until a Match is Found 121 Maximum and Minimum 121 Comparing Adjacent Values 122 HT 1 Writing a Loop 123 WE 1 Credit Card Processing 126 4.8 Nested Loops 126 WE 2 Manipulating the Pixels in an Image 129 4.9 PROBLEM SOLVING Solve a Simpler Problem First 130 4.10 Random Numbers and Simulations 134 Generating Random Numbers 134 Simulating Die Tosses 135 The Monte Carlo Method 136 C&S Digital Piracy 138 5 Functions 141 5.1 Functions as Black Boxes 142 5.2 Implementing Functions 143 PT 1 Function Comments 146 5.3 Parameter Passing 146 PT 2 Do Not Modify Parameter Variables 148 5.4 Return Values 148 CE 1 Missing Return Value 149 ST 1 Function Declarations 150 HT 1 Implementing a Function 151 WE 1 Generating Random Passwords 152 WE 2 Using a Debugger 152 5.5 Functions Without Return Values 153 5.6 PROBLEM SOLVING Reusable Functions 154 5.7 PROBLEM SOLVING Stepwise Refinement 156 PT 3 Keep Functions Short 161 PT 4 Tracing Functions 161 PT 5 Stubs 162 WE 3 Calculating a Course Grade 163 5.8 Variable Scope and Global Variables 163 PT 6 Avoid Global Variables 165 5.9 Reference Parameters 165 PT 7 Prefer Return Values to Reference Parameters 169 ST 2 Constant References 170 5.10 Recursive Functions (Optional) 170 HT 2 Thinking Recursively 173 C&S The Explosive Growth of Personal Computers 174 6 Arrays and Vectors 179 6.1 Arrays 180 Defining Arrays 180 Accessing Array Elements 182 Partially Filled Arrays 183 CE 1 Bounds Errors 184 PT 1 Use Arrays for Sequences of Related Values 184 C&S Computer Viruses 185 6.2 Common Array Algorithms 185 Filling 186 Copying 186 Sum and Average Value 186 Maximum and Minimum 187 Element Separators 187 Counting Matches 187 Linear Search 188 Removing an Element 188 Inserting an Element 189 Swapping Elements 190 Reading Input 191 ST 1 Sorting with the C++ Library 192 ST 2 A Sorting Algorithm 192 ST 3 Binary Search 193 6.3 Arrays and Functions 194 ST 4 Constant Array Parameters 198 6.4 PROBLEM SOLVING Adapting Algorithms 198 HT 1 Working with Arrays 200 WE 1 Rolling the Dice 203 6.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 203 6.6 Two-Dimensional Arrays 206 Defining Two-Dimensional Arrays 207 Accessing Elements 207 Locating Neighboring Elements 208 Computing Row and Column Totals 208 Two-Dimensional Array Parameters 210 CE 2 Omitting the Column Size of a Two-Dimensional Array Parameter 212 WE 2 A World Population Table 213 6.7 Vectors 213 Defining Vectors 214 Growing and Shrinking Vectors 215 Vectors and Functions 216 Vector Algorithms 216 Two-Dimensional Vectors 218 PT 2 Prefer Vectors over Arrays 219 ST 5 The Range-Based for Loop 219 7 Pointers and Structures 223 7.1 Defining and Using Pointers 224 Defining Pointers 224 Accessing Variables Through Pointers 225 Initializing Pointers 227 CE 1 Confusing Pointers with the Data to Which They Point 228 PT 1 Use a Separate Definition for Each Pointer Variable 229 ST 1 Pointers and References 229 7.2 Arrays and Pointers 230 Arrays as Pointers 230 Pointer Arithmetic 230 Array Parameter Variables are Pointers 232 ST 2 Using a Pointer to Step Through an Array 233 CE 2 Returning a Pointer to a Local Variable 234 PT 2 Program Clearly, Not Cleverly 234 ST 3 Constant Pointers 235 7.3 C and C++ Strings 235 The char Type 235 C Strings 236 Character Arrays 237 Converting Between C and C++ Strings 237 C++ Strings and the [] Operator 238 ST 4 Working with C Strings 238 7.4 Dynamic Memory Allocation 240 CE 3 Dangling Pointers 242 CE 4 Memory Leaks 243 7.5 Arrays and Vectors of Pointers 243 7.6 PROBLEM SOLVING Draw a Picture 246 HT 1 Working with Pointers 248 WE 1 Producing a Mass Mailing 249 C&S Embedded Systems 250 7.7 Structures 250 Structured Types 250 Structure Assignment and Comparison 251 Functions and Structures 252 Arrays of Structures 252 Structures with Array Members 253 Nested Structures 253 7.8 Pointers and Structures 254 Pointers to Structures 254 Structures with Pointer Members 255 ST 5 Smart Pointers 256 8 Streams 259 8.1 Reading and Writing Text Files 260 Opening a Stream 260 Reading from a File 261 Writing to a File 262 A File Processing Example 262 8.2 Reading Text Input 265 Reading Words 265 Reading Characters 266 Reading Lines 267 CE 1 Mixing >> and getline Input 268 ST 1 Stream Failure Checking 269 8.3 Writing Text Output 270 ST 2 Unicode, UTF-8, and C++ Strings 272 8.4 Parsing and Formatting Strings 273 8.5 Command Line Arguments 274 C&S Encryption Algorithms 277 HT 1 Processing Text Files 278 WE 1 Looking for for Duplicates 281 8.6 Random Access and Binary Files 281 Random Access 281 Binary Files 282 Processing Image Files 282 C&S Databases and Privacy 286 9 Classes 289 9.1 Object-Oriented Programming 290 9.2 Implementing a Simple Class 292 9.3 Specifying the Public Interface of a Class 294 CE 1 Forgetting a Semicolon 296 9.4 Designing the Data Representation 297 9.5 Member Functions 299 Implementing Member Functions 299 Implicit and Explicit Parameters 299 Calling a Member Function from a Member Function 301 PT 1 All Data Members Should Be Private; Most Member Functions Should Be Public 303 PT 2 const Correctness 303 9.6 Constructors 304 CE 2 Trying to Call a Constructor 306 ST 1 Overloading 306 ST 2 Initializer Lists 307 ST 3 Universal and Uniform Initialization Syntax 308 9.7 PROBLEM SOLVING Tracing Objects 308 HT 1 Implementing a Class 310 WE 1 Implementing a Bank Account Class 314 C&S Electronic Voting Machines 314 9.8 PROBLEM SOLVING Discovering Classes 315 PT 3 Make Parallel Vectors into Vectors of Objects 317 9.9 Separate Compilation 318 9.10 Pointers to Objects 322 Dynamically Allocating Objects 322 The -> Operator 323 The this Pointer 324 9.11 PROBLEM SOLVING Patterns for Object Data 324 Keeping a Total 324 Counting Events 325 Collecting Values 326 Managing Properties of an Object 326 Modeling Objects with Distinct States 327 Describing the Position of an Object 328 C&S Open Source and Free Software 329 10 Inheritance 333 10.1 Inheritance Hierarchies 334 10.2 Implementing Derived Classes 338 CE 1 Private Inheritance 341 CE 2 Replicating Base-Class Members 341 PT 1 Use a Single Class for Variation in Values, Inheritance for Variation in Behavior 342 ST 1 Calling the Base-Class Constructor 342 10.3 Overriding Member Functions 343 CE 3 Forgetting the Base-Class Name 345 10.4 Virtual Functions and Polymorphism 346 The Slicing Problem 346 Pointers to Base and Derived Classes 347 Virtual Functions 348 Polymorphism 349 PT 2 Don’t Use Type Tags 352 CE 4 Slicing an Object 352 CE 5 Failing to Override a Virtual Function 353 ST 2 Virtual Self-Calls 354 HT 1 Developing an Inheritance Hierarchy 354 WE 1 Implementing an Employee Hierarchy for Payroll Processing 359 C&S Who Controls the Internet? 360
£128.66
John Wiley & Sons Inc Brief Java
Book SynopsisTable of ContentsPreface v Special Features xxvi Introduction 1 1.1 Computer Programs 2 1.2 The Anatomy of a Computer 3 1.3 The Java Programming Language 5 1.4 Becoming Familiar with Your Programming Environment 7 1.5 Analyzing Your First Program 11 1.6 Errors 13 1.7 PROBLEM SOLVING Algorithm Design 15 The Algorithm Concept 15 An Algorithm for Solving an Investment Problem 16 Pseudocode 17 From Algorithms to Programs 18 HT 1 Describing an Algorithm with Pseudocode 18 WE 1 Writing an Algorithm for Tiling a Floor 20 Using Objects 23 2.1 Objects and Classes 24 Using Objects 24 Classes 25 2.2 Variables 26 Variable Declarations 26 Types 28 Names 29 Comments 30 Assignment 30 ST 1 Variable Type Inference 33 2.3 Calling Methods 33 The Public Interface of a Class 33 Method Arguments 34 Return Values 35 Method Declarations 36 2.4 Constructing Objects 38 2.5 Accessor and Mutator Methods 40 2.6 The API Documentation 41 Browsing the API Documentation 41 Packages 43 2.7 Implementing a Test Program 44 ST 2 Testing Classes in an Interactive Environment 45 WE 1 How Many Days Have You Been Alive? 46 WE 2 Working with Pictures 46 2.8 Object References 46 2.9 Graphical Applications 49 Frame Windows 50 Drawing on a Component 51 Displaying a Component in a Frame 53 2.10 Ellipses, Lines, Text, and Color 54 Ellipses and Circles 54 Lines 55 Drawing Text 56 Colors 56 Implementing Classes 61 3.1 Instance Variables and Encapsulation 62 Instance Variables 62 The Methods of the Counter Class 64 Encapsulation 64 3.2 Specifying the Public Interface of a Class 66 Specifying Methods 66 Specifying Constructors 67 Using the Public Interface 69 Commenting the Public Interface 69 3.3 Providing the Class Implementation 72 Providing Instance Variables 72 Providing Constructors 73 Providing Methods 75 HT 1 Implementing a Class 78 WE 1 Making a Simple Menu 81 3.4 Unit Testing 81 3.5 PROBLEM SOLVING Tracing Objects 84 3.6 Local Variables 86 3.7 The this Reference 88 ST 1 Calling One Constructor from Another 90 3.8 Shape Classes 90 HT 2 Drawing Graphical Shapes 94 Fundamental Data Types 99 4.1 Numbers 100 Number Types 100 Constants 102 ST 1 Big Numbers 106 4.2 Arithmetic 107 Arithmetic Operators 107 Increment and Decrement 107 Integer Division and Remainder 108 Powers and Roots 109 Converting Floating-Point Numbers to Integers 110 ST 2 Avoiding Negative Remainders 112 ST 3 Combining Assignment and Arithmetic 113 ST 4 Instance Methods and Static Methods 113 4.3 Input and Output 114 Reading Input 114 Formatted Output 115 HT 1 Carrying Out Computations 118 WE 1 Computing the Volume and Surface Area of a Pyramid 121 4.4 PROBLEM SOLVING First Do it By Hand 121 WE 2 Computing Travel Time 122 4.5 Strings 122 The String Type 122 Concatenation 123 String Input 124 Escape Sequences 124 Strings and Characters 124 Substrings 125 ST 5 Using Dialog Boxes for Input and Output 128 Decisions 131 5.1 The if Statement 132 ST 1 The Conditional Operator 137 5.2 Comparing Values 137 Relational Operators 138 Comparing Floating-Point Numbers 139 Comparing Strings 140 Comparing Objects 141 Testing for null 141 HT 1 Implementing an if Statement 143 WE 1 Extracting the Middle 146 5.3 Multiple Alternatives 146 ST 2 The switch Statement 148 5.4 Nested Branches 149 ST 3 Block Scope 154 ST 4 Enumeration Types 155 5.5 PROBLEM SOLVING Flowcharts 156 5.6 PROBLEM SOLVING Selecting Test Cases 159 ST 5 Logging 161 5.7 Boolean Variables and Operators 161 ST 6 Short-Circuit Evaluation of Boolean Operators 165 ST 7 De Morgan’s Law 165 5.8 APPLICATION Input Validation 166 Loops 171 6.1 The while Loop 172 6.2 PROBLEM SOLVING Hand-Tracing 179 6.3 The for Loop 183 ST 1 Variables Declared in a for Loop Header 189 6.4 The do Loop 190 6.5 APPLICATION Processing Sentinel Values 192 ST 2 Redirection of Input and Output 194 ST 3 The “Loop and a Half” Problem 194 ST 4 The break and continue Statements 195 6.6 PROBLEM SOLVING Storyboards 197 6.7 Common Loop Algorithms 199 Sum and Average Value 199 Counting Matches 200 Finding the First Match 200 Prompting Until a Match is Found 201 Maximum and Minimum 201 Comparing Adjacent Values 202 HT 1 Writing a Loop 203 WE 1 Credit Card Processing 206 6.8 Nested Loops 206 WE 2 Manipulating the Pixels in an Image 209 6.9 APPLICATION Random Numbers and Simulations 209 Generating Random Numbers 210 The Monte Carlo Method 211 6.10 Using a Debugger 213 HT 2 Debugging 215 WE 3 A Sample Debugging Session 217 Arrays and Array Lists 221 7.1 Arrays 222 Declaring and Using Arrays 222 Array References 225 Using Arrays with Methods 226 Partially Filled Arrays 226 ST 1 Methods with a Variable Number of Arguments 229 7.2 The Enhanced for Loop 230 7.3 Common Array Algorithms 232 Filling 232 Sum and Average Value 232 Maximum and Minimum 232 Element Separators 232 Linear Search 233 Removing an Element 234 Inserting an Element 234 Swapping Elements 236 Copying Arrays 237 Reading Input 238 ST 2 Sorting with the Java Library 240 7.4 PROBLEM SOLVING Adapting Algorithms 240 HT 1 Working with Arrays 242 WE 1 Rolling the Dice 245 7.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 245 7.6 Two-Dimensional Arrays 248 Declaring Two-Dimensional Arrays 248 Accessing Elements 249 Locating Neighboring Elements 250 Accessing Rows and Columns 251 Two-Dimensional Array Parameters 252 WE 2 A World Population Table 253 ST 3 Two-Dimensional Arrays with Variable Row Lengths 254 ST 4 Multidimensional Arrays 255 7.7 Array Lists 255 Declaring and Using Array Lists 255 Using the Enhanced for Loop with Array Lists 258 Copying Array Lists 259 Wrappers and Auto-boxing 259 Using Array Algorithms with Array Lists 260 Storing Input Values in an Array List 261 Removing Matches 261 Choosing Between Array Lists and Arrays 262 ST 5 The Diamond Syntax 264 7.8 Regression Testing 264 Designing Classes 271 8.1 Discovering Classes 272 8.2 Designing Good Methods 273 Providing a Cohesive Public Interface 273 Minimizing Dependencies 274 Separating Accessors and Mutators 275 Minimizing Side Effects 276 ST 1 Call by Value and Call by Reference 278 8.3 PROBLEM SOLVING Patterns for Object Data 282 Keeping a Total 282 Counting Events 283 Collecting Values 283 Managing Properties of an Object 284 Modeling Objects with Distinct States 284 Describing the Position of an Object 285 8.4 Static Variables and Methods 286 ST 2 Alternative Forms of Instance and Static Variable Initialization 289 ST 3 Static Imports 290 8.5 PROBLEM SOLVING Solve a Simpler Problem First 291 8.6 Packages 295 Organizing Related Classes into Packages 295 Importing Packages 296 Package Names 297 Packages and Source Files 297 ST 4 Package Access 298 HT 1 Programming with Packages 299 8.7 Unit Test Frameworks 300 Inheritance 305 9.1 Inheritance Hierarchies 306 9.2 Implementing Subclasses 310 9.3 Overriding Methods 314 ST 1 Calling the Superclass Constructor 318 9.4 Polymorphism 319 ST 2 Dynamic Method Lookup and the Implicit Parameter 322 ST 3 Abstract Classes 323 ST 4 Final Methods and Classes 324 ST 5 Protected Access 324 HT 1 Developing an Inheritance Hierarchy 325 WE 1 Implementing an Employee Hierarchy for Payroll Processing 330 9.5 Object: The Cosmic Superclass 330 Overriding the toString Method 330 The equals Method 332 The instanceof Operator 333 ST 6 Inheritance and the toString Method 335 ST 7 Inheritance and the equals Method 336 Interfaces 339 10.1 Using Interfaces for Algorithm Reuse 340 Discovering an Interface Type 340 Declaring an Interface Type 341 Implementing an Interface Type 343 Comparing Interfaces and Inheritance 345 ST 1 Constants in Interfaces 346 ST 2 Nonabstract Interface Methods 347 10.2 Working with Interface Variables 348 Converting from Classes to Interfaces 348 Invoking Methods on Interface Variables 349 Casting from Interfaces to Classes 349 WE 1 Investigating Number Sequences 350 10.3 The Comparable Interface 350 ST 3 The clone Method and the Cloneable Interface 352 10.4 Using Interfaces for Callbacks 355 ST 4 Lambda Expressions 358 ST 5 Generic Interface Types 360 10.5 Inner Classes 360 10.6 Mock Objects 361 10.7 Event Handling 363 Listening to Events 363 Using Inner Classes for Listeners 365 10.8 Building Applications with Buttons 368 10.9 Processing Timer Events 371 10.10 Mouse Events 374 ST 6 Keyboard Events 377 ST 7 Event Adapters 378 Input/Output and Exception Handling 383 11.1 Reading and Writing Text Files 384 ST 1 Reading Web Pages 387 ST 2 File Dialog Boxes 387 ST 3 Character Encodings 388 11.2 Text Input and Output 389 Reading Words 389 Reading Characters 390 Classifying Characters 390 Reading Lines 390 Scanning a String 392 Converting Strings to Numbers 392 Avoiding Errors When Reading Numbers 392 Mixing Number, Word, and Line Input 393 Formatting Output 394 ST 4 Regular Expressions 395 ST 5 Reading an Entire File 396 11.3 Command Line Arguments 396 HT 1 Processing Text Files 399 WE 1 Analyzing Baby Names 403 11.4 Exception Handling 403 Throwing Exceptions 403 Catching Exceptions 405 Checked Exceptions 407 Closing Resources 409 Designing Your Own Exception Types 410 ST 6 Assertions 411 ST 7 The try/finally Statement 412 11.5 APPLICATION Handling Input Errors 412 Object-Oriented Design 419 12.1 Classes and Their Responsibilities 420 Discovering Classes 420 The CRC Card Method 421 12.2 Relationships Between Classes 423 Dependency 423 Aggregation 424 Inheritance 425 HT 1 Using CRC Cards and UML Diagrams in Program Design 426 ST 1 Attributes and Methods in UML Diagrams 426 ST 2 Multiplicities 427 ST 3 Aggregation, Association, and Composition 427 12.3 APPLICATION Printing an Invoice 428 Requirements 429 CRC Cards 429 UML Diagrams 432 Method Documentation 432 Implementation 434 WE 1 Simulating an Automatic Teller Machine 439 RECURSION*(ETEXT ONLY) 443 13.1 Triangle Numbers 444 HT 1 Thinking Recursively 448 WE 1 Finding Files 452 13.2 Recursive Helper Methods 452 13.3 The Efficiency of Recursion 453 13.4 Permutations 459 13.5 Mutual Recursion 463 13.6 Backtracking 469 WE 2 Towers of Hanoi 475 SORTING AND SEARCHING*(ETEXT ONLY) 477 14.1 Selection Sort 478 14.2 Profiling the Selection Sort Algorithm 481 14.3 Analyzing the Performance of the Selection Sort Algorithm 484 ST 1 Oh, Omega, and Theta 486 ST 2 Insertion Sort 487 14.4 Merge Sort 488 14.5 Analyzing the Merge Sort Algorithm 491 ST 3 The Quicksort Algorithm 493 14.6 Searching 495 Linear Search 495 Binary Search 497 14.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 500 Linear Time 500 Quadratic Time 501 The Triangle Pattern 502 Logarithmic Time 503 14.8 Sorting and Searching in the Java Library 504 Sorting 504 Binary Search 505 Comparing Objects 505 ST 4 The Comparator Interface 506 ST 5 Comparators with Lambda Expressions 507 WE 1 Enhancing the Insertion Sort Algorithm 507 The Java Collections Framework*(ETEXT ONLY) 511 15.1 An Overview of the Collections Framework 512 15.2 Linked Lists 514 The Structure of Linked Lists 515 The LinkedList Class of the Java Collections Framework 516 List Iterators 516 15.3 Sets 520 Choosing a Set Implementation 520 Working with Sets 522 15.4 Maps 525 ST 1 Updating Map Entries 527 HT 1 Choosing a Collection 527 WE 1 Word Frequency 528 ST 2 Hash Functions 529 15.5 Stacks, Queues, and Priority Queues 531 Stacks 531 Queues 532 Priority Queues 533 15.6 Stack and Queue Applications 534 Balancing Parentheses 534 Evaluating Reverse Polish Expressions 535 Evaluating Algebraic Expressions 537 Backtracking 540 ST 3 Reverse Polish Notation 542 WE 2 Simulating a Queue of Waiting Customers 543 Appendix A The Basic Latin and Latin-1 Subsets of Unicode A-1 Appendix B Java Operator Summary A-5 Appendix C Java Reserved Word Summary A-7 Appendix D The Java Library A-9 Appendix E Java Language Coding Guidelines A-29 Appendix F Tool Summary (ETEXT ONLY) Appendix G Number Systems (ETEXT ONLY) Appendix H UML Summary (ETEXT ONLY) Appendix I Java Syntax Summary (ETEXT ONLY) Appendix J Html Summary (ETEXT ONLY) Glossary G-1 Index I-1 Credits C-1 Quick Reference C-3
£128.66
John Wiley & Sons Inc Data Conscience
Book SynopsisDATA CONSCIENCE ALGORITHMIC S1EGE ON OUR HUM4N1TY EXPLORE HOW D4TA STRUCTURES C4N HELP OR H1NDER SOC1AL EQU1TY Data has enjoyed bystander' status as we've attempted to digitize responsibility and morality in tech. In fact, data's importance should earn it a spot at the center of our thinking and strategy around building a better, more ethical world. It's useand misuselies at the heart of many of the racist, gendered, classist, and otherwise oppressive practices of modern tech. In Data Conscience: Algorithmic Siege on our Humanity, computer science and data inclusivity thought leader Dr. Brandeis Hill Marshall delivers a call to action for rebel tech leaders, who acknowledge and are prepared to address the current limitations of software development. In the book, Dr. Brandeis Hill Marshall discusses how the philosophy of move fast and break things is, itself, broken, and requires change. You'll learn about the ways that discrimination rears its ugly head in the digital data space and how to address them with several known algorithms, including social network analysis, and linear regression A can't-miss resource for junior-level to senior-level software developers who have gotten their hands dirty with at least a handful of significant software development projects, Data Conscience also provides readers with: Discussions of the importance of transparencyExplorations of computational thinking in practiceStrategies for encouraging accountability in techWays to avoid double-edged data visualizationSchemes for governing data structures with law and algorithmsTable of ContentsForeword xix Introduction xxi Part I Transparency 1 Chapter 1 Oppression By. . . 3 The Law 4 Slave Codes 5 Black Codes 5 The Rise of Jim Crow Laws 8 Breaking Open Jim Crow Laws 11 Overt Surveillance 12 Surveillance at Scale 13 The Science 16 Numbers 16 Anthropometry 18 Eugenics 19 Summary 23 Notes 23 Recommended Reading 25 Chapter 2 Morality 27 Data Is All Around Us 29 Morality and Technology 33 Defining Tech Ethics 33 Mapping Tech Ethics to Human Ethics 39 Squeezing in Data Ethics 45 Misconceptions of Data Ethics 49 Misconception 1: Goodness of Data, and Tech by Proxy, Is Apolitical or Bipartisan 49 Misconception 2: Data Ethics Is Focused Solely on Laws Protecting Confidentiality and Privacy 50 Misconception 3: Implementing Data Ethics Practices Will Make Data Objective 52 Notable Misconception Mentions: Ethics and Diversity, Equity, and Inclusion (DEI) Are Interchangeable 53 Another Notable Mention: Software Developers Are Only Responsible for Societal Outcomes Stemming from Their Code 54 Limits of Tech and Data Ethics 55 Summary 57 Notes 57 Chapter 3 Bias 61 Types of Bias 62 Defining Bias 63 Concrete Example of Biases 65 The Bias Wheel 70 Before You Code 73 Case Study Scenario: Data Sourcing for an Employee Candidate Résumé Database 77 Case Study Scenario: Data Manipulation for an Employee Candidate Résumé Database 78 Case Study Scenario: Data Interpretation for an Employee Candidate Résumé Database 82 Bias Messaging 83 Summary 83 Notes 84 Chapter 4 Computational Thinking in Practice 87 Ready to Code 88 The Shampoo Algorithm 89 Computational Thinking 91 Coding Environments 93 Algorithmic Justice Practice 95 Code Cloning 97 Socio-Techno-Ethical Review: app.py 101 Socio-Techno-Ethical Review: screen.py 103 Socio-Techno-Ethical Review: search.py 109 Summary 114 Notes 114 Part II Accountability 117 Chapter 5 Messy Gathering Grove 119 Ask the Why Question 120 Collection 124 Open Source Dataset Example: Deciding Data Ownership 127 Open Source Dataset Example: Considering Data Privacy 129 Reformat 133 Summary 139 Notes 139 Chapter 6 Inconsistent Storage Sanctuary 143 Ask the “What” Question 144 Files, Sheets, and the Cloud 146 Decisions in a Vacuum 149 Case Study: Black Twitter 150 Modeling Content Associations 153 Manipulating with SQL 158 Summary 160 Notes 161 Chapter 7 Circus of Misguided Analysis 163 Ask the “How” Question 164 Misevaluating the “Cleaned” Dataset 169 Overautomating k, K, and Thresholds 177 Deepfake Technology 179 Not Estimating Algorithmic Risk at Scale 185 Summary 187 Notes 187 Chapter 8 Double-Edged Visualization Sword 191 Ask the “When” Question 192 Critiquing Visual Construction 197 Disabilities in View 201 Pretty Picture Mirage 204 Case Study: SAT College Board Dataset 207 Summary 208 Notes 209 Part III Governance 213 Chapter 9 By the Law 215 Federal and State Legislation 216 International and Transatlantic Legislation 219 Regulating the Tech Sector 221 Summary 228 Notes 228 Chapter 10 By Algorithmic Influencers 231 Group (Re)Think 232 Flyaway Fairness 238 Algorithmic Fairness 239 Broadening Fairness 241 Moderation Modes 245 Double Standards 246 Calling Out Algorithmic Misogynoir 252 Data and Oversight 254 Summary 256 Notes 256 Chapter 11 By the Public 263 Freeing the Underestimated 264 Learning Data Civics 267 The State of the Data Industry 271 Living in the 21st Century 273 Condemning the Original Stain 277 Tech Safety in Numbers 279 Summary 283 Notes 283 Appendix A Code for app.py 287 A 287 B 288 C 288 D 289 Appendix B Code for screen.py 291 A 291 B 294 C 295 Appendix C Code for search.py 297 A 297 B 300 C 301 D 303 Appendix D Pseudocode for faceit.py 305 Appendix E The Data Visualisation Catalogue’s Visualization Types 309 Appendix F Glossary 313 Index 315
£24.79
McGraw-Hill Education Loose Leaf for FORTRAN for Scientists Engineers
Book Synopsis
£106.20
McGraw-Hill Education RSLogix PLC Manual for use with Programmable
Book Synopsis
£109.99
Cengage Learning, Inc Microsoft Visual Basic 2015
Book SynopsisOnly MICROSOFT? VISUAL BASIC? 2015: RELOADED pairs fundamental programming concepts with both business applications and fun, engaging game applications. This fully revised 6th Edition provides a solid foundation in programming principles while clearly demonstrating how to most effectively use those principles. The book begins by covering the basics, from creating user interfaces to understanding variables, constants, and calculations. Building on this knowledge, coverage progresses to more advanced topics, such as manipulating and querying a Microsoft? Access database, creating Web applications, and creating classes and objects. This new edition combines powerful, proven learning features from previous editions with the latest content. Clear explanations detail the new features of Visual Basic? 2015 while new examples and applications illustrate how those features can work for you.Table of ContentsOverview: An Introduction to Programming. 1. An Introduction to Visual Basic 2015. 2. Creating a User Interface. 3. Memory Locations and Calculations. 4. Making Decisions in a Program. 5. More on the Selection Structure. 6. Repeating Program Instructions. 7. More on the Repetition Structure. 8. Sub and Function Procedures. 9. Arrays. 10. String Manipulation and Menus. 11. Structures and Sequential Files. 12. Access Databases and LINQ. 13. Creating Simple Web Applications. 14. Creating Classes and Objects. Appendix A: Answers to Mini-Quizzes. Appendix B: How to Boxes. Appendix C: Most Commonly Used Properties of Objects. Appendix D: Visual Basic Conversion Functions. Appendix E: Finding and Fixing Program Errors.
£251.59
Cengage Learning, Inc JavaScript
Book SynopsisNow in its sixth edition, JAVASCRIPT guides beginning programmers through web application development using the JavaScript programming language. As with previous editions of the book, the authors introduce key web authoring techniques with a strong focus on industry application. New coverage includes developing for touchscreen and mobile devices, and using the jQuery library. A real-world project, similar to what students would encounter in a professional setting, is developed chapter by chapter. Because professional web development jobs often require programmers to add features to existing sites, each chapter project uses a professionally designed web site. After completing a course using this textbook, students will be able to use JavaScript to build professional quality, dynamic web sites.
£163.78
Barcharts, Inc XRay Tech
Book SynopsisX-ray tech/diagnostic radiology (DR) is tried-and-true healthcare modality, yet ever-changing technology makes it a continually challenging field. Our comprehensive 3-panel (6-page) guide will make it all easy to understand, including the differences between DR and radiation therapy (RT). All key aspects of DR -- from basic radiophysics to diagnostic testing procedures -- are covered in-depth with up-to-date information, enhanced by useful charts and tables. Each section features The Tech Knows summary of critical points, set off graphically for easy reference.
£11.77
Barcharts, Inc Facebook
Book SynopsisKnowing how to use Facebook to network and market yourself or your business gives a single person unlimited potential for reaching over 1 billion users in 60 countries. This tool will show you how to manage the marketing on your personal profile and business pages. Authored by an expert and consultant in cutting edge marketing strategies, this well-rounded guide will immediately change the way you use Facebook and the way you market your business. 6-page laminated guide includes: Profile vs. Page Your Personal Facebook Profile Networking How Facebook Can Benefit Businesses & Brands Your Business's Facebook Page Facebook Advertising Options Creating Calls to Action on Your Page How to Manage a Page with Multiple Admins How to Schedule Posts Facebook Apps Contests & Promotions Incorporate Facebook into Your Overall Marketing Strategy Helpful Resources within Facebook
£9.36
MC Press, LLC How to Become a Highly Paid Corporate Programmer
Book SynopsisWritten for those gifted coders and programmers who get wrapped up in how complex their code is and forget the basics of how to be successful in a corporate culture, this guide will help put these programmers on the fast track to promotions and raises. Programmers fresh out of technical school are shown how to make the transition into a corporate setting by managing the interview process, learning from the programmers already in the workplace, and learning the business side of programming. Seasoned programmers are provided with tips on how to please supervisors, how to maximize their worth in corporations, and how to develop mentoring relationships. Advice on moving out of the corporate world and becoming an entrepreneur either in the consulting arena, in writing package software, or in founding a software development company is also provided.Table of ContentsSection I: Starting a Successful Programming Career 1: How Much Are You Worth? 2: A Primer for Fledgling Programmers 3: What Your Boss Really Wants From You 4: Tips From a Technical Interviewer 5: Final Interview? Ask These Questions 6: What You Won't Learn in Programming School 7: The Beauty of Borrowed Code 8: Learning from the Masters 9: Techies and Bit-Twiddlers Are Doomed Section II: Thriving in a Competitive Environment 10: Harnessing the Brute Force of Calculation 11: Take on the Tough Jobs 12: Mission: Impossible 13: How Your Work Is Tracked 14: Boost Your Output, Lower Your Stress With Productivity Tools 15: A Blueprint for Savvy Programming 16: Master Millions of Lines of Complex Code 17: Good Enough Programming for the Seasoned Programmer 18: How Seasoned Programmers Stay at the Top of Their Game 19: Self-Management Tips for the Seasoned Professional 20: Spotting Opportunities, Skirting Land Mines Section III: Mastering the Corporate Culture 21: Slipping Into a New Corporate Culture 22: Mentors and Mentees 23: How Do You Deal with the End User? 24: When You Get a Really Bad Boss 25: A Raise and a Promotion In-House 26: A Big Push Out of the House Section IV: Beyond Programming 27: Jumping to Management 28: The Top of the Pyramid: The Programming Consultant 29: Write for Your Industry 30: Founding and Running Your Own Firm 31: Inventing Your Own Software 32: Marketing Your Product
£21.95
MC Press, LLC Qshell for iSeries
Book SynopsisFrom the basics of programming in the Qshell on iSeries to complete coverage of previously undocumented topics, programmers will not only learn the Qshell more easily than they can with the Qshell manual from IBM, they will also learn practical applications of using the Qshell effectively. Written for users who are more comfortable with DDS, CL, and RPG as well as those using modern languages such as C and Java, this book allows those who are unfamiliar with Unix to easily learn this technology, which otherwise might be foreign to them. Although written specifically for iSeries programmers, the information gleaned here will be largely applicable to the shells for Linux and Unix, so programmers not familiar with those platforms will find those shells much easier to learn after learning Qshell.Table of ContentsPrefaceChapter 1: IntroductionChapter 2: Running QshellChapter 3: The EDTF Text EditorChapter 4: ScriptingChapter 5: Parameters and Variables DefinedChapter 6: Using Parameters and VariablesChapter 7: The Exit Status and Decision MakingChapter 8: Additional Control StructuresChapter 9: The Integrated File SystemChapter 10: Input and OutputChapter 11: Command-Line ArgumentsChapter 12: CommandsChapter 13: FunctionsChapter 14: Path Name Expansion (Globbing)Chapter 15: Signals & trapsChapter 16: ArchivesChapter 17: grep Scan UtilityChapter 18: sed EditorChapter 19: Writing Programs for QshellChapter 20: Additional OS/400 specific featuresChapter 21: Application Development ToolsChapter 22: Perl application developmentChapter 23: Java application developmentChapter 24: C/C++ application developmentAppendix A: Summary of changes by releaseAppendix B: Qshell vs. DOS
£66.50
MC Press, LLC SQL for eServer i5 and iSeries
Book SynopsisThis examination of how SQL functions on the iSeries considers at all possible environments, including the traditional 5250 green screen applications, the SQL scripting tool within iSeries Navigator, and Visual Basic. Database management from creation to deletion is covered in detail. Programmers will learn how to implement referential constraints and primary and unique key indexes, check constraints, and journal physical files. How to extend a database with user-defined functions and procedures and how the new GUI development tools provide simplified methods for running, debugging, and tuning SQL statements are also explained.Table of ContentsIntroduction Ch 1: Interactive SQL Ch 2: SQL in iSeries Navigator Ch 3: Embedded SQL Ch 4: Advanced SQL Examples Ch 5: Optimizing SQL Ch 6: Creating Databases Objects Ch 7: Creating Functions Ch 8: Creating Stored Procedures Ch 9: Creating SQL-based Tools Ch 10: Using SQL from within Microsoft Office Appendix A: SQL Basics for Beginners
£54.15
MC Press, LLC SOA for the Business Developer: Concepts, BPEL,
Book SynopsisService-Oriented Architecture (SOA) is a way of organizing software. If your company’s development projects adhere to the principles of SOA, the outcome will be an inventory of modular units called ""services,"" which allow for a quick response to change.This book tells the SOA story in a simple, straightforward manner that will help you understand not only the buzzwords and benefits, but also the technologies that underlie SOA: XML, WSDL, SOAP, XPath, BPEL, SCA, and SDO. And through it all, the authors provide business examples and illustrations, giving a practical meaning to abstract ideas.SOA for the Business Developer• Gives a detailed overview of Extensible Markup Language (XML), including namespaces and XML schema.• Describes Web Services Definition Language (WSDL) and SOAP, the standard SOA technologies.• Gives a clear tutorial on XML Path Language (XPath), a language for deriving data from transmitted messages and other sources. XPath is useful for working with a variety of other technologies, including several described in this book.• Gives comprehensive details on BPEL 2.0, a language that coordinates services and whose preceding version is already in numerous products. Our coverage is sufficient for most of your work with BPEL and includes a quick-reference guide.• Introduces Service Component Architecture (SCA), a proposed standard for composing and deploying applications. You’re sure to hear more of SCA, which is sponsored by 18 companies, including IBM, Oracle, and Sun Microsystems.• Introduces Service Data Objects (SDO), a proposed standard for representing data in a single way, even if the data comes from different types of data sources. SDO is likely to accompany SCA into the limelight.Trade Review"Stands out from the crowd, complementing the 100+ books now available on SOA." —Norbert Bieberstein, author, Service-Oriented Architecture Compass "Offers a comprehensive yet very approachable introduction to service-oriented architecture." —Grady Booch, IBM Fellow and cocreator of the Unified Modeling Language "Should be on the must-read list for every business and IT manager." —Bob Thomas, publisher, Align Journal "Covers services and their recursive composition into more complex services at a profound technical level, incorporating all relevant WS-* standards." —Matthias Kloppmann, IBM Distinguished Engineer, Business Process Technology "Weaves [SOA] into a coherent pattern that ordinary mortals can hope to understand and, more importantly, practically apply to their own situations." —Michael Guttman, Object Management Group authority on Model Driven Architecture (MDA) and coauthor, Real-Life MDA "Gives programmers and managers a friendly and rapid introduction to service-oriented architecture, with practical examples." —Frank Cohen, author, FastSOA "Margolis and Sharpe (both, IBM) provide a very comprehensive introduction to Service Oriented Architecture (SOA) for programmers. Highly recommended." —Choice
£33.20
MC Press, LLC Advanced Guide to PHP on IBM i
Book SynopsisWorking through many of the concepts and skills needed by intermediate and advanced PHP developers, this book is specifically designed to help good PHP developers become indispensable ones. Topics include debugging, test-driven development, web-based development, advanced object-oriented programming, and web security, and the book also takes an in-depth look at the new PHP Toolkit for IBM i provided by Zend Technologies. Upon completion of this book, readers will be able to use its principles as a basis for architecting complex applications, building web services according to the best standards currently available, significantly reducing the time spent discovering and fixing errors in code, designing architectures that are testable and predictable, building secure applications by protecting against most known attacks, and avoiding and preparing for common performance issues.
£61.49
Franklin, Beedle & Associates Inc Problem Solving with Algorithms and Data
Book SynopsisThis textbook is about computer science. It is also about Python. However, there is much more. The study of algorithms and data structures is central to understanding what computer science is all about.Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice so that there is a thorough understanding before continuing on to the more complex parts of the curriculum. In addition, a beginner needs to be given the opportunity to be successful and gain confidence.This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore the discipline and continue to practice problem solving.The authors cover abstract data types and data structures, writing algorithms, and solving problems. We look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.This textbook has three key features:- A strong focus on problem solving introduces students to the fundamental data structures and algorithms by providing a very readable text without introducing an overwhelming amount of new language syntax.- Algorithm analysis in terms of Big-O running time is introduced early and applied throughout.- Python is used to facilitate the success of beginning students in using and mastering data structures and algorithms.Table of ContentsIntroduction; Algorithm Analysis; Basic Data Structures; Recursion; Searching and Sorting; Trees; Graphs; Additional Topics.
£41.61