Class Location and Time: 9:30-10:45am TR, McBryde 224.
Instructor: Dr. Na Meng, firstname.lastname@example.org, Office Hour: TR 10:45am-11:45pm, 122 McBryde.
GTA: Ying Zhang, email@example.com, Office Hour: By appointment only.
Software engineering is concerned with developing and maintaining software systems that behave reliably and efficiently, and satisfy all requirements that customers have defined for them.
In our course, we will briefly introduce all phases of software life cycle: requirements analysis, design, implementation, testing, and maintenance. Different from the undergraduate-level software engineering course (CS3704) that emphasizes analysis and design, this course will mainly focus on software implementation and maintenance.
Specifically, the course will introduce advanced useful techniques and tools to help program comprehension and transformation, such as program differencing, clone detection, and program analysis. Various active software engineering research areas, such as empirical study, fault localization, and automatic program repair, will be also presented and discussed to improve critical thinking and cultivate interest in software engineering.
The goal is to improve skills of programming and writing, promote creative and deep thinking, and pose interesting research questions or investigations about software engineering.
Virginia Tech Honor Code applies: The work you turn in must be your own. Do your own work, report on it accurately, and acknowledge any assistance. If you learn some research ideas or techniques from literature instead of thinking them out yourself, cite the information source properly.
Note: If any student needs special accommodations because of a disability, please contact the instructor during the first week of classes.