= An Introduction to Scientific Computing = Instructor:: [http://lca.ucsd.edu/projects/rpwagner Rick Wagner] Email:: rwagner@physics.ucsd.edu Office:: SERF 465 == Description == Computers play a huge role in modern science, from the level of an individual researcher's workstation, to massive parallel supercomputers, shared by hundreds of users. This course will help students understand why and how computers are used to benefit scientific research at both of these levels, and in between. Topics will include mathematical and numerical modeling, computer simulations, data analysis, and visualization. At least half of the class will be hands-on, using Open Source software to do simulation and analysis of physical systems. Some of these exercises will be done using existing software, and for some the students will write their own software. All programming will be in the Python programming language, both for its ease of use, and the availability of interactive scientific packages. Students familiar with any other programming languages will find it easy to adapt. == Introduction, Aims, Objectives == === Aims === This course has two goals: 1. To help students understand why and how computers are used to benefit scientific research; 1. and how to use computers effectively in the pursuit of science. === Objectives === By the end of the course, students will have an understanding of the following: * The role of computers in science; * mathematical models of physical systems; * and the purpose and limits of computer simulations. Also, students will be able to do the following: * Write simple programs in Python using !SciPy; * visualize data in 2 and 3 dimensions; * run a simulation, to include * setting up initial conditions, * running the software, * analyzing the output. == Assignments & Grading == Course work is divided into four areas, with the final grade being a weighted combination of these areas, as follows: Lab work, 50%:: During the first two weeks, each afternoon lab will have an assignment associated with it, that will be due at the end of lab. Since this will be the "meat and potatoes" of the course, it will make up the bulk of your grade. Homework, 20%:: There will be four homework assignments, two during the first week, two during the second. The assignments will either be preparation for future course work, or subjective assignments that look at scientific computing in a larger context. Final project, 20%:: During the final week of the course, we will work together on a scientific programming project. Everyone will have a role in the project. Participation:: Class participation is of utmost importance. Engaging during the lectures and lab shows what you do, or, more importantly, do '''not''', understand. Your participation will also help to guide the course into areas of greater interest to you. * [wiki:Homework Homework & Instructions] * [wiki:LabInstructions Lab Instructions] * [wiki:LabAssignments Lab Assignments] == Schedule Summary == The [wiki:Schedule detailed schedule] is on a separate page. === Week 1 === * Introduction to our software tools: Python; !SciPy; Trac; Subversion; etc. * Data Analysis * Numerical Methods === Week 2 === * Software Testing * Modeling * Visualization * Simulations * Final Project Design === Week 3 === * Data Management * Scientific Computing & the Internet * Final Project Development == Supplies == All reading materials will be provided. At the end, students will receive a CD with both the course materials and their work == Expectations == Collaboration will be encouraged over competition, but students will be expected to turn in the fruits of their own labors. In order to ensure understanding of the lecture materials, assigned readings and homework will be done before class. In addition, the minimum standards of punctuality, attentiveness, and respect for others shall be met. === Electronic Distractions === Lectures and labs are times for interacting with your instructor and fellow students. To facilitate this, devices such as cellphones, pagers, PDAs and laptops must be turned off or muted. While working in the lab, you may use the workstations for personal use only ''after'' you have submitted your work.