Survey and application of programming languages, libraries, and scientific visualization tools. Programming assignments emphasize software development skills. Prerequisites: MAT 274 [Introductory Differential Equations], MAT 342 [Linear Algebra], and CSE 200 [Introduction to Computer Science]; their equivalents; or instructor permission.
Thursday, Dec. 6, 12:20-2:10 p.m.The final exam is a take-home exam. Please bring a printout of your code to class on Friday and also email a copy to mat420hw at gmail.com (see instructions in the final exam copy).
This course is designed for advanced undergraduate and beginning graduate students who want to learn software development skills that are useful for a computer-intensive research project or internship in the mathematical sciences. Homework assignments will consist of programming exercises to implement software utilities, simple numerical methods, and data analysis tools. We will use tools that are commonly found in a Unix/Posix environment.
You should have the equivalent of one year (two semesters) of computer programming coursework or the equivalent experience. Any structured programming language is fine (e.g., Java, C, C++). Examples of the kinds of things that you should know include: how to call one routine from another; how to write an iterative loop; and how to declare and index an array of values.
You should have had the equivalent of one year of calculus and analytic geometry and a basic knowledge of linear algebra (e.g., how to multiply matrices, the relationship between matrices and the solution of linear systems of equations). Some exposure to ordinary differential equations (e.g., the exponential growth equation) is helpful but not essential.
The course is divided into five parts.