Development and Release of Type4Py: Machine Learning-based Type Auto-completion for Python

Over the past decade, machine learning (ML) has been applied successfully to a variety of tasks such as computer vision and natural language processing. Motivated by this, in recent years, researchers have employed ML techniques to solve code-related problems, including but not limited to, code completion, code generation, program repair, and type inference.

Dynamic programming languages like Python and TypeScript allows developers to optionally define type annotations and benefit from the advantages of static typing such as better code completion, early bug detection, and etc. However, retrofitting types is a cumbersome and error-prone process. To address this, we propose Type4Py, an ML-based type auto-completion for Python. It assists developers to gradually add type annotations to their codebases. In the following, I describe Type4Py’s pipeline, model, deployments, and the development of its VSCode extension and more.

Continue reading “Development and Release of Type4Py: Machine Learning-based Type Auto-completion for Python”

On the importance of writing skill in Academia

In this post, I share my thoughts on the importance of writing skill in Academia. Currently, I’m a PhD student. So a large part of my job is to write papers and a thesis at the end. I don’t consider myself a good writer by any means, though I got compliments about my writing from some people. This post is useful mostly for novice researchers like PhD students and also people who want to consider a research career in Academia.

Continue reading “On the importance of writing skill in Academia”

9 useful tips for PhD students

I’m back again with another post after a long time! I’m currently a second-year PhD student in software engineering at TU Delft. Since last summer, I wanted to write a blog post for giving some tips to PhD students. You might now call me a “lazy person”!! 😀  but I tweeted some short tips a while ago. However, on Twitter, it’s not possible to explain things and give examples. I’m also writing this post to remind myself of the below tips, given that I haven’t finished my PhD yet.  Without further ado, let’s talk about the tips:


Continue reading “9 useful tips for PhD students”

The main sections of a research paper are explained (With examples from a machine learning research paper)

To stay up-to-date in your field of research or study, you should read research papers. However, reading a research paper is not like reading a newspaper. Because a paper has a formal structure that consists of several sections. Authors of research papers know the structure quite well. It is also essential for readers to be familiar with the main sections of a research paper. This helps readers to quickly find the information they are looking for in a research paper. Moreover, it helps them comprehend new ideas and methods of a paper better. Aside from gaining new knowledge, reading research papers help you find out what was done in the past to solve a particular problem. Therefore, you are not going to reinvent the wheel and probably implement a method or algorithm that is proposed in a paper.

In this post, I explain the components of each section in a research article. Also, examples from a real and open-access research paper in machine learning are provided to help you understand the components of each section.

Continue reading “The main sections of a research paper are explained (With examples from a machine learning research paper)”