a teamwork-based approach to programming fundamentals with scheme, smalltalk & java
DESCRIPTION
A presentation I gave at the ICSE 2008 education trackTRANSCRIPT
![Page 1: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/1.jpg)
A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java Michele Lanza, Amy L. Murphy*, Romain Robbes, Mircea Lungu, Paolo Bonzini, Marco D’Ambros, Richard Wettel
Faculty of Informatics - University of Lugano, Switzerland
*now with Foundation Bruno Kessler, Trento, Italy
![Page 2: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/2.jpg)
Introduction Languages & Tools
Didactic Elements Reflections
Contents
![Page 3: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/3.jpg)
Introduction
![Page 4: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/4.jpg)
2004: A new faculty of informatics
![Page 5: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/5.jpg)
A remarkable faculty
‣ Low faculty-student ratio (1:6)‣ English as teaching language‣Compliant with ACM curriculum guidelines‣ “Agile” infrastructure & 24/7 accessibility‣Morning Lectures vs. Afternoon “Ateliers”
Lectures
Atelier
![Page 6: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/6.jpg)
The “Missions” of a newborn faculty
‣ “Research Excellence”
‣ “Teaching Innovation”‣ Multiple programming languages to teach programming
‣ Group projects as early as the first semester
‣ Independent exercises + single & pair projects
‣ Design fests
‣ Expert lectures
![Page 7: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/7.jpg)
Lectures
Programming Fundamentals I & II
Lectures Personal Project
DF1 DF2
Group Project
Scheme
LecturesPair
Project
DF
Group Project
Smalltalk Java
![Page 8: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/8.jpg)
Languages & Tools
![Page 9: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/9.jpg)
Scheme - The Functional Clean Slate
‣ Back to square zero‣ Simple syntax‣Dr. Scheme‣ Multimedia libraries
‣HTDP‣ Emphasizes algorithmic
thinking and problem solving
‣ Enforces programming style through a design recipe
![Page 10: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/10.jpg)
The HTDP Design Recipe
; mid-point : posn posn -> posn; takes two posns and produces the posn in the middle between them(define mid-point (lambda (a-posn b-posn) (local ( (define mid (lambda (x y) (/ (+ x y) 2))) ) (make-posn (mid (posn-x a-posn) (posn-x b-posn)) (mid (posn-y a-posn) (posn-y b-posn)))))); tests(equal? (make-posn 2 3) (mid-point (make-posn 4 6) (make-posn 0 0)))
![Page 11: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/11.jpg)
![Page 12: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/12.jpg)
Smalltalk - Pure Objects
‣ The Nygaard keynote: into the water with the babies‣ Java not appropriate: too convoluted‣ Smalltalk: simple syntax, reflective,
interactive, pure, elegant‣Didactic goal: teach concepts
‣ Objects, classes, inheritance, polymorphism, message sending, frameworks
![Page 13: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/13.jpg)
Java - The Mainstream
‣ Teaching from scratch but at a very fast pace‣ Chance to catch up and reinforcement of key concepts
‣ Focus is not on “how to program” but on “how to design (and build) OO programs”‣ TIJ as a reference book‣ High-speed progress (100 pages/week)
![Page 14: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/14.jpg)
Didactic Elements
![Page 15: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/15.jpg)
Individual Work
‣ Learning to program is a personal thing‣ Graded exercises and written exams
‣ Each assignment includes a trivia part (hand-in within 24 hours)‣ Augmented with supervised, non-graded
hands-on exercises‣ Goal: Grasp, not evaluation of mastery, of a concept‣ Guided, step-wise path through a problem towards its solution
![Page 16: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/16.jpg)
Single & Pair Projects
‣ Single projects: the first complex program for many people, after six weeks ‣ 2 weeks of intensive development‣ Students sleep in the lab ;-)
‣ 20% of the final grade
‣ MineDetector
![Page 17: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/17.jpg)
Design Fests
‣ Afternoon long sessions with TAs & Profs‣ Students work in groups to tackle more
complex problems‣ Tetrisfest
![Page 18: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/18.jpg)
Expert Lectures
‣On-Demand lectures on selected topics to provide students with necessary knowledge‣ Example‣ 1 lecture on SVN in PF1 to make students use it
‣ 2 UML lectures in PF2 to make students describe their designs
‣ 1 lecture on “how to give presentations”
![Page 19: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/19.jpg)
Group Projects
‣ 3-5 week long projects on selected topics‣ Too hard to describe.. Back to USI
![Page 20: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/20.jpg)
![Page 21: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/21.jpg)
Reflections
![Page 22: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/22.jpg)
The Role of the Ateliers
‣ All of this hardly possible without them‣ Example: PF1 & Software Atelier 1‣ CVS
‣ LaTex
‣ HTML
‣ Unix
‣ Most of all: project time!
![Page 23: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/23.jpg)
Conclusions
‣ A “one of a kind” experience‣ The conjunction of the “right people” in the “right mindset”
at the “right place”
‣ Highly successful, some of the best students I’ve ever seen came out of this
‣ Created closely knit groups of students, instead of “mass anonymity”
‣Good times..
![Page 24: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/24.jpg)
A great idea, but...
+ + =
![Page 25: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java](https://reader034.vdocument.in/reader034/viewer/2022051817/549023b0b4795956138b4fc2/html5/thumbnails/25.jpg)
R.I.P.