CCOG for CIS 122 archive revision 201702

You are viewing an old version of the CCOG. View current version »

Effective Term:
Spring 2017 through Summer 2017

Course Number:
CIS 122
Course Title:
Introduction to Programming Logic
Credit Hours:
4
Lecture Hours:
30
Lecture/Lab Hours:
0
Lab Hours:
30

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

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

Quantitative Reasoning

Students completing an associate degree at Portland Community College will be able to analyze questions or problems that impact the community and/or environment using quantitative information.

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.