CS 2073 Engineering Programming Course Goals, Fall 2005
Course Goals:
Course Goals
Learn the basics of the C language.
Learn the basics of programming, including
types, expressions, loops and conditionals, functions and parameters,
and arrays.
Learn additional detailed features of C.
Examine engineering applications.
Examine applications to calculus.
Learn about C in comparison with Java and C++.
Majors in this class:
Statistics about this class
Electrical Engineering
27/36 = 75%
Undeclared Engineering
3/36 = 8%
Mathematics
3/36 = 8%
Mechanical Engineering
1/36 = 3%
Computer Science
1/36 = 3%
Undeclared
1/36 = 3%
Why Not Learn C++?
Sometimes this course has been taught using C++.
C++ is particularly desirable for scientists and engineers,
and C++ is very commonly used in industry. C++ is a powerful
development language, not proprietary and easily ported, that
leads to code that is as efficient as C and is more efficient than Java.
C++ is extremely complicated, and can be difficult to teach and to learn.
C++ is mostly a compatible extension of C. One way to learn C++
(not the only way) is to start with C.
This course won't remotely cover all of C, so putting in C++
features makes the course even more superficial.
Why Not Learn Java?
Java would be another reasonable choice for engineers, but it is
not used nearly as much in engineering as is C/C++.
Java has many strengths, but numerical computing and other kinds
of engineering applications are not particular strengths of Java.
Unlike C++, Java is not a compatible extension of C.
What about MATLAB?
Learning MATLAB would be another worthy goal. This is a
very powerful package that is widely used in engineering.
I feel that it is better to teach as much C as possible,
rather than sticking some other language into the course.