SlideShare una empresa de Scribd logo
1 de 18
Cambridge, MA
November 5, 2010
F# in Education
Workshop
F# in Academia
Going cross-platform with F# for MonoDevelop
Tomas Petricek
tomas@tomasp.net
http://tomasp.net/blog
F# doesn’t work
on Mac & Linux
F# doesn’t work well
on Mac & Linux
F# developer tools don’t work
on Mac & Linux
F# has great developer tools
on Mac & Linux
Introducing F# add-in
for MonoDevelop
F# in Academia
• Good cross-platform developer tools for F#
– Using cross-platform MonoDevelop IDE for Mono
– F# add-in provides IntelliSense and F# interactive
– Not aimed at large-scale business applications
• Demonstration – how can universities use F#?
– Teaching (functional) programming
– For statistics and data analysis
– Functional programming research
Teaching (functional)
programming with F#
F# for Teaching
• F# is a great language for teaching
– Practical functional programming
– Programming language concepts and principles
– Introducing computer programming
• Introduction to (functional) programming
– Solid and useful mathematical foundations
– Gives students practical experience
– Intriguing examples are a great motivation
Composing 3D objects in a
functional way
Demonstration
Processing scientific
data with F#
F# for Data Processing
• What makes F# great for working with data?
– Productive and efficient language
– F# Interactive environment
– Useful features such as units of measure
• Many scientists use F# already
– Genome sequencing, Machine learning
– Can be used on multiple platforms now…
Downloading and
analyzing stock data
Demonstration
Programming language
research with F#
F# for Language Research
• Building the open-source version of F#
– Release contains command line tools
– Integrates into MonoDevelop with no effort
– Auto-completion & tool-tips “just work”
• Examples of existing F# extensions
– Joinads: Language extension for reactive,
concurrent and parallel programming
– F7: Refinement Types for F#
Adding “joinads” to
F# in MonoDevelop
Demonstration
Functional Variations & Teaching
• Web sites for F# in Academia
– Teaching, Working, Research
– Home for the MonoDevelop plug-in
– Personal community project
• If you’re interested, please get in touch!
• Two addresses to remember
www.functional-teaching.net
www.functional-variations.net
Summary
• F# is a great language for Academia
– Consistent cross-platform feel with MonoDevelop
– Lightweight, but with all modern features
• Uses of F# in Academia
– Teaching (functional) programming
– Data analysis and statistics
– Programming language research
Links
Contact: Tomas Petricek
Mail: tomas@tomasp.net
Web: http://tomasp.net/blog
Get involved!
http://functional-variations.net
http://functional-teaching.net

Más contenido relacionado

La actualidad más candente (8)

Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
DLA rapid prototype
DLA rapid prototypeDLA rapid prototype
DLA rapid prototype
 
Swift vs. Language X
Swift vs. Language XSwift vs. Language X
Swift vs. Language X
 
CJW Resume
CJW ResumeCJW Resume
CJW Resume
 
Math ∩ Programming - BRUG Meetup Oct 2019
Math ∩ Programming - BRUG Meetup Oct 2019Math ∩ Programming - BRUG Meetup Oct 2019
Math ∩ Programming - BRUG Meetup Oct 2019
 
Comparative study of programming languages
Comparative study of programming languagesComparative study of programming languages
Comparative study of programming languages
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
 

Similar a Academia

Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
Dastan Kamaran
 
What the math geeks don't want you to know about F#
What the math geeks don't want you to know about F#What the math geeks don't want you to know about F#
What the math geeks don't want you to know about F#
Kevin Hazzard
 

Similar a Academia (20)

Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation ppt
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
 
F# Tutorial @ QCon
F# Tutorial @ QConF# Tutorial @ QCon
F# Tutorial @ QCon
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.pptPRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
PRINCIPLES OF PROGRAMMING LANGUAGES _Chapter 1.ppt
 
Sudipta_Mukherjee_Resume-Nov_2022.pdf
Sudipta_Mukherjee_Resume-Nov_2022.pdfSudipta_Mukherjee_Resume-Nov_2022.pdf
Sudipta_Mukherjee_Resume-Nov_2022.pdf
 
What the math geeks don't want you to know about F#
What the math geeks don't want you to know about F#What the math geeks don't want you to know about F#
What the math geeks don't want you to know about F#
 
Practical F#
Practical F#Practical F#
Practical F#
 
600Desc
600Desc600Desc
600Desc
 
600Desc
600Desc600Desc
600Desc
 
An Introduction to FSharp
An Introduction to FSharpAn Introduction to FSharp
An Introduction to FSharp
 
Spoken tutorials libreoffice
Spoken tutorials libreofficeSpoken tutorials libreoffice
Spoken tutorials libreoffice
 
11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project
 
1504.00693
1504.006931504.00693
1504.00693
 
F# Functional and MultiCore Programming
F# Functional and MultiCore Programming F# Functional and MultiCore Programming
F# Functional and MultiCore Programming
 
Intermediate Languages
Intermediate LanguagesIntermediate Languages
Intermediate Languages
 
Becoming an Open Source developer, Dimitris Andreadis
Becoming an Open Source developer, Dimitris AndreadisBecoming an Open Source developer, Dimitris Andreadis
Becoming an Open Source developer, Dimitris Andreadis
 

Más de Tomas Petricek

Queries in general purpose languages
Queries in general purpose languagesQueries in general purpose languages
Queries in general purpose languages
Tomas Petricek
 

Más de Tomas Petricek (17)

Coeffects: A Calculus of Context-Dependent Computation
Coeffects: A Calculus of Context-Dependent ComputationCoeffects: A Calculus of Context-Dependent Computation
Coeffects: A Calculus of Context-Dependent Computation
 
Domain Specific Languages: The Functional Way
Domain Specific Languages: The Functional WayDomain Specific Languages: The Functional Way
Domain Specific Languages: The Functional Way
 
F# Data: Making structured data first class citizens
F# Data: Making structured data first class citizensF# Data: Making structured data first class citizens
F# Data: Making structured data first class citizens
 
Doing data science with F# (BuildStuff)
Doing data science with F# (BuildStuff)Doing data science with F# (BuildStuff)
Doing data science with F# (BuildStuff)
 
Doing data science with F#
Doing data science with F#Doing data science with F#
Doing data science with F#
 
F# and Financial Data Making Data Analysis Simple
F# and Financial Data Making Data Analysis SimpleF# and Financial Data Making Data Analysis Simple
F# and Financial Data Making Data Analysis Simple
 
Creating Domain Specific Languages in F#
Creating Domain Specific Languages in F#Creating Domain Specific Languages in F#
Creating Domain Specific Languages in F#
 
How F# Learned to Stop Worrying and Love the Data
How F# Learned to Stop Worrying and Love the DataHow F# Learned to Stop Worrying and Love the Data
How F# Learned to Stop Worrying and Love the Data
 
Information-rich programming in F# (ML Workshop 2012)
Information-rich programming in F# (ML Workshop 2012)Information-rich programming in F# (ML Workshop 2012)
Information-rich programming in F# (ML Workshop 2012)
 
F# Type Providers in Depth
F# Type Providers in DepthF# Type Providers in Depth
F# Type Providers in Depth
 
Asynchronous programming in F# (QCon 2012)
Asynchronous programming in F# (QCon 2012)Asynchronous programming in F# (QCon 2012)
Asynchronous programming in F# (QCon 2012)
 
Queries in general purpose languages
Queries in general purpose languagesQueries in general purpose languages
Queries in general purpose languages
 
Docase notation for Haskell
Docase notation for HaskellDocase notation for Haskell
Docase notation for Haskell
 
Accessing loosely structured data from F# and C#
Accessing loosely structured data from F# and C#Accessing loosely structured data from F# and C#
Accessing loosely structured data from F# and C#
 
F# on the Server-Side
F# on the Server-SideF# on the Server-Side
F# on the Server-Side
 
Teaching F#
Teaching F#Teaching F#
Teaching F#
 
Concurrent programming with Agents
Concurrent programming with AgentsConcurrent programming with Agents
Concurrent programming with Agents
 

Último

Último (20)

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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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...
 

Academia

  • 1. Cambridge, MA November 5, 2010 F# in Education Workshop F# in Academia Going cross-platform with F# for MonoDevelop Tomas Petricek tomas@tomasp.net http://tomasp.net/blog
  • 2. F# doesn’t work on Mac & Linux
  • 3. F# doesn’t work well on Mac & Linux
  • 4. F# developer tools don’t work on Mac & Linux
  • 5. F# has great developer tools on Mac & Linux Introducing F# add-in for MonoDevelop
  • 6. F# in Academia • Good cross-platform developer tools for F# – Using cross-platform MonoDevelop IDE for Mono – F# add-in provides IntelliSense and F# interactive – Not aimed at large-scale business applications • Demonstration – how can universities use F#? – Teaching (functional) programming – For statistics and data analysis – Functional programming research
  • 8. F# for Teaching • F# is a great language for teaching – Practical functional programming – Programming language concepts and principles – Introducing computer programming • Introduction to (functional) programming – Solid and useful mathematical foundations – Gives students practical experience – Intriguing examples are a great motivation
  • 9. Composing 3D objects in a functional way Demonstration
  • 11. F# for Data Processing • What makes F# great for working with data? – Productive and efficient language – F# Interactive environment – Useful features such as units of measure • Many scientists use F# already – Genome sequencing, Machine learning – Can be used on multiple platforms now…
  • 12. Downloading and analyzing stock data Demonstration
  • 14. F# for Language Research • Building the open-source version of F# – Release contains command line tools – Integrates into MonoDevelop with no effort – Auto-completion & tool-tips “just work” • Examples of existing F# extensions – Joinads: Language extension for reactive, concurrent and parallel programming – F7: Refinement Types for F#
  • 15. Adding “joinads” to F# in MonoDevelop Demonstration
  • 16. Functional Variations & Teaching • Web sites for F# in Academia – Teaching, Working, Research – Home for the MonoDevelop plug-in – Personal community project • If you’re interested, please get in touch! • Two addresses to remember www.functional-teaching.net www.functional-variations.net
  • 17. Summary • F# is a great language for Academia – Consistent cross-platform feel with MonoDevelop – Lightweight, but with all modern features • Uses of F# in Academia – Teaching (functional) programming – Data analysis and statistics – Programming language research
  • 18. Links Contact: Tomas Petricek Mail: tomas@tomasp.net Web: http://tomasp.net/blog Get involved! http://functional-variations.net http://functional-teaching.net