EditAttach

# Computer Science A, B, C

To do: Subdivide these topics into the indiviual courses.

### Topic: Fundamental Constructs

• 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 Objectives:

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
6. Describe the mechanics of parameter passing.

### Topic: Algorithmic Problem Solving

• 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 Objectives:
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. 10. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems. 1
4. Describe strategies that are useful in debugging.

### Topic: Recursion

• The concept of recursion
• Recursive mathematical functions
• Simple recursive functions
Learning Objectives:
1. Describe the concept of recursion and give examples of its use.
2. Identify the base case and the general case of a recursively defined problem.
3. Compare iterative and recursive solutions for elementary problems such as factorial.
Topic Event Driven Programming
• Event-handling methods
• Event propagation
• Exception handling
Learning Objectives:
1. Explain the difference between event-driven programming and command-line programming.
2. Design, code, test, and debug simple event-driven programs that respond to user events.
3. Develop code that responds to exception conditions raised during execution.

### Topic: Object Oriented

• Object-oriented design
• Encapsulation and information-hiding
• Separation of behavior and implementation
• Classes and subclasses
• Inheritance (overriding, dynamic dispatch)
• Polymorphism (subtype polymorphism vs. inheritance)
Learning Objectives:
1. Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism.
2. Design, implement, test, and debug simple programs in an object-oriented programming language.
3. Describe how the class mechanism supports encapsulation and information hiding.
4. Design, implement, and test the implementation of “is-a” relationships among objects using a class hierarchy and inheritance.
5. Compare and contrast the notions of overloading and overriding methods in an object-oriented language.

### Topic: Algorithmic Problem Solving

• 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 Objectives:
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.
5. Describe strategies that are useful in debugging.
Edit | Attach | Print version |  | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2013-10-07 - JimSkon

TWiki

* Webs

Copyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback