Software. Think like an expert architect and create quality software using design patterns and principles.
- Software Architecture
- Java
- Software Design Pattern
- Object-Oriented Programming (OOP)
- Object-Oriented Design
- Object-Oriented Analysis And Design
- Unified Modeling Language (UML)
- Web Service
- Microservices
- Representational State Transfer (REST)
- Service-Oriented Architecture
In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation. Practical examples and opportunities to apply your knowledge will help you develop employable skills and relevant expertise in the software industry.
The Capstone Project involves a Java-based Android application that you will evaluate and develop throughout the four courses of the Specialization. This application will evolve from a single user app that stores data locally to a multi-user app that stores data remotely. In each course you will be given a Java codebase as a starting point and will have to document and implement new features using your knowledge gained in the course. Tutorials are provided to help you understand the starter codebase and learn the basics of Android development.
You are expected to have basic Java programming knowledge. The capstone application will require you to use Android Studio, an integrated development environment. To learn more about Android Studio, please review the tutorials for Windows or Mac.
Associate Professor
University of Alberta
http://www.cs.ualberta.ca/~kenw/
Kenny Wong is an Associate Professor in the Department of Computing Science, at the University of Alberta, Canada. He received his B.Sc. and Ph.D. degrees in Computer Science from the University of Victoria, Canada. He has been a university instructor for 16 years, regularly teaching team-oriented, project-based software engineering courses, including several offerings of software process and product management. His research in software engineering focuses on a
UAlberta is considered among the world’s leading public research- and teaching-intensive universities. As one of Canada’s top universities, we’re known for excellence across the humanities, sciences, creative arts, business, engineering and health sciences.