Musings about Entrepreneurship, Technology and Software Development

Accidental Technologist

  • Home
  • About
  • Still River Software
  • Privacy Policy

Functional Programming Principles in Scala

Tweet

Large icon

I subscribe to the school of thought that learning should never end, and I also believe that as a software developer it’s important to learn new programming languages yearly. ?

After learning about Coursera and hearing that Martin Odersky was going to be teach a course covering functional programming titled?Functional Programming Principles in Scala, I had to sign up. ?The class is a 7 week long introduction to functional programming principals using the Scala programming language.

Course Syllabus

Week One: Programming paradigms; overview of functional programming and the Scala programming language.
Week Two: Defining and using functions, recursion and non-termination, working with functions as values, reasoning by reduction.
Week Three: Defining and using immutable objects, review of inheritance and dynamic binding.
Week Four: Working with collections: Sequences, sets and maps
Week Five: Defining recursive data and decomposition with pattern matching.
Week Six: Reasoning about functions
Week Seven: Case study

Weekly

Each week, on Tuesdays, students are presented with a series of lectures by Martin that cover the week’s topic. ?The lectures include prepared slides, writing on a virtual whiteboard and live code examples and run 2-3 hours per week.

After listening to the lectures for the week there are homework assignments which exercise the material reviewed in the lectures. ?Pretty common for a college course.

I have to admit the assignments are hard. ?I am always up for a challenge with a new language but the assignments go well beyond general Scala syntax or basic functional programming paradigms. ?These lectures force the student to learn (or remember) computer science and mathematics from my early days of algorithm and data structures from college. ?No complaints here, all really good stuff, but it took some research to recall some of these things.

Conclusion

Would I recommend this class? ?You bet! ?It was a great class and I learned ton. Scala was a language that I wanted to have a look at and this course was a great introduction but assumed a background in programming and did not cover the basics. ?

One things that annoys me is that most programming books start with the very basics of a language, trying to cater to the widest audience possible. ?This leaves most books with only 1/2 of their content really unique and usable.

After spending some time with Scala, I decided I was not a fan and won’t be using the language for future projects. ?I love the idea of functional programming, lots of small functions with specific functions, but Scala is way too verbose for my liking. ?It just looks like functional Java and not different enough from Java or C# for that matter to attract me to use it. ?I think Scala drove me to appreciate Clojure much more and I will be writing a lot more parentheses because of it. ?

I think it’s good to see other programming languages and styles. ?Scala works for some but not all.

Share this:

  • LinkedIn
  • Twitter
  • Facebook
  • Email
  • More
  • Pinterest
  • Tumblr
  • Pocket
  • Reddit

October 15, 2012 Posted in Programming Tagged With: functional programming, martin odersky, scala

Popular Posts

  • 10 Alternative Ruby Web Frameworks
  • 7 Resources Every JavaScript Developer Should Know
  • Setting up SQLite3 for Ruby on Rails Development
  • Running Rails 3 on Windows
Micro.blog

Categories

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Latest Tweets

  • RT @tectonic: I'm starting a weekly email newsletter with @blach about space science & technology, focused on startups. Sound int… https://t.co/SGF3gk4WuG

    19 hours ago
  • RT @brennandunn: In case you missed it last night, I detailed exactly why I'm moving Double Your Freelancing to @ConvertKit -… https://t.co/ZS5wpQjaaU

    2 days ago
  • Lessons from 6 software rewrite stories – Herb Caudill – Medium https://t.co/hqHgTL7JkR

    2 days ago
  • Rails 6 unnoticed features | Drivy Engineering https://t.co/fQ17vQrE7s

    2 days ago
  • RT @r00k: What I thought we were building: a SOFTWARE company What we're actually building: a software COMPANY

    2 days ago

Tags

Agile amazon Android Apple App Store ASP.NET MVC book bootstrapping Business conference Customer Service Droid X email entrepreneurship functional programming Google InfoQ InstantRails iOS iPad iPhone JavaScript mac microconf Microsoft mixergy mobile objective-c Open Source podcast rails Rails3 railsconf RSS Ruby Ruby on Rails scala sinatra Software swift twitter Windows WordPress WPEngine xcode

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Copyright © 2019 · Genesis Minimal Notebook on Genesis Framework · WordPress · Log in

loading Cancel
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.