introducing objects in squeak
DESCRIPTION
Introducing Objects in Squeak. Mark Guzdial Georgia Tech. Story. Why Squeak? How the course CS2340 Objects and Design is assembled Examples of students assignments How we use the CoWeb. Squeak. Smalltalk-80 running on modern machines (over 30 platforms) http://www.squeak.org - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/1.jpg)
Introducing Objects in Squeak
Mark GuzdialGeorgia Tech
![Page 2: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/2.jpg)
Story
Why Squeak?How the course CS2340 Objects and
Design is assembledExamples of students assignmentsHow we use the CoWeb
![Page 3: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/3.jpg)
Squeak
Smalltalk-80 running on modern machines (over 30 platforms) http://www.squeak.org Supporting wide range of media: Flash, MIDI, AIFF/WAV, MPEG Open-source
Alan Kay, Dan Ingalls, Ted Kaehler from original Xerox PARC LRG plus Wonderful additions Apple to Disney to Viewpoints Researchhttp://www.squeakland.org
![Page 4: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/4.jpg)
Breaking the Lines
![Page 5: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/5.jpg)
The Subversive Reason for Squeak
What if Steve Jobs and Bill Gates got it wrong?What if the Xerox PARC idea of the personal
computer was bigger than MacOS and Windows (and X-Windows and Gnome and…)?
In Squeak, you have what Jobs saw. LITERALLY THE EXACT SAME BITS? Can you see what he missed?
![Page 6: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/6.jpg)
Teaching Squeak
Squeak is the language of our required Sophomore level course on Objects and Design (140-250 students per term) Focus on OOA/D/P and User Interfaces Semester-long team projects Leverage Squeak’s multimedia support to do
interesting things
![Page 7: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/7.jpg)
Content of Class
Focus on OOA, OOD, OOP OOA: CRC Cards OOD: UML Class Diagrams OOP: Squeak
User interfaces: Building, design, evaluation
Cap of languages focus in our curriculum (follow-on to Languages and Translation)
![Page 8: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/8.jpg)
Structure of Class
Students have a major, team-based project Spring 2001: Build a map of Georgia Tech, based on
information harvested from the Web Eventually, grow it so that you can provide a 3-D tour of an
IMAGINARY campus with vocal instructions
Lectures are available to provide students with theory, examples, issues Students tend to stop coming very much to lecture past 3/4 point One morning, SEVEN students…
![Page 9: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/9.jpg)
Grading Policy
25% Midterm10% Quizzes (4) (on coding)35% Final30% Project Assignments (7 of them)
![Page 10: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/10.jpg)
On the CoWeb…
Definition of projectMilestones (Turn-ins) - ALL OF THEM
Roughly every two weeksFirst one is individualized, all others are team-based
FAQs, links to external resources, etc.Strongly recommended: Who’s Who pageLater: Cases, Surprises, Exam Reviews…
![Page 11: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/11.jpg)
Project This Semester
Interactive Maps P1 (individual): Draw a simple map with
routes P2 (team): Make it interactive with buildings P3: Design everything P4, P5: Whole campus and provide routes P6: Make the map show up in Wonderland (3-
D) with user-definable tours P7: Provide a big tour for an imaginary
campus (but don’t change code)
![Page 12: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/12.jpg)
Project Last Semester
Text-based adventure games (Interactive Fiction) P1 (individual): Build a pattern matcher that will work
for (simple) natural language P2 (team): Implement simple adventure game P3: Design everything P4, P5: Add features like Web access, daemons,
interactive people P6, P7: ANY API YOU WANT. Make the adventure
game show up in WonderlandP7: Build a game, but can’t change the code (without
justification)
![Page 13: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/13.jpg)
Philosophy of the Course
The course is on design, for novice designers “If you know UML, Corba, COM, and XP already, great. Most
people here don’t.”
But there’s a big focus on learning, not just lecturing.
Students have to implement your designs — live in them. Figure out where they’re bad
The course isn’t explicitly on programming in Squeak, but implicitly (to provide design feedback), it is. Quizzes focus on Squeak programming
![Page 14: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/14.jpg)
Why Squeak?
Why not Java? Why not C++? Marvin Minsky: “If you only know something in one way,
you don’t know it at all.” Faculty agreed that you should see something not C-
based Other reasons:
Great for UI Different model for programming: Can’t use emacs All the sources are there for everything
![Page 15: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/15.jpg)
Why this class can be aggravating
It’s not about job skills, per se No Delphi or Visual Basic here Few job postings for Squeak these days (but increasing number
for Smalltalk)
It’s about ways of thinking that are core to CS, about ways of designing programs About where the core ideas of computers today came from
It’s about designing, critiquing designs, making tradeoffs, and making choices
![Page 16: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/16.jpg)
Approach of Book (and elsewhere)
Concrete before Abstract Build things before design them
Learning involves testing and failure You have to try things in Squeak
Generation and Inquiry, over Transmission There is no Squeak API But there are lots of great tools for poking through the system We'll teach the tools to help you learn how to figure it out for
yourself
![Page 17: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/17.jpg)
![Page 18: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/18.jpg)
![Page 19: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/19.jpg)
![Page 20: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/20.jpg)
![Page 21: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/21.jpg)
![Page 22: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/22.jpg)
CoWeb:Collaborative Websites
Based on Ward Cunningham’s WikiWiki Web Hence it’s “other” name: Squeak Wiki
-> Swiki
Simple system: It’s a website Where any user can edit any page
(caveat “locks”) And any user can create new pages
![Page 23: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/23.jpg)
Using the CoWeb
QuickTime™ and aQuickDraw decompressor
are needed to see this picture.
![Page 24: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/24.jpg)
Features to support collaboration:Recent Changes and Attachments
![Page 25: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/25.jpg)
Security
We save everything,
But it’s mostly social
![Page 26: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/26.jpg)
Use in CS2340:HCI Review
![Page 27: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/27.jpg)
HCI Review
![Page 28: Introducing Objects in Squeak](https://reader035.vdocuments.us/reader035/viewer/2022081513/56813b72550346895da47b7a/html5/thumbnails/28.jpg)
Other uses:
Midterm and final exam reviewsGlossariesCase libraries