COMP 108: Introduction to Scientific Computing
Course Description:
Over the past several decades advances in computation have
fundamentally changed the practice of scientific research.
Computational models of complex systems allow experimenters to ask and
answer questions that would be difficult or impossible to address
using traditional laboratory methods. In addition, advances in
laboratory technology have led to an explosion in the amount of
experimental data available to researchers. Making sense of these
data increasingly requires sophisticated computational approaches.
The purpose of this course is to give students an introduction to the
field of computer science with an emphasis on scientific modeling and
data analysis. The course will provide an introduction to computer
programming in both Matlab and C/C++. We will discuss fundamental
computer science topics including the limits of computation and
algorithm analysis. We will also cover a selection of topics relevant
to scientific research, including data visualization, representation
of numbers, and random number generation. Course work will include
programming projects, homework assignments and exams. Students will
be required to complete a final programming project on a topic of
their choice. This course requires no previous programming
experience. There is no formal math prerequisite, but students should
be comfortable working with basic mathematical notation.
Required Texts:
- Stephen J. Chapman, Essentials of MATLAB Programming, Thomson, 2006.
- Comp 108 Course Pack (Available in the bookstore)
Tentative Schedule:
A tentative course schedule including
lecture topics and assignment due dates is available on the web at
http://max.cs.kzoo.edu/cs108/schedule.shtml. This schedule will
be updated frequently as the quarter progresses.
Attendance:
Regular attendance is expected of all
students. Since your grade will be partially based on in-class
projects and occasional quizzes, your attendance will affect your
grade.
Collaboration and the Honor System:
This course operates in accordance
with the principles of the Kalamazoo College Honor System:
responsibility for personal behavior, independent thought, respect for
others, and environmental responsibility. In particular, academic
integrity is a fundamental principle of scholarship. Representing
someone else's work as your own, in any form, constitutes academic
dishonesty. Unauthorized collaboration and receiving help from others
outside the bounds permitted by the instructor are also violations of
the College honor code. You are responsible for working within the
permitted bounds, and acknowledging any help from others or
contributions from other sources. Violations of the honor code may
result in severe consequences including failure of the course or
expulsion from the college.
Assignments and Grading:
Grading will be based on in-class projects, two programming projects,
homework assignments, two exams, and a final project. All
assignments are due at the beginning of class. Late assignments
will not be accepted. In recognition of the fact that life is full of
unexpected hurdles, you may use three "late days" which can be applied
to any project or homework assignment with the exception of the final
project. The use of a late day allows you to submit an
assignment before the start of the next class session for full
credit.
In-Class Projects:
Many
class periods will be structured as "mini-labs". On mini-lab days
there will be a short lecture, followed by an in-class project that
may be completed individually or in groups of two. I will attempt to
structure the mini-labs so that it will be possible to complete them
during the class period. However if you do not finish a project
during class, it will be your responsibility to complete it before the
next class period.
Projects:
There will be
two programming projects assigned over the course of the quarter.
Each project will involve writing a program to solve a modeling or
data analysis problem. Each project submission will be accompanied by
a short report that provides an analysis of the results including
appropriate figures. You may do projects individually or in
groups of two. If you work with a partner, only one report is
required. You are welcome to discuss projects with other class
members at a conceptual level, but all code and data should be your
own. Any outside help received should be documented in your
report.
Final Project:
In addition to the two assigned projects there will be a final project
on a topic of your choice. Final project proposals will be due
at the beginning of week seven. The final project grade will be
based on a written report and a brief presentation
during the final exam period. You may work with a partner
on your final project.
Homework Assignments:
There will be approximately six homework assignments. You may
discuss homework problems with classmates, but the final submission
should be in your own words and based on your own understanding of the
material.
Exams:
There will be two non-cumulative exams. Questions on the
exams may be based on lectures, readings, or homework assignments.
Final grades will be based on:
In-Class Projects and Quizzes
|
15% |
Two Programming Projects
|
25% |
Final Project
|
15%
|
Homework Assignments (approximately 6)
|
25% |
Two Exams
|
20% |
Any student with a disability who needs an accommodation or
other assistance in this course should make an appointment to speak
with me as soon as possible.
This page is maintained by
Nathan Sprague (nsprague{at}kzoo{dot}edu)
This page was last modified on September 26, 2007 4:21 PM.
Official Kalamazoo College Disclaimer