1 / 28

Introducing Objects in Squeak

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

aricin
Download Presentation

Introducing Objects in Squeak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducing Objects in Squeak Mark GuzdialGeorgia Tech

  2. Story • Why Squeak? • How the course CS2340 Objects and Design is assembled • Examples of students assignments • How we use the CoWeb

  3. 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

  4. Breaking the Lines

  5. 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?

  6. 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

  7. 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)

  8. 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…

  9. Grading Policy • 25% Midterm • 10% Quizzes (4) (on coding) • 35% Final • 30% Project Assignments (7 of them)

  10. On the CoWeb… • Definition of project • Milestones (Turn-ins) - ALL OF THEM • Roughly every two weeks • First one is individualized, all others are team-based • FAQs, links to external resources, etc. • Strongly recommended: Who’s Who page • Later: Cases, Surprises, Exam Reviews…

  11. 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)

  12. 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 Wonderland • P7: Build a game, but can’t change the code (without justification)

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. Using the CoWeb

  19. Features to support collaboration:Recent Changes and Attachments

  20. We save everything, But it’s mostly social Security

  21. Use in CS2340:HCI Review

  22. HCI Review

  23. Other uses: • Midterm and final exam reviews • Glossaries • Case libraries

More Related