E 177 - Advanced Programming with MATLAB (3 units)
CATALOG DESCRIPTION
The course builds an understanding, demonstrates engineering uses, and provides hand-on experience for object-oriented programming as well as exposes a practical knowledge of advanced features available in MATLAB. The course will begin with a brief review of basic MATLAB features and quickly move to class organization and functionality. The introduced concepts are reinforced by examining the advanced graphical features of MATLAB. The material will also include the effective use of programs written in C and FORTRAN, and will cover SIMULINK, a MATLAB toolbox providing for an effective ways of model simulations. Throughout the course, the emphasis will be placed on examples and homework assignments from engineering disciplines.
|
COURSE PREREQUISITES
E 7 or E 77; Mathematics 53, 54 (one of these may be taken concurrently); or consent of instructor.
TEXTBOOK(S) AND/OR OTHER REQUIRED MATERIAL
None
COURSE OBJECTIVES
Develop proficiency using advanced features of the Matlab language: multidimensional arrays, reduced indexing reference and assignment, variable argument lists, function handles, subfunctions, communicating across workspaces (using evalin, assignin, and inputname), debugging, publishing to HTML, profiling, lint code checker.
Understand the purpose of object oriented programming: classes to give data an identity, public properties, methods, precedence and dispatching, private folders, restricting access through get/set interfaces, reference and assignment, inheritance.
Learn how graphical user interfaces work: Matlab Handle graphics primitives, cell-array callbacks, get/set interface, scalable GUI programming styles.
Understand and use of Simulink: functionality for
the simple user, architecture of ODE solvers for
interconnection of subsystems, S-functions,
get_param/set_param interface, get/set interface,
model properties, block properties, mask
properties, callbacks, workspaces.
Understand and use the CMEX interface: introductionto C, variables, pointers, arrays, functions,control flow, memory allocation; introduction to
CMEX Application Programmer Interface, mexFunction
gateway, mx and mex APIs
DESIRED COURSE OUTCOMES
At the end of the course, students are able to use advanced programming features of the Matlab language, including multidimensional arrays. They are also able to create user-defined classes and graphical user interfaces. Students are able to interface C-language programs into Matlab and/or use Java and Java classes within Matlab environment.
TOPICS COVERED
Advanced Matlab syntax (2 weeks); Object Oriented Programming (3 weeks); Handle Graphics/Graphical User Interface (3 weeks). The following topics vary with instructor: Project brainstorming (1 week); Building Reusable Graphical Classes (1 week); ODE solver suite in Matlab (1 week); Simulink architecture and programming (2 weeks); Intro to C (1 week); CMEX interface (2 weeks); Java and Java classes in Matlab (2 weeks); XML in Matlab (1 weeks).
CLASS/LABORATORY SCHEDULE
Three hours of lecture and one voluntary discussion/computer laboratory per week.
CONTRIBUTION OF THE COURSE TO MEETING THE PROFESSIONAL COMPONENT
Matlab and other high-level programming languages are used ubiquitously throughout the professional engineering community. Proficiency beyond that learned in the required lower division course (E77) is useful in many professional contexts.
RELATIONSHIP OF THE COURSE TO ABET PROGRAM OUTCOMES
An ability to design a system, component, or process to meet desired needs.
An ability to function on multi-disciplinary teams.
An ability to communicate effectively.
A recognition of the need for, and an ability to engage in life-long learning.
An ability to use the techniques, skills, and modern engineering tools necessary
for engineering practice.
ASSESSMENT OF STUDENT PROGRESS TOWARD COURSE OBJECTIVES
Varies slightly depending on instructor:
Six homework assignments;
one midterm exam;
one large self-defined project (up to four students/team);
one final exam.
PERSON(S) WHO PREPARED THIS DESCRIPTION:
Andy Packard
April 4, 2006