analysisCS706: Analysis of Software Artifacts

Instructor: Ben Liblit, 6357 CS
office hours Thu, 3:30 pm – 5:00 pm
or by appointment
Teaching Assistant: Balasubramanian (Balu) Sivan, 4395 CS
office hours by appointment

Section 1, Fall 2009
Mon/Wed/Fri, 2:30 pm – 3:45 pm *
room 1325, Computer Science Building

audienceAudience and Prerequisites

This class is intended to introduce students to current research topics in software engineering.

Students should be familiar with the basics of programming languages and program representation. An undergraduate compiler class should provide the necessary background. A graduate level compiler class or other exposure to the analysis or design of programming languages would also be helpful. A degree of mathematical sophistication and moderate programming experience is expected.

If you are unsure of your qualifications please contact the instructor, who will be happy to help you decide if CS706 is right for you. You are also welcome to just sit in for a few days and see how the class feels.

infoGeneral Description

This course will cover specific research areas following an idealized view of how software is developed, i.e., starting with conceptualizing a system, to designing, building, testing, and maintaining it. Our focus will be on the tangible, technical artifacts of software engineering, such as formal specifications, source code, test suites, bug databases, etc. At each stage we will consider challenges that practitioners face in creating and effectively using these artifacts, and consider how analysis of these artifacts can support and improve modern software engineering practice.

This course is motivated by three dominating trends in modern software development:

materialsCourse Materials

This class has no required textbook. Course notes and papers will be distributed by the instructor or posted online as needed.

meetingsClass Meetings

This 3-credit class should meet 150 minutes per week: two 75-minute lectures for each of 15 weeks. We will meet three times per week at the start of the semester, twice per week during the middle of the semester, and just once per week toward the end. The idea is to load you up with lots of interesting ideas early on, then reduce your in-class commitments as you start spending more time working on your semester projects. See the tentative lecture schedule for more detail.

evaluationEvaluation

Students will be graded based on weekly written paper reviews, class participation, presentations, occasional homework problem sets, and a substantial, research-oriented class project. See also the concrete grading breakdown.