Gif Image Click Here to Apply for Admission to M.Tech., Ph.D. programs and as International Students for AY 2024-2025. Gif Image

AA

AI for Software Engineering

Course Topics and Organization

This special topics course in Software Engineering (SE) will discuss the state of the art in application of AI/ML for various aspects of SE. Modern methods of engineering software generate a lot of data – almost all artifacts produced in a software project are machine processable, projects capture a lot of data in various repositories like source code control, bug tracking, etc., programmers’ activities log is available, companies have project database with data on past projects, proposals submitted, etc. Using data for SE has been around for quite some time. However, over the last decade AI techniques have really matured, and AI models are being applied in SE much more – e.g. by automating more tasks, monitoring project health, providing assistance to engineers or managers, providing guidance for decisions, etc. Besides using AI for the activities helping projects or engineers, AI techniques can also be used by companies which execute hundreds of projects, to benefit from better monitoring and control of their portfolio of projects, better utilization and planning of resources, better risk management, etc. The use of AI in SE is an emerging area with a lot of promise and activity.

 

The goal of this course is to introduce state of the art in applying AI for SE issues, and various research challenges. Initial lectures will provide a background on the course, as well as an overview of AI/ML techniques relevant to SE, and an overview of the areas of SE where the use of AI/ML is being explored. After that, each week will cover one SE topic and discuss approaches of how AI is being used for it. Topics will be discussed in conjunction with various seminal papers related to that topic. Some of the lectures on some topics will be given by the instructors and some by invited experts. Student groups will also give presentations on topics of their choice.

The goal of this online course is to explore various research issues and state of the art in applying AI for SE issues. The Learning Outcomes of the course are:

 

  • » Familiarity about how AI is being used for addressing different problems in SE
  • » In-depth understanding of use of AI models in one particular SE issue
  • » Understanding of how to apply AI models for a different domain (SE in this case)
  • » Improved ability to review research literature and understand the state of the art in some area
  • » Improved ability to do independent research

 

Resources for the course. The course will primarily use research papers as resources. For each topic, papers will be identified, and a few will be chosen for discussion, presentation, and summary reports.

 

Winter Semester 2023 Offering

In this semester, the course is being offered only as an IP/IS. Students who wanted to do their BTP in the area can also allowed to join. (Altogether about a dozen students joined). The group will meet weekly and discuss various topics. Some of the topics of interest in this offering are (based on student interests):

  • AI based code generation: GitHub copilot and similar tools for coding from problem description in natural language.
  • Use of generative AI in Requirements Engineering and design in an end-to-end project
  • Using AI for testing and test case generation, especially for unit testing
  • Using AI to evaluate code for quality / automatically grade student programs
  • Assisted/automated code refactoring for concurrency and performance improvement

Monsoon Semester 2021 Offering

Course Credits, Level and Schedule

The course is being offered by multiple institutes (IIIT-Delhi and IIIT Hyderabad) parallelly, and have instructors from two institutions. While all weekly classes will be online and common and work will be common, in each institution it is treated as an independent course with an instructor being fully responsible for it. The corresponding page for IIIT-Hyderabad for this course is: https://serc.iiit.ac.in/aise

Level : Research Level Course

Credits: 4 credits

Schedule: Monsoon Semester - Aug to Nov End (appx 4 months). Every Thursday , 4-7 pm. From Aug middle 2021 to November 2021. Fully Online. First lecture is on Aug 12 (as Aug 19 may be a holiday).

Some of the SE areas/topics where ML is used are listed here (more can be added). Of these about ten will be selected for discussion in the class – based on the interest of students:

  • » Requirements engineering (NLP and other AI techniques can be employed to improve the requirements engineering process).
  • » Bug triaging (ML and NLP methods to automate triaging)
  • » Automatic bug repair / system/software repair (ML based techniques are now in use in some major companies)
  • » Making testing more effective (e.g. using ML identify which testcases to execute during regression, testcase design)
  • » Assisted/automated code refactoring, code completion
  • » Automated code review and bug detection
  • » Effective developer/designer assistance (through recommendations, …)
  • » Effort estimation (e.g. using ML models), assistance in project monitoring (e.g. is the project likely to complete successfully)
  • » Defect prediction and detection (e.g. predicting if a change may inject defects)
  • » NLP/Information Retrieval in Software Engineering
  • » Analyzing logs and user comments (for bug detection, issues, etc.)
  • » Performance monitoring / tuning / prediction - of software, of IT infrastructure, ...

Course Work and Resources

Students are expected to actively participate in the class - for most lectures some papers may be given prior to the lecture and students are expected to read them so they can participate in the discussions.

Student groups (of 2 or 3 students) are also expected to give lectures on various topics in the latter half of the course. Each student group is expected to take-up a topic, prepare a short summary on it, and make a presentation on it in one session in the class: appx 45 mts presentation, followed by half hour discussion. The presentation will cover: (i) Background and motivation of the SE problem, (ii) Overview of existing (non-AI) techniques, (iii) Overview of the AI-based approaches and how they help, (iv) Brief discussion of two or three approaches (papers); and (v) Comparison of the approaches and summary/conclusion.

Student groups are also expected to do some independent research or experimentation in their chosen topic on applying AI/ML for SE – for this they are expected to apply some ML techniques on some data – obtained from some organization or public domain. Students will have to write a small research report explaining the results of the analysis or experimentation (their earlier summary can become the “background/related work” section of this report.)

Weekly Lecture / Session. Each week's lecture/session will be divided into two sessions of about 1 hr 15 mts each, with a break in between the two. In each session, one topic will be discussed, though some topics may be discussed over two sessions. The topics to be covered in each of the sessions will evolve, and will be updated here. The lecture schedule is:  

 

Date

Session 1 Topic

Session 2 topic

Aug 12

About the course and logistics; Overview of Software Engineering Data (Pankaj Jalote); An overview of AI in SE (Raghu Reddy).

Overview of important ML techniques - short (30 mt) overview:

Supervised Learning, Prof. Saket Anand, IIIT-Delhi

Unsupervised Learning, Prof. Anubha Gupta, IIIT-Delhi

Recommender Systems, Prof. Angshul Majumdar, IIIT-Delhi

Aug 19

Holiday

 

Aug 26

Overview of NLP and IR techniques (Vasu Verma)

Use of NLP/IR in SE, in particular Requirements Engineering (Vasu Verma)

Sept 2

Background of software effort estimation (SEE); Analogy based estimation (ABE). Pankaj Jalote

Some other estimation approaches; Research ideation group exercise. Pankaj Jalote

Sept 9

20 yrs of Agile – What next, Anand Deshpande and Suresh Prabhu, Persistent Systems

Continued

Sept 16

Sankie: An AI for DevOps Case Study, B. Ashok, Microsoft

Looking ahead: AI for Code Generation, prospects and pitfalls – large language models, neuro-symbolic reasoning, Gautam Shroff, TCS.

Sept 23

Advances in Code Summarization, Alex Mathai, Srikanth Tamilselvam, IBM Research

 

Learning-based Assistant for Data Migration of Enterprise Information Systems, Indrajit Bhattacharya TCS.

Sept 30

No class (Mid-sem exam, IIIT-D)

No class

Oct 7

AI for API testing, Diptikalyan Saha, IBM

"Auto Bug Repair", Satish Chandra, Facebook

Oct 14

Dr. Sriram Rajamani, Microsoft Research, Influence of AI on Programming Languages

Code clone detection, Rahul Purandare, Saket Anand (actual date was Oct 21)

Oct 28

"Process Mining of Software Repositories", Dr. Monika Gupta and Sampath Dechu, IBM

"Software Analytics", Dr. Vibhu Sharma, Accenture India

 

Nov 10

"Compile to Learn to Compile: There and Back Again". Albert Cohen, Research Scientist, Google.

Continued

Nov 4

No class (Diwali)

Nov 18

Research work presentations by student-groups

Nov 25

Research work presentations by student-groups

 

Evaluation Policy

Students will form small groups and will take up specific topics. They will give a lecture on the state of the art in the selected topic, and write a short report. They will also try to formulate a R&D problem in that topic for applying ML in the chosen SE-problem, and research plan for addressing it, and do some work on the problem. For each lecture, some topic and papers will be assigned for reading, which the students are expected to read, and actively participate in the discussions. The elements of evaluation and their rough weights are:

Peer Evaluation and Class participation  20% 
Presentation on the topic  20%
State of art Report on the chosen topic  20%
Research in the chosen topic - R&D problem formulation and some work  20%
Final Exam  20%

Instructors

Pankaj Jalote (IIIT-Delhi), Raghu Reddy and Vasudeva Verma (IIIT Hyderabad)

 

Eligibility/Prerequisite and Enrollment

Prerequisite. Knowledge of AI and Learning techniques and familiarity with Software Engineering; or Knowledge of Software Engineering and familiarity with AI/ML; or consent of the instructor.

Students from Participating Institutions(IIIT-Delhi, IIIT Hyderabad): MTech, PhD students who satisfy the prerequisite (mentioned above). BTech students who satisfy the prerequisite can also join with permission of the instructor (which will be based the background, preparation, and motivation.) The number of students from each institution may be limited to about 15. Students should register in the course through their institutions.

Industry participants or faculty from other institutions: A few industry professionals and SE faculty from other institutions will be allowed to enroll in the course. Participants should be BTech/MTech in CS/IT, have experience in analyzing/planning/handling SE data in their organization, exposure to AI/ML, knowledge about SE processes and data repositories. Should be able to attend weekly sessions, and spend a few hrs / week on outside the class work, including a project (which can be applying AI/ML to some data and issue relevant to your organization.) If you are interested in enrolling, please send a mail with your CV and indicating the reason for your interest in the course to jalote@iiitd.ac.in (if you want to join it in IIIT-Hyderabad, pls send a mail to Raghu Reddy.) You can join as an Audit student (without fee), in which case on successful completion the Instructor can issue you a letter. If you want an official transcript from IIIT-Delhi, you can join as a casual student and pay the fee (about 1.2 Lacs). All external students should register using this form - access to the LMS for the course will then be provided (to those included).

Last updated: 10-07-2023