Skip to content

CS3213 Lecture Material

Lecture 1: Introduction

slides 1, slides 2, recording

In this lecture, we introduced the foundations and the project in this course. Additionally, we introduced the field of "requirements engineering".

Lecture 2: UML

slides, recording (part 1), recording (part 2)

In this lecture, we discussed UML semantics, including sequence diagram based formal modeling of the system description beyond scenarios.

Lecture 3: State Charts

slides, recording

In this lecture, we described the nuances of state chart semantics.

Lecture 4: Intelligent Tutoring System

slides, recording (part 1), recording (part 2), recording (part 2)

In this lecture, we gave an idea of the area behind the course project - Intelligent tutoring systems. We discussed the general topic, available tools, involved technical challenges, and the feedback issue in intelligent tutoring.

Lecture 5: Static Analysis (Part 1 Motivation)

slides, recording

In this lecture, we discussed program representations such as the Control Flow Graph (CFG).

Lecture 6: Static Analysis (Part 2 Program Representation)

slides, recording

In this lecture, we covered simpler descriptin of static program analysis based on data-flow analysis.

Lecture 7: White-box Testing / Test suite estimation

slides, recording

In this lecture, we discussed white box testing and test-suite estimation.

Lecture 8: Mid-term

Lecture 9: Debugging

slides, recording

In this lecture, we continued with our discussions on testing and analysis. Some background material on software debugging was presented, including slicing and fault localisation.

Lecture 10: Non-functional issues: Security and Timeliness

slides 1, slides 2, recording

In this lecture, we discussed software performance issues and timing-critical software design.

Lecture 11: Invitation Talks

slides

In this lecture, we had two talks on emerging research topics in automated programming by Dr. Sumit Gulwani and Professor Ilya Sergey.

Lecture 12: Revision of topics

slides, recording

In this lecture, we first continued our discussion on sofware performance aspects, and then recapped previous course topics with some warm-up exercises.