CCOG for CIS 122 Fall 2024


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: computer literacy. Audit available. Prerequisites: (WR 115 and RD 115) or IRW 115 and MTH 60 or equivalent placement.

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.

General education philosophy statement

This course covers fundamental programming concepts, including the representation of problems and processes in mathematical and logical forms. It also covers problem-solving strategies which can be used to test and debug computer programs. This supports the Gen Ed principle that students should be able to reason qualitatively and quantitatively.

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

  • 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.
  • Analyze questions or problems that impact the community and/or environment using quantitative information. QUANTITATIVE REASONING

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. 
  • Direct instruction in quantitative reasoning, as assessed by the Math, Science and Computer Science Quantitative Reasoning Rubric.