The goal of this course is to introduce students to program analysis and its many applications in software engineering, particularly in improving software quality and software productivity. Concretely, students who successfully complete this course should be able to: (1) understand and apply program analysis techniques, such as dataflow analysis and type-based analysis; (2) implement program analysis; (3) understand and apply software testing techniques, such as black-box testing and white-box testing; and (4) understand and apply refactoring techniques.
Spring | Summer | Fall | ||
---|---|---|---|---|
(Session 1) | (Session 2) | |||
2025 | ||||
2024 | ||||
2023 | ||||
2022 | ||||
2021 | ||||
2020 | ||||
2019 | ||||
2018 | ||||
2017 | ||||
2016 | ||||
2015 | ||||
2014 | ||||
2013 | ||||
2012 | ||||
2011 | ||||
2010 | ||||
2009 | ||||
2008 | ||||
2007 | ||||
2006 | ||||
2005 | ||||
2004 | ||||
2003 | ||||
2002 | ||||
2001 | ||||
2000 | ||||
1999 | ||||
1998 |