### Course Content and Outcomes Guide for CIS 122 Effective Summer 2020

- Course Number:
- CIS 122
- Course Title:
- Introduction to Programming Logic
- Credit Hours:
- 4
- Lecture Hours:
- 30
- Lecture/Lab Hours:
- 0
- Lab Hours:
- 30
- Special Fee:
- $12.00

#### Course Description

Covers the logic of programming and how to break problems down into algorithmic solutions. Includes problem solving, basic logic constructs, testing and debugging programs, modular programming, and secure coding. Emphasizes development of secure, well-designed software projects. Prerequisites: (WR 115 and RD 115) or IRW 115 and MTH 60 or equivalent placement. Recommended: CIS 120 or CIS 121 or CAS 133 or BA 131. Audit available.#### Intended Outcomes for the course

Upon completion of this course students should be able to:

- Translate simple real-world problems into programming algorithms applying a design methodology.
- Translate programming algorithms into a physical programming language that meets user requirements, and validate input.
- Communicate algorithmic solutions to other programmers using a common design methodology.
- Develop and use a test plan for determining the correctness of a program.
- Identify and fix defects and common security issues in code.

#### Course Activities and Design

This course is presented with a combination of lectures and labs.

Students will be expected to complete assignments which include design, programming, and testing.

#### Outcome Assessment Strategies

Students will complete the following assessments:

- Translate real-world problems to program designs
- Write algorithms that illustrate typical programming applications (some typical application examples follow):
- Counters & Accumulators
- Minimum & Maximum
- Common business/math/science problems

- Produce a design document in a standard format
- Develop test plan to prove solutions

#### 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
- Best practices
- Logical vs. physical solution

#### Related Instruction

##### Computation

Hours: 16

- Translate simple real-world problems into programming algorithms applying a design methodology.
- Translate programming algorithms into a physical programming language that meets user requirements, and validate input.

Direct instruction (+ study time) in discipline-related computations involving:

- Boolean algebra and arithmetic expression construction
- Evaluation as applied in a specific programming language's type system.