Learn software engineering principles for large-scale systems, covering agile development, REST, testing, and system design in this comprehensive course.
Learn software engineering principles for large-scale systems, covering agile development, REST, testing, and system design in this comprehensive course.
This comprehensive course delves into the fundamentals of software engineering, teaching students how teams design, build, and test multi-version software systems. Through hands-on experience, participants learn essential principles applicable to large-scale software development. The curriculum covers crucial topics including agile development methodologies, REST and Async programming, software specification, system design, refactoring techniques, and information security. Students work in teams to apply agile development processes, creating and testing multiple versions of complex software systems. The course emphasizes practical experience alongside theoretical knowledge, ensuring graduates can effectively contribute to real-world software development projects.
4.3
(12 ratings)
54,401 already enrolled
Instructors:
English
English
What you'll learn
Build non-trivial software systems using agile methodologies in team environments
Master techniques for specifying functional and non-functional system requirements
Develop expertise in software system design and testing methodologies
Understand and apply refactoring principles for quality system development
Implement security best practices in software development
Create comprehensive software specifications and documentation
Skills you'll gain
This course includes:
PreRecorded video
Graded assignments, exams
Access on Mobile, Tablet, Desktop
Limited Access access
Shareable certificate
Closed caption
Get a Completion Certificate
Share your certificate with prospective employers and your professional network on LinkedIn.
Created by
Provided by

Top companies offer this course to their employees
Top companies provide this course to enhance their employees' skills, ensuring they excel in handling complex projects and drive organizational success.





There are 9 modules in this course
The course provides a comprehensive introduction to software engineering principles for large-scale systems. Students learn through a combination of theoretical concepts and practical application, covering essential topics such as agile development, software specification, system design, testing methodologies, and information security. The curriculum emphasizes team-based learning, with students working collaboratively to develop and test complex software systems. Special attention is given to modern development practices, including REST programming and async development, ensuring students gain relevant industry skills.
Introduction
Module 1
Process
Module 2
Specifications
Module 3
Testing
Module 4
High Level Design
Module 5
Low Level Design
Module 6
Construction
Module 7
Information Security
Module 8
Intellectual Property and Ethics
Module 9
Fee Structure
Instructor

6 Courses
Distinguished Software Engineering Scholar and Educational Innovator
Reid Holmes is a Professor of Computer Science at the University of British Columbia, where his research focuses on improving developers' abilities to build and maintain high-quality software systems. After earning his PhD from the University of Calgary in 2008, he completed a postdoctoral fellowship at the University of Washington with David Notkin before joining the University of Waterloo as an Assistant Professor. His groundbreaking research takes a human-centric approach to software engineering, with significant contributions to software testing, developer tools, and collaboration systems. His excellence has been recognized through multiple awards including ACM SIGSOFT Distinguished Paper Awards, the CS-Can/Info-Can Outstanding Young Computer Science Research Prize, and the UBC Computer Science Department Faculty Teaching Award. As Director of the Software Practices Lab, he leads research in recommendation systems, software reuse, documentation, and testing. His influential works include studies on mutation testing validity, test suite effectiveness, and conflict detection in collaborative development, which have been widely adopted by major software companies. His commitment to education is evidenced by his recognition as a UBC Open Educational Resource Champion and his ongoing work to improve software engineering education.
Testimonials
Testimonials and success stories are a testament to the quality of this program and its impact on your career and learning journey. Be the first to help others make an informed decision by sharing your review of the course.
4.3 course rating
12 ratings
Frequently asked questions
Below are some of the most commonly asked questions about this course. We aim to provide clear and concise answers to help you better understand the course content, structure, and any other relevant information. If you have any additional questions or if your question is not listed here, please don't hesitate to reach out to our support team for further assistance.