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 - Course topics
- Chess - Instructions for building your application
- Pet Shop - Demonstration application
- Canvas - Submit assignments and tests
Although assignment due dates are the same for all sections, the lecture schedule may vary by instructor.
- Schedule for Professor Jensen's Sections
- Schedule for Dr. Rodham's Sections
- Schedule for Dr. Wilkerson's Sections
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: Christina Morillo