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).
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).
Prerequisites
Prerequisites: None
Corequisites: None
Advisories/Recommendations: COMP 112 (CS0) or Comparable Experience
Pedagogical Approach & Learning Outcomes
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 & Other Information
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 (Open (Access) Textbook)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 (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 (Open (Access) Textbook)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 (Open (Access) Textbook)Our design of this introductory computer-science subject reflects two major concerns. First, we want to establish the... More