When Deep Neural Net meets Code Review

When Deep Neural Net meets Code Review

Abstract-Peer code review is an essential step in the development of large software. However, the manual process is sometimes repetitive and even tedious. The community has developed various tools to automate the process. Most of them are linter/static analysis tools. They solve parts of the problems but have several limitations. In this project, we intend to employ Deep Neural Networks (DNN) to automate the process. Specifically, we conduct some proof-of-concept works to examine the relationship between the code changes and the review comment. Our initial attempt shows that our models fail to find a useful link from code changes to review comments. However, we are able to generate something interesting reversely from review comments to code changes. Further work includes more investigations on the DNN for review comment prediction. In addition, more sophisticated tuning on our successful models will also be beneficial.

https://hackmd.io/@DeepestCodeReview/code_review_with_dnn

Java Concurrency In Practice - Question to Ask

Java Concurrency In Practice - Question to Ask

Thread Safety

What are the differences between Concurrency and Parallel?

What is reentrancy lock?

Simple race condition:

  • read-modify-write
  • check-then-act
Read more
B.Comp. Dissertation: Preparing the Backend of a Large-scale Cloud Application for a Million Users

B.Comp. Dissertation: Preparing the Backend of a Large-scale Cloud Application for a Million Users

TEAMMATES is a large-scale cloud application for instructors to manage peer feedback
among students. It is being developed by a project based in School of Computing (SoC),
National University of Singapore (NUS). Since its public release in 2011, it has been used by
over 350,000 users from all over the world. This project explored ways to prepare
TEAMMATES backend to be able to handle its increasing user base, specifically with regard
to performance, scalability and maintainability. Based on the findings, three major components
were enhanced in significant ways. The improvements in scalability and performance were
proven both theoretically and empirically. While most of the tasks in this project were
development-based, there were also some research components involved.

Read more
7 Reasons you should read SICP

7 Reasons you should read SICP

The full name of SICP is “Structure and Interpretation of Computer Programs” by Abelson, Sussman, and Sussman. To me, this should be the must-read book for all computer science students. There are several reasons for this.

The original version is in Scheme language (which is not so popular now): https://mitpress.mit.edu/sicp/

There are two adapted versions for Python and JavaScript:

Python (called as Composing Programme): http://composingprograms.com/

JavaScript (taught in CS1101S Course at National University of Singapore): https://www.comp.nus.edu.sg/~cs1101s/sicp/

Read more
Technical Report: Static Analysis (Java) in OSS Project TEAMMATES

Technical Report: Static Analysis (Java) in OSS Project TEAMMATES

Static analysis tools have been widely used in TEAMMATES, which is helpful in maintaining code standard, coding quality or obtain even bug-free code. This report explains how static analysis tools for Java have been used currently in the project. In addition, it also explores some additional static analysis rules, which could be enforced gradually in the project.

Read more
CS2103T: Do-erList Project Retrospective

CS2103T: Do-erList Project Retrospective

Do-erList is a desktop Todo list application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). It is a Java sample application intended to meet Jim’s requirements and it is written in OOP fashion.

For testing, it supports for Build Automation using Gradle and for Continuous Integration using Travis CI.

Read more
NUS Orbital 2016: NUSDing
Seat Booking System: Eusoff DP1516