Thursday, 5 June 2014

Reflections on my first year at McMaster

My first year at McMaster University has been relatively quiet. The vast majority of my time was spent working in my modest room near the campus. Engulfed with coursework and research, I wish I had spent more time roaming around Hamilton. Perhaps visiting Hamilton's purportedly "world-famous" waterfalls would have created more meaningful memories.

Still, a great GPA is a some consolation. As per my course requirements I took the following courses (i) graduate computational complexity (ii) advanced topics in data management (iii) algebraic methods in computer science and (iv) software design. The course on graduate computational complexity was mind-bending and really exposed me to new ideas and interesting research directions. Advanced topics in data management focused on data cleaning, data mining and data privacy, a significant overlap with my research. Algebraic methods was assignment focused and completely math-y, while we had a lot more freedom with the project-based software design course. Overall, I think my course choices were great.

I also audited the graduate algorithms and data structures class and partially audited an introduction to graduate statistics course with the Math department. The algorithms course was fantastic and really a step up from the typical undergrad-level algorithms courses that you find in most universities. Unfortunately, I started auditing the statistics course too late in the term and could not make too much sense of it halfway through. I'll audit it from the beginning in my second year.

It was also my first time TA-ing a course- web systems and web computing, which is offered to 3rd/4th year undergrads and grad students. I actually enjoyed giving the 45 min lectures, covering overviews of topics such as Java web frameworks, front-end frameworks, databases, etc. However, marking student assignments is a real chore.

In terms of hobbies, I started teaching myself how to play the guitar, probably one of the best decisions I've ever made. During the frigid winter months, nothing beats strumming a few tunes. Occasionally, I would go to the MacBeat club meetings and jam with a few guitarists on Thursday's.

Yet, most of my Thursday's were actually channelled towards chess. As a beginner, all those losses by various members of the chess club are hard to bear. I'm trying to learn from them and get better. But chess can get frustrating at times (I hate losing!). It's not just chess- combined with coursework and research, one really needs some sort of an outlet to combat stress. Luckily, I'm swimming regularly...

I've made a few good friends this year, so I'm quite looking forward to spending more time with them next year, and not staying holed up in my room all the time. Still, I wish the grad CS cohort was larger. As it is, it is difficult to find sociable CS students, haha!

Grad life is vastly different from my undergrad days. There is a lot more studying and a lot less socializing. Its also strangely difficult to identify with the undergrads and their lifestyle. I guess I have changed a bit since my undergrad days.

Targets for next year
  • Conduct meaningful research and publish a paper in a top conference or journal.
  • Audit the graduate statistics course with the Math department.
  • Complete reading the books: PRML by Bishop and PGM's by Koller.
  • Complete the MOOCs: Machine Learning by Ng and Learning from Data by Yaser.
  • Focus on my own side-project.
  • Participate in at least 1 Kaggle competition.
  • Explore Hamilton's waterfalls.

Paper summaries : Statecharts and ATL

Here are two paper summaries I had submitted for one of my university courses, Software Design.

"Statecharts : A visual formalism for complex systems." by Harel

The authors propose a modeling formalism called Statecharts to addresses some of the inherent weaknesses of conventional state diagrams in realistically modeling complex reactive systems (one typical weakness is state space explosion even for relatively simple reactive systems). Statecharts extend conventional state diagrams (thus leveraging the visual power of these conventional diagrams) by the incorporation of features such as clustering of states, adding concurrency capabilities, enabling fluid movement between different levels of abstraction, modeling hierarchical information, modeling of activities (i.e., something that takes a nonzero amount of time like beeping), etc. The Statecharts formalism was exemplified using the Timex stopwatch system. In the industrial setting, Statecharts were successfully used in a large scale avionics project. The author also proposes further extensions (e.g., probabilistic Statecharts).

The author presented valuable and practical extensions to conventional state diagrams. Though verbose, the paper was accessible. The Timex stopwatch examples were welcome motifs, vastly preferable to a purely theoretical approach in presenting the ideas. Overall, the research is highly original.

"ATL : A model transformation tool." by Jouault et. Al.

ATL is a rule-based domain specific language (built upon the OCL specifications) with declarative and imperative constructs for specifying model-to-model transformations. The transformations are unidirectional i.e., the source models are read-only while the target models are write-only. The declarative features of ATL (e.g., matched rules, lazy rules, etc) encapsulate complex algorithms and are thus simple and intuitive to use. However, imperative statements are often essential for complex transformational problems. A number of tools (e.g., editor, compiler, virtual machine, debugger) were developed for ATL on the Eclipse platform. These tools support many of features highlighted in [1] except for (i) static type checking, (ii) helpers in the context of collection types, and (iii) more strongly typed resolution. Feedback on the use of ATL has been positive, and ATL has been evaluated on more than 100 sites.

The paper itself is quite concise and not deeply technical, or even expansive. Moreover, some sections (e.g., related work) are perfunctory. However, the presented contributions are concrete, the idea is novel and the implementation (of the ATL tools) is praiseworthy (given the popularity of Eclipse). The successful evaluations and positive responses (mentioned in section 6) to the developed ATL tools is indicative of the high quality of the presented work.