90 likes | 107 Views
Engage with classic works and recent research in program comprehension to understand the human mind's encounter with complex modern software. Delve into tasks like debugging, testing, and refactoring. Discover how programmers comprehend and engage with code.
E N D
COMP 7/8085: Program Comprehension Fall 2016 Dr. Scott Fleming, Instructor http://flic.kr/p/ND9U
What will you learn about in this course?“Classic” worksandhot, recent researchinprogram comprehension
How will you learn it?By reading, presenting, and discussingresearch papers!(We’ll watch some videos too) But before we get into all that…
Why do you think program comprehensionis an interesting research topic? Here’s what I think:Program comprehension is the placewhere the human mind(with it’s strengths and limitations)meets the staggering complexityof modern software
Why is software so complex? Scaling up software is NOT merely therepetition of the same elements in larger size;it is necessarily an increase in different elements, which interact non-linearly. (Brooks, 1995)
How would you comprehend jEdit? ~100,000 Lines of Java
Program comprehension pretty much always happens in the context of some task(Weirdos engage in program comprehension for its own sake)What software engineering activities commonly involve program comprehension? Just about any activity that involves working with code:debugging, testing, reusing code, refactoring, etc…
If you wrote the program,do you really need to comprehend it? Alas, yup People forget stuff (a lot of stuff) “Did I write this???” Programmer’s understandingmay be flawed (bugs) You can’t keep all the codein your head anyway
Given this situation, what do you suppose some interesting research questions regarding program comprehension are? Good thoughts! As we look at the research, watch for work addressing the questions you thought of Now, let’s have a look at the course policies…