60 Teaching Languages If the idea of using a “kid’s” programming language to figure out programming bothers you, grab a copy of KPL’s more sophisticated version, Phrogram (www.phrogram.com). Like KPL, Phrogram is free. (If you want to compile your video games into programs that you can give or sell to others, buy the commercial version of Phrogram.) Both KPL and Phrogram use a proprietary language that combines the readability of Pascal with the object-oriented features of more advanced languages, as shown in the following example: Program HelloWorld Method Main() PrintLine (“Hello, World!”) End Method End Program The goal of KPL and Phrogram is to make programming simple, easy, and fun by focusing on graphics, sound, and animation so you can create video games. After you know how to program with KPL or Phrogram, you can migrate to more popular languages later. Alice The latest programming technique for creating, organizing, and maintaining large programs is object-oriented programming. Unfortunately, figuring out object-oriented programming can be difficult, especially for beginners who already have enough trouble just figuring out how to program a computer. So to help beginners understand object-oriented programming, Carnegie Mellon University has created a free programming language dubbed Alice (www.alice.org). To make programming fun and teach object-oriented principles at the same time, Alice lets beginners write simple programs to animate characters on the screen, as shown in Figure 3-3. When you write an Alice program, your commands create an animated character on-screen. Then you need to write additional commands to tell that animated character how to move to create a simple story. In the process of telling the animated character how to move, you wind up discovering both how to program and how to use object-oriented principles while having fun in the process. Like most teaching programming languages, Alice programming uses plain English commands, like move forward or play sound. By using simple commands, Alice lets you focus on understanding the principles of objectoriented programming without getting bogged down in understanding the peculiar syntax of a specific programming language.
Teaching Languages 61 Book I Chapter 3 Types of Programming Languages Figure 3-3: An Alice program creates an animated character on-screen and moves it around. Lego Mindstorms Kids love building things with Lego building bricks, so to encourage kids to build actual working robots, Lego has released their Lego robot-building kit, Mindstorms NXT. Not only can you build a working robot with Lego bricks, but you can also program it using the Lego NXT-G programming language. To write a program in NXT-G, you don’t have to type a thing. Instead, you create a program by arranging icons that represent different type of actions your robot can do, such as move forward or respond to a light. After writing your program on your computer, you load that program into your Lego robot and watch it go. By using Lego Mindstorms NXT, anyone can figure out both programming skills and robot-making skills. Unlike KPL, Logo, or Alice, Lego Mindstorms NXT lets you see your working program in action as a walking, rolling, or crawling Lego robot. Programming a killer robot Studying how to program by controlling a Lego robot can be fun, but to combine the thrill of controlling a robot with the joy of playing a video game, computer scientists have also created games that let you write a simple program for controlling a battling robot, as shown in Figure 3-4.
Beginning Programming ALL-IN-ONE DE
Beginning Programming ALL-IN-ONE DE
About the Author I started off as a
Acknowledgments This is the part of
Contents at a Glance Introduction .
Table of Contents Introduction.....
Table of Contents xi Finding an Int
Table of Contents xiii Playing with
Table of Contents xv Using Structur
Table of Contents xvii Searching wi
Table of Contents xix Book VI: Prog
Table of Contents xxi Declaring Con
Introduction If you enjoy using a c
How to Use This Book 3 means they
Book I Getting Started
Chapter 1: Getting Started Programm
Software Engineering Methods 111 de
Software Engineering Methods 113 Ad
Automating Software Engineering wit
Automating Software Engineering wit
Automating Software Engineering wit
Automating Software Engineering wit
The Pros and Cons of Software Engin
Book II Programming Basics
Chapter 1: How Programs Work In Thi
Using Keywords as Building Blocks 1
Organizing a Program 131 So if your
Dividing a Program into Subprograms
Dividing a Program into Objects 135
Dividing a Program into Objects 137
Creating a User Interface 139 The u
Chapter 2: Variables, Data Types, a
Declaring Variables 143 This BASIC
Declaring Variables 145 You can alw
Declaring Variables 147 Every progr
Using Different Data Types 149 type
Retrieving Data from a Variable 151
Using Constant Values 153 Using Con
Defining the Scope of a Variable 15
Defining the Scope of a Variable 15
Defining the Scope of a Variable 15
Chapter 3: Manipulating Data In Thi
Using Math to Manipulate Numbers 16
Using Math to Manipulate Numbers 16
Manipulating Strings 167 Most progr
Finding Strings with Regular Expres
Finding Strings with Regular Expres
Using Comparison Operators 173 Comp
Using Boolean Operators 175 Most pr
Using Boolean Operators 177 So if t
Converting Data Types 179 Both type
Chapter 4: Making Decisions by Bran
Picking One Choice with the IF-THEN
Picking Three or More Choices with
Picking Three or More Choices with
Playing with Multiple Boolean Opera
Making Multiple Choices with the SE
Making Multiple Choices with the SE
Making Multiple Choices with the SE
Making Multiple Choices with the SE
Chapter 5: Repeating Commands by Lo
Looping a Fixed Number of Times wit
Looping a Fixed Number of Times wit
Looping a Fixed Number of Times wit
Looping Zero or More Times with the
Playing with Nested Loops 209 This
Checking Your Loops 211 Outer loop
Chapter 6: Breaking a Large Program
Creating and Using Subprograms 215
Creating and Using Subprograms 217
Passing Parameters 219 The #include
Passing Parameters 221 Figure 6-5:
Passing Parameters 223 When you pas
Passing Parameters 225 DIM Temp AS
Repeating a Subprogram with Recursi
Repeating a Subprogram with Recursi
Chapter 7: Breaking a Large Program
How Object-Oriented Programming Wor
Encapsulation Isolates Data and Sub
Encapsulation Isolates Data and Sub
Sharing Code with Inheritance 239 S
Sharing Code with Inheritance 241 F
Design Patterns 243 However, when y
Design Patterns 245 The flyweight p
Object-Oriented Languages 247 Becau
Real-Life Programming Examples 249
Real-Life Programming Examples 251
Real-Life Programming Examples 253
Real-Life Programming Examples 255
Real-Life Programming Examples 257
Chapter 8: Reading and Saving Files
Storing Data in Text Files 261 A co
Storing Data in Text Files 263 Read
Storing Fixed Size Data in Random-A
Storing Fixed Size Data in Random-A
Storing Varying Size Data in Untype
Using Database Files 271 Figure 8-5
Using Database Files 273 Think of a
Using Database Files 275 When using
Chapter 9: Documenting Your Program
Adding Comments to Source Code 279
Adding Comments to Source Code 281
Adding Comments to Source Code 283
Writing Software Documentation 285
Writing Software Documentation 287
Chapter 10: Principles of User Inte
The Evolution of User Interfaces 29
Elements of a User Interface 293 GU
Elements of a User Interface 295 Fi
Elements of a User Interface 297 If
Elements of a User Interface 299 Fi
Elements of a User Interface 301 Fi
Designing a User Interface 303 diff
Designing a User Interface 305 A we
Designing a User Interface 307 Figu
Book III Data Structures
Chapter 1: Structures and Arrays In
Using Structures 313 If you wanted
Using an Array 315 the array, which
Using an Array 317 Perkins has empl
Working with Resizable Arrays 319 D
Working with Multi-Dimensional Arra
Using Structures with Arrays 323 Th
Drawbacks of Arrays 325 To store da
Drawbacks of Arrays 327 Suppose you
Chapter 2: Sets and Linked Lists In
Using Sets 331 Adding (and deleting
Using Sets 333 This command asks th
Using Sets 335 Bill Evans John Doe
Using Linked Lists 337 This tells t
Using Linked Lists 339 Each time yo
Drawbacks of Sets and Linked Lists
Drawbacks of Sets and Linked Lists
Chapter 3: Collections and Dictiona
Using a Collection 347 Every elemen
Using a Collection 349 When you del
Using a Collection 351 Figure 3-6:
Understanding Hash Tables 353 Every
Understanding Hash Tables 355 VP Ke
Understanding Hash Tables 357 ✦ D
Understanding Hash Tables 359 In ge
Chapter 4: Stacks, Queues, and Dequ
Using a Stack 363 Like a collection
Using Queues 365 Counting and searc
Using Queues 367 Adding data to a q
Using Queues 369 Figure 4-6: The Pe
Using Deques 371 Initially, a deque
Using Deques 373 Figure 4-11: The U
Chapter 5: Graphs and Trees In This
Understanding Graphs 377 457 miles
Understanding Graphs 379 Figure 5-4
Creating Trees 381 Figure 5-5: A tr
Creating Trees 383 For example, an
Taking Action on Trees 385 Traversi
Taking Action on Trees 387 10 8 12
Taking Action on Trees 389 10 8 12
Book IV Algorithms
Chapter 1: Sorting Algorithms In Th
Using Bubble Sort 395 32 9 74 21 Or
Using Insertion Sort 397 32 9 74 21
Using Shell Sort 399 32 9 74 21 50
Using Heap Sort 401 Heap sort dumps
Using Merge Sort 403 94 46 74 21 32
Using Quick Sort 405 Using Quick So
Comparing Sorting Algorithms 407 If
Chapter 2: Searching Algorithms In
Sequential Search 411 Backward or f
Sequential Search 413 Binary search
Sequential Search 415 Fibonacci num
Using Indexes 417 102 John Smith 55
Adversarial Search 419 The more lev
Adversarial Search 421 So if the co
Chapter 3: String Searching In This
Sequential Text Search 425 In this
Sequential Text Search 427 The Shif
Searching with Regular Expressions
Searching Phonetically 431 Both sym
Searching Phonetically 433 If you h
Chapter 4: Data Compression Algorit
Lossless Data Compression Algorithm
Lossless Data Compression Algorithm
Lossless Data Compression Algorithm
Lossy Data Compression 443 Basicall
Chapter 5: Encryption Algorithms In
The Basics of Encryption 447 in a m
The Basics of Encryption 449 Stream
The Basics of Encryption 451 Electr
Symmetric/Asymmetric Encryption Alg
Cracking Encryption 455 Sender’s
Cracking Encryption 457 Instead of
Cracking Encryption 459 Code cracki
Book V Web Programming
Chapter 1: HyperText Markup Languag
The Structure of an HTML Document 4
The Structure of an HTML Document 4
Defining the Background 469 Adding
Making Tables 471 The anchor point
Making Tables 473 Book V Chapter 1
Making Tables 475 Column 1 Column
Chapter 2: CSS In This Chapter Und
Creating Style Classes 479 color :
Separating Styles in Files 481 Sepa
Cascading Stylesheets 483 If you ha
Chapter 3: JavaScript In This Chapt
Declaring Variables 487 need to def
Using Operators 489 The relational
Branching Statements 491 To make th
Using Arrays 493 A variation of the
Designing User Interfaces 495 A con
Chapter 4: PHP In This Chapter Und
Declaring Variables 499 Declaring V
Using Operators 501 Table 4-3 Logic
Branching Statements 503 Command; }
Creating Functions 505 If you don
Creating Objects 507 Creating Objec
Chapter 5: Ruby In This Chapter Un
Using Operators 511 # long time to
Using Operators 513 Table 5-3 Logic
Looping Statements 515 Command else
Using Data Structures 517 Using Dat
Creating Objects 519 To tell an obj
Book VI Programming Language Syntax
Chapter 1: C and C++ In This Chapte
Declaring Variables 525 Despite min
Declaring Variables 527 All integer
Using Operators 529 Relational oper
Branching Statements 531 Table 1-6
Looping Statements 533 switch (expr
Data Structures 535 If a function d
Using Objects 537 Now you can decla
Using Objects 539 To inherit from m
Chapter 2: Java and C# In This Chap
Declaring Variables 543 The double
Using Operators 545 Declaring float
Using Operators 547 The increment o
Branching Statements 549 if (condit
Looping Statements 551 Because no b
Data Structures 553 If the function
Data Structures 555 You can create
Using Objects 557 So if you created
Chapter 3: Perl and Python In This
Using Operators 561 You can write b
Using Operators 563 The relational
Branching Statements 565 Table 3-5
Looping Statements 567 In Python, t
Perl Data Structures 569 A typical
Python Data Structures 571 Creating
Using Objects 573 After you define
Chapter 4: Pascal and Delphi In Thi
Declaring Variables 577 Creating Co
Declaring Constants 579 Declaring d
Branching Statements 581 Table 4-5
Looping Statements 583 Looping Stat
Data Structures 585 FUNCTION Functi
Creating Objects 587 clear a dynami
Chapter 5: Visual Basic and REALbas
The Structure of a BASIC Program 59
Declaring Variables 593 Declaring i
Declaring Constants 595 Declaring B
Branching Statements 597 Table 5-7
Branching Statements 599 The preced
Creating Subprograms and Functions
Data Structures 603 Data Structures
Creating Objects 605 Creating Objec
Book VII Applications
Chapter 1: Database Management In T
The Basics of Databases 611 To retr
The Basics of Databases 613 Althoug
The Basics of Databases 615 Employe
Manipulating Data 617 Tables divide
Manipulating Data 619 The Join comm
Manipulating Data 621 SET PhoneNumb
Database Programming 623 Figure 1-1
Chapter 2: Bioinformatics In This C
The Basics of Bioinformatics 627 Un
Searching Databases 629 ✦ Swiss-P
Bioinformatics Programming 631 Alth
Chapter 3: Computer Security In Thi
Stopping Malware 635 Worms Similar
Stopping Hackers 637 Stopping Hacke
Secure Computing 639 Forensics If y
Secure Computing 641 start. The ide
Chapter 4: Artificial Intelligence
Problem Solving 645 Game-playing Be
Problem Solving 647 Expert System K
Problem Solving 649 Humans can unde
Problem Solving 651 Such speech rec
Machine Learning 653 With LISP, eve
Machine Learning 655 Robotics and a
`Chapter 5: The Future of Computer
Picking an Operating System 659 opt
Cross-Platform Programming 661 Unfo
Cross-Platform Programming 663 The
Cross-Platform Programming 665 Anot
The Programming Language of the Fut
The Programming Language of the Fut
Index Numerics 0 (zero) initializin
Index 673 blocks of commands in cur
Index 675 dictionaries versus, 352
Index 677 database management conne
Index 679 enumerated variables (C/C
Index 681 hybrid OOP languages, 246
Index 683 knowledge base, 646, 647
Index 685 modeling, 44-45 Modula-2
Index 687 advantages and disadvanta
Index 689 looping statements, 600-6
Index 691 extreme programming metho
Index 693 source code as, 264 tab-d
Index 695 as event-driven programmi
BUSINESS, CAREERS & PERSONAL FINANC