Sunday, December 4, 2016

Scala idiosyncrasies

Scala is full of idiosyncracies and by writing some of these out here I am hoping it will save someone else the time. I will keep updating this post as I find new ones:

Scala idiosyncrasy # 1:  Iterator.size is not reliable. 

Consider the following lines

  val a: Iterator[Int] = Iterator(1, 2, 3)  
  val b: List[Int] = List(1,2,3)  

A test kept failing because I tried to use Iterator.size in my code instead of List.size. Then I learned that the size of the iterator is computed as the number of entries left to the end of the list. A better way is to use convert the Iterator to a List and then compute its size. Here is an example

  object Solution extends App {  
  val a: Iterator[Int] = Iterator(1,2,3)  
  println(" size of iterator a " + a.size)  
  println(" size of iterator a " + a.size)  
  val b: List[Int] = List(1,2,3)  
  println(" size of list b " + b.size)  
  println(" size of list b " + b.size)  
 }  

Answer:
  size of iterator a 3
  size of iterator a 0
  size of list b 3
  size of list b 3

So there, I learned something about Scala today 

To be continued...

Monday, March 7, 2016

Foraying into the field of Machine Learning for Ed-Tech

It has been about 3 months since I joined LinkedIn. At LinkedIn, I have been working on Relevance algorithms for Lynda. Lynda is a online-learning tool that is used by Campuses, Small and Large scale business to empower students and employees to learn software, creative, and business skills to achieve their personal and professional goals. 

Online education has really taken off in the past few years and several people predict that  campuses may no longer be necessary. While I still don't know enough about my stance on these predictions, I am really impressed by the amount of research that has already gone into studying learner engagement, retention and the factors that affect it. LinkedIn is uniquely placed in this area as it has so much more structured information compared to other online-education providers like Coursera, Udemy, Edx and SkillSoft. But I am not even worried about LinkedIn's role in this field yet. I am very curious and excited to learn about all the research that has been done by universities in understanding learners.  Sadly, the work is widely scattered over journals of Statistics, Machine Learning conferences and Education-Research venues of publication. The goal of this blogpost is to summarize all these venues where such work is published. Another useful exercise (saved for another blogspot) would be to create a taxonomy of research done in this field. In fact, it might already be done. I found this great article about where research in MOOC is headed. I was amazed to see a bunch of papers listed in this article that use LDA, HMM and other machine learning models and analytics tools to make sense of the learner engagement data.  


Learning at Scale 
Learning Analytics and Knowledge 
Special Interest Group on Computer Science Education 

Among the universities that are doing research on MOOCs, most papers are published from Stanford, UPenn, Harvard, UW-Madison, Simon Fraser University and Open University of Netherlands.

In the following blogposts, I will write more about research in this field