Computer Science 101

Data Abstraction

Gregory M. Kapfhammer


flickr photo by "Cowboy" Ben Alman shared under a Creative Commons (BY-NC-ND) license

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in the Textbook

Software Development

Design

Implementation

Testing

Debugging


flickr photo shared by Michael Matti under a Creative Commons ( BY-NC ) license

Software Design

Designing Classes

Identify the basic operations and the groupings

Organize similar classes into packages

Any questions about using class design?

Using Pseudocode

Express the basic operations of our programs

Avoid the implementation complexities of Java

Any questions about using pseudocode?

Software Implementation

Code Comments

Give an overview of classes with JavaDoc comments

Explain all method signatures with JavaDoc comments

Why is it appropriate to adopt this standard?

Software Testing

Establish a confidence in program correctness

Identify defects into our programs

How do you know that you picked the right inputs?

Not all test cases are equivalent!

Software Debugging

Fixing Defects

Determine where the defect is lurking in our program

Develop and introduce a fix for the defect

How do you know that the fix did not break something?

Disciplined software development avoids ❤-ache!

Any questions about software development?