Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

The University of British Columbia

Software Development Foundations

The University of British Columbia via edX MicroMasters

Overview

Coursera Plus Monthly Sale: All Certificates & Courses 40% Off!

Speed is critical in software development. Successful developers are those who are able to quickly learn new technologies and new software systems, and they do this by seeing any software, in any programming language, as common repeating patterns—not just detailed lines of code.

In this MicroMasters program, you will learn this same kind of expert thinking. By working through several software development projects, you will learn specific technologies, including Java, JUnit, IntelliJ IDEA, Typescript and Node.js. Most importantly, you will develop the ability to see the common structures in programs and in tools and learn how to apply these skills to quickly master new technologies.

Upon completing this program, you will be able to write programs using a systematic approach and to design programs that are easy to maintain. You will also learn how to use agile methods in order to build software programs that solve real world problems.

With the skills obtained in this program, you will have the confidence to apply for positions that use any programming language or technology.

Syllabus

Courses under this program:
Course 1: How to Code: Simple Data
Learn the secret to writing well-tested and easy to improve programs, that will set you up to master any programming language

Course 2: How to Code: Complex Data
Learn how to design more complex programs, using new data structures, abstraction, and generative recursion.

Course 3: Software Construction: Data Abstraction

Learn powerful data abstraction and decomposition techniques to build large, complex programs.



Course 4: Software Construction: Object-Oriented Design
Learn how to design large software systems that solve real-world problems using object-oriented design techniques.

Course 5: Software Engineering: Introduction

Learn software engineering principles that are applicable to the breadth of large-scale software systems.



Courses

Taught by

Reid Holmes, Gail Murphy, Elisa Baniassad and Gregor Kiczales

Reviews

Start your review of Software Development Foundations

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.