Compare offerings and share your lists with others.
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: proposal, requirements, specification, design, and implementation.
During the spring quarter, students will have a chance to complete their projects, give a final presentation, and learn how to write a formal technical paper suitable for publication. In addition, we will cover analysis of algorithms and complexity analysis (essential aspects of understanding the range of what we can do computationally). There will also be opportunities for more focused work that aligns with individual students interests.
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.
This offering will prepare you for careers and advanced study in: computer science, software engineering, and technology use and development in an application area.
- Hybrid Online Learning - This offering delivers < 25% of its instruction online, rather than via face-to-face contact between you and your instructors.
Students are expected to have completed Computer Science Foundations or equivalent, including discrete mathematics, computer architecture, and one year of computer programming.
Scheduled for: Day
Located in: Olympia
Final schedule and room assignment:Spring
First class meeting: Monday, September 25 at 10am (Lib 2612)
|2017-07-27||This program has been extended into spring quarter.|