Course Description

Contents and Objecives:
Many areas of computer science, ranging from Computer Vision and Artificial Intelligence to Computer Networking and Computer Systems Design rely heavily on computer-based solutions to mathematical problems. Similarly, a wide range of application areas for computer systems center around solving computational problems.
This course discusses basic sources of error in mathematical calculations on computers and introduces concepts and approaches of numeric computation to address Computer Engineering and Computer Science problems. In particular, the course will cover techniques to address linear and non-linear equations, interpolation and approximation, unconstrained and constrained optimization, decomposition, randomization, and compression. Throughout, techniques will be put in the context of important problems in areas of Computer Engineering and Computer Science and techniques covered will include traditional as well as novel methods, including Monte Carlo techniques.

Students successfully completing this course will have gained important insights into issues of numerical calculation and mathematical problem solving on computers, will have obtained a basic repertoire of numerical problem solving algorithms and be able to apply them to the solution of computational problems in Computer Science and Computer Engineering.

All students are expected to have a background in basic probability, Calculus, and Algebra before attending this course. In particular, students should have passed the courses Engineering Probability (IE 3301), Algorithms and Data Structures (CSE 2320), Calculus II (Math 2425), and Differential Equations & Linear Algebra (Math 3319) or an equivalent. In case of questions, students should seek the consent of the instructor to attend the course.

There are a wide range of good books on this topic, all of which cover many of topics covered in the course and can be used as references for the course. However, none of them covers everything in the course. As a consequence the course does not follow any one specific textbook. However, each of the two recommended books below covers most of the material and should be a good reference. Throughout the course, course topics in the on-line syllabus will be linked to the corresponding chapters in these books.

Recommended Textbook Options:

Other useful reading materials:

Course Materials:
Additional course materials will be available electronically or through the reserve section in the Engineering Library. Also, changes, if any, will be announced by e-mail.

Homework assignments and Projects in the course will contain programming components. While no specific programming language is required, the use of programming languages that support mathematical operations (such as Matlab, Octave, Scilab, Python, etc.) is encouraged. All programs must compile and run on university machines (either university servers or the machines in the open OIT laboratories) and instructions regarding how to compile and run the code must be provided with the program submission. In case of doubts regarding the use of a particular programming language or software package, contact the instructor prior to its use.

E-mail and WWW page:
There is a course web page at . All changes and supplementary course materials will be available from this site. In addition, necessary changes or important announcements will also be distributed by e-mail. In order to receive class-related messages you have to send an e-mail to the instructor (

Tentative Office Hours:
Office hours for the course will be held by the instructor in ERB 522,
TuTh 12:30 - 1:30, and W 1:00 - 2:00. The first office hours will be held on Tuesday, August 30. Times are subject to change and will be posted.

If for some reason you can not make it to any of these office hours, please inform the instructor.

Manfred Huber 2011-08-30