More Information on Squeak Textbook
Mark Guzdial
guzdial at cc.gatech.edu
Wed Oct 4 13:59:10 UTC 2000
I've had several questions about my Squeak textbook, with suggestions
that I post the answers to the list.
Again, the book is at:
http://www.amazon.com/exec/obidos/ASIN/0130280283/o/qid=970306184/
(Currently ranked in sales at 38,828! (With a bullet? :-))
The publisher (which I can't believe Amazon doesn't list!) is
Prentice-Hall. My editor is Alan Apt. Both the Table of Contents
and Back cover text for the book are WRONG. <sigh> (I've alerted P-H,
and they're working on it.)
Below is the actual back cover contents and the manuscript table of
contents (which is changing some -- copyeditors are pretty amazing
:-). The cover for the textbook and the edited volume
(http://coweb.cc.gatech.edu/squeakbook) will be the same image, with
altered color schemes. Maybe I shouldn't spoil the surprise about
the cover images -- let's just say that they're wonderful and
entirely appropriate for Squeak.
Rick Zaccone of Bucknell, Rik Fischer Smoody of Portland State, and
Cullen O'Neill of U. Michigan all test-drove the book this last year.
Let me know if you have any other questions about it.
Mark
Squeak: Object-Oriented Design with Multimedia Applications
Mark Guzdial
"In Squeak, you have your hands in one of the most late bound, yet
practical, programming systems ever created. It is also an artifact
which is wide, broad, and deep enough to permit real scientific
study, creation of new theories, mathematics, engineering
constructions, and even its own successor! Please use this book to
learn how to do "all of the above." - Alan Kay, V-P Research, Disney
Imagineering
"The text presents OO concepts in the context of Smalltalk (Squeak),
which is by far the best environment and language in which to learn
the concepts. The author is clearly enthusiastic about the subject
matterauthoritative in explaining the basics of Smalltalk. - Keith
R. Pierce, St. Paul Companies
This innovative text teaches object-oriented programming using Squeak
- a powerful, freely available language that is highly effective for
teaching object-oriented programming. Using a focus on the basics and
compelling case studies, the text covers the whole process of
object-oriented development - from object-oriented analysis and
design, though user interface design and application evaluation.
FEATURES/BENEFITS
Free Squeak CD with book
** CD includes version 2.7 of Squeak compatible with Windows
95/98/NT, WindowsCE, Macintosh, Linux, Solaris, SGI, Acorn, BeOS.
ALSO includes source code for examples, Squeak extras, and lecture
notes in PowerPoint and Squeak-native formats.
Focus on Squeak
** Gives both professionals and students great flexibility in working
in an exciting environment that supports the latest in multimedia,
including 3-D computer graphics, MIDI audio, and Flash animations. It
is the first printed documentation for Squeak's advanced features,
Morphic user interface, and support for multimedia.
Rich description of object-oriented process.
** Introduces readers to an object-oriented design process, using UML
standard class diagrams.
A user interface design and evaluation process.
** Leads users through constructing user interfaces, then designing
and evaluating user interfaces. Case studies present the design and
implementation of exciting multimedia applications, then follow-up
with real evaluation results from interaction with users.
ABOUT THE AUTHOR
Mark Guzdial is an Associate Professor in the College of Computing at
Georgia Institute of Technology. His research focuses on learning
sciences and technology, specifically, "collaborative Dynabooks,"
which are tools that support learning through collaborative
multimedia construction. He has been teaching object-oriented
analysis, design, and programming in Smalltalk for over five years.
His Ph.D. is in Education and Computer Science from the University of
Michigan. Georgia Tech praised his teaching with an award for
"Outstanding Use of Educational Technology" (1997). He has received a
prestigious National Science Foundation CAREER Award. He is on the
editorial board of IEEE Multimedia, Journal of the Learning Sciences,
Journal of Interactive Learning Research, and Interactive Learning
Environments Journal.
TABLE OF CONTENTS
FOREWORD
SOFTWARE: ART, ENGINEERING, MATHEMATICS,
OR SCIENCE?
BY ALAN KAY 10
PREFACE 1
1 APPROACH OF THE BOOK 1
1.1 START FROM WHERE THE STUDENTS ARE 2
1.2 LEARNING INVOLVES TESTING AND FAILURE 4
1.3 GENERATION AND INQUIRY, NOT TRANSMISSION 5
2 CONTENT OF THE BOOK 5
3 ACKNOWLEDGEMENTS 6
PART 1
FOUNDATIONS OF OBJECT-ORIENTED PROGRAMMING AND SQUEAK 8
CHAPTER 1
OBJECTS, SMALLTALK, DYNABOOKS, AND SQUEAK:
WHERE THE OBJECTS COME FROM 9
1 OBJECT-ORIENTED PROGRAMMING 9
2 BIRTH OF OBJECTS 10
3 "A PERSONAL COMPUTER FOR CHILDREN OF ALL AGES" 13
4 BACK TO THE FUTURE 18
5 COMMON ANCESTRY OF OTHER OBJECT-ORIENTED LANGUAGES 21
CHAPTER 2
A TOUR OF SQUEAK 24
1 BASIC RULES OF SMALLTALK 24
2 DOING "NORMAL" THINGS IN SQUEAK 27
2.1 VARIABLES AND STATEMENTS 28
2.2 CONTROL STRUCTURES 30
2.3 LITERALS, NUMBERS, AND OPERATIONS 33
2.4 STRINGS AND ARRAYS 34
2.5 FILES 38
3 DOING "OBJECT" THINGS IN SQUEAK 38
3.1 BLOCKS 39
3.2 VARIABLES AND MEMORY 40
3.3 CREATING CLASSES, INSTANCES, AND METHODS 41
3.4 THE SQUEAK MODEL OF EXECUTION 43
4 USING SQUEAK 45
4.1 STARTING A NEW PROJECT 48
4.2 EXTENDED EXAMPLE: MUPPETS IN SQUEAK 50
5 TOOLS AND STRATEGIES: FINDING MORE IN SQUEAK 57
5.1 FINDING CLASSES: THERE HAS GOT TO BE A WINDOW OR A TEXTFIELD
CLASS AROUND HERE SOMEWHERE. WHERE IS IT? 57
5.2 EXPLORING OBJECTS: I'M EXPLORING A COMPLICATED OBJECT, AND NOW
I'VE GOT A BAZILLION INSPECTORS ALL OVER THE SCREEN. IS THERE SOME
OTHER WAY TO EXPLORE AN OBJECT? 59
5.3 FINDING METHODS: I REMEMBER THERE'S A WAY OF GETTING AN ELEMENT,
'AT'-SOMETHING, BUT I CAN'T FIND IT. 60
5.4 FINDING IMPLEMENTORS: I SEE A REFERENCE TO A METHOD NAMED
FINDTOKENS: (OR WHATEVER). WHERE IS IT? WHAT DOES IT DO? 62
5.5 FINDING SENDERS: THAT'S WHAT FINDTOKENS: DOES. WHO USES IT? 63
5.6 DEBUGGING: I CAN'T FIGURE OUT WHAT MY CODE IS DOING! I'VE GOT AN
ERROR, BUT IT MAKES NO SENSE TO ME. 64
5.7 LEARNING TO USE A CLASS: WHAT ALL DOES STRING OR OTHER
CLASSES UNDERSTAND? 66
5.8 THERE SEEM TO BE A HUGE NUMBER OF COMMAND KEYS. IS THERE A LISTING
SOMEWHERE OF ALL OF THEM? 67
6 HOW DO YOU MAKE AN APPLICATION IN SQUEAK? 68
CHAPTER 3
YOUR FIRST PROGRAM: JOE THE BOX 71
1 ADELE GOLDBERG'S JOE THE BOX 71
2 TOOLS AND STRATEGIES: FILING IN NEW CODE 71
3 PLAYING WITH BOXES 73
3.1 JOE AND JILL AS EXAMPLE OBJECTS 76
3.2 ADDING A NEW KIND OF BOX 77
4 CREATING THE BOX CLASS AND BOX INSTANCES 79
5 BASICS OF DRAWING 81
5.1 CREATING FORMS 81
5.2 TEACHING BOXES TO DRAW 84
5.3 GETTING INPUT FROM THE USER 86
6 EXTENDING BOX TO CREATE NAMEDBOX 87
7 TOOLS AND STRATEGIES:
HOW TO GO FROM "SAMPLE CODE" TO "REUSE" 90
8 IMPROVING BOXES: EFFICIENCY, ANIMATION, AND DESIGN 93
8.1 DRAWING BOXES BETTER 93
8.2 ANIMATING BOXES 95
8.3 DESIGNING BOXES 96
CHAPTER 4
DESIGNING OBJECT SYSTEMS 99
1 THE OBJECT-ORIENTED DESIGN PROCESS 99
1.1 OBJECT-ORIENTED ANALYSIS STAGE 100
1.1.1 Brainstorming Candidate Classes 100
1.1.2 Class Responsibility Collaboration (CRC) Cards 102
1.2 OBJECT-ORIENTED DESIGN STAGE 104
1.2.1 UML Tools 105
1.2.2 Relationships between Classes 105
2 YOUR FIRST DESIGN: A CLOCK 107
2.1 DOING IT QUICKLYAND WRONG 107
2.2 OBJECT-ORIENTED ANALYSIS OF THE CLOCK 108
2.2.1 Brainstorming a Clock 109
2.2.2 CRC Cards for a Clock 109
2.3 OBJECT-ORIENTED DESIGN OF A CLOCK 113
2.3.1 Considering An Alternative Design 115
2.4 OBJECT-ORIENTED PROGRAMMING FOR THE CLOCK 116
2.4.1 Implementing SecondsTicker 117
2.4.2 Side Trip on Processes 118
2.4.3 Implementing the Clock Class 119
3 SPECIALIZING CLOCK AS AN ALARMCLOCK 122
3.1 OOA FOR ALARM CLOCK 122
3.2 OOD FOR ALARM CLOCK 123
3.3 OOP FOR THE ALARMCLOCK 124
4 REUSING THE CLOCK AND ALARMCLOCK 126
4.1 REUSE IN A VCR 126
4.2 REUSE IN AN APPOINTMENTBOOK 129
4.2.1 Programming the Appointment Book 131
4.2.2 Implementing the AppointmentBook with Collections 131
4.2.3 Implementing the Appointments 133
5 IMPLEMENTING MODELS 134
6 RULES OF THUMB FOR GOOD OBJECT-ORIENTED DESIGNS 136
6.1 RECONSIDERING JOE 137
7 TOOLS AND STRATEGIES: PROGRAMMING IN GROUPS 137
7.1 CREATING PROJECTS AND CHANGE SETS 138
7.2 WORKING WITH SOMEONE ELSE'S CHANGES 139
7.3 RECOVERING FROM SOMEONE ELSE'S CHANGES 140
CHAPTER 5
BUILDING USER INTERFACES IN SQUEAK 143
1 ISSUES IN BUILDING A USER INTERFACE 143
2 DEVELOPING MODEL-VIEW-CONTROLLER 144
2.1 ROUND 1: NO SEPARATION AT ALL 145
2.2 ROUND 2: SEPARATE WINDOWS AND BUTTONS 150
2.3 ROUND 3: SEPARATING EVEN THE TEXT 157
2.4 STRENGTHS AND WEAKNESSES OF MODEL-VIEW-CONTROLLER 163
3 BUILDING PLUGGABLE USER INTERFACES IN SQUEAK 165
3.1 CREATING PLUGGABLE INTERFACES IN MVC 167
3.2 CREATING PLUGGABLE INTERFACES IN MORPHIC 171
3.2.1 Introducing Morphic 171
3.2.2 Doing Pluggable Components in Morphic 176
3.3 MENUS AND DIALOGS IN A PLUGGABLE WORLD 181
4 BUILDING MORPHIC USER INTERFACES 183
4.1 PROGRAMMING MORPHS FROM THE VIEWER FRAMEWORK 184
4.1.1 Adding an Instance Variable 186
4.1.2 Making our Ellipse Fall 188
4.1.3 Building the Kicker 190
4.2 PROGRAMMING BASIC VARIABLES AND EVENTS OF MORPHS 192
4.2.1 Instance Variables and Properties 193
4.2.2 Morphic Events 194
4.2.3 Animation 196
4.2.4 Custom menus 196
4.2.5 Structure of Morphic 197
4.3 PROGRAMMING A MORPHIC FALLING OBJECT 198
4.3.1 Implementing the Falling Object 200
4.3.2 Implementing the Kicker 201
4.3.3 Running the Text Falling Simulation 202
4.3.4 Changing the Gravitational Constant 202
5 TOOLS AND STRATEGIES: USING MORPHS THAT YOU
HAVEN'T MET YET 203
CHAPTER 6
DESIGNING USER INTERFACES IN SQUEAK 206
1 KNOW THY USERS FOR THEY ARE NOT YOU 206
1.1 HOW DO YOU DECIDE BETWEEN USER INTERFACE ALTERNATIVES? 207
2 UNDERSTANDING THE USER 208
2.1 UNDERSTANDING THE TASK 209
3 MATCHING USERS TO INTERFACE: AVOIDING USER ERROR 210
4 A USER INTERFACE DESIGN PROCESS 212
5 CRITIQUING OUR CLOCK INTERFACE 214
6 EVALUATION OF USER INTERFACES 215
6.1 EVALUATION BEFORE USER INVOLVEMENT 215
6.2 EVALUATION WITH USERS 216
6.3 EVALUATING GROUPWARE 219
CHAPTER 7
MULTIMEDIA NUTS-AND-BOLTS 221
1 TEXT 221
1.1 EXPLORING SQUEAK'S TEXT 221
1.2 PROGRAMMING SQUEAK'S TEXT 223
2 GRAPHICS AND ANIMATION 225
2.1 SIMPLE GRAPHICS TOOLS 225
2.2 PROGRAMMING SIMPLE GRAPHICS 226
2.3 3-D GRAPHICS FOR END-USERS 228
2.3.1 Programming Wonderland without the Script Editor 232
2.4 FLASH MOVIES 233
3 SOUND 235
3.1 RECORDING, VIEWING, AND EDITING SOUND 235
3.2 SOUND CLASSES 238
3.3 MIDI SUPPORT 240
3.3.1 MIDI Support Classes 243
3.4 SPEECH IN SQUEAK 244
4 NEW MEDIA IN SQUEAK 245
4.1 SQUEAKMOVIES 245
4.2 BOOKMORPHS 248
5 MAKING THE DYNABOOK IN SQUEAK 250
PART 2
CASE STUDIES 252
CHAPTER 8
CASE STUDY: AUDIO NOTES 253
1 MOTIVATION FOR AUDIO NOTES 253
2 USING AUDIO NOTES 253
3 DETAILS ON USE 254
4 OBJECT-ORIENTED DESIGN AND PROGRAMMING OF
AUDIO NOTES 255
4.1 BUILDING THE USER INTERFACE 256
4.2 HANDLING THE NOTES LIST 258
4.3 IMPLEMENTING THE LIST UI 259
4.4 SETTING UI OPTIONS 260
4.5 RECORDING AND PLAYING SOUND 260
5 EVALUATING THE DESIGN AND INTERFACE 264
5.1 HEURISTIC UI EVALUATION 265
CHAPTER 9
CASE STUDY: PLUGGABLE WEB SERVER AND SWIKI 268
1 NETWORKING SUPPORT IN SQUEAK 268
1.1 USER INTERFACES FOR NETWORKING 268
1.2 PROGRAMMING NETWORK ACCESS 270
1.3 WEB SERVING WITH PWS 271
1.3.1 Programming the PWS 272
2 SWIKI AS A PWS APPLICATION 275
2.1.1 Uses of the Swiki 277
2.2 OBJECT DESIGN OF SWIKI 277
2.2.1 Responsibilities of Swiki Classes 278
2.2.2 Critiquing Swiki's Object Design 281
2.2.3 Evaluating Swiki's Usability 281
CHAPTER 10
CASE STUDY: MAT (MULTIMEDIA AUTHORING TOOL) 284
1 MOTIVATION FOR AND USE OF MAT 284
2 OBJECT DESIGN AND PROGRAMMING OF MAT 287
2.1 IMPLEMENTING MAT 289
2.1.1 Drag-and-Drop into MAT 290
2.1.2 Handling the Menu in MAT 291
2.1.3 Generating HTML in the ParagraphEditor 291
3 USER EVALUATION OF MAT 298
CHAPTER 11
CASE STUDY: PROTOTYPING A PLAY-WRITING WORKBENCH 302
1 MOTIVATION AND SETTING THE GOAL 303
2 OBJECT ANALYSIS OF THE WORKBENCH 304
3 IMPLEMENTATION OF THE PLAY WORKBENCH 306
3.1 PROTOTYPE SCRIPTINGBENCH AND SCRIPTINGCONTROLS 306
3.2 IMPLEMENTING THE ACTORS 308
3.3 IMPLEMENTING PLAYING THE SCRIPT 310
4 ITERATING ON THE PLAYBENCH 312
5 EVALUATING THE PLAYBENCH: EXPERT EVALUATION AND
OBSERVATION 314
5.1.1 Summarizing the Evaluation 316
APPENDIX
A QUICK START GUIDE OF SQUEAK EXAMPLES 319
1 CONSTANTS 319
2 CONTROL STRUCTURE EXPRESSIONS INVOLVING BLOCKS 319
3 TESTING OBJECTS 320
4 BASIC OBJECT BEHAVIOR 320
5 BOOLEAN OPERATIONS 320
6 MAGNITUDE AND NUMBER OPERATIONS 321
7 CHARACTER OPERATIONS 322
8 COLLECTION OPERATIONS 322
9 STRING OPERATIONS 323
INDEX 325
--------------------------
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
Associate Professor - Learning Sciences & Technologies.
Collaborative Software Lab - http://coweb.cc.gatech.edu/csl/
(404) 894-5618 : Fax (404) 894-0673 : guzdial at cc.gatech.edu
http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 15222 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20001004/6f4579d5/attachment.bin
More information about the Squeak-dev
mailing list
|