Thank you for signing up for the course! We look forward to working with you and hearing your feedback in our forums.
Need help getting started?
Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson and Vlissides
You can download Supplemental Materials, Lesson Videos and Transcripts from Downloadables (bottom right corner of the Classroom) or from the Dashboard (first option on the navigation bar on the left hand side).
An introduction to the course and to the discipline of software engineering.
Exploration of the phases of software development, common development processes, and common software engineering pitfalls.
The first lesson in a series on software development tools.
The second lesson in a series on software development tools.
Learn how to collect and record detailed project requirements.
An review of object orientated analysis and design and an introduction to unified modeling language, a tool that will be used through the course.
A discussion of software design and the unified software process.
A demonstration of requirements gathering and object oriented analysis and design.
An introduction to design patterns, general reusable solutions to commonly occurring design problems.
We will combine the previous topics into the context of a UML based software process, or USP. We will discuss how USP was defined, its main characteristics, its phases and how it can be applied in practice.
An introduction to topics related to software verification and testing.
Explore black-box testing in depth and apply the techniques to a real program. Black-Box testing is testing based on teh description of the program without considering the software's internal details.
A discussion of white-box testing (also known as structural testing) and techniques.
An overview of agile development and test driven development. These processes are driven by the testing techniques introdued previously.
Learn about software refactoring, the process of taking an existing program and improving its design.
During this course you will design and implement a project using the principles of software engineering taught in the lectures. Refer to the Final Project Overview for more details.