Fall 2015, Winter 2016 and Spring 2016 quarters
Large software systems have proven to be notoriously difficult to build, modify, and maintain despite the best efforts of many very capable people over the last 50 years. This is an upper-division program intended to help students gain the technical knowledge required to understand, analyze, modify, and build complex software systems.
We will concentrate on learning the organization and complexity of large software systems that we do understand, and gaining practical experience in order to achieve a deeper understanding of the art, science, collaboration, and multidisciplinary skills required to work on computing solutions in real-world application domains. The technical topics will be selected from data structures, algorithm analysis, operating systems, networks, information security, object-oriented design, and analysis. The program seminar will focus on various technical topics in the software industry. Students will have an opportunity to engage in a substantial computing project through all the development phases of proposal, requirements, specification, design, and implementation.
This program is for advanced computer science students who satisfy the prerequisites. We also expect students to have the discipline, intellectual maturity, and self motivation to complete homework at an advanced level, identify project topics, organize project teams and resources, and complete advanced project work independently.
Fields of Study
Preparatory for studies or careers in
Location and Schedule
Offered during: Day
Advertised schedule: First winter class meeting: Monday, January 4 at 10am (Lib 2612)