Software Design

Course Number: CIS 122
Transcript Title: Software Design
Created: September 1, 2012
Updated: June 7, 2016
Total Credits: 4
Lecture Hours: 30
Lecture / Lab Hours: 0
Lab Hours: 30
Satisfies Cultural Literacy requirement: No
Satisfies General Education requirement: No
Grading options: A-F (default), P-NP, audit
Repeats available for credit: 0

Prerequisites

MTH 20 or equivalent placement test scores. Prerequisite/concurrent: WR 121.

Recommended

CIS 120 or CAS 133 or BA 131

Course Description

Covers software design as part of the software development life cycle. Includes basic logic constructs, testing programs, use case descriptions, modularity and an introduction to object design. Provides examples of well-designed software projects. Additional lab hours may be required. Recommended: CIS120 or CAS 133 or BA 131. Prerequisites: MTH 20 or equivalent placement test scores. Prerequisite/concurrent: WR 121. Audit available.

Intended Outcomes

On completion of this course the student should be able to:

  1. Translate simple business problems into programming algorithms applying Use Case descriptions and a design methodology.
  2. Translate standard business programming algorithms proficiently into a physical programming language that meets user requirements.
  3. Communicate algorithmic solutions to other programmers using a standard design methodology.
  4. Test a solution to a business problem both before and after coding a physical solution.

Outcome Assessment Strategies

Assessment may include:  Projects with original work, computer problem solving exercises, web page design, journals, case studies, group discussions, and open ended real world problems.

Course Activities and Design

Activities may include: online readings and videos, class discussions, reflection writings, open ended assignments such as creating an installation, how it works or training material for some aspect of computer technology.

Course Content (Themes, Concepts, Issues and Skills)

Outcome: Translate simple real-world problems into programming algorithms applying a design methodology.
Content that supports the outcome:
  • Eliciting requirements
  • Logic Constructs
    • Sequence
    • Selection/Alternation/If-Then-Else
    • Repetition/Iteration/Looping
  • Standard algorithms such as:
    • Counters
    • Accumulators
    • Minimum / Maximum
  • Design tools, such as:
    • Pseudocode
    • Flowcharts
  • Modularity
    • Cohesion
    • Coupling
  • Code reuse
Outcome: Translate standard programming algorithms into a physical programming language that meets user requirements.
Content that supports the outcome:
  • Variables
    • Declaration
    • Assignment
    • Data types
    • Scoping
  • Boolean and arithmetic expressions
  • Functions
    • Parameters
    • Return values
  • Input Validation
  • Additional Programming Topics as required for programming assignments
Outcome: Communicate algorithmic solutions to other programmers using a standard design methodology.
Content that supports the outcome:
  • Employing Standards for:
    • Naming
    • Indentation
    • Design
    • Code
  • Design tools, such as:
    • Pseudocode
    • Flowcharts
Outcome: Test a solution to a problem both before and after coding a physical solution.
Content that supports the outcome:
  • Interpreting pseudocode
  • Program testing and debugging
Overall Themes for the Course
  • Software Development Life Cycle
  • Creating software solutions from problem specifications
  • est practices
  • Logical vs. physical solution