FP @ TCD    Scala Module  roland@tritsch.orgglenn.strong@cs.tcd.ie      Nov 2012
What are we going to do?● Lecture (90 mins)  ○ Introduction to Scala● Lab1 - Rewriting Java  ○ Josephus problem● Lab2 - In...
Why are we doing this?● Functional programming is on the rise  ○ Immutable data and side-effect free functions make    dev...
Why are we doing this?
Why are we doing this?Source: http://www.indeed.com/jobtrends
Tools● Git - Source code management● SBT - Build tool/environment● Scala - Repl, compiler, ...● ScalaTest - TDD, BDD, ...●...
Objectives ● Kickstart you on Scala ...    ○ ... so that you can continue on your own (if you want) ● Focus on the languag...
Resources● Learn - Scala Home Page  ○ http://www.scala-lang.org/  ○ Downloads, documentation, books, ...  ○ Read Martins b...
Ready?
Upcoming SlideShare
Loading in …5
×

Teaching Functional Programming @ TCD - 11/2012

677 views

Published on

Teaching a Scala Module in TCD

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
677
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Teaching Functional Programming @ TCD - 11/2012

  1. 1. FP @ TCD Scala Module roland@tritsch.orgglenn.strong@cs.tcd.ie Nov 2012
  2. 2. What are we going to do?● Lecture (90 mins) ○ Introduction to Scala● Lab1 - Rewriting Java ○ Josephus problem● Lab2 - Integrating with Java ○ Josephus problem using Apache commons
  3. 3. Why are we doing this?● Functional programming is on the rise ○ Immutable data and side-effect free functions make development and maintenance of large, complex SW development projects more manageable● Haskell is a very good way to learn FP ○ Green field, good concepts, clean, ...● Right now in the industry Scala is the language of choice to move teams and larger chunks of source code towards FP ○ Scala allows phased adoption (rewrite, refactor, rethink) ○ Scala integrates well with existing Java code
  4. 4. Why are we doing this?
  5. 5. Why are we doing this?Source: http://www.indeed.com/jobtrends
  6. 6. Tools● Git - Source code management● SBT - Build tool/environment● Scala - Repl, compiler, ...● ScalaTest - TDD, BDD, ...● IDE - Edit, debug, ... (IntelliJ, Eclipse, Emacs)
  7. 7. Objectives ● Kickstart you on Scala ... ○ ... so that you can continue on your own (if you want) ● Focus on the language and the dev env ... ○ ... not on FP concepts (you can get these from the rest of the course) ● Work with a minimal, but complete tool suite
  8. 8. Resources● Learn - Scala Home Page ○ http://www.scala-lang.org/ ○ Downloads, documentation, books, ... ○ Read Martins book● Learn - Coursera Prog Func 2012 ○ https://class.coursera.org/progfun-2012-001● Play - Scala Puzzles ○ http://scalapuzzles.org● Play - 99 Scala Problems ○ http://aperiodic.net/phil/scala/s-99/
  9. 9. Ready?

×