Date post: | 14-Dec-2014 |
Category: |
Technology |
Upload: | michele-lanza |
View: | 1,821 times |
Download: | 3 times |
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
Introduction Languages & Tools
Didactic Elements Reflections
Contents
Introduction
2004: A new faculty of informatics
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
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
Lectures
Programming Fundamentals I & II
Lectures Personal Project
DF1 DF2
Group Project
Scheme
LecturesPair
Project
DF
Group Project
Smalltalk Java
Languages & Tools
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
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)))
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
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)
Didactic Elements
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
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
Design Fests
‣ Afternoon long sessions with TAs & Profs‣ Students work in groups to tackle more
complex problems‣ Tetrisfest
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”
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
‣ LaTex
‣ HTML
‣ Unix
‣ Most of all: project time!
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..
A great idea, but...
+ + =
R.I.P.