+ All Categories
Home > Technology > A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java

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

Date post: 14-Dec-2014
Category:
Upload: michele-lanza
View: 1,821 times
Download: 3 times
Share this document with a friend
Description:
A presentation I gave at the ICSE 2008 education track
25
A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java Michele Lanza , Amy L. Murphy*, Romain Robbes, Mircea Lungu, Paolo Bonzini, Marco DAmbros, Richard Wettel Faculty of Informatics - University of Lugano, Switzerland *now with Foundation Bruno Kessler, Trento, Italy
Transcript
Page 1: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java

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

Introduction Languages & Tools

Didactic Elements Reflections

Contents

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

Introduction

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

2004: A new faculty of informatics

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

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

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

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

Languages & Tools

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

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

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
Page 12: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java

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

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

Didactic Elements

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

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

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

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

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

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
Page 21: A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java

Reflections

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

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

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

A great idea, but...

+ + =

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

R.I.P.


Recommended