Physics 5—Scientific  Computing

Instructor: Geoff Hagopian,
office: Math 12
phone: 760-776-7223

Meetings: TR: 5:15-7:45


[Calendar] [Compilers]

babbage difference engine

Syllabus—Spring 2011

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 either simple console (text) input/output—no graphics, or Dark GDK applications that employ graphics.

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.
Textbooks: Schaum's Outlines; Fundamentals of Computing With C++, by John R. Hubbard (for console applications) and Starting Out With Games and Graphics in C++, by Tony Gaddis of Hayward College, for graphics and games applications.


·      Every week there will be a collection of assignments corresponding to reading in the texts and elsewhere. As a result of all this you will turn in various written assignments 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 either very basic, console-oriented (input and output involved in the program will be limited to ascii text data, not graphics), or programs in the GDK graphics environment. 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 calendar page.  These should be emailed to my cod email address attaching the file named using the format <your initials>_<assignment name> and the file type either .txt or .cpp depending on whether you are submitting plain text or C++ code. It his helpful to zip multiple files together in a bundle, in which case the file type will be .zip.

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

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