This course covers the advanced programming and computational skills necessary for solving engineering problems. These include (1) efficient data structures and algorithms for modeling and processing real-world data sets such as trees, hash tables, searching, priority queues, etc. (2) techniques for simulation and visualization such as numerically solving ODEs and PDEs, viewing control, programmable shader, etc., (4) tools for version controlling, scripting, and code building including sub-version, git, and cmake. Students will experience practical training in the above knowledge and programming skills through bi-weekly assignments and a final team project. Prerequisites- 24-780 Engineering Computation or equivalent C++ and OpenGL programming experience. Prerequisite: 24-780.