350 likes | 451 Views
Software Engineering and Squeak. Rick Zaccone Bucknell University. Outline. Past Efforts Turning Point Current course design Conclusions. CS Curriculum in Late 80s. Pascal in CS1 and CS2 Sun Workstations. First Attempt. Standard Software Engineering text Waterfall model
E N D
Software Engineering and Squeak Rick Zaccone Bucknell University
Outline • Past Efforts • Turning Point • Current course design • Conclusions
CS Curriculum in Late 80s • Pascal in CS1 and CS2 • Sun Workstations
First Attempt • Standard Software Engineering text • Waterfall model • Structured Programming • Sun Workstations • X Windows • C
Frustrations • Students spent most of their efforts fighting with X Windows. • Project didn’t work • Text has much too much material
Next Attempt (1990) • Material from Software Engineering Institute • Macintosh Computers • C
Results • Projects worked! • Not much design though • Process not effective
Curricular Changes • Pascal in CS1 • C++ in CS2
What is Software Engineering? • From a standard SE text: SE is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.
Another Attempt (1993) • Booch’s Object-Oriented Design With Applications • THINK Class Library
Results • Students produced working programs • Not much understanding of OOD
Similar Attempt 1995 • Wirfs-Brock Designing Object Oriented Software
Frustrations • Students didn’t get it. • Couldn’t talk about design patterns in a meaningful way
More Curriculum Changes • C++ in CS1 and CS2
OOPSLA ‘97 in Atlanta • Alan Kay’s talk
Java Version (1998) • Booch’s OOA-OODtext • Rational Rose
Frustrations • Java didn’t deliver • Still couldn’t talk about design patterns • Steep learning curve for Rational Rose
Turning Point • Birth of my son • 1998-1999 Sabbatical • More Java, learn Smalltalk • Smalltalk, Objects, and Design, by Chamond Liu • Kent Beck’s XP manifesto • Most software projects are small
SE and Squeak! (Spring 2000) • Mark Guzdial’s text: Squeak: Object-Oriented Design with Multimedia Applications • Kent Beck: Extreme Programming Explained.
Course Content • Lecture material from Mark’s book, Smalltalk, Objects, and Design, and The Smalltalk Report, and other sources. • Used weekly labs for the XP portion of the course. One week iterations.
Focus on Design • Not just getting it to work • Students re-evaluated their designs weekly • Students refactored often
Project Was Fun • Squeak’s multimedia capabilities made it easy to find a fun project • Students wrote an MP3 player
Course Outline • 1.5 weeks - Intro to Squeak • 1.5 weeks - Extreme Programming • 1 week - Refactoring • 1 week - Abstract Classes • 1 week - Collections • 1 week - Design and implement • 1 week - MVC
Outline Continued • 2 weeks - Polymorphism • 2 weeks - Design Patterns • 1 weeks - Type vs. Class
Refactoring • Fowler’s Refactoring • Kent Beck’s Smalltalk Best Practice Patterns
Abstract Classes • Why? • Pure virtual methods • Design Example
Collections • What are they? • Lab examples
Design Example • CRC Cards • Design a program using CRC Cards • Implement it
MVC • Easy to explain • Structure is in place
Polymorphism • Finite State Machine • Counter
Unit Testing • Hard • Not the concept, just doing it!
Design Patterns • Easy • Selected examples from GOF book
Good News • Students had a lot of fun • Ask me to adjust their accounts so they could continue working on it after the semester was over.
Bad News • They didn’t do it!
Conclusions • Squeak allowed me to focus on design and not syntax • Squeak’s multimedia capabilities permit more interesting projects • XP fits neatly into the course