- To be able to design an efficient algorithm for solving a given problem that takes advantage of any special structure that the problem has.
- To be able to write clear, efficient Matlab code to implement your algorithm.
- To think about and design algorithms with vector and matrix operations in mind.
- To be familiar with some useful Matlab functions.
- To be able to think about error and stability in your algorithms.
- To be familiar with important computational problems that arise in science and engineering.

Assignments will be graded on correctness\completeness, efficiency, and on style. Style includes such things as comments, spacing and indentation, and efficiency includes proper memory management and vectorization of code.

You are encouraged to discuss the assignments and exercises with your classmates but the work you ultimately submit must be your own (or your own and your partners - see Academic Integrity, below, for more details). You may work with a partner to complete the assignments (but not the exercises). If you work with a partner, you should submit only one copy of your assignment with both of your names.

There will be an in-class midterm and a final exam. Additionally, there will be occasional, short quizzes given in class which may or may not be announced ahead of time. Each short quiz will count the same as a one-day exercise.

Assignments | 35% |

Exercises and quizzes | 10% |

Midterm | 25% |

Final | 30% |

For emphasis, I have included an excerpt from the COMPUTER SCIENCE ADDENDUM below:

"Unless otherwise specified by the individual professor, the work you do in Computer Science courses is expected to be the result of your individual effort - the use of a computer in no way modifies the normal standards of the above Code. You may discuss work with other students, and give or receive "consulting" help from other students, but such permissible cooperation should never involve one student having in his or her possession a copy of all or part of another student's assignment - regardless of whether that copy is on paper, on a computer disk, or in a computer file. This implies that there is no legitimate reason to send a copy of a program from one computer account to another, or to be logged-on to another student's account.

Discussion of general strategy or algorithms is permissible, but you may not collaborate in the detailed development or actual writing of an assignment. It is also your responsibility to protect your work from unauthorized access. It is inadvisable to discard copies of your programs in public places. This applies to both hand-written and programming assignments.

The penalty for any violation of this Code in Computer Science courses may be failure in the course. This includes collaboration, providing a copy, or accepting a copy of work that is expected to be individual effort."