The techniques and tools used by organizations to develop production-quality
software systems are different from what students typically encounter in
undergraduate course work. This course introduces these techniques and tools
in the context of a semester-long, team-oriented development project.
Students who complete this course will demonstrate that they can:
- Software project management:
- Describe, explain and use the disciplines of the traditional
software development lifecycle: analysis; design;
implementation; testing and maintenance.
- Describe, explain and use the disciplines of agile software
- Compare and contrast traditional and agile development
- Compare and contrast software quality techniques.
- Software development:
- Design and implement a substantive software system.
- Design, implement and use a relational database system.
- Design, implement and assess a user interface.
- Software Tools:
- Use project management tools.
- Use software development tools.
- Use software configuration management tools.
- Professional Practice:
- Design and produce technical documents.
- Design and execute technical presentations.
- Work effectively on teams.
The course technologies are based on Google Android, Android Studio, PostgreSQL, the Unified
Modeling Language (UML) and GitHub. The material is considered in the context of the reformed