Course Number:
CIS 122
Transcript Title:
Software Design
Created:
Aug 09, 2022
Updated:
Jun 29, 2023
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, P/NP, Audit
Default Grading Options
A-F
Repeats available for credit:
0
Prerequisites

placement into MTH 65 or MTH 98

Prerequisite/Concurrent

WR 121 or WR 121Z

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: CIS 120 or CAS 133 or BA 131. Prerequisite: placement into MTH 65 or MTH 98. Prerequisite/concurrent: WR 121 or WR 121Z. Audit available.

Course 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.

Suggested Outcome Assessment Strategies

The determination of assessment strategies is generally left to the discretion of the instructor. Here are some strategies that you might consider when designing your course: writings (journals, self-reflections, pre writing exercises, essays), quizzes, tests, midterm and final exams, group projects, presentations (in person, videos, etc), self-assessments, experimentations, lab reports, peer critiques, responses (to texts, podcasts, videos, films, etc), student generated questions, Escape Room, interviews, and/or portfolios.

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

Outcome #1: Translate simple real-world problems into programming algorithms applying a design methodology.
  • 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 #2: Translate standard programming algorithms into a physical programming language that meets user requirements.
  • 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 #3: Communicate algorithmic solutions to other programmers using a standard design methodology.
  • Employing Standards for:
    • Naming
    • Indentation
    • Design
    • Code
  • Design tools, such as:
    • Pseudocode
    • Flowcharts
Outcome #4: Test a solution to a problem both before and after coding a physical solution.
  • 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

Suggested Texts and Materials