Course Goals:

Students should be able to:

1.     Demonstrate problem solving approaches. (i.e. break problems into logical pieces that can be solved (programmed) independently; including approximation approaches, solving a continuous problem with discrete approach, randomness approach, vector/matrix approaches are key in many engineering majors)

2.     Develop and evaluate algorithms. (i.e. for solving problems in a suitable language and environment; concern with accuracy, efficiency)

3.     Demonstrate knowledge of the limits and capabilities of computational approaches to problem solving, including accuracy, overflow, and computational limitations.

4.     Develop and apply test cases that can be used to verify the accuracy of programmed solution

5.     Implement their design and algorithms in an appropriate programming language and environment utilizing the following fundamental programming constructs: arithmetic statements (both scalar and vector/matrix), I/O (including file I/O), selection, iteration, functions (both external libraries and thier own), and linear data structures. Documentation of their code and good programming practice are also required.

6.     Identify and correct both syntactic and semantic errors in code and use a debugging environment to resolve them

7.     Present data in a meaningful way using packaged plotting and graphing systems.