Course ePortfolio

Programming Concepts and Methodology I

This collection contains the California Open Educational Resources Council (CA OER) list of peer-reviewed textbooks for Programming Concepts and Methodology I (common course-id COMP 122), one of the top 50 college courses identified for inclusion in the California Open Online Library for Education (COOLforEd).

CID Number: COMP 122

General Course Description: COMP 122

Introduces the discipline of computer science using a high-level language utilizing programming and practical hands-on problem solving.

Minimum Units: 3.0

Any rationale or comment: First course in a sequence of courses that is compliant with the standards of the Association for Computing Machinery (ACM).

Share

Prerequisites: None

Corequisites: None

Advisories/Recommendations: COMP 112 (CS0) or Comparable  Experience

Pedagogical Approach

None

Learning Outcomes

I. Programming Fundamentals (PF)
PF1. Fundamental programming constructs

  • Analyze and explain the behavior of simple programs involving the fundamental programming constructs covered by this unit;
  • Modify and expand short programs that use standard conditional and iterative control structures and functions;
  • 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;
  • Choose appropriate conditional and iteration constructs for a given programming task;
  • Apply the techniques of structured (functional) decomposition to break a program into smaller pieces; and
  • Describe the mechanics of parameter passing. 

PF2. Algorithms and problem-solving

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

II. Programming Languages (PL)
PL1. Overview of programming languages

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

PL4. Declarations and types

  • Explain the value of declaration models, especially with respect to programming-in-the-large;
  • Identify and describe the properties of a variable such as its associated address, value, scope, persistence, and size;
  • Discuss type incompatibility;
  • Demonstrate different forms of binding, visibility, scoping, and lifetime management; and
  • 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:

  • 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;
  • Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems
  • Summarize the evolution of programming languages illustrating how this history has led to the paradigms available today
  • Demonstrate different forms of binding, visibility, scoping, and lifetime management

Assessment

May include any or all of:

  • Exams
  • Quizzes
  • Programming Projects
  • Discussions
  • Class Presentations

Other Information

None

Course Resources

  • How To Think Like A Computer Scientist: Learning with Python 3
    The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think... More
  • Introduction to Computer Science
    Introduction to Computer Science (Open (Access) Textbook)
    This is a free, online textbook offered by Wikiversity. The book covers the same materials as an introductory class for... More
  • Programming Languages: Application and Interpretation
    This book unites two approaches to teaching programming languages, one based on a survey of languages and the other on... More
  • Structure and Interpretation of Computer Programs
    Our design of this introductory computer-science subject reflects two major concerns. First, we want to establish the... More