Introduction to CS 2340 Objects and Design Spring
Introduction to CS 2340 Objects and Design Spring 2005
Summer 2005 Semester Instructor: Lex Spoon E-mail: lex@cc. gatech. edu Office: College of Computing Building 226 C
Books this Semester Required Text Guzdial: Squeak: Objectoriented design with multimedia applications Recommended Guzdial & Rose (Eds): Squeak, Open Personal Computing and Multimedia
Content of Class Focus on OOA, OOD, OOP OOA: CRC Cards OOD: UML Class Diagrams OOP: Squeak User interfaces: Design, building, evaluation Cap of languages focus (follow-on to Languages and Translation)
Structure of Class You have a major, team-based project Spring 2005: Create a set of location-based services for both desktops and PDAs Lectures are here to provide you with theory, examples, issues BUT DO COME! Huge differences in grades…
Grading Policy 25% Midterm 10% Quizzes (3) In-class, open-book, 15 -20 minutes 30% Final 35% Project Assignments (5 of them)
Resources Co. Web: http: //coweb. cc. gatech. edu/cs 2340/ Newsgroup: git. cc. class. 2340 TAs (and instructor) hang out there No guarantee of 24 -hour coverage, nor late night (nor early morning!) coverage
Where to get Squeak, lecture notes… On the Co. Web… We’ll nominally using Squeak 3. 7 gt, but use any version you like. Older versions of lecture notes are all on the book CD (Co-web will have latest and greatest). www. squeak. org
On the Co. Web… Definition of project Milestones (Turn-ins) - ALL OF THEM Roughly every two weeks First is individual, all others are team-based First milestone: May 27 (DO IT YOURSELF!) First quiz: May 27 First team milestone: June 10 FAQs, links to external resources, etc. Cases page where any code can be reused without honor code violation! Strongly recommended: Who’s Who page
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 at you. So you have to implement your designs — live in them. Figure out where they’re bad The course isn’t explicitly on programming in Smalltalk, but implicitly (to get you design feedback), it is. Quizzes will focus on Smalltalk programming and OO design principles
Why Smalltalk? 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. General consensus that Smalltalk is a “necessary” language for CS background. Other reasons: Great for UI/Prototyping Different model for programming: Embedded environment All the sources are there for everything
Why this class can be aggravating It’s not about job skills, per se It’s about ways of thinking that are core to CS Relying on outside, poorly documented code Teamwork. . and lack thereof Complexity is hard to predict Time management—reconsider plans as you go Languages come and go—principles remain
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
How to Get an A Come to lecture Big difference in grades for people that come Do the work Not at the last minute! Don’t merge team work at last minute! Work as a team (on team projects) Don’t just staple work together Do design as a team
How to Get an A (Part 2) Ask for help and learn from mistakes See your TAs They know much more about Squeak than you Demo for your TAs, even if it’s informal Pick up your work So you can learn from your mistakes Learn Squeak Do examples Poke around in Squeak to find things
Project This Semester Fish. Sim! M 1 (individual): GUI's as Simulations M 2: Basic simulation, first specification M 3: Design everything, final specification M 4: Implement your spec M 5: ? ? ? Wouldn't you like to know!
- Slides: 16