Skip to content
GitHub Action edited this page Jun 3, 2026 · 19 revisions

BYU Logo

BYU Advanced Software Construction cs240

cover

Welcome

Advanced software construction (CS240) helps you become responsible software engineers who continually improve your ability to frame, design, build, and test reliable systems. You will work with object-oriented design, network protocols, distributed services, and databases, while emphasizing long-term code quality, correctness, and responsibility for software others depend on—all while reflecting an eternal stewardship and concern for humanity.

Outcomes

You will learn to:

  • Frame software engineering problems by clarifying system purpose, constraints, and responsibilities, demonstrating both sound technical judgment and a sense of ownership for the long-term impact of software others depend on.
  • Explore object-oriented frameworks, network protocols, distributed services, and databases with curiosity and discipline, developing accurate mental models while valuing learning as essential to responsible engineering practice.
  • Design software systems using object-oriented principles and clear interfaces that support reliability and maintainability, motivated by care for future users, collaborators, and the evolution of the system over time.
  • Build distributed applications that faithfully translate design intent into readable, testable implementations, showing diligence and integrity in the quality of code produced.
  • Test software systems systematically to validate behavior and uncover failure modes, valuing evidence, honesty, and accountability as foundations of trustworthy software.

Culminating Experience

You will build a Semester long project that builds a full stack application that has been rigorously tested. The project will have the following characteristics.

  1. Documented and tested distributed architecture
  2. Account creation and authentication
  3. Multiple user roles
  4. Enforcement of role restrictions
  5. Creation and joining of groups
  6. Real-time peer interaction over a network
  7. Persistent storage of data
  8. Robust handling of failure cases

Checkpoints

As you work on your culminating experience project you will pass through a series of checkpoints that demonstrate your increasing mastery.

checkpoints.jpg

Technologies

The course covers a full software stack of technologies and topics.

  • Command console
  • Java
  • HTTP
  • Web services
  • Data services demonstrated with MySQL
  • Realtime peer to peer interaction with WebSocket
  • Security
  • Testing
  • Application design

Clone this wiki locally