Dec 09, 2024  
2023-2024 College Catalog 
    
2023-2024 College Catalog [ARCHIVED CATALOG]

CIS 129 - Programming and Problem Solving I

4 Credits, 5 Contact Hours
3 lecture periods 2 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; Meets CTE - Options requirement



Button linking to AZ Transfer course equivalency guide    button image Prior Learning and link to PLA webpage

Course Learning Outcomes
  1. Develop programs using basic data types, control structures and repetition  structures.
  2. Design programs using arrays, lists and/or dictionaries.
  3. Decompose problems to create functions.
  4. Explain 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.        
    3. Simple types        
      1. Arithmetic
      2. Logical
      3. Relational       
    4. 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    
    1. Solve simple problem into Program Design Language (PDL)        
      1. Arithmetic calculations, counters, accumulators
      2. Cross footing and accumulator totaling
      3. Conditional statements
      4. Boolean expressions
      5. 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   


Effective Term:
Fall 2023