Meeting times: MWF 9:30–10:20, R 9:00–9:50

Instructor:Jessen Havill

Office:Olin 208


Office Hours:MWF 1:30-3,T 8:30-9:30, or by appointment (email me)


This course is an introduction to computational problem solving, in which 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 Programmingby Yours Truly, 2015.

Web Resources

The pages on this course web site ( contain a daily schedule with reading assignments, exercises and projects and quizzes, as well as links to other potentially useful resources. Bookmark the daily schedule page and refer to itdailyfor updated information.

The textbook sometimes refers to files and other resources on the“book web site”. You can find this at

Outside of class, we will usePiazzafor Q&A and discussion. When you have a question, instead of sending me an email, pleasepost it to Piazza. This way,everyone can benefit from the answer. You are also strongly encouraged to answer your classmates’questions on Piazza. If will answer them too but, if you see it first, answer it!

Attendance and Other Responsibilities

Youractive participationis 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 both cheat yourself of an education and very likely earn a poor grade.

It is very important that you keep up with coursework on adailybasis;consistency is the key.Like other classes at Denison, it is expected that you devote at least 3 hours outside of class for each hour of class time. Read your book on a daily basis (see the daily schedule) and do the examples and exercisesin front of a computer. We will use the reading as a starting point for each class discussion rather than rehash everything that you read the night before. To facilitate this, I will provide you with a“reading notes”outline for each reading assignment. These outlines will contain a number of questions that you should answer while you read. Some of these questions are the“Reflection”questions in the text and others have been added by me. You may, of course, choose to jot down additional notes as well. Each reading notes outline is due in class on the day the reading is due. I will periodically spot-check at the beginning of class to make sure they are complete.

Yourattendanceis 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 mein advance. You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in classwhether 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

Much of the work in this class revolves around ten (or so) larger projects that apply what you are learning to interesting problems in the natural sciences. Each project will bedue in classon 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 tostart early. 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

The textbook contains hundreds of exercises that are designed to reinforce the concepts and give you extra practice solving problems. For each section that you read, I will generally choose 3 to10of these exercises for you to hand in (via email) before the next class. I will also list a few additional, usually more difficult, exercises as recommended additional practice. Due to time constraints, I will generally not be grading exercises for correctness unless you explicitly ask me to (which I am happy to do). Rather, I will only check that you have made aserious efforttoward a solution. I may hand out solutions to these exercises and/or we may discuss them in class. These exercises are meant to provide both practice and diagnostic information about how well you are understanding the concepts. If you do not understand how to do an exercise, see me or a tutor right away.

Completing the basic exercises will earn you one point; if you also complete the additional exercises, you will earn an additional 1/3 point. Your final homework grade, which will count for 15% of your final grade in the class, will be computed by dividing your total points by the maximum total possible points you could have earned (4/3 times the number of exercise sets). Notice that, if you complete only the basic exercises, this will earn you 75% of the possible homework points.

Big Idea Thursdays (BIT)

Every two weeks or so, we will“pause”to step back and talk about a“big idea”in computer science. During this class period, we will have a discussion (or another activity) surrounding a different “big idea.” In some 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. More 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.

You can find further information about Denison’s Code of Academic Integrity on Denison’s web site at

In this class, you may discuss problems with other students in the class, butwritten (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 finalgrade:

  • Projects 30%
  • Homework exercises 15%
  • 6/7 biweekly quizzes(dropping the lowest) 35%
  • Final Exam 20%

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 2015