# EF 230 - Computer Solutions of Engineering Problems Syllabus

1. (35%) Exams - 4 quizzes (5% each) and a final (15%)
• Diligent Worker Incentive: If your average quiz score is 80% or higher, you’ll have the option to waive the final.
• Improvement Incentive: If you score higher on the final than any quiz, that quiz weighting will decrease by 1% and your final weighting will increase by 1%. This applies to each quiz
2. (30%) Projects - programming projects
3. (30%) Assignments - prelabs, practice and in-class assignments
4. (5%) Participation

The course grading is A (>=92),A- (>=89), B+ (>=86), B (>=82), B- (>=79), C+ (>=76), C (>=72), C- (>=69), D+ (>=66), D (>=62), and F (<62).

We will practice the following skills this semester. Exposing you to the many techniques and capabilities in MATLAB will enhance your ability to use computing tools and languages to solve engineering problems you encounter in your future academic and professional career.

1. Build programs to solve engineering-related problems
Use programming operations to calculate solutions
Determine better and more accurate solutions
Perform and evaluate algebraic and trigonometric operations using built-in functions
Assign and manage variables
Manipulate arrays, implement indexing, understand dimensions
Generate linearly spaced vectors
Create and execute a script
Create and evaluate x-y plots suitable for technical presentation
Create, test, and execute user-defined functions and local functions
Apply input validation to functions
Distinguish between the different MATLAB ‘data types’
Create and manipulate Structures and Character arrays
Perform and evaluate relational and logical operations
Obtain and utilize user input
Manage and format text output
Import and export numeric data using other filetypes (e.g. .csv, .xls, and .txt)
Perform curve fits and interpolation
Perform numeric and symbolic differentiation and integration
Solve non-linear systems of equations
Solve numeric ODE’s
Build a block diagram in Simulink to perform an operation
Perform numerical optimization
Analyze Signals

2. Apply common MATLAB approaches and conventions and understand common programming practices when creating and evaluating programs
Note: To meet this objective, you are required to submit WORKING programs on your exams.
Achieve competency and familiarity with common MATLAB features and methods
Recognize common programming elements across multiple computer languages
Utilize debugging techniques: isolate and test sections of a program, suppress or display intermediate operations, write debuggable code, and trace variables to locate errors
Utilize proper techniques and conventions to manipulate data and name files and variables
Employ effective and consistent commenting and logical organization to communicate your objective, method, and results
Implement basic techniques to increase code efficiency: reuse components where possible, remove redundancy (DIE: duplication is evil), and anticipate errors to minimize risk for error

3. Manipulate data and present solutions in programming design projects
Demonstrate initiative to self-learn how to use computer based tools/devices
Demonstrate innovation and creativity in your approach to solve complex problems
Implement your coding skills to acquire sensor data and program an autonomous response
Deliver a successful product
Demonstrate successful teamwork
Demonstrate effective technical communication to present project data and solutions
## Why learn programming? Engineering problem solving requires a methodical, detail oriented, tenacious approach using available resources and limited by constraints to determinate the best solution. This is a process you'll need to repeat many times as a successful practicing engineer, with or without the use of computer programs. Further, the ability to write, understand, and manipulate code is a skill required by employers that hire engineers. ## Why learn MATLAB?
• Because of its many strengths, this university and most top engineering schools have selected MATLAB as the computer language to be taught to engineering students.
• You may find you will need MATLAB in many of your engineering courses at UT.
• MATLAB can be used to solve a wide range of problems, with the ability to rapidly prototype and visualize data. We will attempt to cover several specific capabilities of MATLAB (robotics, data analysis and acquisition, solving differential equations, optimization, image processing, machine learning databases, etc.).
• MATLAB includes an extensive amount of built-in toolboxes and functions, without the need to install extra packages
• MATLAB is easy to learn as a beginner as a gateway to other languages with its robust IDE and live help as you type