Earlier this whole March, I joined an online free course from University California, Berkeley. The topic is Software as a Service, an interesting issue that just become popular lately. The program is hosted in https://www.coursera.org/ , as a part of joint experiment by three top Universities of USA, Stanford University; University of Michigan; and UC Berkeley.
For SaaS course itself, I think they prepared it quite good that it covers enough part of the issue in just 5 weeks. Thanks to Armando Fox and David Patterson, two professors of UCB, as with their efforts, this great online course is possible. The program itself is delivered in Video and .ppt presentation materials that covers precisely five chapters; from introduction to Software as a Service to some kinds of agile development methods, which are Behaviour Driven Development and Test Driven Development.
Throughout the course, the two professors oblige students to use Ruby (and Rails) as a language for assignment projects. Two choices are whether we want to work in a pre-built Virtual Machine or from the Amazon Web Service (they partnered with AWS to give away $10 voucher for students who passed first assignment). It also encourages students to use heroku, a popular online Platform as a Service (PaaS), that also supports Ruby on Rails for deployment.
There are four assignments and three quizzes that will determine students’ final score. For the first assignment, it’s designed to make the students get familiar with Ruby. To be frank, this Ruby thing is new to me, and it took one full weekend for me to get used with the language (it’s more flexible than Python, good but a little bit confusing). Second assignment asked students to improve a “Rotten Tomatoes”-like website with added functionalities (this one is called Rotten Potatoes 😉 ), and deploy it to the heroku. Btw, here’s my attainments for the project http://narutocuk.herokuapp.com/movies. Last but not least, the third and last assignments tested us the knowledge of Behaviour Driven Development and Test Driven Development by using handy frameworks called cucumber and RSpec. So, in this context, during a software development, the developers (or teams) are encouraged to develop set of tests first before actually developing the functionalities. Also, cucumber is a great tool where we can define set of tests in plain English text:
Scenario: restrict to movies with 'PG' or 'R' ratings Given I check the following ratings: PG, R And I uncheck the following ratings: G, PG-13, NC-17 When I press "Refresh" Then I should see the following ratings: PG, R And I should not see the following ratings: G, PG-13, NC-17
This cucumber tool depends greatly on extensive Regular Expression string parsings. It helps to minimize technical gap between development team and the clients. And as for the score, I did a quite good job on the assignments (deducted points on last assignment as I submitted it late, and perfect score on others), but unfortunately not on the quizzes. I didn’t realize that it was a one-time attempt test, that when I did it and had an errand, I left many numbers unanswered and it gave me a bad score.
Anyway I finished the course until the end, and roughly two weeks after the last quiz, a mail came to my gmail with a Statement of Accomplishment in pdf format. I think it’s fair enough for me, and I got a new knowledge too 🙂
Here’s how the Certificate looks like: SaaS Class Statement of Accomplishment