Synopses & Reviews
Programming doesn’t have to be dry and boring. This book teaches programming in an interactive and engaging way that is technically relevant and highly motivational. Using the Greenfoot environment, and an extensive collection of compelling example projects, readers are given a unique, graphical framework in which to learn programming. Greenfoot--an award-winning educational programming environment that uses simulations and games to teach programming skills--is closely integrated into the text, with numerous screenshots and tips, making the book ideal for both instructor-led and independent learning. The projects discussed in this book are easy enough that high school students can manage them, but they are also open and extendable enough that even seasoned programmers can find interesting and challenging aspects to do.
Getting to know Greenfoot: Objects and classes; Interacting with objects; Return types; Parameters; Greenfoot execution; Source code. Simple Programming: Making an object move; Turning; Dealing with screen edges. More sophisticated programming--games: Adding random behavior; Creating new methods; Adding new objects; Keyboard control; Ending the game; Adding sound; Adding objects automatically; Creating new objects; Animating images; Greenfoot images; Instance variables (fields); Using actor constructors; Alternating the images; The if/else statement. Sharing your scenarios: Exporting your scenario; Export to application; Export to a web page; Publishing on the Greenfoot Gallery. Making music: An on-screen piano: Animating the key; Producing the sound; Abstraction: Creating multiple keys; Building the piano; Using loops: the while loop: Using arrays. Interacting objects: Newtonʼs Lab: The starting point: Newtonʼs Lab; Helper classes: SmoothMover and Vector; The existing Body class; First extension: Creating movement; Using Java library classes; Adding gravitational force; The List type; The for-each loop; Applying gravity; Trying it out; Gravity and music. Collision detection: Asteroids: Investigation: What is there?; Painting stars; Turning; Flying forward; Colliding with asteroids; Casting; Adding fire power: the proton wave; Growing the wave; Interacting with objects in range; Further development. Creating images and sound: Preparation; Working with sound; Sound recording and editing; Sound file formats and file sizes; Working with images; Image files and file formats; Drawing images; Combining images files and dynamic drawing. Simulations. Additional scenario ideas: Marbles; Lifts; Boids; Circles; Explosion; Breakout; Platform jumper; Wave.
MARKET: For anyone looking for an engaging and accessible way to learn Java programming.
Synopsis
Introduction to Programming with Greenfoot
Object-Oriented Programming in Java™ with Games and Simulations Michael Kolling Written by Greenfoot creator and BlueJ developer, Michael Kolling, Introduction to Programming with Greenfoot uses Greenfoot, an award-winning educational programming environment, to teach standard Java programming.
Greenfoot uses simulations and games to teach object-oriented concepts and principles in a fun, easily accessible manner. Greenfoot bridges the gap to Java programming; it scales up well making even advanced topics easy to teach.
Introduction to Programming with Greenfoot provides:
- Standard Java programming foundation
- Objects-first approach
- Project-drivem, hands-on learning
- Opportunities for students to develop animations, games and simulations quickly
To join the online Greenfoot community or check out shared resources for instructors and students, please visit www.greenfoot.org/book.
Synopsis
Introduction to Programming with Greenfoot: Object-Oriented Programming in Java with games and Simulations is ideal for introductory courses in Java Programming or Introduction to Computer Science.
The only textbook to teach Java programming using Greenfoot—this is “Serious Fun.”
Programming doesn’t have to be dry and boring. This book teaches Java programming in an interactive and engaging way that is technically relevant, pedagogically sound, and highly motivational for students. Using the Greenfoot environment, and an extensive collection of compelling example projects, students are given a unique, graphical framework in which to learn programming.
About the Author
Michael Kölling is a professor at the Computing Laboratory, University of Kent, in Canterbury, UK. He holds a PhD in computer science from Sydney University, and has worked in Australia, Denmark and the UK. Michael’s research interests are in the areas of object-oriented systems, programming languages, software tools, computing education and HCI. He has published numerous papers on object-orientation and computing education topics and is co-author of a Java textbook (Objects First with Java, Pearson Education, 2008.(ISBN 0-13-606086-2). Michael is one of the developers of BlueJ, an educational programming environment, and more recently, the Greenfoot platform. The Higher Education Academy elected Michael as a National Teaching Fellow in 2008.
Table of Contents
Introduction 1
Chapter 1 Getting to know Greenfoot 3
1.1 Getting started 3
1.2 Objects and classes 4
1.3 Interacting with objects 6
1.4 Return types 7
1.5 Parameters 8
1.6 Greenfoot execution 9
1.7 A second example 10
1.8 Understanding the class diagram 10
1.9 Playing with Asteroids 12
1.10 Source code 13
1.11 Summary 15
Chapter 2 The first program: Little Crab 16
2.1 The Little Crab scenario 16
2.2 Making the crab move 18
2.3 Turning 19
2.4 Dealing with screen edges 21
2.5 Summary of programming techniques 25
Chapter 3 Improving the Crab–more sophisticated programming 27
3.1 Adding random behavior 27
3.2 Adding worms 30
3.3 Eating worms 32
3.4 Creating new methods 33
3.5 Adding a Lobster 36
3.6 Keyboard control 36
3.7 Ending the game 38
3.8 Adding sound 40
3.9 Summary of programming techniques 42
Chapter 4 Finishing the crab game 43
4.1 Adding objects automatically 43
4.2 Creating new objects 45
4.3 Animating images 46
4.4 Greenfoot images 47
4.5 Instance variables (fields) 48
4.6 Assignment 49
4.7 Using actor constructors 50
4.8 Alternating the images 52
4.9 The if/else statement 53
4.10 Counting worms 53
4.11 More ideas 55
4.12 Summary of programming techniques 56
Interlude 1 Sharing your scenarios 57
I1.1 Exporting your scenario 57
I1.2 Export to application 57
I1.3 Export to a web page 58
I1.4 Publishing on the Greenfoot Gallery 59
Chapter 5 Making music: An on-screen piano 61
5.1 Animating the key 62
5.2 Producing the sound 65
5.3 Abstraction: Creating multiple keys 66
5.4 Building the piano 68
5.5 Using loops: The while loop 69
5.6 Using arrays 72
5.7 Summary of programming techniques 76
Chapter 6 Interacting objects: Newton’s Lab 78
6.1 The starting point: Newton’s Lab 79
6.2 Helper classes: SmoothMover and Vector 80
6.3 The existing Body class 83
6.4 First extension: Creating movement 85
6.5 Using Java library classes 86
6.6 Adding gravitational force 87
6.7 The List type 90
6.8 The for-each loop 91
6.9 Applying gravity 93
6.10 Trying it out 95
6.11 Gravity and music 97
6.12 Summary of programming techniques 99
Chapter 7 Collision detection: Asteroids 101
7.1 Investigation: What is there? 102
7.2 Painting stars 103
7.3 Turning 106
7.4 Flying forward 107
7.5 Colliding with asteroids 109
7.6 Casting 112
7.7 Adding fire power: The proton wave 115
7.8 Growing the wave 115
7.9 Interacting with objects in range 119
7.10 Further development 121
7.11 Summary of programming techniques 122
Interlude 2 The Greeps competition 123
I2.1 How to get started 124
I2.2 Programming your Greeps 125
I2.3 Running the competition 126
I2.4 Technicalities 126
Chapter 8 Creating images and sound 127
8.1 Preparation 127
8.2 Working with sound 129
8.3 Sound recording and editing 130
8.4 Sound file formats and file sizes 131
8.5 Working with images 133
8.6 Image files and file formats 133
8.7 Drawing images 135
8.8 Combining images files and dynamic drawing 137
8.9 Summary 139
Chapter 9 Simulations 141
9.1 Foxes and rabbits 142
9.2 Ants 145
9.3 Collecting food 146
9.4 Setting up the world 149
9.5 Adding pheromones 149
9.6 Path forming 152
9.7 Summary 152
Chapter 10 Additional scenario ideas 154
10.1 Marbles 154
10.2 Lifts 155
10.3 Boids 156
10.4 Circles 157
10.5 Explosion 158
10.6 Breakout 159
10.7 Platform jumper 160
10.8 Wave 161
10.9 Summary 162
Appendix
A Installing Greenfoot 163
B Greenfoot API 165
C Collision detection 169
D Some Java details 175
Index 185