icon About Blog

May 26, 2020 / programming

Completed Functional Programming in Scala Specialization on Coursera, Finally

I have earned my certificate of Functional Programming in Scala Specialization completion.

scala-certificate

To be honest, I finished 4 out of the 5 specialization courses 3 years ago, when these were still independent free courses, as you can see my notes in the following articles:

Recently, I noticed that the courses are now packaged as Specialization on the platform, and I can be certified by Coursera & EPFL if I complete a remaining Capstone Project. Well, Coursera offers a 7-day full access free trial for the Specialization, and we do have enough time to complete the coursework thanks to COVID-19. Why don't you spend the whole weekend to grab the low-hanging fruit?

I did that last weekend.

It was a good refresher

A goal of the Capstone Project is to implement a practical Scala application that:

  1. Loads a large volume of historical temperature data,
  2. Applies some numerical computation techniques for analyzing geospatial data & interpolating values of temperature,
  3. Visualizes the historic global temperature maps in an interactive web application.

Sounds fun, doesn't it?

It's been a while since I changed my role from Engineer to Product Manager, and hence the project was a good refresher for me to recall the joy of coding.

Splitting a big complicated problem into chunks of subtasks, learning & applying well-developed algorithms to each of them, and connecting the dots to come up with a complete solution — Programming is the best way to see how to logically solve the complex problems; I thought I understand the point very well throughout my career, but I didn't in fact. It's interesting that, once I distance myself from the professional engineering activities, I become able to have a clear understanding of how it's fun and practical.

Not so stimulating as a final project

Overall, it was fun, but I don't think the Capstone Project is well-structured; while the whole picture of the project looks very exciting as I showed above, the students are actually guided too much by micro milestones provided by the instructor.

I know setting the milestones & enabling students to write instructor's expected code is important to equally grade their work on the online education platform, but it was definitely boring and less stimulating; I want to write software with my own creativity, and I do NOT want to spend my time on the "homework" assignments. I believe there must be a better alternative way to achieve the instructor's objective such as introducing a peer-review process for evaluation.

For the reason I mentioned above, I, unfortunately, finished the project without completing all of the milestones; I've certified with 80 out of 100 points, which can be achievable by completing 4 out of 6 milestones. This is very disappointing, and I was hoping the project could be more challenging and motivate me to go further.

Another issue I realized is that the grading system (i.e., test cases provided by the instructor) didn't do a good job to evaluate our code from the "Functional Programming in Scala" perspective. That is, even if I write my code inefficiently in a non-functional way, we can get 100% on a test. In my opinion, the criteria must be more strict in terms of scalability as a final project of the Specialization that covers the following topics:

  • Functional Programming Principles in Scala
  • Functional Program Design in Scala
  • Parallel Programming
  • Big Data Analysis with Scala and Spark

Value of online education

In fact, I was not fully satisfied with the project, but it was a good opportunity to review the basics of Scala, remember the joy of programming & learning, and add color to my weekend.

As we're staying home, the value of online education clearly increases to use the time effectively and learn something new on high-quality materials and lectures. The Capstone Project on Coursera reminds me of the fact, and I'm already looking for the next course I could take.

Having a certificate is not so important, but the ultimate goal nicely inspired me to study more diligently in this Specialization. Thus, I may pay for certificates in future courses since the courses I'm looking for are far from my current backgrounds, such as finance and design. In this case, the explicit motivation could be a great accelerator to dive deep into the brand-new fields.


  See also

» more
Takuya Kitazawa (a.k.a. takuti) is working on machine learning, data science, and product development at Arm Treasure Data. Opinions are my own.