Skip Navigation

AMS 595, Fundamentals of Computing 
This course provides an introduction to several modern approaches for developing computer programs and their use to solve mathematical problems. It will cover the fundamentals of programming in MATLAB, Python, and C/C++, including scripting, basic data structures, algorithms, scientific computing, performance optimization, software engineering and program development tools. No previous programming experience is required.

Fall semester, 1-9 credits, ABCF grading 

Prerequisite:  Familiarity of linear algebra and discrete mathematics at undergraduate level are required.  No previous programming experience is required.

Antirequisite:  AMS 561


There is no textbook.  Recommended reading material will be supplied.

Learning Outcomes:

Knowledge of the basic elements of computer programming languages. An understanding of the use of several different programming interfaces. Practical programming skills including:

1. Proficiency in MATLAB programming: including scripting, procedural programming, GUI, debugging, plotting, and profiling
2. Proficiency with Python programming, including scripting, object-oriented programming, and commonly used Python libraries
3. Fundamentals of programming in C/C++, including compilers, performance optimization, STL
4. Familiarity with selected program development tools
5. Best practices in scientific software engineering, including code modularization, debugging and testing, version control, and documentation, etc.