SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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.

Más contenido relacionado

Destacado

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
 

Destacado (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 a 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 a 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
 

Último

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Último (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

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...