Thursday, May 29, 2014

New Course Autumn 2014: Computational Science and Scientific Computing for EEs

22649 EE 400 Section B Advanced Topics in EE
22651 EE 590 Section A Advanced Topics in Digital Computers

Instructor: Vikram Jandhyala
Credits: 4
Autumn 2014
Tuesdays and Thursdays: 2:30pm-­4:20pm
Miller Hall (MLR) 301


Understanding of scientific computing algorithms and their efficient computation on modern computing architectures is inherently interesting and powerful. It is also an important  skill  set  for  Electrical  and  Computer  Engineering  careers  whether  in academia, industry, labs, or startups. 


Audience: EE seniors and EE beginning graduate students interested in developing a basic background and skills in scientific computing as applied to ECE areas.

Languages: C, python, MATLAB. The main emphasis will be more towards using open source environments and languages though there may be occasional reliance on commercial tools and environments .

Motivation: computational science and scientific computing is a critical skill set for many of our students headed to Industry and startups. In addition, much of the research in our department whether done by undergraduate or graduate students relies on strong programming skills for real-world applications.

Instructor: Professor Vikram Jandhyala has direct hands on scientific computing and code  development  experience  at  the  University  of  Illinois,  Ansoft  Corporation  (now part of ANSYS), University of Washington, and at Nimbic (now part of Mentor Graphics). He is also the UW director of the UW-­?PNNL Northwest Institute for Advanced Computing and directs the Applied Computational Engineering Lab at UWEE.

Prerequisites: Basic understanding of data structures and use of a programming language. Some knowledge of linear algebra and MATLAB is beneficial.

Syllabus:

Weeks  1  and  2:  Basic  background.  Code  Development  Enviroments.  Basic  Data Structures. Basic understanding of Algorithms. Coding Practices. Debugging.

Weeks 3 and 4. Computational linear algebra. Direct solvers. Iterative solvers and preconditioners. Eigenvalues and singular values. Engineering and scientific examples from EE fields.

Weeks 5 and 6. Temporal dynamics. Ordinary Differential Equations. State space. PDEs.    Time stepping and convergence. Visualization and analysis. Stability. Engineering and scientific examples from EE fields.

Weeks 7 and 8. Graph representations and computations. Adjacency matrices. Laplacian.   Pagerank.   Community   detection.  Flow   and   diffusion.  Visualization. Engineering and scientific examples from EE fields.

Weeks 9 and 10.  Scientific parallel and distributed computing.  Amdahl’s Law.  Task partitioning, load balancing, and latency. Map Reduce. OpenMP and MPI.

Assignments and Grading: Weekly graded group homework programming assignments, final written exam.