Available courses

The course emphasizes the development of numerical algorithms to provide solutions to common problems formulated in science and engineering. The primary objective of the course is to develop the basic understanding of the construction of numerical algorithms, and the applicability and limits of their appropriate use. Numerical algorithms are studied in order to understand the guaranteed accuracy that various methods provide and the efficiency for large scale systems. Topics include the standard algorithms for numerical computation:

  • numerical solutions for equations in one variable,
  • numerical solutions for systems of linear equations,
  • numerical solutions for systems of nonlinear equations,
  • interpolation and approximation of functions by simpler computational building blocks (e.g., polynomials),
  • numerical differentiation,
  • numerical integration,
  • numerical solutions of ordinary differential equations;
Exercises will include computational experiments in Java programming language.

The course applies interpretation of basic mathematical concepts to common business usage, covering such topics as linear algebra, percentages, interest, time value of money, functions, differential calculus, and integral calculus.

This is a first course for future professional programmers and computing scientists.

The course emphasizes the use of structures: control structures, data structures, and component structuresFurther, patterns of interconnecting structures define architectures. The course presents standard architectures for component construction and patterns of control construction and data construction.

The course emphasizes component structures over the other two forms. Computing has matured into a distributed, component-based activity, where computer  software is assembled from standardized components connected together by means of standardized interfaces. By no means does this ignore the classic developments of control and data structures: they are addressed in due course at an appropriate level of detail. But component-level issues drive the software design process, and the course emphasizes this fact.