View Descriptor
Descriptor Details
-
Descriptor Title
Programming Concepts and Methodology I
-
C-ID Number
122
-
Units
3.0
-
Date of Last Revision
10/12/2017 11:44:03 PM GMT+0000
General Description
Introduces the discipline of computer science using a high level language utilizing programming and practical hands-on problem solving.
Prerequisites
No information provided
Corequisites
None
Advisories
COMP 112 (CS0) or Comparable Experience
Content
I. Programming Fundamentals (PF)
PF1. Fundamental programming constructs
Minimum coverage time: 9 hours
Topics
- Basic syntax and semantics of a higher-level language
- Variables, types, expressions, and assignment
- Simple I/O
- Conditional and iterative control structures
- Functions and parameter passing
- Structured decomposition
Learning Outcomes
- 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
Minimum coverage time: 6 hours
Topics
- Problem-solving strategies
- The role of algorithms in the problem-solving process
- Implementation strategies for algorithms
- Debugging strategies
- The concept and properties of algorithms
Learning outcomes
- 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
Minimum coverage time: 2 hours
Topics
- History of programming languages
- Brief survey of programming paradigms
- Procedural languages
- Object-oriented languages
Learning outcomes
- 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
Minimum coverage time: 3 hours
Topics
- The conception of types as a set of values together with a set of operations Declaration models (binding, visibility, scope, and lifetime)
- Overview of type-checking
Learning outcomes
- 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.
Lab Activities
No information provided
Objectives
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
Evaluation Methods
May include any or all of:
Exams
Quizzes
Programming Projects
Discussions
Class Presentations
Textbooks
Savitch, Walter: Problem Solving with C++ Latest Edition
Descriptor Administration
-
Public Review Needed
No
-
Next Descriptor Review
No information provided
-
Resubmission Requirements for Courses
No information provided
-
Resubmission Deadline
No information provided
-
Comments
First course in a sequence of courses that is compliant with the standards of the Association for Computing Machinery (ACM).
-
Notes
No information provided
-
Keywords
No information provided
Delete Descriptor?
Are you sure you want to delete this descriptor?
Deleted descriptors cannot be restored.