----- Course Info -----

Recommended Reading

----- Part 1 : Getting Started -----

Module 1: Introduction to Software Engineering

In this module we'll introduce terms and establish foundational information needed to understand future modules.


Supporting Materials:
Module 2: Software Development Teams and Project Selection

This week we are going to select your project and form teams. By the end of class you should have a project selected and have formed a team. Make an appointment to meet with your client next week sometime after class, but don't meet with them yet. We need to talk about requirements gathering.


Supporting Materials:
Module 3: Requirements Engineering

Now that you have a team and a project, we need to establish the requirements for your project. Let's get into the details.


Supporting Materials:
Module 4: Introduction to Design Patterns

You should now be working on your projects. I'd like to take a break this week from SE theory and do some coding. We'll introduce the concept of design patterns, and look at three examples.


Supporting Materials:

----- Part 2 : Planning and Design -----

Module 5: Process Models Classic and Agile

At this point in your project you should have nailed down what you are going to do and gathered requirements. It is time to start thinking about your process. It is important to be familar with the classic and the modern process models as you always want to use the right tool for the right job.


Supporting Materials:
Module 6: Design Concepts

You may have already started playing with your code and building prototypes, but it's time to formally design your application. A good application does not start with coding, but with designing.T Take what you feel you need from this content and apply it to mapping out and explaining your application's design.


Supporting Materials: Demonstration Code:
Module 7: Design Patterns Part II

This week we won't have a new topic lecture because I don't want to add anything new just yet. I want you to be focused on making headway on your semester long project. However, one of the goals of this course is to make sure you are introduced to variety of design patterns. I'd like to further that goal by having you work in class today in groups to explore some patterns we haven't covered yet. I thought it might be fun to do this in reverse. You'll explore the code without knowing what pattern it is uses.

----- Part 3 : Wrapping up -----

Module 8: Software Quality and Testing

Software Quality and Testing metrics are an important part of software engineering. How do we know when are software is quality and how do we know if we are improving?

Module 9: Design Patterns Part III

I'd like to wrap up design patterns by looking at a final few. Links to the design pattern demonstration code can be found in the slides.

Design Patterns

----- Part 1 -----

----- Part 2 -----

----- Part 3 -----

Semester Long Project