Computer Science 203:

Software Engineering

Gregory M. Kapfhammer

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in the Textbook

Exercises in Programming Style

Chapters 5, 7,8 and 10 through 15

Chapter 5: Pipeline


Decomposition into separate functions

No shared state between functions

Solve a problem with function composition

What are the trade-offs of this style?

Chapter 7: Infinite Mirror

Infinite Mirror

Programming through induction

Recursive functions

Difficult to implement in Python

Chapter 8: Kick Forward

Kick Forward

Similar to the pipeline style

Passes function as parameter to function

Call function and then passed function

What are the trade-offs of this style?

Chapter 10: "Things"

Chapter 10: Objects


Decompose problem domain into objects

Objects encapsulate data and provide procedures

Data is accessed through the procedures

What are the trade-offs of this style?

Chapters 11 through 15 are similar!

Similar to programming in Java

Application to the software project

What are we still missing?