Computer Science Curriculum

  • EECS 328 - Numerical Methods for Engineers

    CATALOG DESCRIPTION:Introduction to numerical methods; numerical differentiation, numerical integration, solution of ordinary and partial differential equations. Students write programs in C++, FORTRAN, C, or Matlab using methods presented in class.

  • EECS 335 - Introduction to the Theory of Computation

    CATALOG DESCRIPTION:This course gives an introduction to the mathematical foundations of computation. The course will look at Turing machines, universal computation, the Church-Turing thesis, the halting problem and general undecidability, Rice’s theorem, the recursion theorem, efficient computation models, time and space (memory) bounds, deterministic and nondeterministic computation and their relationships, the P versus NP problem and hard problems for NP and beyond.

    Note:This course will replace Math 374 (Theory of Computability and Turing Machines) which is listed as a recommended way to fulfill the undergraduate theory breadth requirement in CS but hasn’t been taught in several years. The Math department is happy to give it up.


  • EECS 336 - Design and Analysis of Algorithms

    CATALOG DESCRIPTION:Algorithm design and analysis is fundamental to all areas of computer science and gives a rigorous framework for the study optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer, dynamic programming, network flows, reductions, and randomized algorithms. Important themes that will be developed in the course include the algorithmic abstraction-design-analysis process and computational tractability (e.g., NP-completeness).


  • EECS 356 - Introduction to Formal Specification and Verification

    CATALOG DESCRIPTION: Introduction to formal techniques used for system specifications and verifications: temporal logic, set theory, proofs, and model checking. TLA+ (Temporal Logic of Actions) specifications. Safety and liveness properties. Real time specs and verifications.