A Teamwork-based Approach
to Programming Fundamentals
with Scheme, Smalltalk & Java
Michele Lanza, Amy L. Murphy*, Romain ...
Introduction      Languages & Tools




          Contents
Didactic Elements      Reflections
Introduction
2004: A new faculty of informatics
A remarkable faculty

‣ Low faculty-student ratio (1:6)
‣ English as teaching language
‣ Compliant with ACM curriculum gui...
The “Missions” of a newborn faculty

‣ “Research Excellence”

‣ “Teaching Innovation”
 ‣   Multiple programming languages ...
Programming Fundamentals I & II

                            DF1                  DF2

                                   ...
Languages & Tools
Scheme - The Functional Clean Slate

‣ Back to square zero
‣ Simple syntax
‣ Dr. Scheme
 ‣   Multimedia libraries

‣ HTDP
...
The HTDP Design Recipe


; mid-point : posn posn -> posn
; takes two posns and produces the posn in the middle between the...
Smalltalk - Pure Objects

‣ The Nygaard keynote: into the water with the
 babies
‣ Java not appropriate: too convoluted
‣ ...
Java - The Mainstream

‣ Teaching from scratch but at a very fast pace
 ‣   Chance to catch up and reinforcement of key co...
Didactic Elements
Individual Work

‣ Learning to program is a personal thing
 ‣   Graded exercises and written exams

‣ Each assignment incl...
Single & Pair Projects

‣ Single projects: the first complex program for
 many people, after six weeks
 ‣   2 weeks of inte...
Design Fests

‣ Afternoon long sessions with TAs & Profs
‣ Students work in groups to tackle more
 complex problems
‣ Tetr...
Expert Lectures

‣ On-Demand lectures on selected topics to
 provide students with necessary knowledge
‣ Example
 ‣   1 le...
Group Projects

‣ 3-5 week long projects on selected topics
‣ Too hard to describe.. Back to USI
Reflections
The Role of the Ateliers

‣ All of this hardly possible without them
‣ Example: PF1 & Software Atelier 1
 ‣   CVS
 ‣   LaT...
Conclusions

‣ A “one of a kind” experience
 ‣   The conjunction of the “right people” in the “right mindset”
     at the ...
+        +         =



A great idea, but...
R.I.P.
A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java
A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java
Upcoming SlideShare
Loading in …5
×

A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java

2,200 views

Published on

A presentation I gave at the ICSE 2008 education track

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,200
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java

  1. 1. 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
  2. 2. Introduction Languages & Tools Contents Didactic Elements Reflections
  3. 3. Introduction
  4. 4. 2004: A new faculty of informatics
  5. 5. 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
  6. 6. 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
  7. 7. Programming Fundamentals I & II DF1 DF2 Personal Group Lectures Project Project Scheme DF Pair Lectures Lectures Group Project Project Smalltalk Java
  8. 8. Languages & Tools
  9. 9. 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
  10. 10. 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)))
  11. 11. 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
  12. 12. 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)
  13. 13. Didactic Elements
  14. 14. 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
  15. 15. 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
  16. 16. Design Fests ‣ Afternoon long sessions with TAs & Profs ‣ Students work in groups to tackle more complex problems ‣ Tetrisfest
  17. 17. 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”
  18. 18. Group Projects ‣ 3-5 week long projects on selected topics ‣ Too hard to describe.. Back to USI
  19. 19. Reflections
  20. 20. 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!
  21. 21. 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..
  22. 22. + + = A great idea, but...
  23. 23. R.I.P.

×