Introduction to Computer Methods
The course has two primary goals: (a) to provide you with the basic elements of programming using the C language, and (b) to introduce you to simple numerical methods for the solution of mathematical modeling problems that typically arise in a variety of engineering disciplines. Through theory and applications, the course aims at training you in thinking in a structured manner about solutions to engineering/mathematical problems.
Numerical methods are at the core of computational modeling techniques for obtaining solutions to problems of engineering interest. The classical hierarchy for attaining such solutions includes four distinct steps: (i) observations (possibly experimental), (ii) postulation of mathematical theories and associated models in accordance with the observations, (iii) solution of the mathematical models using numerical methods, and finally, (iv) validation of the obtained results via comparisons with the observations.
The sole platform for implementing numerical methods is a computer, whether a workstation, personal computer, mainframe, farm/cluster of computers, or massively parallel supercomputers. In the last few decades, numerical methods have increasingly attained a prominent place in the engineering modeling process, due, by and large, to significant advances in the afforded computing power. As a consequence, more complex problems can be solved today in less time than a few years ago.
As advances in both computing power and numerical methods are ongoing, their impact on the future of engineering is still being formed, perhaps not fully understood, and still a subject of debate. No matter what that future might turn out to be, it is very likely that computers and numerical methods will be a major part of it, at least for the near term. An introductory course in numerical methods and programming, as this one is, aims at exposing the students to the fundamentals of numerical methods and programming so that graduating engineers will be able to participate intelligently in the shaping of the future.
The presentation of the material will be incremental starting from introduction to computers and operating systems, number systems and machine representations, to simple programming techniques using a procedural language such as C, and progressing to elementary numerical analysis methods. At the end of the course students should feel comfortable programming in C, and have a working knowledge of the numerical methods discussed in class.
The following is a tentative outline of the topics to be covered.
• Introduction to computers – operating systems – roundoff
and truncation errors – number systems – numerical methods
• C Programming: The Microsoft Visual C++ development environment; overview of C; syntax rules; input/output; arithmetic operations ; data types; flow control; functions; arrays; pointers; structures, etc.
• Numerical methods: integration and differentiation ; curve fitting; solution of nonlinear equations ; systems of linear equations; ordinary differential equations; finite-difference schemes
• Other topics (I may decide to introduce any topic at any time)
1. “C How to Program,” Deitel & Deitel, 5^th edition,
Prentice Hall, 2007
2. “Numerical Methods for Engineers: With Software and Programming Applications,” S. C. Chapra, R. P. Canale, 5^th edition, McGraw Hill, 2006 (optional)
Additional references :
1. “Applied Numerical Analysis,” C. F. Gerald and P. O.
Wheatley, Addison Wesley, 1999
2. “Applied Numerical Analysis using Matlab,” L. V. Fausett, Prentice Hall, 1999
3. “The C Programming Language,” B. W. Kernighan and D. M. Ritchie, Prentice Hall, 1988
4. “A Book on C: Programming in C,” Al Kelley and Ira Pohl, Addison-Wesley, 1998
Prerequisites: The prerequisites for CE 311K are:
M408C (Calculus I, or equivalent )
M408D or 308L (Calculus II, or equivalent; registration)
For Civil Engineering Majors: CE301 (Introduction to Civil Engineering Systems, or equivalent).
Hardware: Some familiarity with computers is required. Students are expected to be familiar with the LRC facilities. The LRC currently operates several personal computers running the Windows XP Pro operating system, which will be used throughout the course. Thus, familiarity with basic operations (file opening, printing, application launching, text editing, etc) of the Windows environment is expected. Since the course is intended for students with little prior experience in scientific computing, knowledge of a programming language is not required, since the language syntax will be presented during the course.
Software: Microsoft’s Visual Studio 2005 environment will be used for all programming assignments. The Visual Studio has been installed on all PCs in the ECJ 3.302 lab.
Homework: Assignments will be given, on average, every week: assignments may be distributed during either the lecture or the lab sessions. Assignments distributed during the lecture will be due at the beginning of the lecture on the date marked on the assignment sheet, unless modified by the instructor. Laboratory assignments will be given and discussed by the lab instructor (TA or Professor). Lab assignments will be typically due at the beginning of the next lab session. Late assignments will not be accepted. Students are strongly encouraged to discuss course topics among themselves, since such discussions are an important part of the learning process. However, each student must carry out assignments independently.
Working on assignments constitutes possibly the best way for digesting the material and learning the concepts (roughly speaking, most of us learn by doing, rather than by listening or reading). It is thus, in my opinion, imperative that appropriate care is taken to consistently complete the assignments throughout the semester.
Your assignments should be clearly and cleanly written. I
expect all to adhere to a reasonable person’s presentation standards without
anyone having to describe or define these standards for you.
Attendance and participation: In my experience, there is a high correlation between a low course grade or course failure, and scant class and lab attendance. I intend to randomly monitor the attendance and distribute failing notices to those who will be failing the course due to repeated absences.
Scholastic dishonesty: Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Since such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced. For further information, visit the Student Judicial Services web site and the General Information Catalog information at catalogs/gi07-08/app/appc03.html#Chapter-11-Student-Discipline-and-Conduct.
Exams: There will be three or four exams, two or three one-hour or two-hour examinations (dates to be announced) and one final. Alternative dates for the two or three examinations will be arranged only for students with documented medical emergencies. The final exam, as per the University’s schedule has been set for Tuesday, December 16, 2007 (9:00am-12:00 noon). All exams will be conducted with closed books and closed notes, unless otherwise stated prior to the exam.
Grading system: Homework assignments (H) carry a 20% weight; the two or three mid-course exams (Q1, Q2, and Q3) carry a cumulative 50% weight, and the final exam (F) a 30% weight. Thus, the final grade will be G=0.20*H+0.50/3*(Q1+Q2+Q3)+0.30*F. Letter grades will be assigned as follows:
A for G ≥ 90,
B for 80 ≤ G < 90,
C for 70 ≤ G < 80,
D for 60 ≤ G < 70,
F for G < 60
The above represent minimum bounds; I reserve the right to
adjust the grading scale, based on class performance.
Course/Instructor evaluation: At the end of the course a standard MEC (Measurement and Evaluation Center) evaluation form will be distributed to all students, who are strongly encouraged to complete it.
Course add/drop policy: As per the School of Engineering
From the 1st through the 12th class day, an undergraduate student can drop a course via the web and receive a refund if eligible. From the 13th through the 20th class day, an automatic Q is assigned, no refund; approval from the Dean and departmental advisor is required. From the 21st class day through the mid-semester deadline, approval is required from the Dean, instructor of the course and departmental advisor.
Other matters: The University of Texas at Austin provides,
upon request, appropriate academic adjustments for qualified students with
disabilities. Any student with a documented disability (physical or cognitive)
who requires academic accommodations should contact the Services for Students
with Disabilities area of the Division of Diversity and Community Engagement at
471-6259 as soon as possible to request an official letter outlining authorized
accommodations. For more information, contact that office at 471-6259, Video
Phone 232-2937, or the School of Engineering Director of Students with
Disabilities at 471-4321.