处理大型和复杂的软件系统并确保这些系统保持可维护性需要严格的、独立的实践。软件必须经过良好的指定、良好的实现和良好的测试。这门课程涵盖了现代编程语言中的概念和技术,这些概念和技术有助于支持良好的实践(比如OO概念、泛型和异常处理),以及用Java编写IO和GUIs文件的具体应用程序。为了有效地管理大型软件系统的复杂性,需要更高阶的语言概念。特别是,需要实现具有健壮和小接口的模块的方法。本课程利用Java编程语言向学生介绍面向对象编程、数据抽象、规范和单元测试等概念。