YoVDO

Software Development

Offered By: The University of British Columbia via edX

Tags

Software Development Courses Java Courses Node.Js Courses Typescript Courses IntelliJ IDEA Courses JUnit Courses Data Abstraction Courses Object-Oriented Design Courses

Course Description

Overview

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. But even more important, you will develop the ability to see the common structures in programs and in tools and learn how to apply these skills to master new technologies quickly.

Upon completion of 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 how to apply engineering principles, such as Agile, to build a full-stack software system.



Course 6: Software Development Capstone Project

Apply all the skills you have learned to work through the challenging and rewarding task of designing a full-stack system.




Courses

  • 3 reviews

    6 weeks, 8-10 hours a week, 8-10 hours a week

    View details

    In this project course, the final course in the Software Development MicroMasters program, you will learn how to input, manipulate, and return data with a modern web development stack. Using TypeScript and Node, you will manipulate large amounts of information using a domain-specific querying language. Backend, REST, and front-end technologies will be required to successfully complete the project.

    In teams, students will work through the project in several sprints. In each sprint, students will produce a deliverable that is evaluated using an automated test suite. The feedback you will receive from this suite will be limited. To succeed at the project you will need to create your own private test suite to further validate each deliverable.

    By working through such a large-scale development project, you will learn technical development skills, and gain experience with how teams develop software in the industry.

    This is the largest project in the Software Development MicroMasters program. Verified learners will have access to greatly increased staff coaching to help complete the project.

  • 1 review

    6 weeks, 8-10 hours a week, 8-10 hours a week

    View details

    This is the third course in the Software Development MicroMasters program. You will learn how to build larger and more complex software systems using the Java programming language.

    The course begins with the topic of data abstraction - from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type hierarchies and polymorphism can be used to decrease redundancy in your code. The course wraps up with a discussion of how to design robust classes.

    By the end of the course, you will have a solid foundation in designing software in Java, and be ready to move onto Software Construction: Object-Oriented Design, where you will learn more complex design patterns and principles designing object-oriented programs.

    Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.

  • 1 review

    6 weeks, 8-10 hours a week, 8-10 hours a week

    View details

    This course, part of the Software Development MicroMasters program, will dig deep into the principles of object oriented design, and introduce new abstraction techniques and design patterns. You will use these techniques to build an application that makes use of popular online services and APIs – the most complex software design project so far.

    By the end of the course, you will have a solid foundation in Java and Object-Oriented Design, as well as many software development concepts that can be applied to any language.

    Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.

  • 2 reviews

    8 weeks, 8-10 hours a week, 8-10 hours a week

    View details

    This course introduces how teams design, build, and test multi-version software systems.

    You will learn software engineering principles that are applicable to the breadth of large-scale software systems. The course explores topics such as agile development, REST and Async programming, software specification, design, refactoring, information security, and more.

    By the end of this course, learners will work in teams, applying an agile software development process to specify, design, and test multiple versions of complex software systems.


Taught by

Reid Holmes, Gail Murphy, Elisa Baniassad and Gregor Kiczales

Tags

Related Courses

Design Patterns in Java
Udemy
A Java Spring Boot Microservices project for beginners
Udemy
Kotlin for Android: Creating a Two-Screen App
LinkedIn Learning
The Android O and Java Developer Course - Build 9 Full Apps
Skillshare
Git & GitHub with Eclipse, Android studio & IntelliJ
Udemy