Lectures

Week 1

  • Course Introduction. We will discuss the topics covered in the course, the evaluation methods and marking scheme.

Week 2

  • An Overview of Machine Learning. We’ll consider various aspect of machine learning including applications, individual methods as well as challenges of using ML to solve Software Engineering problems. Methods covered include naive Bayes, support vector machines, random forests and k-means clustering. Challenges discussed include overfitting, underfitting and selecting the write ML method for the right software research problem.
  • An Overview of Deep Learning. We will look more closely at representation learning and deep learning.

Week 3

  • An Overview of Meta-Heuristic Search Techniques. We’ll consider various aspects of meta-heuristic search methods including local vs. global search. We’ll also cover a number of meta-heuristic search methods including: hill climbing, simulated annealing, particle swarm optimization, ant colony optimization, genetic algorithms and evolutionary computation.
  • First Example of Meta-Heuristic Search in Software Engineering. We will also introduce one example of a search-based algorithm to automatically repairing software bugs.

WEEK 4

  • How Often Are AI Techniques Used In Software Engineering? This week we will explore the breadth of the applications of Artificial Intelligence (AI) and Search-based techniques in Software Engineering Research. To explore the breadth we will survey the most recent instances of Software Engineering research conferences/workshops and journals: ICSE, ASE, ESEC/FSE, ICSME, ICST, ISSTA, MSR, SoftVis/VISSOFT, SSBSE, RAISE, TSE, TOSEM.
  • We will divide into groups of 2 and each group will review the papers published in a particular conference. Each paper that is an AI-based or Search-based technique will be recorded

Week 5

  • Applications of AI to Software Testing. In the second half of this week’s lecture we will consider how Artificial Intelligence (AI) techniques can be applied to software testing research problems. We will explore one example of machine learning (ML) applied to predicting the results of mutation testing
  • Group Discussion on “Researcher Bias: The Use of Machine Learning in Software Defect Prediction.” Please read the paper in advance and be prepared to discuss the paper content as well as your personal critique of the research. Paper: [PDF]

Week 6

  • Software Testing with AI – Paper Presentations. In groups of two, students will present on a recent software testing with AI paper. Presentations will be 10 minutes in length and should include a summary of the paper and a research critique.

Week 7

  • Project Proposal Presentations. Each project group will present their proposed course project.
    • Video: [Google Drive]

Week 8

  • Introduction to applications of AI to Software Engineering/Computer Science education. In the first half of the lecture we will have a brainstorming exercise regarding the different contexts and stakeholders in applications of AI in SE/CS Education.
  • In the second half of the lecture we will work in break out groups to further explore the applications of AI to a specific educational context with a specific stakeholder.

Week 9

  • How can AI-based analysis help educators support students? In today’s lecture we’ll watch a seminar by Prof. Rose Luckin a Professor of Learner Centred Design at University College London (UCL).

Week 10

  • Software Engineering Education with AI – Paper Presentations I. In groups of two, students will present on a recent software engineering education with AI paper. Presentations will be 10 minutes in length and should include a summary of the paper and a research critique.

Week 11

  • Software Engineering Education with AI – Paper Presentations II. In groups of two, students will present on a recent software engineering education with AI paper. Presentations will be 10 minutes in length and should include a summary of the paper and a research critique.
    • Video: [Google Drive]
  • Updates on Course Projects. Student groups will provide informal updates on their course projects. A discussion of the final presentation and final deliverables will take place.
    • Video: [Google Drive]