Software Design

Course Number: CIS 122
Transcript Title: Software Design
Created: September 1, 2012
Updated: August 26, 2019
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

The determination of teaching strategies used in the delivery of outcomes is generally left to the discretion of the instructor. Here are some strategies that you might consider when designing your course: lecture, small group/forum discussion, flipped classroom, dyads, oral presentation, role play, simulation scenarios, group projects, service learning projects, hands-on lab, peer review/workshops, cooperative learning (jigsaw, fishbowl), inquiry based instruction, differentiated instruction (learning centers), graphic organizers, etc.

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