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.
The content for this course is represented by the following parts.
- Instruction
- Chess
- Pet Shop
- Assignments, quizzes, and tests submitted through Canvas
Although assignment due dates are the same for all sections, the lecture schedule may vary by instructor.
By the end of the course you should have experienced the following outcomes.
- 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.
- 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.
- Learn and apply the basics of relational database design, modeling and programmatic access.
- Learn and apply basic security principles and concepts.
- Learn to validate a program’s behavior against its specification using testing practices.
- Use modern software tools including integrated development environments, testing frameworks, debuggers, version control, and documentation processing tools.
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
Image Source: Dall-E