CS 111: Foundations of Computing for Scientific Discovery, Spring 2015

Instructor:Jessen Havill

Office:Olin 208



Web site:http://personal.denison.edu/~havill

Office Hours: when my door is open (which is almost always) or by appointment


This course is an introduction to computational problem solving. In it, you will develop your ability to abstract (or model) 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. Our programs will be written in a programming language called Python.

Over the course of the semester, we will tackle a wide variety of problems. Some will involve the analysis of large data sets and others will be simulations of natural phenomena. In the first category, the data will include DNA sequences, earthquake readings, long-term climate records, and networks. In the second category, we will investigate simulations of dynamic populations, random walks, cellular automata, fractals, and flocking.

Required Text

Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming by Yours Truly, manuscript, 2015.

Web Resources

First, the course web site athttp://personal.denison.edu/~havill/cs111s15/will contain reading assignments, homework assignments, answer keys, sample programs, and other useful resources. Refer to this page daily for updated information.

Second, you can find resources for the textbook at http://DiscoverCS.denison.edu.

Third, we have a class page set up onPiazzafor Q&A and discussion. When you have a question, please post it to Piazza so that everyone can benefit from the answer.

Attendance and Other Responsibilities

Your active participation is absolutely essential to your success in this class. I cannot emphasize this enough. By simply attending class and doing a minimal amount of work, you will be cheating yourself.

It is very important that you keep up with coursework on a daily basis; consistency is the key. Read your book(s) on a daily basis and do the examples and exercises in front of a computer. We will use the reading as a starting point for each class discussion rather than rehash everything from the night before.

Your attendance is expected at each class meeting. Your grade will almost certainly suffer indirectly if you choose not to attend. In addition, I may consider attendance when assigning grades, especially in borderline situations. 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.

Programming Projects

The bulk of the work in this class revolves around ten programming projects. Each project will be due in class on the date specified. No late 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 all but the first few programming projects. Pairs will be rotated every 3–4 weeks. More on this later.

Homework Exercises

With each reading assignment in the text book, there are several exercises that are designed reinforce the topics and give you extra practice. I will choose a few of these exercises for you to hand in (via email). I will generally not be grading them for correctness. Rather, I will only check that you have made a serious effort toward a solution. I will post solutions to these exercises later in the day on my web site and/or we may discuss them in class.

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.

You can find further information about Denison’s Code of Academic Integrity on Denison’s web site athttp://denison.edu/academics/curriculum/integrity.

In this class, you may discuss problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about problems with your peers, but when it comes time to write your solutions, you (and your partner) 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 students have been working too closely. You may not get help from students outside the class, except for departmental tutors. 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.

Students found responsible for breaches of academic integrity may earn a failing grade for the course.

Grade Determination

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

  • Projects 40%
  • Homework Exercises 10%
  • 3 Mid Term Exams 30%
  • Final Exam20%

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 to verify the need for reasonable accommodations based on documentation on file in their office.

Course Evaluations

At the end of the semester, you will be asked to evaluate this course and the instructor. These evaluations are an important tool for helping Denison faculty achieve and maintain excellence in the classroom; it will also help you reflect on your learning, participation, and effort in the course. A key purpose of course evaluations, then, is to constantly improve the level of teaching and learning at Denison by instructors and students. Your ratings and comments will also be included as one element of an instructor's overall teaching portfolio. Together with peer observations and other means of assessing teaching effectiveness, this portfolio will be considered by the instructor's colleagues and college administrators in making recommendations for contract renewal, tenure, promotion, and salary decisions.

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

Jessen Havill 2020