PROGRAMMING LANGUAGES & SOFTWARE ENGINEERING

Software consists of programs written in programming languages.​

The flexibility and power of software enables billions of people around the world to connect, collaborate, and solve problems.​

However, as one of the most complex artifacts designed by humans, it is theoretically challenging and practically difficult to correctly program software.​

We study all aspects of the software development process, with the aim to improve the performance and reliability of these programs.

WHAT WE DO

Image

Study the foundational and theoretical aspects of programming languages and software engineering, exploring ways to improve program writing, as well as demonstrating the ‘correctness’ of programs.

Image

Explore practical and implemental aspects of programming languages, software engineering, and software education, developing tools and systems to improve software quality and security.

SUB AREAS:

Compilers​

Concurrency​

Constraint & Logic Programming​

Decision Procedures​

Formal Methods​

Functional Programming

Language-Based Security​

Probabilistic Programming​

Program Analysis​

Program Logics & Semantics​

Program Repair​

Program Synthesis

Programming & Software Engineering Education​

Software Security​

Software Testing​

Types​

Verification

OUR RESEARCH PROJECTS

Automated Program Repair

Abhik ROYCHOUDHURY

  • TRL 4
  • Program Repair

OUR RESEARCH GROUPS

STeAdS Virtual Group

Ganesh NEELAKANTA IYER

Software Engineering and Technological Advancements for Society. A virtual group that uses Software engineering practices and Technological advancements (Cloud computing, Artificial Intelligence (EdgeAI, ML)) for the benefit of various aspects of society (healthcare, education, art & culture). Looking for students to collaborate on different projects. Look at ganeshniyer.github.io for details.

  • Programming & Software Engineering Education, Types

NUS Test Lab

Manuel RIGGER

The Trustworthy Engineering of Software Technologies (TEST) Lab is working on practical and conceptual software solutions. We aim to have a real-world impact both by creating practical tools as well as by designing principled, fundamental techniques.

  • Compilers, Program Analysis, Programming & Software Engineering Education

Secure Software Research Group

Abhik ROYCHOUDHURY

Past and present research team members in this group appear here: https://www.comp.nus.edu.sg/~abhik/students.htm

  • Program Repair, Program Synthesis, Software Testing