Programming Concepts and Methodology I
  • Final
  • Computer Science
  • Programming Concepts and Methodology I
  • 3.0
  • Introduces the discipline of computer science using a high level language utilizing programming and practical hands-on problem solving.

  • 122
  • First course in a sequence of courses that is compliant with the standards of the Association for Computing Machinery (ACM).

  • None

  • COMP 112 (CS0) or Comparable  Experience

  • I. Programming Fundamentals (PF)
    PF1. Fundamental programming constructs
    Minimum coverage time: 9 hours

    Topics

    1. Basic syntax and semantics of a higher-level language
    2. Variables, types, expressions, and assignment
    3. Simple I/O
    4. Conditional and iterative control structures
    5. Functions and parameter passing
    6. Structured decomposition

     Learning Outcomes

    1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit;
    2. Modify and expand short programs that use standard conditional and iterative control structures and functions;
    3. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions;
    4. Choose appropriate conditional and iteration constructs for a given programming task;
    5. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces; and
    6. Describe the mechanics of parameter passing. 

    PF2. Algorithms and problem-solving
    Minimum coverage time: 6 hours

    Topics

    1. Problem-solving strategies
    2. The role of algorithms in the problem-solving process
    3. Implementation strategies for algorithms
    4. Debugging strategies
    5. The concept and properties of algorithms

    Learning outcomes

    1. Discuss the importance of algorithms in the problem-solving process;
    2. Identify the necessary properties of good algorithms;
    3. Create algorithms for solving simple problems;
    4. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems; and
    5. Describe strategies that are useful in debugging.

    II. Programming Languages (PL)
    PL1. Overview of programming languages
    Minimum coverage time: 2 hours

    Topics

    1. History of programming languages
    2. Brief survey of programming paradigms
    3. Procedural languages
    4. Object-oriented languages

    Learning outcomes

    1. Summarize the evolution of programming languages illustrating how this history has led to the paradigms available today; and
    2. Identify at least one distinguishing characteristic for each of the programming paradigms covered in this unit.

    PL4. Declarations and types
    Minimum coverage time: 3 hours

    Topics

    1. The conception of types as a set of values together with a set of operations Declaration models (binding, visibility, scope, and lifetime)
    2. Overview of type-checking

    Learning outcomes

    1. Explain the value of declaration models, especially with respect to programming-in-the-large;
    2. Identify and describe the properties of a variable such as its associated address, value, scope, persistence, and size;
    3. Discuss type incompatibility;
    4. Demonstrate different forms of binding, visibility, scoping, and lifetime management; and
    5. Defend the importance of types and type-checking in providing abstraction and safety.

    Topics fulfilling these tasks and outcomes could include OOPS and other programming elements.  This course is recommended to contain hands-on programming and problem solving tasks.

  • At the conclusion of this course, the student should be able to:

    1. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions;
    2. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems
    3. Summarize the evolution of programming languages illustrating how this history has led to the paradigms available today
    4. Demonstrate different forms of binding, visibility, scoping, and lifetime management

  • May include any or all of:

    Exams
    Quizzes
    Programming Projects
    Discussions
    Class Presentations

  • Savitch, Walter: Problem Solving with C++ Latest Edition

  • May 12, 2012