CS 111
Foundations of Computing for Scientific Discovery
Fall, 2009

Denison
Professor: Jessen Havill
Office: Olin 208
E-mail: havill@denison.edu
Phone: 587-6582
Mailbox: Olin 201
Office hours: Please see the schedule outside my office.

Description

This course is an introduction to computational problem solving. In it, you will develop your ability to abstract (or model) otherwise complex problems and generate elegant and efficient algorithmic solutions. You will practice these skills by developing computer programs that solve problems motivated by research in the sciences.

Over the course of the semester, we will tackle a wide variety of problems involving modeling and simulation, monte carlo methods, cellular automata, bioinformatics, approximation algorithms, networks, swarms and emergence, data analysis, clustering, and fractals.

Absolutely no prior experience is necessary.

Required Texts

Python Programming in Context
by Bradley N. Miller and David L. Ranum, Jones and Bartlett, 2009.

The Pattern on the Stone
by W. Daniel Hillis, Basic Books, 1998.

Six Degrees: The Science of a Connected Age
by Duncan J. Watts, Norton, 2003.

Attendance and Other Responsibilities

In order to do well in this class, it is imperative that you take an active role in the learning process. I cannot simply transfer knowledge to you. Rather, learning must be an active process in which the instructor is but an important resource.

Your attendance is expected at each class meeting. It is in your own best interest to attend class, as your grade will almost certainly suffer indirectly if you choose not to attend. In addition, I will consider attendance in the participation component of your grade. Of course, excused absences (sickness, family emergencies, varsity athletic participation) will not be held against you. Such absences should be communicated to me in advance.

You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class whether or not you are present. If you must miss a class, be sure to check with me or another student to get what you missed. Exams will be given in class on the day scheduled and may not be made up.

It is very important that you keep up with the assigned reading. Read your book(s) on a daily basis and do the examples and exercises in front of a computer. I will expect that you have engaged with the assigned material before coming to class. We will use the reading as a starting point for each class discussion rather than rehash everything from the night before.

Online Resources

I will maintain a class web page containing reading assignments, homework assignments, sample programs, and other useful resources. Refer to this page often for updated information. The class home page can be found at: http://www.denison.edu/~havill/111/.

Big Idea Thursdays (BIT)

In an introductory programming-oriented class such as this, it is easy to get caught up in the daily routine and lose sight of the "big picture". To mix things up a bit and get us thinking about some fascinating new directions in computer science and scientific computing, we will step back every other week for a Big Idea Thursday. During this class period, we will have a discussion (or another activity) surrounding a different "big idea". In most cases, the next project will also be related to this topic.

Before each of these discussions, we will read an article or a book on which to base the discussion. On the previous Monday, you will submit two well-constructed discussion questions for the next Thursday. I will select a half dozen or so of the class' questions and distribute them to the class by the following day. These questions, together with some of my own, will form the basis for our discussion.

The planned topics are laid out on the class schedule page on the web. The reading for a particular week may range from a single article to an entire book. Plan your time well in advance so that this reading is evenly spaced throughout the semester. You may be able to start an article a few days in advance, but that won't work for a book!

Homework Policies

There will be a number of programming projects given during the semester which will be due in class on the date specified. No late homework assignments will be accepted, unless arrangements have been made with me well in advance. Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other classes at Denison, it is expected that you devote at least 3 hours to these assignments for each hour of class time. You will be working in pairs on the programming projects. Pairs will be rotated every 3-4 weeks. More on this later.

Academic Integrity

Proposed and developed by Denison students, passed unanimously by DCGA and Denison's faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated.

Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted -- not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student's responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.

For further information about the Code of Academic Integrity see http://www.denison.edu/about/integrity.html

In this class, you may discuss homework problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. Keep in mind that it is quite easy for me to tell when two students have been working too closely. You may not get help from students outside the class. If you have questions, come see me and I will be happy to help. You are also quite welcome to send me email or call if you would like to discuss an assignment.

Grade Determination

The following relative weights will be used to determine your final grade:

Projects 40%
Participation 10%
4 Mid Term Exams 35%
Final Exam 15%

Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss his or her specific needs. I rely on the Office of Academic Support in 104 Doane to verify the need for reasonable accommodations based on documentation on file in their office.


Have a great semester! If you need anything, please let me know.