Apr 23, 2024  
2022-2023 College Catalog 
    
2022-2023 College Catalog [ARCHIVED CATALOG]

CIS 129 - Programming and Problem Solving I

4 Credits, 4 Contact Hours
4 lecture periods 0 lab periods

Introduction to personal and business computer systems. Includes components of a computer system; advantages and disadvantages of programming languages; traditional
languages, native code and object-oriented concepts; source code versus executable code; and data structures and data representation. Also includes language statements; expressions
components; control structures; problem-solving techniques; program test data, debugging and termination; and solving simple problems and creating programs.

Prerequisite(s): MAT 095  or MAT 097  or concurrent enrollment, or placement into MAT 151 .
Gen-Ed: Meets AGEC-S Options requirement


  button image Prior Learning and link to PLA webpage

Course Learning Outcomes
  1. Develop programs using control structures.
  2. Develop programs using repetition structures.
  3. Design programs using arrays/lists.
  4. Create programs, using functions to solve problems.
  5. Demonstrate the ability to use object-oriented concepts such as encapsulation, constructors, methods, and properties

Outline:
  1. Components of a Computer System
    1. Types of computers
    2. Hardware
      1. CPU
      2. Input/output devices
      3. Storage
      4. Memory
      5. Computer codes and numeric representation – simple conversions
  2. Advantages and Disadvantages of Programming Languages
    1. Machine code
    2. Low level programming languages, assemblers, assembly languages
  3. Overview of Traditional Interpreted and Compiled
    1. C and C++
    2. Java
    3. Python
  4. Source Code Versus Executable Code
    1. Language interpreters (run-time translators)
    2. Assemblers (1-to-1 translators)
    3. Compilers (1-to-N translators)
  5. Data Structures and Data Representation
    1. Variables
      1. Global
      2. Local
    2. Elementary data types
      1. Character
      2. String
      3. Integer
      4. Floating
      5. Boolean
    3. Identify and explain the difference between:
      1. Data types
      2. Memory addresses
      3. Variables types
      4. Literals
      5. Constants
      6. Number base systems (binary, decimal and hexadecimal)
      7. Floating point
      8. Decimal data representation
      9. Direct addressing
      10. Relative addressing
    4. Identify and explain structured data types and data abstraction 
      1. File
      2. Record
      3. Array/list
        1. Single dimension
        2. Multidimensional
  6. Language Statements
    1. Computer language statements, syntax, and semantics
    2. Input/output statements
    3. Assignment statements
    4. Elementary language statements and structured language statement
      1. Assignment and unconditional statements
      2. Selection and looping statements
  7. Expressions Components
    1. Operators, operands, and results
      1. Unary
      2. Binary
    2. Simple types
      1. Arithmetic
      2. Logical
      3. Relational
    3. Result
      1. Unconditional (not Boolean)
      2. Conditional (Boolean)
        1. True
        2. False
  8. Control Structures
    1. Three basic control structures and their sub-constructs
    2. Sequence
    3. Selection (Decision, If Then/Else) – case statement available in some languages
    4. Repetition (Looping, Iteration) – for statement available in some languages
  9. Problem Solving Techniques
    1. Top-down design – unitizing a problem into modules
      1. Step-wise refinement of modules
      2. Control modules
      3. Process modules
    2. Cohesion and coupling concept
    3. Systems and program mapping tools
      1. System flow
      2. Structure chart
      3. Detail program logic
    4. Program hierarchy – tracing design output to its source
      1. Input data
      2. Algorithm
    5. Elementary program design structure model
      1. Setup
      2. Process
      3. Wrap-up
    6. Solving simple problems using algorithms and a program design language
      1. Flowcharting
      2. Pseudo code
    7. Translating Pseudo Code into Python
    8. Program Test Data and Termination
    9. Program test data
      1. Limits/range testing
      2. Max/min data type testing
      3. Logic (selection) testing all paths
    10. Program errors
      1. Design errors
      2. Syntax compilation errors
      3. Semantic run-time errors
    11. Program termination and return codes
      1. Normal termination
      2. Abnormal program termination
      3. Return codes and use of return codes
  10. Desk Checking and Debugging
    1. Desk check on paper
    2. Breakpoint
    3. Step into
    4. Step over
    5. Variable watch
  11. Solve Simple Problems and Create Programs Using Java, Python, or C#
    1. Solve simple problem into PDL
      1. Keyboard data entry to print, keyboard entry to array/list, and array/list to print
      2. Arithmetic calculations, counters, accumulators
      3. Cross footing and accumulator totaling
      4. Conditional statements
      5. Boolean expressions
      6. Print using:
        1. Unformatted output
        2. Formatted output
        3. Report headings
        4. Report footers
    2. Translate the PDL into code
    3. Test the program code
    4. Debug the program
  12. Explain Object-Oriented Concepts such as Encapsulation, Constructors, Methods, and Properties
    1. Object-oriented programming
    2. Objects
    3. Methods
    4. Properties
    5. Private
    6. Public
    7. Constructors
    8. Encapsulation