CCOG for CIS 122 archive revision 202104
You are viewing an old version of the CCOG. View current version »
- Effective Term:
- Fall 2021 through Winter 2025
- 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
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.
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.