At the conclusion of this course, the student should be able to:
1. Utilize methodical approaches to develop computer algorithms that perform engineering-related tasks.
2. Create, test, and debug sequential MATLAB programs to perform those tasks.
3. Solve engineering-related computational problems by applying common numerical analysis techniques and MATLAB engineering tools.
4. Create computer programs to analyze and visualize data with tables, charts, and graphs.
5. Demonstrate understanding and use of standard data structures and object-oriented programming techniques.
6. Document computer programs in a careful and complete manner in order to facilitate editing by another programmer.
Lab-Related Objectives (in addition to the objectives above):
7. Develop solution algorithms in a project-based environment with only partially defined project parameters.
8. Practice problem solving and project management skills, including effective collaboration in culturally and gender diverse engineering teams.
9. Develop oral presentation skills.
Lecture-Related Topics and Scope:
I. Overview of Computer Systems and the MATLAB Environment
A. Compiled versus interpreted languages
B. Procedural versus object-oriented programming
C. MATLAB's interactive workspace
D. MATLAB's documentation and help features
II. Basic Interpreted Code
C. Precedence of operations
III. Elementary Functions
A. Math functions
B. Logical functions
C. Referencing functions
V. Computational Problem-Solving Methodologies
A. Problem definition and specifications
B. Input and output information and variables
C. Working a special case by hand
D. Design and implementation of computer algorithm
E. Test of algorithm
VI. Algorithm and Coding Practices
C. Comments and documentation blocks
VII. Formatted Input and Output
A. Input function
B. Menu function
C. Disp function
D. Format strings
VIII. File Management
A. MATLAB data files
B. MATLAB program files
C. MATLAB object files
D. MATLAB figure files
E. Non-MATLAB file reading
IX. Graphical Display
A. Independent variable setup in one- and two-dimensions
B. Two-dimensional plotting
C. Three-dimensional surface plots
D. Plot annotation expectations
E. Manual annotation options
F. Annotation functions
X. Selection Programming Structures
A. Relational and logical operators and functions
B. If statements with else & elseif
C. Switch-case construction
D. Lookup techniques
E. Logical Computation
XI. Repetition Programming Structures
A. For loops
B. While loops
A. User-defined functions
B. Multiple input and output functions
C. Function handles
D. Random functions
E. MATLAB's numerical analysis functions
XIV. Data Types
A. Strings and character arrays
B. Cell arrays
C. Structured arrays
D. Logical arrays
E. Graphical objects
F. User data structures
XV. Sorting Functions and Techniques
XVI. Object-Oriented Programming
XVII. Graphical User Interfaces (MATLAB Apps)
A. App components
B. App properties
C. App methods
XVIII. Numerical Analysis Techniques
C. Equations in one variable
D. Linear system solutions
E. Vector analysis
F. Data interpolation and extrapolation
G. Least-squares regression and linearization (optional)
H. Numerical differentiation and integration (optional)
I. Solving ordinary differential equations (optional)
J. Series approximation and error (optional)
Lab-Related Topics and Scope:
XIX. Interfacing to the External Environment
XX. Group Interaction Skills
A. Peer review and evaluation
B. Team member roles and behaviors
C. Cultural and gender diversity awareness
XXI. Presentation Skills
MATLAB Programming for Engineers. 6th ed. Chapman, Stephen. Cengage Learning. 2020.
Introduction to MATLAB. Knoesen, Andrea. Zybook. 2016 (classic).
Introduction to MATLAB for Engineers. 5th ed. Palm, William. McGraw-Hill. 2022.
MATLAB: A Practical Introduction to Programming and Problem Solving. 6th ed. Attaway, Stormy. Butterworth-Heinemann. 2022.
Instructor prepared lab manual or workbook