SlideShare a Scribd company logo
1 of 25
Download to read offline
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




          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 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
Programming Fundamentals I & II

                            DF1                  DF2

                                    Personal           Group
           Lectures
                                     Project           Project



                             Scheme

            DF

                  Pair
Lectures                 Lectures                 Group Project
                 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.

More Related Content

Viewers also liked

Software Visualization - Promises & Perils
Software Visualization - Promises & PerilsSoftware Visualization - Promises & Perils
Software Visualization - Promises & PerilsMichele Lanza
 
A Holistic Approach to Evolving Software Systems
A Holistic Approach to Evolving Software SystemsA Holistic Approach to Evolving Software Systems
A Holistic Approach to Evolving Software SystemsMichele Lanza
 
Of Code and Change: Beautiful Software
Of Code and Change: Beautiful SoftwareOf Code and Change: Beautiful Software
Of Code and Change: Beautiful SoftwareMichele Lanza
 
Beauty is in the Eye of the Beholder
Beauty is in the Eye of the BeholderBeauty is in the Eye of the Beholder
Beauty is in the Eye of the BeholderMichele Lanza
 
The Visual Terminator
The Visual TerminatorThe Visual Terminator
The Visual TerminatorMichele Lanza
 
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionEvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionMichele Lanza
 
Visualizing Gnome with the Small Project Observatory
Visualizing Gnome with the Small Project ObservatoryVisualizing Gnome with the Small Project Observatory
Visualizing Gnome with the Small Project ObservatoryMichele Lanza
 
Software Visualization 101+
Software Visualization 101+Software Visualization 101+
Software Visualization 101+Michele Lanza
 
Smalltalk In a Nutshell
Smalltalk In a NutshellSmalltalk In a Nutshell
Smalltalk In a NutshellMichele Lanza
 
ICPE2015
ICPE2015ICPE2015
ICPE2015swy351
 
ICSME2014
ICSME2014ICSME2014
ICSME2014swy351
 
ICSE2013
ICSE2013ICSE2013
ICSE2013swy351
 
MSR 2009
MSR 2009MSR 2009
MSR 2009swy351
 
Msr2016 tarek
Msr2016 tarek Msr2016 tarek
Msr2016 tarek swy351
 
WCRE2011
WCRE2011WCRE2011
WCRE2011swy351
 
ICSE2014
ICSE2014ICSE2014
ICSE2014swy351
 
ASE2010
ASE2010ASE2010
ASE2010swy351
 
Object-Oriented Metrics in Practice
Object-Oriented Metrics in PracticeObject-Oriented Metrics in Practice
Object-Oriented Metrics in PracticeMichele Lanza
 

Viewers also liked (20)

Software Visualization - Promises & Perils
Software Visualization - Promises & PerilsSoftware Visualization - Promises & Perils
Software Visualization - Promises & Perils
 
A Holistic Approach to Evolving Software Systems
A Holistic Approach to Evolving Software SystemsA Holistic Approach to Evolving Software Systems
A Holistic Approach to Evolving Software Systems
 
Of Code and Change: Beautiful Software
Of Code and Change: Beautiful SoftwareOf Code and Change: Beautiful Software
Of Code and Change: Beautiful Software
 
Beauty is in the Eye of the Beholder
Beauty is in the Eye of the BeholderBeauty is in the Eye of the Beholder
Beauty is in the Eye of the Beholder
 
The Visual Terminator
The Visual TerminatorThe Visual Terminator
The Visual Terminator
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionEvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
 
Visualizing Gnome with the Small Project Observatory
Visualizing Gnome with the Small Project ObservatoryVisualizing Gnome with the Small Project Observatory
Visualizing Gnome with the Small Project Observatory
 
Software Visualization 101+
Software Visualization 101+Software Visualization 101+
Software Visualization 101+
 
Seeing Software
Seeing SoftwareSeeing Software
Seeing Software
 
Smalltalk In a Nutshell
Smalltalk In a NutshellSmalltalk In a Nutshell
Smalltalk In a Nutshell
 
ICPE2015
ICPE2015ICPE2015
ICPE2015
 
ICSME2014
ICSME2014ICSME2014
ICSME2014
 
ICSE2013
ICSE2013ICSE2013
ICSE2013
 
MSR 2009
MSR 2009MSR 2009
MSR 2009
 
Msr2016 tarek
Msr2016 tarek Msr2016 tarek
Msr2016 tarek
 
WCRE2011
WCRE2011WCRE2011
WCRE2011
 
ICSE2014
ICSE2014ICSE2014
ICSE2014
 
ASE2010
ASE2010ASE2010
ASE2010
 
Object-Oriented Metrics in Practice
Object-Oriented Metrics in PracticeObject-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
 

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

PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesSchwannden Kuo
 
komlenov01.ppt
komlenov01.pptkomlenov01.ppt
komlenov01.pptMonishaAb1
 
Natural Language Processing - Research and Application Trends
Natural Language Processing - Research and Application TrendsNatural Language Processing - Research and Application Trends
Natural Language Processing - Research and Application TrendsShreyas Suresh Rao
 
Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012Roland Tritsch
 
Media as Levers (pdf)
Media as Levers (pdf)Media as Levers (pdf)
Media as Levers (pdf)Lawrie Hunter
 
How not to fail at programming education
How not to fail at programming educationHow not to fail at programming education
How not to fail at programming educationEsther Seyffarth
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and ScalaFilip Krikava
 
The Editor as EAP Instructor
The Editor as EAP InstructorThe Editor as EAP Instructor
The Editor as EAP InstructorLawrie Hunter
 
DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013DataMind-slides
 
PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008
PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008
PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008Yishay Mor
 
Words to the wise
Words to the wiseWords to the wise
Words to the wiseJohn Mason
 
MFADT Spacebrew: Class 1
MFADT Spacebrew: Class 1MFADT Spacebrew: Class 1
MFADT Spacebrew: Class 1Brett Renfer
 
python for linguists
python for linguistspython for linguists
python for linguistsshukaihsieh
 
A Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpA Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpRikki Wright
 
Domain Specific Languages
Domain Specific LanguagesDomain Specific Languages
Domain Specific LanguagesLakshan Perera
 
Week 1 Welcome to 3D Vis
Week 1 Welcome to 3D VisWeek 1 Welcome to 3D Vis
Week 1 Welcome to 3D VisScottRoberts37
 
Scientific and Technical Translation in English - Week 7
Scientific and Technical Translation in English - Week 7Scientific and Technical Translation in English - Week 7
Scientific and Technical Translation in English - Week 7Ron Martinez
 

Similar to A Teamwork-based Approach to Programming Fundamentals with Scheme, Smalltalk & Java (20)

PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
 
komlenov01.ppt
komlenov01.pptkomlenov01.ppt
komlenov01.ppt
 
Natural Language Processing - Research and Application Trends
Natural Language Processing - Research and Application TrendsNatural Language Processing - Research and Application Trends
Natural Language Processing - Research and Application Trends
 
Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012
 
Media as Levers (pdf)
Media as Levers (pdf)Media as Levers (pdf)
Media as Levers (pdf)
 
How not to fail at programming education
How not to fail at programming educationHow not to fail at programming education
How not to fail at programming education
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and Scala
 
The Editor as EAP Instructor
The Editor as EAP InstructorThe Editor as EAP Instructor
The Editor as EAP Instructor
 
130704798265658191
130704798265658191130704798265658191
130704798265658191
 
DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013
 
PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008
PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008
PLaNet talk @ LKL Knowledge Seminar, 30 Jan, 2008
 
How long...
How long...How long...
How long...
 
Words to the wise
Words to the wiseWords to the wise
Words to the wise
 
twintech wshop2-main ppt
twintech wshop2-main ppttwintech wshop2-main ppt
twintech wshop2-main ppt
 
MFADT Spacebrew: Class 1
MFADT Spacebrew: Class 1MFADT Spacebrew: Class 1
MFADT Spacebrew: Class 1
 
python for linguists
python for linguistspython for linguists
python for linguists
 
A Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpA Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And Rlbp
 
Domain Specific Languages
Domain Specific LanguagesDomain Specific Languages
Domain Specific Languages
 
Week 1 Welcome to 3D Vis
Week 1 Welcome to 3D VisWeek 1 Welcome to 3D Vis
Week 1 Welcome to 3D Vis
 
Scientific and Technical Translation in English - Week 7
Scientific and Technical Translation in English - Week 7Scientific and Technical Translation in English - Week 7
Scientific and Technical Translation in English - Week 7
 

Recently uploaded

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

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

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