Skip to content

Commit ed2b816

Browse files
committed
update(readme) with current outcomes
1 parent a7bbfe4 commit ed2b816

3 files changed

Lines changed: 29 additions & 17 deletions

File tree

README.md

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
![BYU Logo](byuLogo.png)
2-
3-
# BYU **Advanced Software Construction** `cs240`
1+
# **BYU** Advanced Software Construction `cs240`
42

53
![cover](softwareconstructioncover.jpg)
64

75
## Welcome
86

9-
Advanced Software Construction provides you with the experience and skills necessary to use a modern programming language in an advanced development environment to design, test, and build a large multi-user application. Your application will have a client frontend program that communicates, over the network, with a centralized backend server.
10-
11-
The content for this course is represented by the following parts.
7+
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.
128

139
- [Syllabus](instruction/syllabus/syllabus.md) - Course policies
1410
- [Instruction](instruction/modules.md) - Course topics
@@ -18,14 +14,32 @@ The content for this course is represented by the following parts.
1814

1915
## Outcomes
2016

21-
By the end of the course you should have experienced the following outcomes.
17+
You will learn to:
18+
19+
- **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.
20+
- **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.
21+
- **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.
22+
- **Build** distributed applications that faithfully translate design intent into readable, testable implementations, showing diligence and integrity in the quality of code produced.
23+
- **Test** software systems systematically to validate behavior and uncover failure modes, valuing evidence, honesty, and accountability as foundations of trustworthy software.
24+
25+
## Culminating Experience
26+
27+
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.
2228

23-
- Learn to construct a medium-scale server program with data persistence in a principled way by applying relevant engineering techniques such as up-front design, quality code construction, unit testing, assertions, and error handling.
24-
- Learn and apply basic software design principles such as single responsibility, low coupling, avoidance of code duplication and information/data hiding to create modular code.
25-
- Learn and apply the basics of relational database design, modeling and programmatic access.
26-
- Learn and apply basic security principles and concepts.
27-
- Learn to validate a program’s behavior against its specification using testing practices.
28-
- Use modern software tools including integrated development environments, testing frameworks, debuggers, version control, and documentation processing tools.
29+
1. Documented and tested distributed architecture
30+
1. Account creation and authentication
31+
1. Multiple user roles
32+
1. Enforcement of role restrictions
33+
1. Creation and joining of groups
34+
1. Real-time peer interaction over a network
35+
1. Persistent storage of data
36+
1. Robust handling of failure cases
37+
38+
## Checkpoints
39+
40+
As you work on your culminating experience project you will pass through a series of checkpoints that demonstrate your increasing mastery.
41+
42+
![checkpoints.jpg](checkpoints.jpg)
2943

3044
## Technologies
3145

@@ -34,11 +48,9 @@ The course covers a full software stack of technologies and topics.
3448
- Command console
3549
- Java
3650
- HTTP
37-
- Web Services
38-
- Data Services demonstrated with MySQL
51+
- Web services
52+
- Data services demonstrated with MySQL
3953
- Realtime peer to peer interaction with WebSocket
4054
- Security
4155
- Testing
4256
- Application design
43-
44-
_Image Source: Dall-E_

byuLogo.png

-16 KB
Binary file not shown.

checkpoints.jpg

148 KB
Loading

0 commit comments

Comments
 (0)