A joint IEEE Computer Society/ACM Task Force has developed "curricular guidelines for undergraduate programs in computing" [7]. Numerical Analysis falls under the Computational Science and Numerical Methods area. The topics and learning objectives outlined by the ACM/IEEE Computing Curriculum are reproduced here.

Topics:

- Floating-point arithmetic
- Error, stability, convergence
- Taylor's series
- Iterative solutions for finding roots (Newton's Method)
- Curve fitting; function approximation
- Numerical differentiation and integration (Simpson's Rule)
- Explicit and implicit methods
- Differential equations (Euler's Method)
- Linear algebra
- Finite differences

Learning objectives:

- Compare and contrast the numerical analysis techniques presented in this unit.
- Define error, stability, machine precision concepts, and the inexactness of computational approximations.
- Identify the sources of inexactness in computational approximations.
- Design, code, test, and debug programs that implement numerical methods.

The ACM/IEEE Computing Curriculum includes a chapter which describes the desired characteristics of a computer science graduate. These largely overlap with those called for by ABET [4]. To become ABET certified an engineering program ...

must demonstrate that their graduates have:

- an ability to apply knowledge of mathematics, science, and engineering
- an ability to design and conduct experiments, as well as to analyze and interpret data
- an ability to design a system, component, or process to meet desired needs
- an ability to function on multi-disciplinary teams
- an ability to identify, formulate, and solve engineering problems
- an understanding of professional and ethical responsibility
- an ability to communicate effectively
- the broad education necessary to understand the impact of engineering solutions in a global and societal context
- a recognition of the need for, and an ability to engage in life-long learning
- a knowledge of contemporary issues
- an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice

What is missing are pedagogical approaches for specific courses which help students develop these general characteristics. This paper describes teaching techniques which have been adapted to a numerical analysis course for computer science students. The course attempts to integrate some of these more nebulous educational goals in a practical way. We leverage techniques and concepts developed and studied in educational research to achieve this goal.