CS619 Program Comprehension   MSc. in Computer Science, 2009-2010

Background information

The purpose of this graduate-level course is to introduce the techniques used in the analysis of programs. Such techniques provide the foundation for a wide range of tools used in software engineering; examples include tools that: Many of the techniques to perform these tasks have a basis in the theory of compiler design, which you may have covered as an undergraduate. Unlike a typical undergraduate compilers course, we'll be taking a specifically software-engineering view of program analysis. The course is practically-based, concentrating on static and dynamic analysis of Java programs, but also dealing with the more complex issues arising in pointer-based languages such as C++.

The overall emphasis is on contributing to research in the area, rather than tool-building, and strategies for evaluating research work in the area are discussed. As such, the course reviews current work from relevant conferences such as the IEEE International Workshop on Program Comprehension, the IEEE Working Conference on Reverse Engineering and the ACM Symposium on Software Visualization.

Module Objective

"To provide the necessary background for students interested in conducting research into program comprehension, reverse engineering and source code analysis."

Module Content

Timetable

This course is currently scheduled to take place in semester 2. If you've any queries about the course in advance of this, please don't hesitate to contact me.

Moodle logo Closer to the start date, more course information will available through the university's moodle system.


James Power,
Dept. of Computer Science, NUI Maynooth
Last revised: 21 September 2009.