Physics 5—Scientific  Computing

Instructor: Geoff Hagopian,
office: Math 12
phone: 776-7223
Meetings: TR: 9:30-12:00

[Calendar] [Compilers]

babbage difference engine

Syllabus—Fall 2008

Catalog Description:  This course is an introduction to the use of C++ for the solution of problems in the physical sciences and engineering through the structured implementation of algorithms on digital computers.  Emphasis is placed on using good programming principles to develop and code algorithms for solving problems in math and science, especially methods for searching and sorting data, iteration, simulation experiments, curve fitting, and processing data numerically.

            NOTE:  Prior knowledge of computer programming is not required.

In this course we consider theoretical and practical issues involved in creating C++ code to solve problems, especially problems from science and mathematics. We begin using the basic procedural approach to developing algorithms in C and to more modern object-oriented design.  All applications will be simple console (text) input/output—no graphics, except perhaps by exporting data to a spreadsheet application.

Introduction to Scientific Computing is a fun, hands-on course for learning science and math because it provides an excellent opportunity to consider the relationship between the theory involved in solving problems in math and science and the practice of implementing algorithms on a computer.
Textbook: How To Program in C++, Gaddis, 6th ed.
A good supplemental resource for this class is How To Program in C++ by Deitel and Deitel.
The web site for this book contains a wealth of resources (if you're on the internet, click on the link above.)

Office hours:
MWF: 9:10 - 10:50.  
You may also schedule other times to meet with me by email.

Deliverables: Every week there will be a collection of assignments corresponding to reading in the text and elsewhere. As a result of all this you will turn in various written assignments (in business parlance, "deliverables") which will be graded.

·          Quizzes: These may include on-line or pencil/paper quizzes in various formats such as multiple choice, fill-in-the-blank, short essay, etc. These are designed to help you get acquainted with the vocabulary and theoretical concepts to be successful in designing computer programs in C++.

·         Programming Assignments: This course is all about inventing C++ code to accomplish various computing tasks. Bearing in mind that this is your first course in computing science, the programs you will be asked to write will be very basic, console-oriented (input and output involved in the program will be limited to ascii text data, not graphics), but it is hoped you will find them interesting and challenging. A big part of this will involve debugging your code. This can be quite time-consuming and even frustrating. You are encouraged to consult with me and your classmates--but ultimately you must invent your own code and to understand it all by yourself!  The programming projects are listed on the assignments page.  Programs can be up-loaded

·          Exams: There will be midterm and final in-class exams.

Grading: Programming assignments: 55%; Quizzes: 20%; Exams: 25% (10% midterm, 15% final)