UBCx: Software Engineering: Introduction

UBCx: Software Engineering: Introduction

by University of British Columbia

Software Engineering: Introduction

Course Description

Welcome to "Software Engineering: Introduction," an advanced-level course that will revolutionize your approach to building large-scale software systems. This comprehensive course, offered by UBCx, is designed to equip you with the essential skills and knowledge required to excel in the dynamic field of software engineering. You'll dive deep into the world of multi-version software systems, learning how to design, build, and test them effectively as part of a team.

What Students Will Learn

  • Building non-trivial software systems using agile methodologies in a collaborative environment
  • Specifying both functional and non-functional aspects of software systems with precision
  • Designing and testing software systems using industry-standard techniques
  • Understanding and implementing refactoring to enhance system quality
  • Exploring cutting-edge topics such as REST and Async programming
  • Applying software engineering principles to large-scale software systems
  • Working effectively in teams using agile development processes

Prerequisites

To get the most out of this advanced course, you should have completed the following courses:

  • How to Code: Simple Data
  • How to Code: Complex Data
  • Software Construction: Data Abstraction
  • Software Construction: Object-Oriented Design

Course Coverage

  • Agile development methodologies
  • REST and Async programming
  • Software specification techniques
  • Software design principles and practices
  • Refactoring strategies for improved code quality
  • Information security in software development
  • Team-based software development processes
  • Multi-version software system management
  • Software testing methodologies

Who This Course Is For

  • Aspiring software engineers looking to advance their careers
  • Computer science students seeking practical, industry-relevant skills
  • Professional developers aiming to enhance their software engineering expertise
  • Anyone interested in learning how to build and manage large-scale software systems

Real-World Application of Skills

  • Lead or contribute effectively to software development teams in various industries
  • Design and implement robust, scalable software solutions for complex problems
  • Improve existing software systems through strategic refactoring and optimization
  • Ensure the security and quality of software products
  • Apply agile methodologies to streamline development processes and increase productivity
  • Communicate effectively with stakeholders about software specifications and design
  • Adapt to rapidly evolving technologies and development practices in the software industry

Syllabus

Week 0: Introduction
Week 1: Process
Week 2: Specifications
Week 3: Testing
Week 4: High Level Design
Week 5: Low Level Design
Week 6: Construction
Week 7: Information Security
Week 8: Intellectual Property and Ethics

By the end of this course, you'll be well-equipped to tackle complex software engineering challenges, work effectively in team environments, and contribute significantly to the development of large-scale software systems. Don't miss this opportunity to elevate your software engineering skills and advance your career in this exciting and ever-evolving field!

Similar Courses
Course Page   UBCx: Software Engineering: Introduction