Liu11 3
Liu11 3
net/publication/262564402
CITATIONS READS
8 2,438
1 author:
Yucheng Liu
South Dakota State University
250 PUBLICATIONS 1,868 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Yucheng Liu on 24 May 2014.
Computer software and programming techniques Compared to C#, MATLAB is a much more
have been widely applied for solving engineering popular software package that has long been used
problems and therefore become more critical in in engineering courses. Kim et al [5] showed
engineering education. For that reason, courses in advantages of using MATLAB in teaching linear
programming with a high-level language (such as algebra to engineering students. The authors
FORTRAN, Pascal, C, or C++) have long been developed web-based engineering numerical
included in many first and second year software using MATLAB and its web server tool
engineering curricula. Such courses have box in order to provide basic solution tools in
traditionally been justified as teaching logical linear algebra, including eigenvalue problems. It
thinking and problem solving, while providing the was proved that the developed software is very
students with tools that they will use as practicing helpful for applied mathematics education. Wirth
engineers. However, these goals can be achieved and Kovesi [6] explored the use of MATLAB for
more readily through the use of object-oriented teaching the fundamental constructs of
programming languages such as C# and modern programming languages to engineering and
mathematical software tools such as MATLAB. science students. It was found by the authors that
Such languages and tools are more powerful and the time taken for students to learn programming
easier to master than a traditional programming can be reduced by up to 50% because of
language, allowing students to solve engineering MATLAB’s simpler syntax. Vondrich and
problems more easily and efficiently. This paper Thondel [7] illustrated the use of MATLAB in
introduces a programming course, Structured engineering education through practical example
Programming, which teaches students using C# and concluded that MATLAB appeared to be the
106 COMPUTERS IN EDUCATION JOURNAL
most successful for teaching compared to other
possible software products. Yaz and Azemi [8],
and Cao and Wu [9] described the benefits of
using MATLAB in electrical engineering courses
in enhancing students’ understanding of materials
and reducing their amount of time spent in
performing computational homework assignments.
Also, the methodology of integrating MATLAB
into mechanical engineering curricula to improve
the quality of mechanical engineering education is
presented and discussed by Habib [10].
Figure 1. Object-oriented program structure.
Because of their strengths, a programming
course was designed, which aims to teach the component architecture and it provides an easy
second year mechanical engineering students how and efficient way to create window applications.
to use C# and MATLAB in one semester. Therefore, it is important for mechanical
Meanwhile, the students can obtain critical engineering faculties to teach C# and .NET to the
programming skills and general computational students to prepare them well for this challenging
knowledge through this course, which is not well era and allow them to become successful
covered in traditional curricula. Compared to mechanical engineers.
similar courses taught in other universities, this
course is more efficient and focused: it removes MATLAB is a special-purpose computer
all the materials which are too profound for non- program optimized to perform engineering and
computer science students and only focuses on scientific calculations. As another object-oriented
using both languages to solve real world programming language, MATLAB is different
mechanical engineering problems. from C# because it is an interpreted language.
There are two major ways to implement a
C# and MATLAB programming language: interpretation and
compilation. C# is a compiled language, whose
Both C# and MATLAB are object-oriented implementation is typically compliers (translators
language. Since 1990’s, object-oriented which generate machine code from source code).
programming (OOP) has become the prevalent However, the implementation of an interpreted
technique used for developing software tools and language often takes the form of an interpreter,
interfaces. OOP is based on the notion that which is a step-by-step executor of source code,
software packages can be viewed as consisting of where no translation takes place. Because of that
distinct objects with properties that can be reason, MATLAB execute more slowly than C#
manipulated by methods [11]. Compared to and is more expensive. Despite its defects,
traditional programming techniques, OOP offers MATLAB offers a lot of advantages: it is easy to
unique virtues such as encapsulation and use and is supported on many different computer
inheritance, which make the software easy to systems; it has an extensive library of more than
maintenance and make the programming language 1000 predefined functions plus many special-
easy to learn. Because of these advantages, many purpose toolboxes; the plots and images generated
modern programming languages now support from MATLAB can be displayed on any graphical
OOP. A paradigm of OOP is shown in Figure 1. output device supported by computer. These
advantages make MATLAB very suitable for
C# is a simple, general-purpose, OOP language mechanical engineering applications. We teach
developed by Microsoft and supported by both C# and MATLAB in Structured
the .NET Framework’s Common Language Programming course so that our students can have
Runtime (CLR) [12]. As stated by experiences in using and dealing with two typical
Microsoft, .NET will replace COM as a software languages that represent different implementation
schemes.
COMPUTERS IN EDUCATION JOURNAL 107
Approach and Methodology • An ability to identify, formulate and solve
problems in the field of mechanical
It is important to understand that this course was engineering.
designed for students who want to learn • A recognition of the need for, and an ability to
computational knowledge and programming engage in, life-long learning in the field of
techniques, and pursue a career in mechanical mechanical engineering.
engineering. This course was designed to be taken • An ability to use the techniques, skills, and
by students at the sophomore level or above and modern tools necessary for the practice of
provides them with (1) an introduction to mechanical engineering.
engineering software development using an
object-oriented programming language (C#) Text Book
within a modern develop environment
(Microsoft.NET), and (2) instruction in the use of • J. Liberty, B. MacDonald, Learning C# 2005:
high-level numerical computing environment and Get Started with C# 2.0 and .NET
programming language (MATLAB) for programming, 2nd edition, O’Reilly.
engineering applications. • S. Chapman, MATLAB Programming for
Engineers, 3rd edition, Thomson.
This course has a well defined schedule and
syllabus so that the instructor would cover the Organization
various sections of the class, which was required
by the breadth of material and subject matter. Three 50 minute sessions per week devoted to
Visual and hands on learning techniques were lecture/discussion and problem solving. The
used wherever possible by the instructor of this difficulty of this course is such that a minimum
course. In many regards, the mechanical weekly commitment of 8-10 outside study hours
engineering students who took this course have will be required.
different background in computational and
software knowledge. To help in this regards, Grading
instructor was available for one-on-one office time Homework 20%
with students. Students were able to use class time Quiz 10%
and available office hours to discuss on special Midterm Exam 10%
topics with the instructor. Descriptions of a course Final Exam 10%
syllabus are presented. C# Project 20%
MATLAB Project 20%
Course Syllabus Professionalism 10%
Total 100%
Structured Programming
Final grades will be calculated according to an
Course Learning Objectives absolute scale:
≤ 59 F
The Mechanical Engineering Department has a
60-62 D- 63-67 = D 68-69 D+
set of five primary program objectives and 11
70-72 C- 73-77 = C 78-79 C+
educational outcomes associated with the
80-82 B- 83-87 = B 88-89 B+
B.Sc./M.Eng. curriculum. Structured
90-92 A- 93-97 = A 98-100 A+
programming supports the program objectives by
developing: Topic/Activity
• An ability to apply knowledge of mathematics, Week 1: Introduction (computer programming
science, and engineering in the field of languages, C# and .NET software
mechanical engineering. development platform); C#
fundamentals (types, constants).
Design Projects
Select proper values (with units) for all the frequencies and eigenvectors found using
parameters and construct matrices [Mv] and [Kv]; MATLAB). (40 pts).
based on the matrices, find natural frequencies for 2. A table to list the sorted natural frequencies.
this vehicle system (the number of natural (15 pts).
frequencies should equal to the rank of the 3. A plot for the natural frequencies. (15 pts).
matrices); list natural frequencies in a table from 4. Solve the eigen problem to find all normalized
low to high; plot these frequencies in a 2-D plot eigenvectors. (15 pts).
(vs. mode index); each natural frequency is 5. A plot for a normalized eigenvector with a
accompanied with an eigenvector, which is an specified mode. (15 pts).
animation mode of the vehicle system, resort these
eigenvectors according to the resorted natural Student Assessment
frequencies; create a function to normalize an
eigenvector based on a input mode index number This course was taught by the author to the
and plot at least one normalized eigenvector with mechanical engineering sophomore at University
a specified mode; save all functions into M-files. of Louisville in Fall of 2007. As an entry-level
programming course, Structured Programming
Deliverables: effectively developed the students the
programming skills and capabilities of solving
1. Project report (briefly describe the project complex engineering problems using popular
problem, include the figure of vehicle engineering and mathematics software package.
assembly, list all selected values and write out 24 students enrolled in this class and by the end of
the matrices, list all the M-files and functions that semester, favorable outcomes were received
generated for this project, attach all the natural from the student feedback as well as from the
course evaluation. From the evaluation results