Student-Originated Software

Fall 2017, Winter 2018, and Spring 2018 quarters

Taught by

computer science, mathematics
computer science
mathematics, computer science
  • UG


Students are expected to have completed Computer Science Foundations or equivalent, including discrete mathematics, computer architecture, and one year of computer programming.

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.

Program Details

Fields of Study

computer science mathematics

Preparatory For

computer science, software engineering, and technology use and development in an application area.


Fall Signature Winter Signature Spring Closed

Location and Schedule

Final Schedule and Room Assignment

Campus Location


Time Offered


Advertised Schedule

First class meeting: Monday, September 25 at 10am (Lib 2612)

Online Learning

Hybrid Online Learning < 25% Delivered Online


2017-07-27This program has been extended into spring quarter.